From b3b3294fd40b2eb2050403b6fc33dff904b03d9d Mon Sep 17 00:00:00 2001 From: nephros Date: Tue, 3 Dec 2024 12:01:33 +0100 Subject: [PATCH 1/4] Package icons as subpackages --- rpm/patchmanager.spec | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/rpm/patchmanager.spec b/rpm/patchmanager.spec index 00da1c77..b79d9dfd 100644 --- a/rpm/patchmanager.spec +++ b/rpm/patchmanager.spec @@ -39,6 +39,7 @@ Requires: grep Requires: sed Requires: sailfish-version >= 3.4.0 Requires: qml(Nemo.Configuration) +Requires: %{name}-icons BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5DBus) BuildRequires: pkgconfig(Qt5Qml) @@ -54,6 +55,19 @@ BuildRequires: qt5-qttools-linguist BuildRequires: pkgconfig(rpm) BuildRequires: pkgconfig(popt) +%package icons-silica +Summary: Icon files for %{name} +BuildArch: noarch +Requires: sailfish-version >= 4.6.0 +Provides: %{name}-icons +Conflicts: %{name}-icons-meegotouch + +%package icons-meegotouch +Summary: Icon files for %{name} +BuildArch: noarch +Requires: sailfish-version < 4.6.0 +Provides: %{name}-icons +Conflicts: %{name}-icons-silica %package testcases Summary: Provides test cases for Patchmanager @@ -62,6 +76,20 @@ BuildArch: noarch Requires: %{name} Requires: libsailfishapp-launcher +%description icons-silica +Provides icons for Sailfish OS 4.6 and later +%if 0%{?_chum} +Title: Icons for Patchmanager +Type: addon +%endif + +%description icons-meegotouch +Provides icons for Sailfish OS 4.5 and earlier +%if 0%{?_chum} +Title: Icons for Patchmanager +Type: addon +%endif + # This description section includes metadata for SailfishOS:Chum, see # https://github.com/sailfishos-chum/main/blob/main/Metadata.md # For the patchmanager-testcases, point directly to the GitHub bugtracker. @@ -288,15 +316,16 @@ exit 0 %{_datadir}/jolla-settings/pages/%{name} %{_datadir}/jolla-settings/entries/%{name}.json %{_datadir}/%{name}/icons/icon-m-patchmanager.png - -# On SailfishOS < 4.6: -# /usr/share/themes/sailfish-default/meegotouch/zX.Y/icons/*.png -# On SailfishOS >= 4.6: -# /usr/share/themes/sailfish-default/silica/zX.Y/icons/*.png -# /usr/share/themes/sailfish-default/silica/zX.Y/icons-monochrome/*.png -%{_datadir}/themes/sailfish-default/*/z*/icons*/*.png %{_datadir}/icons/hicolor/scalable/apps/*.svg +%files icons-silica +%{_datadir}/themes/sailfish-default/silica/z*/icons/*.png +%{_datadir}/themes/sailfish-default/silica/z*/icons-monochrome/*.png + +%files icons-meegotouch +%{_datadir}/themes/sailfish-default/meegotouch/z*/icons/*.png + + %changelog * Thu Sep 9 1999 SailfishOS Patches - 99.99.99 - See %{url}/releases From a16dfb05b971137a6ed4a4e23de86f1fbca3591d Mon Sep 17 00:00:00 2001 From: nephros Date: Tue, 3 Dec 2024 12:10:35 +0100 Subject: [PATCH 2/4] Copy generated icons around --- rpm/patchmanager.spec | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/rpm/patchmanager.spec b/rpm/patchmanager.spec index b79d9dfd..69e241f3 100644 --- a/rpm/patchmanager.spec +++ b/rpm/patchmanager.spec @@ -176,6 +176,27 @@ ln -s ../lipstick-patchmanager.service %{buildroot}/%{_userunitdir}/lipstick.ser mkdir -p %{buildroot}%{_datadir}/%{name}/patches +# copy icons around. +# See https://github.com/sailfishos-patches/patchmanager/pull/472#issuecomment-2514204204 +if [ -e %{buildroot}%{_datadir}/themes/sailfish-default/meegotouch/z1.0/icons ]; then + mkdir -p %{buildroot}%{_datadir}/themes/sailfish-default/silica + pushd %{buildroot}%{_datadir}/themes/sailfish-default/meegotouch + for d in z*; do + mkdir %{buildroot}%{_datadir}/themes/sailfish-default/silica/${d} + cp -r ${d}/icons %{buildroot}%{_datadir}/themes/sailfish-default/silica/${d}/icons + cp -r ${d}/icons %{buildroot}%{_datadir}/themes/sailfish-default/silica/${d}/icons-monochrome + done + popd +elif [ -e %{buildroot}%{_datadir}/themes/sailfish-default/silica/z1.0/icons ]; then + mkdir -p %{buildroot}%{_datadir}/themes/sailfish-default/meegotouch + pushd %{buildroot}%{_datadir}/themes/sailfish-default/silica + for d in z*; do + mkdir %{buildroot}%{_datadir}/themes/sailfish-default/meegotouch/${d} + cp -r ${d}/icons %{buildroot}%{_datadir}/themes/sailfish-default/meegotouch/${d}/icons + done + popd +fi +# end of icon shenanigans %pre export NO_PM_PRELOAD=1 From 922265ea5610f72f0857aeab210008aec706baf9 Mon Sep 17 00:00:00 2001 From: nephros Date: Tue, 3 Dec 2024 12:54:12 +0100 Subject: [PATCH 3/4] Add Obsoletes, in order to provide an upgrade path --- rpm/patchmanager.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/rpm/patchmanager.spec b/rpm/patchmanager.spec index 69e241f3..01b3b67c 100644 --- a/rpm/patchmanager.spec +++ b/rpm/patchmanager.spec @@ -61,6 +61,7 @@ BuildArch: noarch Requires: sailfish-version >= 4.6.0 Provides: %{name}-icons Conflicts: %{name}-icons-meegotouch +Obsoletes: %{name}-icons-meegotouch %package icons-meegotouch Summary: Icon files for %{name} From eb0a0478a67eed32cd717ceb46ecd450b84f18d3 Mon Sep 17 00:00:00 2001 From: nephros Date: Wed, 4 Dec 2024 09:42:15 +0100 Subject: [PATCH 4/4] Add dependency on main package ... so they get uninstalled properly (esp. when downgrading PM) --- rpm/patchmanager.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rpm/patchmanager.spec b/rpm/patchmanager.spec index 01b3b67c..35e7049c 100644 --- a/rpm/patchmanager.spec +++ b/rpm/patchmanager.spec @@ -59,6 +59,7 @@ BuildRequires: pkgconfig(popt) Summary: Icon files for %{name} BuildArch: noarch Requires: sailfish-version >= 4.6.0 +Requires: %{name} >= %{version} Provides: %{name}-icons Conflicts: %{name}-icons-meegotouch Obsoletes: %{name}-icons-meegotouch @@ -67,6 +68,7 @@ Obsoletes: %{name}-icons-meegotouch Summary: Icon files for %{name} BuildArch: noarch Requires: sailfish-version < 4.6.0 +Requires: %{name} >= %{version} Provides: %{name}-icons Conflicts: %{name}-icons-silica