## START: Set by rpmautospec
## (rpmautospec version 0.6.0)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

# TODO: Package trompeloeil
# https://github.com/rollbear/trompeloeil
%bcond_with tests

%global forgeurl https://gitlab.com/%{name}/%{name}
%global tag v%{version}

# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}

%undefine __cmake_in_source_build
%global uuid    org.%{name}.%{name}

Name:           corectrl
Version:        1.4.3
%forgemeta
Release:        %autorelease
Summary:        Friendly hardware control

# The entire source code is GPLv3+ except bundled libs:
# * Boost:          tests/3rdparty/catch
#                   tests/3rdparty/trompeloeil
# * MIT:            3rdparty/units
# * Public Domain:  FindBotan.cmake
# Automatically converted from old format: GPLv3+ and Boost and MIT and Public Domain - review is highly recommended.
License:        GPL-3.0-or-later AND BSL-1.0 AND LicenseRef-Callaway-MIT AND LicenseRef-Callaway-Public-Domain
URL:            %{forgeurl}
Source0:        %{forgesource}
Source1:        README.fedora.md

BuildRequires:  cmake >= 3.22
BuildRequires:  desktop-file-utils
BuildRequires:  extra-cmake-modules
BuildRequires:  gcc-c++ >= 13.1
BuildRequires:  libappstream-glib
BuildRequires:  libdrm-devel
BuildRequires:  ninja-build
BuildRequires:  cmake(Catch2)
BuildRequires:  cmake(fmt)
BuildRequires:  cmake(KF5CoreAddons)
BuildRequires:  cmake(pugixml) >= 1.11
BuildRequires:  cmake(Qt5Charts)
BuildRequires:  cmake(Qt5Concurrent)
BuildRequires:  cmake(Qt5Core) >= 5.15
BuildRequires:  cmake(Qt5DBus)
BuildRequires:  cmake(Qt5LinguistTools)
BuildRequires:  cmake(Qt5Multimedia)
BuildRequires:  cmake(Qt5Network)
BuildRequires:  cmake(Qt5Svg)
BuildRequires:  cmake(Qt5Widgets)
BuildRequires:  cmake(spdlog) >= 1.4
BuildRequires:  pkgconfig(botan-2)
BuildRequires:  pkgconfig(dbus-1)
BuildRequires:  pkgconfig(polkit-gobject-1)
BuildRequires:  pkgconfig(quazip1-qt5) >= 1.0
BuildRequires:  pkgconfig(x11)
%if %{with tests}
BuildRequires:  cmake(trompeloeil) >= 40
%endif

Requires:       dbus-common
Requires:       hicolor-icon-theme
Requires:       polkit%{?_isa}
Requires:       qca-qt5-ossl%{?_isa}
Requires:       qt5-qtquickcontrols2%{?_isa}

# Used to gather more information
#   * For glxinfo
Recommends:     mesa-demos%{?_isa}
#   * For lscpu
Recommends:     util-linux%{?_isa}
#   * For vulkaninfo
Recommends:     vulkan-tools%{?_isa}

# https://gitlab.com/corectrl/corectrl/issues/13
Provides:       bundled(units)

%description
CoreCtrl is a Free and Open Source GNU/Linux application that allows you to
control with ease your computer hardware using application profiles. It aims
to be flexible, comfortable and accessible to regular users.

- For setup instructions run:

  $ xdg-open %{_docdir}/%{name}/README.fedora.md

- or go to the project wiki:

  https://gitlab.com/corectrl/corectrl/wikis


%prep
%forgeautosetup -p1
# Unbundle 3rdparty
pushd 3rdparty
rm -rf \
    easyloggingpp \
    fmt \
    pugixml \
    %{nil}
popd
# lib soversion fix
echo "set_property(TARGET corectrl_lib PROPERTY SOVERSION 0)" >> src/CMakeLists.txt


%build
%cmake \
    -G Ninja \
    %if %{with tests}
    -DBUILD_TESTING=ON \
    %else
    -DBUILD_TESTING=OFF \
    %endif
    %{nil}
%ninja_build -C %{_vpath_builddir}


%install
%ninja_install -C %{_vpath_builddir}
install -Dpm 0644 %{SOURCE1} %{buildroot}%{_docdir}/%{name}/README.fedora.md
find README.md -type f -perm /111 -exec chmod 644 {} \;
find %{buildroot}/%{_datadir}/. -type f -executable -exec chmod -x "{}" \;

# Useless symlink without headers
rm %{buildroot}/%{_libdir}/libcorectrl.so


%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop


%files
%license COPYING LICENSE
%doc README.md README.fedora.md
%{_bindir}/%{name}
%{_datadir}/applications/*.desktop
%{_datadir}/dbus-1/system-services/*.service
%{_datadir}/dbus-1/system.d/*.conf
%{_datadir}/icons/hicolor/*/*/*.svg
%{_datadir}/polkit-1/actions/*.policy
%{_libdir}/libcorectrl.so.0*
%{_libexecdir}/%{name}/%{name}_helper
%{_libexecdir}/%{name}/%{name}_helperkiller
%{_metainfodir}/*.xml


%changelog
## START: Generated by rpmautospec
* Sat Nov 16 2024 Packit <hello@packit.dev> - 1.4.3-1
- Update to 1.4.3 upstream release
- Resolves: rhbz#2312839

* Wed Aug 28 2024 Miroslav Suchý <msuchy@redhat.com> - 1.4.1-4
- convert license to SPDX

* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Tue May 21 2024 František Zatloukal <fzatlouk@redhat.com> - 1.4.1-2
- Rebuilt for spdlog 1.14.1

* Tue May 21 2024 Packit <hello@packit.dev> - 1.4.1-1
- Update to 1.4.1 upstream release
- Resolves: rhbz#2282168

* Wed May 15 2024 Artem Polishchuk <ego.cordatus@gmail.com> - 1.4.0-3
- docs: Update README.fedora.md (rh#2271961)

* Sun May 05 2024 Artem Polishchuk <ego.cordatus@gmail.com> - 1.4.0-2
- RPMAUTOSPEC: unresolvable merge
## END: Generated by rpmautospec