b51e881
# Enable LTO
6cb9e0d
%global optflags        %{optflags} -flto
b51e881
%global build_ldflags   %{build_ldflags} -flto
b51e881
6865cdc
%global uuid    org.%{name}.%{name}
b51e881
b51e881
Name:           corectrl
6865cdc
Version:        1.0.7
1869d4e
Release:        2%{?dist}
33b6361
Summary:        Friendly hardware control
b51e881
b51e881
# The entire source code is GPLv3+ except bundled libs:
b51e881
# Boost:        tests/3rdparty/catch
b51e881
#               tests/3rdparty/trompeloeil
b51e881
# BSD:          3rdparty/fmt
b51e881
# MIT:          3rdparty/easyloggingpp
b51e881
#               3rdparty/pugixml
b51e881
#               3rdparty/units
b51e881
# Public Domain FindBotan.cmake
b51e881
License:        GPLv3+ and Boost and BSD and MIT and Public Domain
b51e881
URL:            https://gitlab.com/corectrl/corectrl
6865cdc
Source0:        %{url}/-/archive/v%{version}/%{name}-v%{version}.tar.gz
b51e881
Source1:        README.fedora.md
b51e881
b51e881
BuildRequires:  cmake
6cb9e0d
BuildRequires:  desktop-file-utils
6cb9e0d
BuildRequires:  extra-cmake-modules
6cb9e0d
BuildRequires:  gcc-c++
6cb9e0d
BuildRequires:  libappstream-glib
1869d4e
BuildRequires:  libdrm-devel
6cb9e0d
BuildRequires:  ninja-build
b51e881
BuildRequires:  cmake(KF5Archive)
b51e881
BuildRequires:  cmake(KF5Auth)
b51e881
BuildRequires:  cmake(KF5CoreAddons)
b51e881
BuildRequires:  cmake(Qt5Charts)
b51e881
BuildRequires:  cmake(Qt5Concurrent)
b51e881
BuildRequires:  cmake(Qt5Core)
b51e881
BuildRequires:  cmake(Qt5DBus)
b51e881
BuildRequires:  cmake(Qt5LinguistTools)
b51e881
BuildRequires:  cmake(Qt5Multimedia)
b51e881
BuildRequires:  cmake(Qt5Network)
b51e881
BuildRequires:  cmake(Qt5Svg)
b51e881
BuildRequires:  cmake(Qt5Widgets)
b51e881
BuildRequires:  pkgconfig(botan-2)
b51e881
BuildRequires:  pkgconfig(x11)
b51e881
Requires:       dbus-common
b51e881
Requires:       hicolor-icon-theme
b51e881
Requires:       polkit%{?_isa}
b51e881
Requires:       qca-qt5-ossl%{?_isa}
b51e881
Requires:       qt5-qtquickcontrols2%{?_isa}
b51e881
# --- Used to gather more information ---
b51e881
# For glxinfo
b51e881
Recommends:     mesa-demos%{?_isa}
b51e881
# For lscpu
b51e881
Recommends:     util-linux%{?_isa}
b51e881
# For vulkaninfo
b51e881
Recommends:     vulkan-tools%{?_isa}
6865cdc
b51e881
# https://gitlab.com/corectrl/corectrl/issues/13
b51e881
Provides:       bundled(easyloggingpp) = 9.96.7
b51e881
Provides:       bundled(fmt) = 5.2.1
b51e881
Provides:       bundled(pugixml) = 1.9
b51e881
Provides:       bundled(units)
b51e881
b51e881
%description
b51e881
CoreCtrl is a Free and Open Source GNU/Linux application that allows you to
b51e881
control with ease your computer hardware using application profiles. It aims
b51e881
to be flexible, comfortable and accessible to regular users.
b51e881
6cb9e0d
- For setup instructions run:
b51e881
b51e881
  xdg-open %{_docdir}/%{name}/README.fedora.md
