File system76-keyboard-configurator.spec of Package system76-keyboard-configurator
## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## 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
%bcond_without check
%global tag v1.3.9
%global forgeurl https://github.com/pop-os/keyboard-configurator
%if 0%{?suse_version}
Version: 1.3.10
%else
Version: 1.3.9
%endif
%if 0%{?fedora_version} > 1
%forgemeta
%endif
Name: system76-keyboard-configurator
Release: %autorelease
Summary: System76 Keyboard Configurator
# * system76-keyboard-configurator: GPL-3.0-or-later
# * Rust crate dependencies:
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
# Apache-2.0
# Apache-2.0 OR BSL-1.0
# Apache-2.0 OR MIT
# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
# MIT
# MIT OR Apache-2.0
# Unicode-DFS-2016
# Unlicense OR MIT
# LICENSE.dependencies contains a full license breakdown
License: GPL-3.0-or-later AND Apache-2.0 AND MIT AND Unicode-DFS-2016 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
URL: %{forgeurl}
%if 0%{?suse_version}
Source: keyboard-configurator-1.3.10.tar.gz
%else
Source: %{forgesource}
%endif
%if 0%{?fedora_version} > 1
Patch0: fix-target-dependencies.patch
# Submitted for inclusion upstream.
# https://github.com/pop-os/keyboard-configurator/pull/117
Patch1: update-palette-0.6.patch
%endif
BuildRequires: desktop-file-utils
%if 0%{?suse_version}
BuildRequires: appstream-glib
BuildRequires: cargo-packaging
BuildRequires: glib2-devel
BuildRequires: cairo-devel
BuildRequires: pango-devel
BuildRequires: atkmm-devel
BuildRequires: gdk-pixbuf-devel
BuildRequires: gtk3-devel
BuildRequires: libhidapi-devel
BuildRequires: libicu-devel
%else
# Fedora
BuildRequires: cargo-rpm-macros >= 24
# BuildRequires: /usr/bin/appstream-util
BuildRequires: libappstream-glib
BuildRequires: glibc-langpack-en
%endif
%description
Application for configuration of System76 keyboard firmware.
%prep
%if 0%{?suse_version}
# Source files are in keyboard-configurator-%{version}
%autosetup -n keyboard-configurator-%{version}
#%%autosetup -p1
#%%setup -q
#%%setup -q -n %{name} -c
#%%patch0 -p1
#%%patch1 -p1
%else
%forgeautosetup -p1
%cargo_prep
%endif
%generate_buildrequires
%if 0%{?fedora_version} > 1
%cargo_generate_buildrequires
%endif
%build
%if 0%{?suse_version}
pwd
ls -al
echo "--- Show files ---"
#find . -type d
echo "--- End show files ---"
cargo build --release --offline --verbose
%else
%cargo_build
%{cargo_license_summary}
%{cargo_license} > LICENSE.dependencies
%endif
%install
%if 0%{?suse_version}
%__install -D -m 0755 -vp target/release/system76-keyboard-configurator %{buildroot}%{_bindir}/system76-keyboard-configurator
echo "--- Show files ---"
#find target
echo "--- End show files ---"
%else
%cargo_install
%endif
%__install -D -m 0644 -vp linux/com.system76.keyboardconfigurator.desktop %{buildroot}%{_datadir}/applications/com.system76.keyboardconfigurator.desktop
%__install -D -m 0644 -vp linux/com.system76.keyboardconfigurator.appdata.xml %{buildroot}%{_datadir}/metainfo/com.system76.keyboardconfigurator.appdata.xml
%__install -D -m 0644 -vp data/icons/scalable/apps/com.system76.keyboardconfigurator.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/com.system76.keyboardconfigurator.svg
%__install -D -m 0644 -vp debian/com.system76.pkexec.keyboardconfigurator.policy %{buildroot}%{_datadir}/polkit-1/actions/com.system76.pkexec.keyboardconfigurator.policy
echo "--- Show files ---"
find %{buildroot}
echo "--- End show files ---"
%if %{with check}
%check
%if 0%{?fedora_version} > 1
%cargo_test
desktop-file-validate linux/com.system76.keyboardconfigurator.desktop
appstream-util validate-relax --nonet linux/com.system76.keyboardconfigurator.appdata.xml
%endif
%endif
%files
%license LICENSE
%if 0%{?fedora_version} > 1
%license LICENSE.dependencies
%endif
%doc README.md
%dir %{_datadir}/polkit-1
%dir %{_datadir}/polkit-1/actions
%{_bindir}/%{name}
%{_datadir}/applications/com.system76.keyboardconfigurator.desktop
%{_datadir}/metainfo/com.system76.keyboardconfigurator.appdata.xml
%{_datadir}/icons/hicolor/scalable/apps/com.system76.keyboardconfigurator.svg
%{_datadir}/polkit-1/actions/com.system76.pkexec.keyboardconfigurator.policy
%changelog
* Mon Sep 18 2023 Fabio Valentini <decathorpe@gmail.com> - 1.3.9-4
- Update license tag to SPDX; account for statically linked Rust crates