[Pkg-voip-commits] r3936 - asterisk/branches/experimental/debian

paravoid at alioth.debian.org paravoid at alioth.debian.org
Mon Aug 6 06:26:21 UTC 2007


Author: paravoid
Date: 2007-08-06 06:26:20 +0000 (Mon, 06 Aug 2007)
New Revision: 3936

Added:
   asterisk/branches/experimental/debian/asterisk-config.lintian-overrides
   asterisk/branches/experimental/debian/asterisk.postinst
Modified:
   asterisk/branches/experimental/debian/asterisk-config.postinst
   asterisk/branches/experimental/debian/asterisk.dirs
   asterisk/branches/experimental/debian/asterisk.init
   asterisk/branches/experimental/debian/asterisk.install
   asterisk/branches/experimental/debian/asterisk_fix
   asterisk/branches/experimental/debian/changelog
   asterisk/branches/experimental/debian/control
   asterisk/branches/experimental/debian/rules
Log:
* Major overhaul of the postinst scripts, completely replacing asterisk_fix.
  - Create Asterisk's directories on asterisk.dirs to track them using dpkg.
  - Add asterisk.postinst which calls adduser, chown, chmod. Improve error
    handling.
  - Don't do unnecessary stuff on asterisk-config postinst.
  - chmod /etc/asterisk on build-time to allow the user to modify the
    permissions; this required a lintian override.
  - Honor dpkg-statoverride on all the chowned/chmoded directories.
  - Handle asterisk-config -> asterisk installation order properly
    (Closes: #408708)
  - Don't depend on adduser from asterisk-config.

Added: asterisk/branches/experimental/debian/asterisk-config.lintian-overrides
===================================================================
--- asterisk/branches/experimental/debian/asterisk-config.lintian-overrides	                        (rev 0)
+++ asterisk/branches/experimental/debian/asterisk-config.lintian-overrides	2007-08-06 06:26:20 UTC (rev 3936)
@@ -0,0 +1 @@
+asterisk-config: non-standard-file-perm

Modified: asterisk/branches/experimental/debian/asterisk-config.postinst
===================================================================
--- asterisk/branches/experimental/debian/asterisk-config.postinst	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/asterisk-config.postinst	2007-08-06 06:26:20 UTC (rev 3936)
@@ -13,9 +13,17 @@
 
 case "$1" in
     configure)
-	if [ -x /usr/share/asterisk/bin/asterisk_fix ]; then
-		/usr/share/asterisk/bin/asterisk_fix
-	fi
+        set +e # ignore errors temporarily
+
+	# find conffiles under /etc/asterisk belonging to asterisk-config
+	# and chown them to user asterisk.
+	dpkg-query -W -f='${Conffiles}\n' asterisk-config 2>/dev/null | \
+	  sed -nr -e 's; (/etc/asterisk/.*) [0-9a-f]*;\1;p' | \
+	while read conffile; do
+		chown asterisk: ${conffile} 2>/dev/null
+	done
+
+	set -e
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)

Modified: asterisk/branches/experimental/debian/asterisk.dirs
===================================================================
--- asterisk/branches/experimental/debian/asterisk.dirs	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/asterisk.dirs	2007-08-06 06:26:20 UTC (rev 3936)
@@ -1 +1,19 @@
+etc/asterisk
+
+usr/share/asterisk
+var/log/asterisk
+var/spool/asterisk
+var/lib/asterisk
+var/run/asterisk
+
 usr/share/asterisk/static-http
+
+var/log/asterisk/cdr-csv
+var/log/asterisk/cdr-custom
+var/spool/asterisk/dictate
+var/spool/asterisk/meetme
+var/spool/asterisk/monitor
+var/spool/asterisk/monitor
+var/spool/asterisk/system
+var/spool/asterisk/tmp
+var/spool/asterisk/voicemail

Modified: asterisk/branches/experimental/debian/asterisk.init
===================================================================
--- asterisk/branches/experimental/debian/asterisk.init	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/asterisk.init	2007-08-06 06:26:20 UTC (rev 3936)
@@ -103,18 +103,13 @@
 
 test -x $DAEMON || exit 0
 
+set -e
+
 if [ ! -d "$PIDFILE_DIR" ];then
 	mkdir "$PIDFILE_DIR"
 	chown $USER:$GROUP "$PIDFILE_DIR"
 fi
 
-set -e
-
-if [ ! -e `dirname $PIDFILE` ];then
-	mkdir `dirname $PIDFILE`
-	chown $USER.$GROUP `dirname $PIDFILE`
-fi
-
 if [ "$UMASK" != '' ]
 then
 	umask $UMASK