b51e881
6cb9e0d
- or go to the project wiki:
b51e881
b51e881
  https://gitlab.com/corectrl/corectrl/wikis
b51e881
6865cdc
b51e881
%prep
6865cdc
%autosetup -p1 -n %{name}-v%{version}
6865cdc
b51e881
# 'lib64' path fix
b51e881
sed -e 's@DESTINATION lib@DESTINATION %{_lib}@g' -i src/CMakeLists.txt
6865cdc
b51e881
# lib soversion fix
b51e881
echo "set_property(TARGET corectrl_lib PROPERTY SOVERSION 0)" >> src/CMakeLists.txt
b51e881
b51e881
mkdir -p %{_target_platform}
b51e881
6865cdc
b51e881
%build
b51e881
pushd %{_target_platform}
b51e881
    %cmake -G Ninja \
6cb9e0d
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
6865cdc
    -DBUILD_TESTING=ON \
b51e881
    ..
b51e881
popd
b51e881
%ninja_build -C %{_target_platform}
b51e881
6865cdc
b51e881
%install
b51e881
%ninja_install -C %{_target_platform}
6865cdc
install -m 0644 -Dp %{SOURCE1} %{buildroot}%{_docdir}/%{name}/README.fedora.md
b51e881
find README.md -type f -perm /111 -exec chmod 644 {} \;
b51e881
find    %{buildroot}/%{_datadir}/. -type f -executable -exec chmod -x "{}" \;
6865cdc
b51e881
# Useless symlink without headers
b51e881
rm      %{buildroot}/%{_libdir}/libcorectrl.so
b51e881
6865cdc
b51e881
%check
6865cdc
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
6865cdc
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
6865cdc
b51e881
b51e881
%files
b51e881
%license COPYING LICENSE
e99936f
%doc README.md README.fedora.md
b51e881
%{_bindir}/%{name}
b51e881
%{_datadir}/applications/*.desktop
b51e881
%{_datadir}/dbus-1/system-services/*.service
b51e881
%{_datadir}/dbus-1/system.d/*.conf
6cb9e0d
%{_datadir}/icons/hicolor/*/*/*.svg
b51e881
%{_datadir}/polkit-1/actions/*.policy
b51e881
%{_libdir}/libcorectrl.so.0*
b51e881
%{_libexecdir}/kf5/kauth/*
6cb9e0d
%{_metainfodir}/*.xml
b51e881
b51e881
%if 0%{?fedora} < 30
b51e881
%{_sysconfdir}/dbus-1/system.d/*.conf
b51e881
%endif
b51e881
6865cdc
b51e881
%changelog
1869d4e
* Sat Nov 23 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.7-2
1869d4e
- Add new missed BR dep: libdrm-devel
1869d4e
6865cdc
* Sat Nov 23 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.7-1
6865cdc
- Update to 1.0.7
6865cdc
6cb9e0d
* Wed Sep 04 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.6-2
6cb9e0d
- Remove '$(nproc)' from '-flto' for reproducible builds
6cb9e0d
- Tiny cosmetic spec file fixes
6cb9e0d
e99936f
* Sat Aug 10 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.6-1
e99936f
- Update to 1.0.6
e99936f
f87a2e0
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-2
f87a2e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
f87a2e0
33b6361
* Tue Jul 23 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.5-1
33b6361
- Update to 1.0.5
33b6361
- App summary more descriptive now (upstream suggestion)
33b6361
b51e881
* Wed Jul 17 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.4-4
b51e881
- Update to 1.0.4
b51e881
b51e881
* Mon Jul 15 2019 Artem Polishchuk <ego.cordatus@gmail.com> - 1.0.3-15
b51e881
- Initial package
b51e881
- Thanks to Dead_Mozay <dead_mozay@opensuse.org> for initial spec file
6cb9e0d
- Thanks to Vitaly Zaitsev <vitaly@easycoding.org> for significant help with packaging and review