From 3c52e079f451236f7cb1c1e2b57149d0a91ac3cd Mon Sep 17 00:00:00 2001 From: keegan Date: Mon, 4 Aug 2003 08:42:13 +0000 Subject: [PATCH] Added Debian packaging svn path=/trunk/icecast/; revision=5190 --- Makefile.am | 2 +- configure.in | 2 +- debian/.cvsignore | 2 + debian/Makefile.am | 8 ++ debian/README.Debian | 12 +++ debian/changelog | 198 +++++++++++++++++++++++++++++++++++++++ debian/compat | 1 + debian/control | 22 +++++ debian/copyright | 26 +++++ debian/icecast2.1 | 24 +++++ debian/icecast2.default | 19 ++++ debian/icecast2.init | 67 +++++++++++++ debian/icecast2.manpages | 1 + debian/icecast2.postinst | 43 +++++++++ debian/icecast2.postrm | 29 ++++++ debian/icecast2.preinst | 27 ++++++ debian/rules | 34 +++++++ debian/watch | 3 + 18 files changed, 518 insertions(+), 2 deletions(-) create mode 100644 debian/.cvsignore create mode 100644 debian/Makefile.am create mode 100644 debian/README.Debian create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/icecast2.1 create mode 100644 debian/icecast2.default create mode 100644 debian/icecast2.init create mode 100644 debian/icecast2.manpages create mode 100644 debian/icecast2.postinst create mode 100644 debian/icecast2.postrm create mode 100644 debian/icecast2.preinst create mode 100755 debian/rules create mode 100644 debian/watch diff --git a/Makefile.am b/Makefile.am index d6a9cd1d..de500a18 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = 1.6 foreign dist-zip ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src conf doc web admin win32 +SUBDIRS = src conf debian doc web admin win32 EXTRA_DIST = HACKING m4/acx_pthread.m4 m4/ogg.m4 m4/vorbis.m4 \ m4/xiph_compiler.m4 m4/xiph_curl.m4 m4/xiph_net.m4 \ diff --git a/configure.in b/configure.in index 765bdc30..6c6c5340 100644 --- a/configure.in +++ b/configure.in @@ -115,7 +115,7 @@ AC_SUBST(CFLAGS) AC_SUBST(PROFILE) AC_SUBST(ICECAST_OPTIONAL) -AC_OUTPUT([Makefile conf/Makefile src/Makefile src/avl/Makefile +AC_OUTPUT([Makefile conf/Makefile debian/Makefile src/Makefile src/avl/Makefile src/httpp/Makefile src/thread/Makefile src/log/Makefile src/net/Makefile src/timing/Makefile doc/Makefile web/Makefile admin/Makefile win32/Makefile win32/res/Makefile]) diff --git a/debian/.cvsignore b/debian/.cvsignore new file mode 100644 index 00000000..282522db --- /dev/null +++ b/debian/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/debian/Makefile.am b/debian/Makefile.am new file mode 100644 index 00000000..da81405e --- /dev/null +++ b/debian/Makefile.am @@ -0,0 +1,8 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.6 foreign + +EXTRA_DIST = README.Debian changelog compat control copyright \ + icecast2.1 icecast2.default icecast2.init icecast2.manpages \ + icecast2.postinst icecast2.postrm icecast2.preinst rules watch + diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000..894553ae --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,12 @@ +icecast2 for Debian +------------------- + +It is recommended to run icecast under a dedicated user account, which only +has access to write the log files. The Debian package creates such an +account, named 'icecast', and uses it by default, but you are free to +reconfigure it and remove the account. + +Edit /etc/default/icecast2 to change the init-script configuration. + + -- Keegan Quinn + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..679c6e30 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,198 @@ +icecast2 (1.9+2.0alphasnap2+20030802-1) unstable; urgency=low + + * Added a 'watch' file to automate tracking of updates. + * Now uses dh-buildinfo to store information about the package build + environment. Added a Build-Dependancy to dh-buildinfo. + * Removed cdbs/autotools-vars.mk, from cdbs CVS, because a new release + was made. + * Enabled curl during configure stage, since --disable-curl was recently + broken upstream, and potentially broken YP support can be disabled at + runtime. + * Trimmed ancient upgrade nodes and other cruft, left over from + pre-Debian versions, from README.Debian. + * Removed some autotools build cruft, since bugs were fixed upstream. + * Normalized {preinst,postinst,postrm} filenames to + icecast2.{preinst,postinst,postrm}. Thanks to Emmanuel le Chevoir + for this suggestion. + * Fixed preinst; was stopping /usr/bin/icecast instead of + /usr/bin/icecast2. Thanks to Emmanuel le Chevoir for this suggestion. + * Removed prerm, since it was not serving any purpose. Thanks to + Emmanuel le Chevoir for this suggestion. + * Cleaned up postinst: removed old comments, fixed a path typo in the + configuration file location change message. + * Cleaned up postrm: removed old comments, fixed a typo in the group + removal test. + * Thanks to Jonas Smedegaard for sponsoring this package, and + providing many good suggestions. + + -- Keegan Quinn Sat, 2 Aug 2003 20:28:13 -0700 + +icecast2 (1.9+2.0alphasnap2+20030720-1.1) unstable; urgency=low + + * NMU by sponsor (still closes: Bug#178160). + + -- Jonas Smedegaard Wed, 23 Jul 2003 06:03:42 +0200 + +icecast2 (1.9+2.0alphasnap2+20030720-1) unstable; urgency=low + + * New daily snapshot build. + * Added Build-Dependancy to cdbs, and increased debhelper version + requirement as recommended by cdbs README. + * Corrected Standards-Version to 3.6.0. This package now generates + no lintian errors. + * Updated Recommends for ices to ices2; it was renamed. + * Added more information to the long description. + * Thanks to Jonas Smedegaard for sponsoring this package. + * This revision still closes: #178160 - the last was not uploaded. + + -- Keegan Quinn Mon, 21 Jul 2003 08:55:27 -0700 + +icecast2 (1.9+2.0alphasnap2+20030714-0.2) unstable; urgency=low + + * Sponsored upload. Closes: Bug#178160. + * Switch to cdbs (agreed with maintainer). + * Use cdbs autotools-vars.mk from CVS to avoid cross-compiling on same + host. + * Add build-dependency on libxml2-dev. + * Explicitly configure without curl support to avoid building broken + YP stuff. + * Hack src/Makefile.am to use AM_CFLAGS instead of CFLAGS (which is + overridden by cdbs), and add clean rule to avoid invoking automake. + * Disable daemon by default and hint about changing passwords before + enabling. + * Avoid moving config files from pre-Debian times - instead just print + a warning if config exists in old location (better mess as little as + possible with files not ever claimed to be ours). + * Update README.Debian to reflect the above, include note about YP + support not compiled in, and remove note regarding adoption. + * Strip paths from packaging scripts (they may move around in the + future, and if PATH is wrong then something else broken anyway). + * Avoid removing unused /usr/share/icecast2 on purge. + * Remove icecast group on purge only if empty. + * Standards-version 3.6 (no changes needed). + * Fix wrong escaping of sed vars in conf/Makefile. + * Symlink public files from /usr/share/icecast2 to /etc/icecast2 + (instead of pointing public root dirs below /etc). + * Use upstream config (paths are properly included now). + + -- Jonas Smedegaard Sun, 20 Jul 2003 20:19:30 +0200 + +icecast2 (1.9+2.0alphasnap2+20030714-0.1) unstable; urgency=low + + * New daily snapshot build. + * Updated versioning scheme to reflect (as well as possible) that the + source is a daily snapshot now, not CVS. + + -- Keegan Quinn Mon, 14 Jul 2003 19:39:58 -0700 + +icecast2 (1.9+2.0alphacvs030704-0.1) unstable; urgency=low + + * Constructed a build script to completely automate the construction + of the 'pristine' tarball from CVS. This doesn't really effect the + contents of the package, just makes it easier for me to rebuild. + * New CVS source. + * Removed Build-Dependancy on libcurl2-dev; packages built without this + library present will not have YP functionality, which is okay for + now since it's badly broken. + * Updated the default configuration file, including some new options + recently added upstream. + * Added a number of tweaks to clean up and rearrange new configuration + and documentation added to upstream install target. + * Moved the configuration file from /etc/icecast.xml to + /etc/icecast2/icecast.xml. See README.Debian. + * Nice ugly version number to reflect that upstream calls this the 2.0 + alpha branch, without potentially introducing the need for an epoch. + + -- Keegan Quinn Thu, 3 Jul 2003 23:46:56 -0700 + +icecast2 (0.00.cvs030529-0.1) unstable; urgency=low + + * New CVS source. + * Removed unnecessary debconf stuff. + * Added README.Debian. + * Path updates: + - /usr/share/icecast to /usr/share/icecast2, + - /var/log/icecast to /var/log/icecast2, + - /usr/bin/icecast to /usr/bin/icecast2, + - /usr/share/man/man8/icecast.8.gz to /usr/share/man/man8/icecast2.8.gz. + + -- Keegan Quinn Wed, 29 May 2003 22:53:21 -0700 + +icecast2 (0.00.cvs030403-0.2) unstable; urgency=low + + * Tried to make the default configuration more understandable. + + -- Keegan Quinn Fri, 4 Apr 2003 10:55:27 -0800 + +icecast2 (0.00.cvs030403-0.1) unstable; urgency=low + + * New CVS source. + * Minor changes to postrm. + + -- Keegan Quinn Thu, 3 Apr 2003 16:05:09 -0800 + +icecast2 (0.00.cvs030401-0.7) unstable; urgency=low + + * Minor changes to postinst. + * Added --background flag to initscript, since this version of icecast + does not yet run detached. + + -- Keegan Quinn Thu, 3 Apr 2003 14:24:19 -0800 + +icecast2 (0.00.cvs030401-0.6) unstable; urgency=low + + * Added Debianized configuration file. + * Created and set ownership of /var/log/icecast and /usr/share/icecast. + + -- Keegan Quinn Thu, 3 Apr 2003 14:15:11 -0800 + +icecast2 (0.00.cvs030401-0.5) unstable; urgency=low + + * Attempt at making debconf work properly. + + -- Keegan Quinn Thu, 3 Apr 2003 12:07:16 -0800 + +icecast2 (0.00.cvs030401-0.4) unstable; urgency=low + + * Minor edits to init.d script. + * Added bits to create and remove system accounts appropriately. + * Typo fix in the manual page. + + -- Keegan Quinn Thu, 3 Apr 2003 11:06:48 -0800 + +icecast2 (0.00.cvs030401-0.3) unstable; urgency=low + + * Finished init.d script and manual page. + * Updated postinst to handle rc*.d links. + * Package is now lintian/linda clean. + + -- Keegan Quinn Wed, 2 Apr 2003 16:29:18 -0800 + +icecast2 (0.00.cvs030401-0.2) unstable; urgency=low + + * Updated copyright (replacing dh_make template). + * Fixed duplicate conffiles. + + -- Keegan Quinn Wed, 2 Apr 2003 16:18:02 -0800 + +icecast2 (0.00.cvs030401-0.1) unstable; urgency=low + + * New CVS source. + * Lots of packaging cleanup. + * Initial stab at manual page and init.d script. + + -- Keegan Quinn Wed, 2 Apr 2003 10:25:56 -0800 + +icecast2 (0.00.cvs030320-0.1) unstable; urgency=low + + * New CVS source. + * Automated CVS original source creation. + + -- Keegan Quinn Thu, 20 Mar 2003 12:58:49 -0800 + +icecast2 (0.00.cvs030315-0.1) unstable; urgency=low + + * Initial Release. + + -- Keegan Quinn Sun, 16 Mar 2003 13:45:23 -0800 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 00000000..b8626c4c --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +4 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..1194b8c8 --- /dev/null +++ b/debian/control @@ -0,0 +1,22 @@ +Source: icecast2 +Section: sound +Priority: optional +Maintainer: Keegan Quinn +Build-Depends: cdbs, debhelper (>> 4.1.0), dh-buildinfo, libogg-dev (>> 1.0.0), libvorbis-dev (>> 1.0.0), libxslt1-dev, libxml2-dev +Uploaders: Jonas Smedegaard +Standards-Version: 3.6.0 + +Package: icecast2 +Architecture: any +Depends: ${shlibs:Depends} +Recommends: ices2 +Description: streaming Ogg Vorbis/MP3 media server + Icecast is an audio broadcasting system. It can stream music in both + MPEG 1 Layer 3 (MP3) and Ogg Vorbis formats, supports multiple + streams on a single port through the use of "mountpoints," includes + web-based status and management interfaces, and has many other + advanced features. + . + Many standard audio players can connect and listen to Icecast-hosted + streams, since it's based on Nullsoft's Shoutcast protocol and HTTP. + diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..56e74efa --- /dev/null +++ b/debian/copyright @@ -0,0 +1,26 @@ +This package was debianized by Keegan Quinn on +Sun, 16 Mar 2003 13:45:23 -0800. + +It was retrieved from http://www.xiph.org/~brendan/snapshots/icecast/ + +Upstream Authors: the icecast team + +Copyright (c) 1999, 2000 the icecast team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any latfer version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +On Debian systems, the complete text of the GNU General Public License +can be found in `/usr/share/common-licenses/GPL'. + diff --git a/debian/icecast2.1 b/debian/icecast2.1 new file mode 100644 index 00000000..dc1b9e90 --- /dev/null +++ b/debian/icecast2.1 @@ -0,0 +1,24 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH ICECAST2 1 "July 28, 2003" +.SH NAME +icecast2 \- an MP3/Ogg Vorbis broadcast streaming media server +.SH SYNOPSIS +.B icecast2 +-c +.RI config.xml +.SH DESCRIPTION +\fBicecast2\fP is an audio broadcasting system that streams music in +Ogg Vorbis and/or MPEG 1 Layer III format. It accepts stream input +from sources like ices0 and ices2, and broadcasts to clients like xmms. +.SH OPTIONS +\fBicecast2\fP has no command line options, except to specify the location +of an XML configuration file. All operational aspects of the software +are controlled by this XML configuration file. +.SH SEE ALSO +The example configuration files, provided with the package documentation +are the only reliable source of information on this software. +It is still under very active development; +documentation will be written when it is possible to do so. +.SH AUTHOR +icecast2 was created by the icecast team . +This manual page was written by Keegan Quinn . diff --git a/debian/icecast2.default b/debian/icecast2.default new file mode 100644 index 00000000..bcd964ac --- /dev/null +++ b/debian/icecast2.default @@ -0,0 +1,19 @@ +# Defaults for icecast2 initscript +# sourced by /etc/init.d/icecast2 +# installed at /etc/default/icecast2 by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +# Full path to the server configuration file +CONFIGFILE="/etc/icecast2/icecast.xml" + +# Name or ID of the user and group the daemon should run under +USERID=icecast +GROUPID=icecast + +# Edit /etc/icecast2/icecast.xml and change at least the passwords. +# Change this to true when done to enable the init.d script +ENABLE=false + diff --git a/debian/icecast2.init b/debian/icecast2.init new file mode 100644 index 00000000..a1302e96 --- /dev/null +++ b/debian/icecast2.init @@ -0,0 +1,67 @@ +#! /bin/sh +# +# icecast2 +# +# Written by Miquel van Smoorenburg . +# Modified for Debian +# by Ian Murdock . +# +# Further modified by Keegan Quinn +# for use with Icecast 2 +# + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/bin/icecast2 +NAME=icecast2 +DESC=icecast2 + +test -x $DAEMON || exit 0 + +# Defaults +CONFIGFILE="/etc/icecast2/icecast.xml" +CONFIGDEFAULTFILE="/etc/default/icecast2" +USERID=icecast +GROUPID=icecast +ENABLE="false" + +# Reads config file (will override defaults above) +[ -r "$CONFIGDEFAULTFILE" ] && . $CONFIGDEFAULTFILE + +if [ "$ENABLE" != "true" ]; then + echo "$NAME daemon disabled - read $CONFIGDEFAULTFILE." + exit 0 +fi + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \ + --background --exec $DAEMON -- -c $CONFIGFILE + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --oknodo --quiet --exec $DAEMON + echo "$NAME." + ;; + reload|force-reload) + echo "Reloading $DESC configuration files." + start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON + ;; + restart) + echo -n "Restarting $DESC: " + start-stop-daemon --stop --oknodo --quiet --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \ + --background --exec $DAEMON -- -c $CONFIGFILE + echo "$NAME." + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/icecast2.manpages b/debian/icecast2.manpages new file mode 100644 index 00000000..69e59afa --- /dev/null +++ b/debian/icecast2.manpages @@ -0,0 +1 @@ +debian/icecast2.1 diff --git a/debian/icecast2.postinst b/debian/icecast2.postinst new file mode 100644 index 00000000..9278431d --- /dev/null +++ b/debian/icecast2.postinst @@ -0,0 +1,43 @@ +#! /bin/sh +# postinst script for icecast2 + +set -e + +case "$1" in + configure) + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# Move configuration file to current location, if an old one exists +# and the init.d script configuration file was updated +if [ -f /etc/icecast.xml ] && grep -q /etc/icecast2/ /etc/default/icecast2; then + echo "It seems you have an old configuration lying around at" + echo "/etc/icecast.xml. You will need to manually merge with" + echo "the current configuration at /etc/icecast2/icecast.xml." + + echo "See /usr/share/doc/icecast2/examples for new configuration options." +fi + +# Check for an account named 'icecast' +if ! id icecast >/dev/null 2>&1; then + # Create the new system account + adduser --system --disabled-password --disabled-login \ + --home /usr/share/icecast2 --no-create-home --group icecast +fi + +chown -R icecast:icecast /var/log/icecast2 + +#DEBHELPER# + +exit 0 + diff --git a/debian/icecast2.postrm b/debian/icecast2.postrm new file mode 100644 index 00000000..6fbae817 --- /dev/null +++ b/debian/icecast2.postrm @@ -0,0 +1,29 @@ +#! /bin/sh +# postrm script for icecast2 + +set -e + +case "$1" in + purge) + rm -rf /var/log/icecast2 + + if id icecast >/dev/null 2>&1; then + deluser icecast + fi + + # Remove group only if empty + if getent group icecast | awk -F: ' { print $4 } ' | egrep -cq '^$'; then + groupdel icecast + fi + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/icecast2.preinst b/debian/icecast2.preinst new file mode 100644 index 00000000..35e111eb --- /dev/null +++ b/debian/icecast2.preinst @@ -0,0 +1,27 @@ +#! /bin/sh +# preinst script for icecast2 + +set -e + +case "$1" in + install|upgrade) + if [ "$1" = "upgrade" ] + then + start-stop-daemon --stop --quiet --oknodo \ + --exec /usr/bin/icecast2 2>/dev/null || true + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 + diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..3c9728bc --- /dev/null +++ b/debian/rules @@ -0,0 +1,34 @@ +#!/usr/bin/make -f +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk + +DEB_INSTALL_CHANGELOGS_ALL = NEWS +DEB_CONFIGURE_SYSCONFDIR = /etc/icecast2 +DEB_MAKE_INVOKE += PACKAGE=icecast2 docdir=/usr/share/doc/icecast2 pkgdatadir=/usr/share/icecast2 + +binary-post-install/icecast2:: + # Debian has a central copy of the GPL, no need to distribute again + rm -f $(DEB_DESTDIR)/usr/share/doc/icecast2/COPYING + + # Live peacefully with icecast 1 + mv $(DEB_DESTDIR)/usr/bin/icecast $(DEB_DESTDIR)/usr/bin/icecast2 + + # Move XSLT templates to /etc and replace with symlinks + for file in `cd $(DEB_DESTDIR)/usr/share && find icecast2 -type f -name *.xsl`; do \ + mkdir -p $(DEB_DESTDIR)/etc/`dirname $$file`; \ + mv $(DEB_DESTDIR)/usr/share/$$file $(DEB_DESTDIR)/etc/$$file; \ + ln -s /etc/$$file $(DEB_DESTDIR)/usr/share/$$file; \ + done + + # NEWS is ChangeLog - avoid original name + rm -f $(DEB_DESTDIR)/usr/share/doc/icecast2/NEWS + + mkdir -p $(CURDIR)/debian/icecast2/var/log/icecast2 + + # Store build information + dh_buildinfo + +clean:: + # Upstream forgot to clean this one it seems... + rm -f conf/icecast.xml.dist + diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..63089e27 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=2 + +http://www.icecast.org/download.html files/icecast/icecast-(.*)\.tar\.gz debian uupdate