Modified: asterisk/branches/experimental/debian/asterisk.install
===================================================================
--- asterisk/branches/experimental/debian/asterisk.install	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/asterisk.install	2007-08-06 06:26:20 UTC (rev 3936)
@@ -2,4 +2,3 @@
 usr/sbin
 usr/share/asterisk/firmware
 usr/share/asterisk/keys
-../asterisk_fix usr/share/asterisk/bin

Added: asterisk/branches/experimental/debian/asterisk.postinst
===================================================================
--- asterisk/branches/experimental/debian/asterisk.postinst	                        (rev 0)
+++ asterisk/branches/experimental/debian/asterisk.postinst	2007-08-06 06:26:20 UTC (rev 3936)
@@ -0,0 +1,86 @@
+#! /bin/sh
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+
+case "$1" in
+    configure)
+    	# add asterisk user and add it to dialout and audio groups
+	if ! getent passwd asterisk > /dev/null ; then
+		echo 'Adding system user for Asterisk' 1>&2
+		adduser --system --group --quiet \
+			--home /var/lib/asterisk \
+			--no-create-home --disabled-login \
+			--gecos "Asterisk PBX daemon" \
+			asterisk
+	fi 
+
+	for group in dialout audio; do
+		if groups asterisk | grep -w -q -v $group; then
+			adduser asterisk $group
+		fi
+	done
+
+	# chown asterisk on all $dirs and their subdirectories
+	# do not harm the files, they should be empty on new installations
+	# and we don't want to mess-up anything on old installations
+	find /var/log/asterisk /var/lib/asterisk -type d | while read dir; do
+		# honor dpkg-statoverride
+		if ! dpkg-statoverride --list "$dir" > /dev/null ; then
+			chown asterisk: $dir
+		fi
+	done 
+
+	# spool holds some sensitive information (e.g. monitor, voicemail etc.)
+	find /var/spool/asterisk -type d | while read dir; do
+		if ! dpkg-statoverride --list "$dir" > /dev/null ; then
+			chown asterisk: $dir
+			chmod 750 $dir
+		fi
+	done
+
+	### this is done here in case asterisk-config was installed/upgraded first
+
+        set +e # ignore errors temporarily
+
+	# find the name of the asterisk-config package, in case it's different
+	# from the default.
+	ASTERISK_CONFIG=`dpkg-query -W -f='${Package}\t${Provides}\n' | \
+			 sed -nr 's/(.*)\tasterisk-config-custom|(asterisk-config)(\t.*)?/\1\2/p'`
+
+	# find conffiles under /etc/asterisk belonging to asterisk-config
+	# and chown them to user asterisk.
+	dpkg-query -W -f='${Conffiles}\n' $ASTERISK_CONFIG 2>/dev/null | \
+	  sed -nr -e 's; (/etc/asterisk/.*) [0-9a-f]*;\1;p' | \
+	while read conffile; do
+		chown asterisk: ${conffile} 2>/dev/null
+	done
+
+	set -e
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Modified: asterisk/branches/experimental/debian/asterisk_fix
===================================================================
--- asterisk/branches/experimental/debian/asterisk_fix	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/asterisk_fix	2007-08-06 06:26:20 UTC (rev 3936)
@@ -1,83 +0,0 @@
-#! /bin/sh
-
-if getent passwd asterisk >/dev/null ;then
-	# Some halfbaked Sarge versions needed their home dir fixed:
-        if [ "`getent passwd asterisk|awk -F: '{print $6}'`" = \
-		"/var/run/asterisk" ];then
-		usermod -d /var/lib/asterisk asterisk
-        fi
-else
-	adduser_extra_opts=""
-	# Cosmetic noise reduction
-	if [ -d "/var/lib/asterisk" ]; then
-    		adduser_extra_opts="--no-create-home"
-	fi
-	adduser --system --group --home /var/lib/asterisk \
-	    $adduser_extra_opts \
-        	--gecos "Asterisk PBX daemon" asterisk		
-fi
-
-for group in dialout audio; do
-	if groups asterisk | grep -w -q -v $group; then
-        	adduser asterisk $group
-	fi
-done
-
-# Make sure all (possibly) used dirs exist and is owned by asterisk
-
-# /var/run/asterisk is not yet handled by init.d :-(
-# (/var/run/asterisk is handled in sysV script /etc/init.d/asterisk)
-
-dirs="
-        /var/log/asterisk
-        /var/spool/asterisk
-        /var/lib/asterisk
-	/var/run/asterisk
-        /etc/asterisk
-"
-
-subdirs="
-        /var/log/asterisk/cdr-csv
-        /var/log/asterisk/cdr-custom
-        /var/spool/asterisk/dictate
-        /var/spool/asterisk/meetme
-        /var/spool/asterisk/monitor
-        /var/spool/asterisk/monitor
-        /var/spool/asterisk/system
-        /var/spool/asterisk/tmp
-        /var/spool/asterisk/voicemail
-"
-
-for dir in $subdirs $dirs; do
-        mkdir -p "$dir"
-done
-
-for dir in $dirs; do
-        chown -R asterisk: "$dir"
-done
-
-
-###################################
-# this part should be reviewed, but it's basically trial and error
-# code i wrote to make freepbx work. better solutions are welcomed.
-
-# files need to be RW by the group
-# dirs need to a+rx
-chmod -R 0660 /etc/asterisk/
-find /etc/asterisk/ -type d -print0 | xargs -0 chmod ug+rx
-
-#chmod g+s /etc/asterisk/
-
-# this is needed because othewise sqlite cannot write to the DB
-#chmod -R 0660 /var/lib/asterisk/
-
-####################################
-# If asterisk in running, reload it
-# otherwise start it
-if [ -f "/etc/init.d/asterisk" ];then
-	if [ -f /var/run/asterisk/asterisk.pid ];then
-	    invoke-rc.d asterisk reload || exit $?
-	else
-	    invoke-rc.d asterisk restart || exit $?
-	fi
-fi

