Hi Alessio et al,

I've added config-templates and postinst configuration (passwords,
hostname, enable-service) to icecast2.

Attached patch applies to revision baf67ba (currently HEAD) on
  http://git.debian.org/?p=pkg-multimedia/icecast2.git

What would be needed to get this into the official icecast2 debian package?

Cheers!
robin
>From 58b10173268e252f87a7e021d61a0e43ba3d13aa Mon Sep 17 00:00:00 2001
From: Robin Gareus <ro...@gareus.org>
Date: Mon, 18 Apr 2011 19:22:15 +0200
Subject: [PATCH] added configuration template&postinst setup.

---
 debian/config            |   25 +++++++++++++++++++++++++
 debian/icecast2.postinst |   35 ++++++++++++++++++++++++++++++++++-
 debian/templates         |   37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 96 insertions(+), 1 deletions(-)
 create mode 100644 debian/config
 create mode 100644 debian/templates

diff --git a/debian/config b/debian/config
new file mode 100644
index 0000000..742ddf3
--- /dev/null
+++ b/debian/config
@@ -0,0 +1,25 @@
+#!/bin/bash
+# Debconf config script for icecast2
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_input high icecast2/icecast-setup || true
+db_go ||true
+
+db_get icecast2/icecast-setup
+if [ "$RET" = "true" ]; then
+	db_input high icecast2/hostname || true
+	db_go ||true
+	db_input high icecast2/sourcepassword || true
+	db_go ||true
+	db_input high icecast2/relaypassword|| true
+	db_go ||true
+	db_input high icecast2/adminpassword || true
+	db_go ||true
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/icecast2.postinst b/debian/icecast2.postinst
index ca9a341..eb12a54 100644
--- a/debian/icecast2.postinst
+++ b/debian/icecast2.postinst
@@ -3,8 +3,10 @@
 
 set -e
 
+. /usr/share/debconf/confmodule
+
 case "$1" in
-    configure)
+    configure|reconfigure)
 
     ;;
 
@@ -34,6 +36,37 @@ id icecast2 >/dev/null 2>&1 || \
 	adduser --system --quiet --disabled-password --disabled-login \
 	--home /usr/share/icecast2 --no-create-home --ingroup icecast icecast2
 
+# set passwords
+db_get icecast2/icecast-setup
+if test "$RET" = "true"; then
+	if [ -f /etc/default/icecast2 -a -f /etc/icecast2/icecast.xml ]; then
+		echo "Configuring icecast2.." >&2
+		cat << _EOF_ \
+		| ed /etc/default/icecast2 2>/dev/null 1>&2 || true
+%s/^.*ENABLE=.*$/ENABLE=true/
+wq
+_EOF_
+
+		db_get icecast2/sourcepassword
+		ICESOURCE=$RET
+		db_get icecast2/relaypassword
+		ICERELAY=$RET
+		db_get icecast2/adminpassword
+		ICEADMIN=$RET
+		db_get icecast2/hostname
+		ICEHOST=$RET
+		cat << _EOF_ \
+		| ed /etc/icecast2/icecast.xml 2>/dev/null 1>&2 || true
+%s/<source-password>[^<]*<\/source-password>/<source-password>$ICESOURCE<\/source-password>/
+%s/<relay-password>[^<]*<\/relay-password>/<relay-password>$ICERELAY<\/relay-password>/
+%s/<admin-password>[^<]*<\/admin-password>/<admin-password>$ICEADMIN<\/admin-password>/
+%s/<hostname>[^<]*<\/hostname>/<hostname>$ICEHOST<\/hostname>/
+wq
+_EOF_
+		echo "Done Configuring icecast2.." >&2
+	fi
+fi
+
 chown -R icecast2: /var/log/icecast2 /etc/icecast2
 # Set all file readable by default
 chmod -R ug=rw,o=r,ugo+X /etc/icecast2
diff --git a/debian/templates b/debian/templates
new file mode 100644
index 0000000..64e00e7
--- /dev/null
+++ b/debian/templates
@@ -0,0 +1,37 @@
+Template: icecast2/icecast-setup
+Type: boolean
+Default: false
+Description: Setup Icecast2 - Enable Live HTTP Streaming?
+ This option allows enable icecast2 on this server
+ and configure passwords for icecast-server.
+ .
+ If you have already manually tweaked icecast2 configuration
+ it may not work as expected.
+
+Template: icecast2/hostname
+Type: string
+Default: localhost
+Description: Icecast2 Hostname:
+ Specify a fully qualified domain name.
+ Icecast2 uses this as prefix to all streams.
+
+Template: icecast2/sourcepassword
+Type: string
+Default: hackme
+Description: Icecast2 Source Password:
+ Specify a password to send A/V sources to icecast
+
+Template: icecast2/relaypassword
+Type: string
+Default: hackme
+Description: Icecast2 Relay Password:
+ Specify the default password for stream relay access.
+
+Template: icecast2/adminpassword
+Type: string
+Default: hackme
+Description: Icecast2 Admin Password:
+ Specify the admin password. 
+ You can access icecast2's admin interface via
+ http://localhost:8000/ - and both monitor connection as
+ well as block users.
-- 
1.7.2.3

_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to