First commit

This commit is contained in:
Sindre Mehus
2016-05-01 17:57:16 +02:00
commit a40ad1f7ef
1340 changed files with 107457 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.sourceforge.subsonic</groupId>
<artifactId>subsonic-installer-debian</artifactId>
<packaging>pom</packaging>
<name>Subsonic Installer for Debian</name>
<parent>
<groupId>net.sourceforge.subsonic</groupId>
<artifactId>subsonic</artifactId>
<version>5.3</version>
</parent>
<profiles>
<profile>
<id>debian</id>
<activation>
<property>
<name>debian</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>dpkg</id>
<phase>compile</phase>
<configuration>
<target>
<echo>Creating Debian package...</echo>
<copy todir="${project.build.directory}/deb">
<fileset dir="${basedir}/src"/>
<filterset>
<filter token="VERSION" value="${project.version}"/>
</filterset>
</copy>
<copy file="../subsonic-booter/src/main/script/subsonic.sh" todir="${project.build.directory}/deb/usr/share/subsonic"/>
<copy file="../subsonic-booter/target/subsonic-booter-jar-with-dependencies.jar" todir="${project.build.directory}/deb/usr/share/subsonic"/>
<copy file="../subsonic-main/target/subsonic.war" todir="${project.build.directory}/deb/usr/share/subsonic"/>
<copy file="../subsonic-transcode/linux/ffmpeg" todir="${project.build.directory}/deb/var/subsonic/transcode"/>
<copy file="../subsonic-transcode/linux/lame" todir="${project.build.directory}/deb/var/subsonic/transcode"/>
<exec executable="chmod">
<arg value="oug+x"/>
<arg value="${project.build.directory}/deb/DEBIAN/preinst"/>
<arg value="${project.build.directory}/deb/DEBIAN/postinst"/>
<arg value="${project.build.directory}/deb/DEBIAN/prerm"/>
<arg value="${project.build.directory}/deb/DEBIAN/postrm"/>
<arg value="${project.build.directory}/deb/usr/share/subsonic/subsonic.sh"/>
<arg value="${project.build.directory}/deb/etc/init.d/subsonic"/>
<arg value="${project.build.directory}/deb/var/subsonic/transcode/ffmpeg"/>
<arg value="${project.build.directory}/deb/var/subsonic/transcode/lame"/>
</exec>
<exec executable="sleep">
<arg value="2"/>
</exec>
<exec executable="fakeroot">
<arg value="dpkg"/>
<arg value="--build"/>
<arg value="${project.build.directory}/deb"/>
<arg value="${project.build.directory}/subsonic-${project.version}.deb"/>
</exec>
<exec executable="lintian">
<arg value="${project.build.directory}/subsonic-${project.version}.deb"/>
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
@@ -0,0 +1 @@
/etc/default/subsonic
@@ -0,0 +1,18 @@
Package: subsonic
Version: @VERSION@
Section: Multimedia
Priority: optional
Recommends: ffmpeg
Architecture: all
Maintainer: Sindre Mehus <sindre@activeobjects.no>
Description: A web-based music streamer, jukebox and Podcast receiver
Subsonic is a web-based music streamer, jukebox and Podcast receiver,
providing access to your music collection wherever you are. Use it
to share your music with friends, or to listen to your music while away
from home.
.
Apps for Android, iPhone and Windows Phone are also available.
.
Java 1.6 or higher is required to run Subsonic.
.
Subsonic can be found at http://subsonic.org
@@ -0,0 +1,16 @@
#! /bin/sh
set -e
ln -sf /usr/share/subsonic/subsonic.sh /usr/bin/subsonic
chmod 750 /var/subsonic
# Clear jetty cache.
rm -rf /var/subsonic/jetty
# Configure Subsonic service.
update-rc.d subsonic defaults 99
# Start Subsonic service.
invoke-rc.d subsonic start
@@ -0,0 +1,9 @@
#! /bin/sh
set -e
# Remove symlink.
rm -f /usr/bin/subsonic
# Remove startup scripts.
update-rc.d -f subsonic remove
@@ -0,0 +1,15 @@
#! /bin/sh
set -e
# Stop Subsonic service.
if [ -e /etc/init.d/subsonic ]; then
invoke-rc.d subsonic stop
fi
# Backup database.
if [ -e /var/subsonic/db ]; then
rm -rf /var/subsonic/db.backup
cp -R /var/subsonic/db /var/subsonic/db.backup
fi
@@ -0,0 +1,8 @@
#! /bin/sh
set -e
# Stop Subsonic service.
if [ -e /etc/init.d/subsonic ]; then
invoke-rc.d subsonic stop
fi
@@ -0,0 +1,25 @@
#
# This is the configuration file for the Subsonic service
# (/etc/init.d/subsonic)
#
# To change the startup parameters of Subsonic, modify
# the SUBSONIC_ARGS variable below.
#
# Type "/usr/share/subsonic/subsonic.sh --help" on the command line to read an
# explanation of the different options.
#
# For example, to specify that Subsonic should use port 80 (for http)
# and 443 (for https), and use a Java memory heap size of 200 MB, use
# the following:
#
# SUBSONIC_ARGS="--port=80 --https-port=443 --max-memory=200"
SUBSONIC_ARGS="--max-memory=150"
# The user which should run the Subsonic process. Default "root".
# Note that non-root users are by default not allowed to use ports
# below 1024. Also make sure to grant the user write permissions in
# the music directories, otherwise changing album art and tags will fail.
SUBSONIC_USER=root
@@ -0,0 +1,138 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: subsonic
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Subsonic daemon
# Description: Starts the Subsonic daemon. Subsonic is a web-based
# music streamer, jukebox and Podcast receiver.
# See http://subsonic.org for more details.
### END INIT INFO
# Author: Sindre Mehus <sindre@activeobjects.no>
# To change the startup parameters of Subsonic, modify the service
# configuration file /etc/default/subsonic rather than this file.
[ -r /etc/default/subsonic ] && . /etc/default/subsonic
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Subsonic Daemon"
NAME=subsonic
PIDFILE=/var/run/$NAME.pid
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="--pidfile=$PIDFILE $SUBSONIC_ARGS"
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Run as root if SUBSONIC_USER is not set.
[ "$SUBSONIC_USER" = "" ] && SUBSONIC_USER=root
# Make sure Subsonic is started with system locale
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG
fi
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
if [ -e $PIDFILE ]
then
ps -p $(cat $PIDFILE) > /dev/null
[ "$?" = 0 ] && return 1
fi
touch $PIDFILE
chown $SUBSONIC_USER $PIDFILE
[ -e /var/subsonic ] && chown -R $SUBSONIC_USER /var/subsonic
[ -e /tmp/subsonic ] && chown -R $SUBSONIC_USER /tmp/subsonic
start-stop-daemon --start -c $SUBSONIC_USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
: