diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c4e922b..8f295a8c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,6 +30,14 @@ jobs: mb2 -t SailfishOS-$RELEASE-armv7hl build ; sudo cp -r RPMS/*.rpm /share/output" + - name: Build aarch64 + run: docker run --rm --privileged -v $PWD:/share coderus/sailfishos-platform-sdk:$RELEASE /bin/bash -c " + mkdir -p build ; + cd build ; + cp -r /share/* . ; + mb2 -t SailfishOS-$RELEASE-aarch64 build ; + sudo cp -r RPMS/*.rpm /share/output" + - name: Build i486 run: docker run --rm --privileged -v $PWD:/share coderus/sailfishos-platform-sdk:$RELEASE /bin/bash -c " mkdir -p build ; @@ -37,7 +45,7 @@ jobs: cp -r /share/* . ; mb2 -t SailfishOS-$RELEASE-i486 build ; sudo cp -r RPMS/*.rpm /share/output" - + - name: Upload build result uses: actions/upload-artifact@v2 with: diff --git a/rpm/patchmanager.spec b/rpm/patchmanager.spec index 3cbef488..0eddc1f9 100755 --- a/rpm/patchmanager.spec +++ b/rpm/patchmanager.spec @@ -1,11 +1,13 @@ %define theme sailfish-default +# These macros should already be defined in the RPMbuild environment, see: rpm --showrc %{!?qtc_qmake5:%define qtc_qmake5 %qmake5} %{!?qtc_make:%define qtc_make make} +%{!?qmake5_install:%define qmake5_install make install INSTALL_ROOT=%{buildroot}} Name: patchmanager -Summary: Patchmanager allows you to manage Sailfish OS patches +Summary: Patchmanager allows for managing Sailfish OS patches Version: 3.0.1 Release: 1 Group: Qt/Qt @@ -30,8 +32,7 @@ BuildRequires: pkgconfig(rpm) BuildRequires: pkgconfig(popt) %description -patchmanager allows managing Sailfish OS patches -on your device easily. +%{summary} on your device easily. %prep %setup -q -n %{name}-%{version} @@ -55,8 +56,8 @@ ln -s ../dbus-org.SfietKonstantin.patchmanager.service %{buildroot}%{_unitdir}/m mkdir -p %{buildroot}%{_unitdir}/timers.target.wants/ ln -s ../checkForUpdates-org.SfietKonstantin.patchmanager.timer %{buildroot}%{_unitdir}/timers.target.wants/ -mkdir -p %{buildroot}/usr/lib/systemd/user/lipstick.service.wants/ -ln -s ../lipstick-patchmanager.service %{buildroot}/usr/lib/systemd/user/lipstick.service.wants/ +mkdir -p %{buildroot}/%{_userunitdir}/lipstick.service.wants/ +ln -s ../lipstick-patchmanager.service %{buildroot}/%{_userunitdir}/lipstick.service.wants/ mkdir -p %{buildroot}%{_datadir}/%{name}/patches @@ -64,42 +65,39 @@ mkdir -p %{buildroot}%{_datadir}/%{name}/patches export NO_PM_PRELOAD=1 case "$*" in 1) -echo Installing package +echo "Installing %{name}: pre section" ;; 2) -echo Upgrading package -// unapply patches if pm2 is installed +echo "Updating %{name}: pre section" +# Unapply all patches if Patchmanager 2.x is installed if [ ! -d /var/lib/patchmanager/ausmt/patches/ ] then exit 0 else - /usr/sbin/patchnamager --unapply-all || : + /usr/sbin/patchmanager --unapply-all || true fi -if [ "$(ls -A /var/lib/patchmanager/ausmt/patches/)" ] +if [ -n "$(ls -A /var/lib/patchmanager/ausmt/patches/)" ] then - echo "Unapply all patches before upgrade!" + echo "Unapply all patches before updating %{name}!" exit 1 fi ;; -*) echo case "$*" not handled in pre +*) echo "Case $* is not handled in pre section of %{name}!" esac %post export NO_PM_PRELOAD=1 case "$*" in 1) -echo Installing package +echo "Installing %{name}: post section" ;; 2) -echo Upgrading package +echo "Updating %{name}: post section" ;; -*) echo case "$*" not handled in post +*) echo "Case $* is not handled in post section of %{name}!" esac -if grep libpreloadpatchmanager /etc/ld.so.preload > /dev/null; then - echo "Preload already exists" -else - echo /usr/lib/libpreloadpatchmanager.so >> /etc/ld.so.preload -fi +sed -i "/libpreload%{name}/ d" /etc/ld.so.preload +echo "%{_libdir}/libpreload%{name}.so" >> /etc/ld.so.preload /sbin/ldconfig dbus-send --system --type=method_call \ --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig @@ -112,30 +110,30 @@ systemctl restart checkForUpdates-org.SfietKonstantin.patchmanager.timer export NO_PM_PRELOAD=1 case "$*" in 0) -echo Uninstalling package +echo "Uninstalling %{name}: preun section" systemctl stop dbus-org.SfietKonstantin.patchmanager.service ;; 1) -echo Upgrading package +echo "Updating %{name}: preun section" ;; -*) echo case "$*" not handled in preun +*) echo "Case $* is not handled in preun section of %{name}!" esac %postun export NO_PM_PRELOAD=1 case "$*" in 0) -echo Uninstalling package -sed -i "/libpreloadpatchmanager/ d" /etc/ld.so.preload -rm -rf /tmp/patchmanager || : -rm -f /tmp/patchmanager-socket || : +echo "Uninstalling %{name}: postun section" +sed -i "/libpreload%{name}/ d" /etc/ld.so.preload +/sbin/ldconfig +rm -rf /tmp/patchmanager || true +rm -f /tmp/patchmanager-socket || true ;; 1) -echo Upgrading package +echo "Updating %{name}: postun section" ;; -*) echo case "$*" not handled in postun +*) echo "Case $* is not handled in postun section of %{name}!" esac -/sbin/ldconfig dbus-send --system --type=method_call \ --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig systemctl daemon-reload diff --git a/src/preload/preload.pro b/src/preload/preload.pro index 8ef1bc92..157f7966 100644 --- a/src/preload/preload.pro +++ b/src/preload/preload.pro @@ -12,6 +12,6 @@ SOURCES += \ src/preloadpatchmanager.c TARGET = preloadpatchmanager -target.path = /usr/lib +target.path = $$LIBDIR INSTALLS = target