Add deb package (#496)

This commit is contained in:
nullpos 2016-05-04 06:44:24 +09:00 committed by Shinsuke Sugaya
parent 87ce91ca04
commit b84ceec183
2 changed files with 311 additions and 10 deletions

301
pom.xml
View file

@ -59,7 +59,7 @@
<utflute.version>0.6.0F</utflute.version>
<!-- Crawler -->
<crawler.version>1.0.9-SNAPSHOT</crawler.version>
<crawler.version>1.0.8-SNAPSHOT</crawler.version>
<!-- Suggest -->
<suggest.version>2.1.4-SNAPSHOT</suggest.version>
@ -71,7 +71,7 @@
<!-- Tomcat -->
<tomcat.boot.version>0.4.4-B-SNAPSHOT</tomcat.boot.version>
<!-- RPM build -->
<!-- DEB & RPM build -->
<packaging.fess.home.dir>/usr/share/fess</packaging.fess.home.dir>
<packaging.fess.app.dir>${packaging.fess.home.dir}/app</packaging.fess.app.dir>
<packaging.fess.bin.dir>${packaging.fess.home.dir}/bin</packaging.fess.bin.dir>
@ -266,6 +266,50 @@
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources-deb</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated-packaging/deb/</outputDirectory>
<filters>
<filter>${project.basedir}/src/packaging/common/packaging.properties</filter>
<filter>${project.basedir}/src/packaging/deb/packaging.properties</filter>
</filters>
<resources>
<resource>
<directory>src/packaging/common/</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>packaging.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/packaging/deb/</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>packaging.properties</exclude>
</excludes>
</resource>
<resource>
<directory>${project.basedir}</directory>
<filtering>true</filtering>
<includes>
<include>bin/fess</include>
<include>bin/fess.in.sh</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources-rpm</id>
<phase>prepare-package</phase>
@ -338,6 +382,259 @@
</executions>
</plugin>
<!-- deb -->
<plugin>
<artifactId>jdeb</artifactId>
<groupId>org.vafer</groupId>
<version>1.4</version>
<configuration>
<deb>${project.build.directory}/releases/${project.artifactId}-${project.version}.deb</deb>
<controlDir>${project.build.directory}/generated-packaging/deb/scripts</controlDir>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jdeb</goal>
</goals>
<configuration>
<!--
<signPackage>${deb.sign}</signPackage>
<keyring>${gpg.keyring}</keyring>
<key>${gpg.key}</key>
<passphrase>${gpg.passphrase}</passphrase>
<signMethod>${deb.sign.method}</signMethod>
-->
<dataSet>
<!-- Add app directory -->
<data>
<type>directory</type>
<src>${project.build.directory}/fess</src>
<excludes>**/fess_config.properties,**/fess_env*.properties</excludes>
<mapper>
<type>perm</type>
<prefix>${packaging.fess.app.dir}</prefix>
<filemode>755</filemode>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add libs -->
<data>
<type>directory</type>
<src>${project.build.directory}/tomcat-lib</src>
<mapper>
<type>perm</type>
<prefix>${packaging.fess.lib.dir}/classes</prefix>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<data>
<type>file</type>
<src>${project.build.directory}/fess/WEB-INF/classes/org/codelibs/fess/FessBoot.class</src>
<dst>${packaging.fess.lib.dir}/classes/org/codelibs/fess/FessBoot.class</dst>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add configuration files -->
<data>
<type>files</type>
<paths>
<path>${project.basedir}/src/main/assemblies/files/tomcat_config.properties</path>
<path>${project.basedir}/src/main/assemblies/files/logging.properties</path>
</paths>
<dst>${packaging.fess.conf.dir}</dst>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<data>
<type>files</type>
<paths>
<path>${project.build.directory}/fess/WEB-INF/classes/fess_config.properties</path>
<path>${project.build.directory}/fess/WEB-INF/classes/fess_env_crawler.properties</path>
<path>${project.build.directory}/fess/WEB-INF/classes/fess_env_suggest.properties</path>
<path>${project.build.directory}/fess/WEB-INF/classes/fess_env_web.properties</path>
</paths>
<dst>${packaging.fess.conf.dir}</dst>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add extensions -->
<data>
<type>directory</type>
<src>${project.basedir}/src/main/assemblies/extension</src>
<mapper>
<type>perm</type>
<prefix>${packaging.fess.extension.dir}</prefix>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add var directory -->
<data>
<type>template</type>
<paths>
<path>${packaging.fess.var.dir}</path>
</paths>
<mapper>
<type>perm</type>
<dirmode>755</dirmode>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add bin directory -->
<data>
<type>files</type>
<paths>
<path>${project.basedir}/src/main/assemblies/files/fess</path>
<path>${project.basedir}/src/main/assemblies/files/fess.in.sh</path>
</paths>
<dst>${packaging.fess.bin.dir}</dst>
<mapper>
<type>perm</type>
<filemode>755</filemode>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add log and temp directories -->
<data>
<type>template</type>
<paths>
<path>${packaging.fess.log.dir}</path>
<path>${packaging.fess.temp.dir}</path>
</paths>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add dictionary directory -->
<data>
<type>template</type>
<paths>
<path>${packaging.fess.dictionary.dir}</path>
</paths>
<mapper>
<type>perm</type>
<user>elasticsearch</user>
<group>elasticsearch</group>
</mapper>
</data>
<!-- Add elasicsearch plugins directory-->
<data>
<type>directory</type>
<src>${project.basedir}/plugins</src>
<mapper>
<type>perm</type>
<prefix>${packaging.fess.home.dir}/es/plugins</prefix>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add environment vars file -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/env/fess</src>
<dst>/etc/default/fess</dst>
<mapper>
<type>perm</type>
<user>root</user>
<group>root</group>
</mapper>
</data>
<!-- Add init.d files -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/init.d/fess</src>
<dst>/etc/init.d/fess</dst>
<mapper>
<type>perm</type>
<filemode>755</filemode>
<user>root</user>
<group>root</group>
</mapper>
</data>
<!-- Adds systemd file -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/systemd/fess.service</src>
<dst>${packaging.fess.systemd.dir}/fess.service</dst>
</data>
<!-- Adds systemd/sysctl.d configuration file -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/systemd/sysctl/fess.conf</src>
<dst>${packaging.fess.systemd.sysctl.dir}/fess.conf</dst>
</data>
<!-- Adds systemd/tmpfiles.d configuration file -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/systemd/fess.conf</src>
<dst>${packaging.fess.tmpfilesd.dir}/fess.conf</dst>
</data>
<!-- Add lintian files -->
<data>
<type>directory</type>
<src>${project.build.directory}/generated-packaging/deb/lintian</src>
<excludes>.DS_Store</excludes>
<mapper>
<type>perm</type>
<prefix>/usr/share/lintian/overrides</prefix>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add readme files -->
<data>
<type>files</type>
<paths>
<path>${project.basedir}/LICENSE</path>
<path>${project.basedir}/README.md</path>
</paths>
<dst>${packaging.fess.home.dir}</dst>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
<!-- Add license files -->
<data>
<type>file</type>
<src>${project.build.directory}/generated-packaging/deb/copyright</src>
<dst>/usr/share/doc/fess/copyright</dst>
</data>
<!-- Adds and sets permission on default directories -->
<data>
<type>template</type>
<paths>
<path>${packaging.fess.pid.dir}</path>
</paths>
<mapper>
<type>perm</type>
<user>${packaging.fess.user}</user>
<group>${packaging.fess.group}</group>
</mapper>
</data>
</dataSet>
</configuration>
</execution>
</executions>
</plugin>
<!-- rpm -->
<plugin>
<groupId>org.codehaus.mojo</groupId>

View file

@ -39,8 +39,8 @@ fi
# The following variables can be overwritten in $DEFAULT
# Run Fess as this user ID and group ID
FESS_USER=fess
FESS_GROUP=fess
FESS_USER=${packaging.fess.user}
FESS_GROUP=${packaging.fess.group}
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-8-oracle/ /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/jdk-7-oracle-x64 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/j2sdk1.7-oracle/ /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-amd64/ /usr/lib/jvm/java-7-openjdk-armhf /usr/lib/jvm/java-7-openjdk-i386/ /usr/lib/jvm/default-java"
@ -54,7 +54,7 @@ done
export JAVA_HOME
# Directory where the Fess binary distribution resides
FESS_HOME=/usr/share/$NAME
FESS_HOME=${packaging.fess.home.dir}
# Heap size defaults to 256m min, 1g max
# Set FESS_HEAP_SIZE to 50% of available RAM, but no more than 31g
@ -76,10 +76,13 @@ MAX_OPEN_FILES=65535
#MAX_LOCKED_MEMORY=
# Fess log directory
#LOG_DIR=/var/log/$NAME
LOG_DIR=${packaging.fess.log.dir}
# Fess data directory
#DATA_DIR=/var/lib/$NAME
DATA_DIR=${packaging.fess.var.dir}
# Fess configuration directory
CONF_DIR=${packaging.fess.conf.dir}
# Maximum number of VMA (Virtual Memory Areas) a process can own
MAX_MAP_COUNT=262144
@ -88,7 +91,7 @@ MAX_MAP_COUNT=262144
#FESS_GC_LOG_FILE=/var/log/fess/gc.log
# Fess PID file directory
PID_DIR="${packaging.fess.pid.dir}"
PID_DIR=${packaging.fess.pid.dir}
# End of variables that can be overwritten in $DEFAULT
@ -100,7 +103,7 @@ fi
# Define other required variables
PID_FILE="$PID_DIR/$NAME.pid"
DAEMON=$FESS_HOME/bin/fess
DAEMON_OPTS="-d -p $PID_FILE --default.config=$CONF_FILE --default.path.home=$FESS_HOME --default.path.logs=$LOG_DIR --default.path.data=$DATA_DIR"
DAEMON_OPTS="-d -p $PID_FILE --default.path.conf=$CONF_DIR --default.path.home=$FESS_HOME --default.path.logs=$LOG_DIR --default.path.data=$DATA_DIR"
export FESS_HEAP_SIZE
export FESS_HEAP_NEWSIZE
@ -165,7 +168,7 @@ case "$1" in
fi
# Start Daemon
start-stop-daemon --start -b --user "$FESS_USER" -c "$FESS_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
start-stop-daemon -d $FESS_HOME --start -b --user "$FESS_USER" -c "$FESS_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
return=$?
if [ $return -eq 0 ]
then
@ -222,3 +225,4 @@ case "$1" in
esac
exit 0