seafile-server: make postinst script work with Image Generator 1905/head
authorGergely Kiss <mail.gery@gmail.com>
Sat, 31 Oct 2015 23:45:12 +0000 (00:45 +0100)
committerGergely Kiss <mail.gery@gmail.com>
Sat, 31 Oct 2015 23:45:12 +0000 (00:45 +0100)
Signed-off-by: Gergely Kiss <mail.gery@gmail.com>
net/seafile-server/Makefile

index f4dd30fd169fbb3fc32c67e11b0385c82b9d23fb..949345d8abbcf4a5bc6f4ec4c011af3c96345e9f 100644 (file)
@@ -31,7 +31,7 @@ define Package/seafile-server
     TITLE:=Seafile server
     MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
     URL:=http://seafile.com/
-    DEPENDS:=+shadow-useradd +libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub \
+    DEPENDS:=+libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub \
                +sqlite3-cli +python-mysql +jansson +libevent2 +libevent2-openssl +zlib +libzdb +libsqlite3 \
                +libmysqlclient +libpthread +libuuid \
                +bash +sudo +procps-ng +procps-ng-pkill $(ICONV_DEPENDS)
@@ -93,43 +93,50 @@ endef
 define Package/seafile-server/postinst
 #!/bin/sh
 
-if ! id -u seafile >/dev/null 2>&1; then
-    useradd seafile -d "/usr/share/seafile" -s /bin/sh; fi
+if ! group_exists seafile; then
+   group_add_next seafile; fi
 
-chown -R seafile:seafile /usr/share/seafile/
-chmod -R o-rwx /usr/share/seafile/
+SEAFILE_GID=$$(grep -s '^seafile:' "$${IPKG_INSTROOT}/etc/group" | cut -d: -f3)
 
-if [ ! -d "/usr/share/seafile/seafile-data" ]
+if ! user_exists seafile; then
+   user_add seafile "" "$${SEAFILE_GID}" seafile /usr/share/seafile /bin/sh; fi
+
+if [ -z "$${IPKG_INSTROOT}" ]
 then
-   echo "*** Installation completed, running configuration script..."
-   /etc/init.d/seafile setup
+   chown -R seafile:seafile /usr/share/seafile/
+   chmod -R o-rwx /usr/share/seafile/
 
-   if [ $$? -ne 0 ]
+   if [ ! -d /usr/share/seafile/seafile-data ]
    then
+      echo "*** Installation completed, running configuration script..."
+      /etc/init.d/seafile setup
+
+      if [ $$? -ne 0 ]
+      then
+         echo
+         echo "*** ERROR: Configuration failed. Please fix the issues if any and re-run the script using the command below:"
+         echo "*** \"/etc/init.d/seafile setup\""
+      fi
+
+      echo
+      echo "*** NOTE: you need to create an admin account before using Seafile."
+      echo "*** Please run \"/etc/init.d/seafile create_admin\" to do so."
+   else
+      echo "*** It seems you are upgrading from an older version."
+      echo "*** If so, please run the appropriate upgrade scripts before using the new version of Seafile."
+      echo "*** Upgrade scripts are located at \"/usr/share/seafile/seafile-server/upgrade\""
       echo
-      echo "*** ERROR: Configuration failed. Please fix the issues if any and re-run the script using the command below:"
-      echo "*** \"/etc/init.d/seafile setup\""
+      echo "*** For more information, please read http://manual.seafile.com/deploy/upgrade.html"
    fi
-
-   echo
-   echo "*** NOTE: you need to create an admin account before using Seafile."
-   echo "*** Please run \"/etc/init.d/seafile create_admin\" to do so."
 else
-   echo "*** WARNING: it seems you are upgrading from an older version."
-   echo "*** If so, please run the appropriate upgrade script before using the new version of Seafile."
-   echo "*** Upgrade scripts are located at \"/usr/share/seafile/seafile-server/upgrade\""
-   echo
-   echo "*** For more information, please read http://manual.seafile.com/deploy/upgrade.html"
-   exit
-fi
-
-/etc/init.d/seafile enable
-/etc/init.d/seafile restart
-endef
-
-define Package/seafile-server/prerm
+   cat > "$${IPKG_INSTROOT}/etc/uci-defaults/99_seafile-server" << EOF
 #!/bin/sh
-/etc/init.d/seafile stop
+
+chown -R seafile:seafile /usr/share/seafile/
+chmod -R o-rwx /usr/share/seafile/
+exit 0
+EOF
+fi
 endef
 
 $(eval $(call BuildPackage,seafile-server))