Modified: asterisk/branches/experimental/debian/changelog
===================================================================
--- asterisk/branches/experimental/debian/changelog	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/changelog	2007-08-06 06:26:20 UTC (rev 3936)
@@ -14,8 +14,17 @@
     /usr/share/asterisk/keys where they should be.
   * Actually ship keys, including Junction Networks' by fixing pubkey_jnctn
     patch.
-  * Handle space/newline-delimited directories on /etc/asterisk when doing
-    chmod on postinst.
+  * Major overhaul of the postinst scripts, completely replacing asterisk_fix.
+    - Create Asterisk's directories on asterisk.dirs to track them using dpkg.
+    - Add asterisk.postinst which calls adduser, chown, chmod. Improve error
+      handling.
+    - Don't do unnecessary stuff on asterisk-config postinst.
+    - chmod /etc/asterisk on build-time to allow the user to modify the
+      permissions; this required a lintian override.
+    - Honor dpkg-statoverride on all the chowned/chmoded directories.
+    - Handle asterisk-config -> asterisk installation order properly
+      (Closes: #408708)
+    - Don't depend on adduser from asterisk-config.
   * Switch to quilt as a patch management system instead of dpatch.
   * Split bristuff 0.4.0-test3 into individual patches and add it to the quilt
     patchset.
@@ -26,7 +35,7 @@
   [ Kilian Krause ]
   * backports/etch: replace libsnmp10-dev with libsnmp9-dev
 
- -- Faidon Liambotis <paravoid at debian.org>  Mon, 06 Aug 2007 05:33:10 +0300
+ -- Faidon Liambotis <paravoid at debian.org>  Mon, 06 Aug 2007 09:24:07 +0300
 
 asterisk (1:1.4.9~dfsg-1) unstable; urgency=high
 

Modified: asterisk/branches/experimental/debian/control
===================================================================
--- asterisk/branches/experimental/debian/control	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/control	2007-08-06 06:26:20 UTC (rev 3936)
@@ -106,7 +106,6 @@
 
 Package: asterisk-config
 Recommends: asterisk
-Depends: adduser (>= 3.63)
 Conflicts: asterisk-config-custom
 Architecture: all
 Section: comm

Modified: asterisk/branches/experimental/debian/rules
===================================================================
--- asterisk/branches/experimental/debian/rules	2007-08-06 02:33:25 UTC (rev 3935)
+++ asterisk/branches/experimental/debian/rules	2007-08-06 06:26:20 UTC (rev 3936)
@@ -140,8 +140,6 @@
 
 	dh_install -s --sourcedir=debian/tmp
 
-	chmod +x $(CURDIR)/debian/asterisk/usr/share/asterisk/bin/asterisk_fix
-
 	$(RM) -f $(CURDIR)/debian/asterisk/usr/sbin/{stereorize,streamplayer}
 	touch $@
 
@@ -156,6 +154,9 @@
 
 	dh_install -i --sourcedir=debian/tmp
 
+	install -m 0644 -D $(CURDIR)/debian/asterisk-config.lintian-overrides \
+		$(CURDIR)/debian/asterisk-config/usr/share/lintian/overrides/asterisk-config
+	
 	chmod +x $(CURDIR)/debian/asterisk-web-vmail/usr/lib/cgi-bin/asterisk/vmail.cgi
 	
 	
@@ -171,6 +172,9 @@
 	dh_link -i 
 	dh_compress -i
 	dh_fixperms -i
+	# should follow dh_fixperms; asterisk configurations may contain
+	# sensitive information, such as passwords
+	chmod o-rwx $(CURDIR)/debian/asterisk-config/etc/asterisk/*
 	dh_installdeb -i
 	dh_gencontrol -i
 	dh_md5sums -i




More information about the Pkg-voip-commits mailing list