diff options
author | Jesse McConnell | 2012-11-16 22:08:40 +0000 |
---|---|---|
committer | Jesse McConnell | 2012-11-16 22:08:45 +0000 |
commit | 5e61d136d784bf228f73c9016d721f9ef18bb9df (patch) | |
tree | 639d307c572bcef3096fc8f1cb597c43130e2b71 /dists | |
parent | b76669434feb6a2d6e42d489ce2703c13d2c4a7d (diff) | |
download | org.eclipse.jetty.project-5e61d136d784bf228f73c9016d721f9ef18bb9df.tar.gz org.eclipse.jetty.project-5e61d136d784bf228f73c9016d721f9ef18bb9df.tar.xz org.eclipse.jetty.project-5e61d136d784bf228f73c9016d721f9ef18bb9df.zip |
make user:group on install, adjust the packaging some
Diffstat (limited to 'dists')
-rw-r--r-- | dists/jetty-deb/pom.xml | 44 | ||||
-rw-r--r-- | dists/jetty-deb/src/main/unix/scripts/postinst | 18 | ||||
-rw-r--r-- | dists/jetty-deb/src/main/unix/scripts/postrm | 47 | ||||
-rw-r--r-- | dists/jetty-deb/src/main/unix/scripts/preinst | 60 |
4 files changed, 156 insertions, 13 deletions
diff --git a/dists/jetty-deb/pom.xml b/dists/jetty-deb/pom.xml index 0c86a28afc..3ebd6de286 100644 --- a/dists/jetty-deb/pom.xml +++ b/dists/jetty-deb/pom.xml @@ -35,33 +35,57 @@ <assembly> <extractArtifact> <artifact>org.eclipse.jetty:jetty-distribution:zip</artifact> - <to>/opt/jetty</to> + <to>/usr/share/jetty9</to> <pattern>/jetty-distribution-${project.version}(.*)</pattern> <replacement>$1</replacement> <excludes> - <include>jetty-distribution-*/contexts/javadoc.xml</include> <exclude>jetty-distribution-*/javadoc</exclude> <exclude>jetty-distribution-*/javadoc/**</exclude> - </excludes> + <exclude>jetty-distribution-*/logs/**</exclude> + <exclude>jetty-distribution-*/bin/**</exclude> + <exclude>jetty-distribution-*/webapps/**</exclude> + <exclude>jetty-distribution-*/*.html</exclude> + <exclude>jetty-distribution-*/*.txt</exclude> + </excludes> + </extractArtifact> + <extractArtifact> + <artifact>org.eclipse.jetty:jetty-distribution:zip</artifact> + <to>/usr/share/doc/jetty9</to> + <pattern>/jetty-distribution-${project.version}(.*)</pattern> + <replacement>$1</replacement> + <excludes> + <include>jetty-distribution-*/*.html</include> + <include>jetty-distribution-*/*.txt</include> + <exclude>jetty-distribution-*/**</exclude> + </excludes> + </extractArtifact> + <extractArtifact> + <artifact>org.eclipse.jetty:jetty-distribution:zip</artifact> + <to>/etc/jetty9</to> + <pattern>/jetty-distribution-${project.version}(.*)</pattern> + <replacement>$1</replacement> + <excludes> + <include>jetty-distribution-*/etc/**</include> + <exclude>jetty-distribution-*/**</exclude> + </excludes> </extractArtifact> </assembly> </package> - <!--package> - <id>jetty-javadoc</id> - <classifier>javadoc</classifier> + <package> + <id>jetty-test-webapp</id> + <classifier>test-webapp</classifier> <assembly> <extractArtifact> <artifact>org.eclipse.jetty:jetty-distribution:zip</artifact> - <to>/opt/jetty</to> + <to>/var/lib/jetty9/webapps</to> <pattern>/jetty-distribution-${project.version}(.*)</pattern> <replacement>$1</replacement> <includes> - <include>jetty-distribution-*/contexts/javadoc.xml</include> - <include>jetty-distribution-*/javadoc/**</include> + <include>jetty-distribution-*/webapps/**</include> </includes> </extractArtifact> </assembly> - </package--> + </package> </packages> </configuration> </plugin> diff --git a/dists/jetty-deb/src/main/unix/scripts/postinst b/dists/jetty-deb/src/main/unix/scripts/postinst index cac1ce0985..f6d78139b4 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 f080dc8b19..1f7f3e344b 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 0000000000..dccb06608a --- /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 + ;; |