From a53812c12fab3bb01c15592d8a91b5072c9f5898 Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Tue, 4 Feb 2025 11:07:30 +0200 Subject: [PATCH] improve rpm spec and deb postinst scripts --- src/main/deploy/package/linux/postinst | 30 ++++++--------- src/main/deploy/package/linux/sparrow.spec | 45 ++++++++++++---------- 2 files changed, 36 insertions(+), 39 deletions(-) diff --git a/src/main/deploy/package/linux/postinst b/src/main/deploy/package/linux/postinst index 20e13ff9..991cbfa1 100755 --- a/src/main/deploy/package/linux/postinst +++ b/src/main/deploy/package/linux/postinst @@ -22,27 +22,19 @@ package_type=deb case "$1" in configure) - # Install desktop menu xdg-desktop-menu install /opt/sparrow/lib/sparrow-Sparrow.desktop - - # Install mime info xdg-mime install /opt/sparrow/lib/sparrow-Sparrow-MimeInfo.xml - - # Install the udev rules - install -m 644 /opt/sparrow/lib/runtime/conf/udev/*.rules /etc/udev/rules.d - - # Reload the udev rules - udevadm control --reload - - # Optionally trigger udev rules for currently connected devices - udevadm trigger - - # Make sure the plugdev group exists - groupadd -f plugdev - - # Make sure the current user is added to plugdev - usermod -aG plugdev `whoami` - + install -D -m 644 /opt/sparrow/lib/runtime/conf/udev/*.rules /etc/udev/rules.d + if ! getent group plugdev > /dev/null; then + groupadd plugdev + fi + if ! groups "${SUDO_USER:-$(whoami)}" | grep -q plugdev; then + usermod -aG plugdev "${SUDO_USER:-$(whoami)}" + fi + if [ -x /bin/udevadm ]; then + /bin/udevadm control --reload + /bin/udevadm trigger + fi ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/src/main/deploy/package/linux/sparrow.spec b/src/main/deploy/package/linux/sparrow.spec index f4be3d78..7d4a37bd 100755 --- a/src/main/deploy/package/linux/sparrow.spec +++ b/src/main/deploy/package/linux/sparrow.spec @@ -69,36 +69,41 @@ sed -i -e 's/.*/%dir "&"/' %{package_filelist} %if "x%{_rpmdir}/../../LICENSE" != "x" sed -i -e 's|"%{license_install_file}"||' -e '/^$/d' %{package_filelist} %endif +install -D -m 644 %{_sourcedir}/opt/sparrow/lib/runtime/conf/udev/*.rules %{buildroot}/etc/udev/rules.d +echo "/etc/udev/rules.d/20-hw1.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/51-coinkite.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/51-trezor.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/51-usb-keepkey.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/53-hid-bitbox02.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/54-hid-bitbox02.rules" >> %{package_filelist} +echo "/etc/udev/rules.d/55-usb-jade.rules" >> %{package_filelist} %files -f %{package_filelist} %if "x%{_rpmdir}/../../LICENSE" != "x" %license "%{license_install_file}" %endif +%config(noreplace) /etc/udev/rules.d/20-hw1.rules +%config(noreplace) /etc/udev/rules.d/51-coinkite.rules +%config(noreplace) /etc/udev/rules.d/51-trezor.rules +%config(noreplace) /etc/udev/rules.d/51-usb-keepkey.rules +%config(noreplace) /etc/udev/rules.d/53-hid-bitbox02.rules +%config(noreplace) /etc/udev/rules.d/54-hid-bitbox02.rules +%config(noreplace) /etc/udev/rules.d/55-usb-jade.rules %post package_type=rpm - -# Install desktop menu xdg-desktop-menu install /opt/sparrow/lib/sparrow-Sparrow.desktop - -# Install mime info xdg-mime install /opt/sparrow/lib/sparrow-Sparrow-MimeInfo.xml - -# Install udev rules -install -m 644 /opt/sparrow/lib/runtime/conf/udev/*.rules /etc/udev/rules.d - -# Reload udev rules -udevadm control --reload - -# Optionally trigger udev rules -udevadm trigger - -# Make sure the plugdev group exists -groupadd -f plugdev - -# Make sure the current user is added to plugdev -usermod -aG plugdev `whoami` - +if ! getent group plugdev > /dev/null; then + groupadd plugdev +fi +if ! groups "${SUDO_USER:-$(whoami)}" | grep -q plugdev; then + usermod -aG plugdev "${SUDO_USER:-$(whoami)}" +fi +if [ -x /bin/udevadm ]; then + /bin/udevadm control --reload + /bin/udevadm trigger +fi %pre package_type=rpm