From 82029ce39dbc5692116659598b3428f59e1d0fa0 Mon Sep 17 00:00:00 2001 From: jcorporation Date: Thu, 20 Sep 2018 21:13:04 +0100 Subject: [PATCH] Fix: dont't remove user/group on uninstall Fix: moved pics directory to /var/lib/mympd --- CMakeLists.txt | 3 +-- contrib/archlinux.install | 20 +++++++------------- contrib/myMPD.spec | 33 ++++++++++++++------------------- debian/postinst | 9 ++++++--- debian/postrm | 12 ++---------- debian/rules | 1 + 6 files changed, 31 insertions(+), 47 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 664d075..0a5bff0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,5 +54,4 @@ install(FILES dist/htdocs/js/mympd.min.js DESTINATION share/${PROJECT_NAME}/htdo install(FILES dist/htdocs/css/bootstrap.min.css DESTINATION share/${PROJECT_NAME}/htdocs/css/) install(FILES dist/htdocs/css/mympd.min.css DESTINATION share/${PROJECT_NAME}/htdocs/css/) install(DIRECTORY htdocs/assets DESTINATION share/${PROJECT_NAME}/htdocs) -install(DIRECTORY DESTINATION share/${PROJECT_NAME}/htdocs/pics) -install(DIRECTORY DESTINATION ../var/lib/${PROJECT_NAME}/) +install(DIRECTORY DESTINATION ../var/lib/${PROJECT_NAME}/pics) diff --git a/contrib/archlinux.install b/contrib/archlinux.install index 6e10041..35963b7 100644 --- a/contrib/archlinux.install +++ b/contrib/archlinux.install @@ -27,6 +27,9 @@ post_upgrade() { echo "/etc/mpd.conf not found, you must link your musicdir manually to /usr/share/mympd/htdocs/library" fi + echo "Linking pics directory" + [ -e /usr/share/mympd/htdocs/pics ] || ln -s /var/lib/mympd/pics /usr/share/mympd/htdocs/ + # install systemd service echo "INFO: Installing systemd service" if [ -d /etc/systemd/system ] @@ -77,18 +80,9 @@ post_remove() { echo -e "\e[93mINFO\e[0m: /etc/mympd/mympd.conf backed up to /etc/mympd/mympd.conf.pacsave" fi - # unlink music dir - echo "unlinking musicdir to library" - [ -e /usr/share/mympd/htdocs/library ] && rm -v /usr/share/mympd/htdocs/library - - # remove mympd user and group - getent passwd mympd > /dev/null - echo -e "\e[93mWARNING\e[0m: Removing \e[1mmympd \e[0muser and group!" - [ "$?" != "2" ] && userdel -r mympd - getent group mympd > /dev/null - [ "$?" != "2" ] && groupdel mympd - # remove leftover directories - rmdir -v /usr/share/{mympd/htdocs/,mympd/} + rm -v -f /usr/share/mympd/htdocs/pics + rm -v -f /usr/share/mympd/htdocs/library + rmdir -v /usr/share/mympd/htdocs/ + rmdir -v /usr/share/mympd/ } - diff --git a/contrib/myMPD.spec b/contrib/myMPD.spec index bd899a0..0e67dbd 100644 --- a/contrib/myMPD.spec +++ b/contrib/myMPD.spec @@ -50,8 +50,7 @@ then chown -R mympd.mympd /var/lib/mympd fi -SYSTEMCTL=$(which systemctl > /dev/null 2>&1) -if [ "$?" == "0" ] +if [ -d /etc/systemd ] then [ -d /usr/lib/systemd/system ] || sudo mkdir -p /usr/lib/systemd/system cp /usr/share/mympd/mympd.service /usr/lib/systemd/system/ @@ -65,6 +64,8 @@ then [ "$LIBRARY" != "" ] && [ ! -e /usr/share/mympd/htdocs/library ] && ln -s "$LIBRARY" /usr/share/mympd/htdocs/library fi +[ -e /usr/share/mympd/htdocs/pics ] || ln -s /var/lib/mympd/pics /usr/share/mympd/htdocs/ + if [ ! -f /etc/mympd/mympd.conf ] then mv /etc/mympd/mympd.conf.dist /etc/mympd/mympd.conf @@ -75,28 +76,22 @@ fi /usr/share/mympd/crcert.sh %postun -if [ -f /usr/lib/systemd/system/mympd.service ] +if [ "$1" = "0" ] then - if `systemctl is-active --quiet mympd` + if [ -f /usr/lib/systemd/system/mympd.service ] then - echo "stopping mympd.service" && systemctl stop mympd + if `systemctl is-active --quiet mympd` + then + echo "stopping mympd.service" && systemctl stop mympd + fi + echo "disabling mympd.service" && systemctl disable mympd + rm -v -f /usr/lib/systemd/system/mympd.service + systemctl daemon-reload fi - echo "disabling mympd.service" && systemctl disable mympd - rm -v -f /usr/lib/systemd/system/mympd.service - systemctl daemon-reload + rm -v -f /usr/share/mympd/htdocs/pics + rm -v -f /usr/share/mympd/htdocs/library fi -rm -v -fr /var/lib/mympd -[ -e /usr/share/mympd/htdocs/library ] && rm -v /usr/share/mympd/htdocs/library -rmdir -v /usr/share/{mympd/htdocs/,mympd/} - -getent passwd mympd > /dev/null -echo "Removing mympd user and group" -[ "$?" != "2" ] && userdel -r mympd -getent group mympd > /dev/null -[ "$?" != "2" ] && groupdel mympd - - %files %defattr(-,root,root,-) %doc README.md LICENSE diff --git a/debian/postinst b/debian/postinst index 199efbc..ca6f8d6 100755 --- a/debian/postinst +++ b/debian/postinst @@ -6,7 +6,7 @@ getent group mympd > /dev/null getent passwd mympd > /dev/null [ "$?" = "2" ] && useradd -r mympd -g mympd -d /var/lib/mympd -s /usr/sbin/nologin -if ! [ $(stat -c '%U:%G' /var/lib/mympd/) == 'mympd:mympd' ] +if ! [ $(stat -c '%U:%G' /var/lib/mympd/) = 'mympd:mympd' ] then echo "Fixing ownership of /var/lib/mympd" chown -R mympd.mympd /var/lib/mympd @@ -21,10 +21,13 @@ else echo "/etc/mpd.conf not found, you must link your music_directory manually to /usr/share/mympd/htdocs/library" fi -if [ -d /usr/lib/systemd/ ] +echo "Linking pics directory" +[ -e /usr/share/mympd/htdocs/pics ] || ln -s /var/lib/mympd/pics /usr/share/mympd/htdocs/ + +if [ -d /etc/systemd ] then echo "Installing systemd service" - [ -d /usr/lib/systemd/system ] || mkdir /usr/lib/systemd/system + [ -d /usr/lib/systemd/system ] || mkdir -p /usr/lib/systemd/system if [ contrib/mympd.service -nt /usr/lib/systemd/system/mympd.service ] then cp contrib/mympd.service /usr/lib/systemd/system/ diff --git a/debian/postrm b/debian/postrm index d93626e..9ddda89 100755 --- a/debian/postrm +++ b/debian/postrm @@ -9,13 +9,5 @@ then systemctl daemon-reload fi -rm -v -fr /var/lib/mympd - -[ -e /usr/share/mympd/htdocs/library ] && rm -v /usr/share/mympd/htdocs/library -rmdir -v /usr/share/{mympd/htdocs/,mympd/} - -getent passwd mympd > /dev/null -echo "Removing mympd user and group" -[ "$?" != "2" ] && userdel -r mympd -getent group mympd > /dev/null -[ "$?" != "2" ] && groupdel mympd +rm -v -f /usr/share/mympd/htdocs/pics +rm -v -f /usr/share/mympd/htdocs/library diff --git a/debian/rules b/debian/rules index 132d6ee..20e2c14 100755 --- a/debian/rules +++ b/debian/rules @@ -16,6 +16,7 @@ binary-arch: cd $(BUILDDIR); cmake -P cmake_install.cmake mkdir debian/tmp/DEBIAN cp debian/postinst debian/tmp/DEBIAN + cp debian/postrm debian/tmp/DEBIAN dpkg-gencontrol -pmympd dpkg --build debian/tmp ..