[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