diff --git a/dists/jetty-deb/pom.xml b/dists/jetty-deb/pom.xml index 0c86a28afc2..3ebd6de286d 100644 --- a/dists/jetty-deb/pom.xml +++ b/dists/jetty-deb/pom.xml @@ -35,33 +35,57 @@ org.eclipse.jetty:jetty-distribution:zip - /opt/jetty + /usr/share/jetty9 /jetty-distribution-${project.version}(.*) $1 - jetty-distribution-*/contexts/javadoc.xml jetty-distribution-*/javadoc jetty-distribution-*/javadoc/** - + jetty-distribution-*/logs/** + jetty-distribution-*/bin/** + jetty-distribution-*/webapps/** + jetty-distribution-*/*.html + jetty-distribution-*/*.txt + + + + org.eclipse.jetty:jetty-distribution:zip + /usr/share/doc/jetty9 + /jetty-distribution-${project.version}(.*) + $1 + + jetty-distribution-*/*.html + jetty-distribution-*/*.txt + jetty-distribution-*/** + + + + org.eclipse.jetty:jetty-distribution:zip + /etc/jetty9 + /jetty-distribution-${project.version}(.*) + $1 + + jetty-distribution-*/etc/** + jetty-distribution-*/** + - + diff --git a/dists/jetty-deb/src/main/unix/scripts/postinst b/dists/jetty-deb/src/main/unix/scripts/postinst index cac1ce0985c..f6d78139b4e 100644 --- a/dists/jetty-deb/src/main/unix/scripts/postinst +++ b/dists/jetty-deb/src/main/unix/scripts/postinst @@ -1,6 +1,20 @@ #!/bin/bash -cp /opt/jetty/bin/jetty.sh /etc/init.d/jetty +LOG_DIR=/var/lib/jetty9/logs +WEBAPP_DIR=/var/lib/jetty9/webapps +# copy the jetty start script into place +cp /usr/share/jetty9/bin/jetty.sh /etc/init.d/jetty + +# make it generally executable chmod 755 /etc/init.d/jetty -chmod 755 /opt/jetty/bin/*.sh + +# ensure we have a logging directory +if [ ! -d "$LOG_DIR" ]; then + mkdir $LOG_DIR +fi + +# ensure we have a webapps directory +if [ ! -d "$WEBAPP_DIR" ]; then + mkdir $WEBAPP_DIR +fi diff --git a/dists/jetty-deb/src/main/unix/scripts/postrm b/dists/jetty-deb/src/main/unix/scripts/postrm index f080dc8b19c..1f7f3e344b4 100644 --- a/dists/jetty-deb/src/main/unix/scripts/postrm +++ b/dists/jetty-deb/src/main/unix/scripts/postrm @@ -1,3 +1,48 @@ #!/bin/bash -rm -f /etc/init.d/jetty \ No newline at end of file +#rm -f /etc/init.d/jetty + + case "$1" in + purge) + [...] + # find first and last SYSTEM_UID numbers + for LINE in `grep SYSTEM_UID /etc/adduser.conf | grep -v "^#"`; do + case $LINE in + FIRST_SYSTEM_UID*) + FIST_SYSTEM_UID=`echo $LINE | cut -f2 -d '='` + ;; + LAST_SYSTEM_UID*) + LAST_SYSTEM_UID=`echo $LINE | cut -f2 -d '='` + ;; + *) + ;; + esac + done + # Remove system account if necessary + CREATEDUSER="jetty" + if [ -n "$FIST_SYSTEM_UID" ] && [ -n "$LAST_SYSTEM_UID" ]; then + if USERID=`getent passwd $CREATEDUSER | cut -f 3 -d ':'`; then + if [ -n "$USERID" ]; then + if [ "$FIST_SYSTEM_UID" -le "$USERID" ] && \ + [ "$USERID" -le "$LAST_SYSTEM_UID" ]; then + echo -n "Removing $CREATEDUSER system user.." + deluser --quiet $CREATEDUSER || true + echo "..done" + fi + fi + fi + fi + # Remove system group if necessary + CREATEDGROUP="jetty" + FIRST_USER_GID=`grep ^USERS_GID /etc/adduser.conf | cut -f2 -d '='` + if [ -n "$FIST_USER_GID" ] then + if GROUPGID=`getent group $CREATEDGROUP | cut -f 3 -d ':'`; then + if [ -n "$GROUPGID" ]; then + if [ "$FIST_USER_GID" -gt "$GROUPGID" ]; then + echo -n "Removing $CREATEDGROUP group.." + delgroup --only-if-empty $CREATEDGROUP || true + echo "..done" + fi + fi + fi + fi \ No newline at end of file diff --git a/dists/jetty-deb/src/main/unix/scripts/preinst b/dists/jetty-deb/src/main/unix/scripts/preinst new file mode 100644 index 00000000000..dccb06608ab --- /dev/null +++ b/dists/jetty-deb/src/main/unix/scripts/preinst @@ -0,0 +1,60 @@ +#!/bin/bash + + case "$1" in + install|upgrade) + + # If the package has default file it could be sourced, so that + # the local admin can overwrite the defaults + + [ -f "/etc/default/packagename" ] && . /etc/default/packagename + + # Sane defaults: + + [ -z "$SERVER_HOME" ] && SERVER_HOME=/usr/share/jetty9 + [ -z "$SERVER_USER" ] && SERVER_USER=jetty + [ -z "$SERVER_NAME" ] && SERVER_NAME="Jetty-9 Http and Servlet Engine" + [ -z "$SERVER_GROUP" ] && SERVER_GROUP=jetty + + # Groups that the user will be added to, if undefined, then none. + ADDGROUP="" + + # create user to avoid running server as root + # 1. create group if not existing + if ! getent group | grep -q "^$SERVER_GROUP:" ; then + echo -n "Adding group $SERVER_GROUP.." + addgroup --quiet --system $SERVER_GROUP 2>/dev/null ||true + echo "..done" + fi + # 2. create homedir if not existing + test -d $SERVER_HOME || mkdir $SERVER_HOME + # 3. create user if not existing + if ! getent passwd | grep -q "^$SERVER_USER:"; then + echo -n "Adding system user $SERVER_USER.." + adduser --quiet \ + --system \ + --ingroup $SERVER_GROUP \ + --no-create-home \ + --disabled-password \ + $SERVER_USER 2>/dev/null || true + echo "..done" + fi + # 4. adjust passwd entry + usermod -c "$SERVER_NAME" \ + -d $SERVER_HOME \ + -g $SERVER_GROUP \ + $SERVER_USER + # 5. adjust file and directory permissions + if ! dpkg-statoverride --list $SERVER_HOME >/dev/null + then + chown -R $SERVER_USER:$SERVER_GROUP $SERVER_HOME + chmod u=rwx,g=rxs,o= $SERVER_HOME + fi + # 6. Add the user to the ADDGROUP group + if test -n $ADDGROUP + then + if ! groups $SERVER_USER | cut -d: -f2 | \ + grep -qw $ADDGROUP; then + adduser $SERVER_USER $ADDGROUP + fi + fi + ;;