tags 500003 + patch thanks On 2008-09-24 10:35 +0200, Julien Cristau wrote:
> Package: acpid > Version: 1.0.6-12 > Severity: important > > if `grep -q ubuntu /etc/apt/sources.list`; then > DISTRO=Ubuntu > else > DISTRO=Debian > fi > > This test is utterly broken, it's pretty much equivalent to 'if false' > (you'd want to remove the backquotes). > > But, even then, that test is conceptually broken: > - it doesn't actually test whether we're on ubuntu or debian (or some entirely > different derivative) > - the test should be done at package build time, not at run time Here is a patch that implements this. Tested on Debian, but not Ubuntu as I don't have an Ubuntu system. The attached debdiff is relatively large since I renamed acpid.init.d to acpid.init.d.in and regenerate the former from the latter. Regards, Sven
diff -u acpid-1.0.6/debian/rules acpid-1.0.6/debian/rules --- acpid-1.0.6/debian/rules +++ acpid-1.0.6/debian/rules @@ -2,6 +2,8 @@ export DH_VERBOSE=1 +DISTRO := $(shell lsb_release -is) + build: build-stamp build-stamp: @@ -9,13 +11,14 @@ chmod g-s -R * $(MAKE) $(MAKE) man + sed -e "s/@@DISTRO@@/${DISTRO}/" debian/acpid.init.d.in > debian/acpid.init.d touch build-stamp clean: dh_testdir dh_testroot - rm -f build-stamp + rm -f build-stamp debian/acpid.init.d [ ! -f Makefile ] || $(MAKE) clean diff -u acpid-1.0.6/debian/control acpid-1.0.6/debian/control --- acpid-1.0.6/debian/control +++ acpid-1.0.6/debian/control @@ -4,7 +4,7 @@ Maintainer: Debian Acpi Team <[EMAIL PROTECTED]> Uploaders: Anibal Monsalve Salazar <[EMAIL PROTECTED]>, Michael Meskes <[EMAIL PROTECTED]> Standards-Version: 3.8.0 -Build-Depends: debhelper (>= 5) +Build-Depends: debhelper (>= 5), lsb-release XS-Vcs-Svn: https://bollin.googlecode.com/svn/acpid/trunk XS-Vcs-Browser: http://bollin.googlecode.com/svn/acpid/trunk Homepage: http://acpid.sourceforge.net/ reverted: --- acpid-1.0.6/debian/acpid.init.d +++ acpid-1.0.6.orig/debian/acpid.init.d @@ -1,122 +0,0 @@ -#! /bin/sh -e -### BEGIN INIT INFO -# Provides: acpid -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# X-Start-Before: kdm gdm xdm hal -# X-Stop-After: kdm gdm xdm hal -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Start the Advanced Configuration and Power Interface daemon -# Description: Provide a socket for X11, hald and others to multiplex -# kernel ACPI events. -### END INIT INFO - -# Check for daemon presence -test -x /usr/sbin/acpid || exit 0 - -# Check for ACPI support on kernel side -[ -d "/proc/acpi" ] || exit 0 - -# Include acpid defaults if available -OPTIONS="" -if [ -f "/etc/default/acpid" ] ; then - . /etc/default/acpid -fi - -# Get lsb functions -. /lib/lsb/init-functions -. /etc/default/rcS - -# Are we Debian or Ubuntu? If we have at least one Ubuntu line in /etc/apt/sources let's assume Ubuntu. -# Pure Debian systems should not look into Ubuntu directory. -if `grep -q ubuntu /etc/apt/sources.list`; then - DISTRO=Ubuntu -else - DISTRO=Debian -fi - -if [ "$VERBOSE" = "no" ]; then - MODPROBE_OPTIONS="$MODPROBE_OPTIONS --quiet" - export MODPROBE_OPTIONS -fi - -# As the name says. If the kernel supports modules, it'll try to load -# the ones listed in "MODULES". -load_modules() { - PRINTK=$(cat /proc/sys/kernel/printk) - [ "$VERBOSE" = "no" ] && echo "0 0 0 0" > /proc/sys/kernel/printk - - LIST="$(/sbin/lsmod | awk '!/Module/ {print $1}')" - - # Get list of available modules - LOC="/lib/modules/$(uname -r)/kernel/drivers/acpi" - if [ -d "$LOC" ]; then - MODAVAIL="$( ( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \ - find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh )" - else - MODAVAIL="" - fi - - if [ $DISTRO = "Ubuntu" ]; then - LOC="/lib/modules/$(uname -r)/kernel/ubuntu/acpi" - if [ -d "$LOC" ]; then - MODAVAIL="$MODAVAIL $( ( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \ - find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh )" - fi - fi - - if [ "$MODULES" = "all" ]; then - MODULES="$MODAVAIL" - fi - - if [ -n "$MODULES" ]; then - log_begin_msg "Loading ACPI modules..." - STATUS=0 - for mod in $MODULES; do - echo $MODAVAIL | grep -q -w "$mod" || continue - if echo $LIST | grep -q -w "$mod"; then - [ "$VERBOSE" != "no" ] && log_success_msg "Module already loaded: $mod" - else - if modprobe -b $mod 2>/dev/null; then - [ "$VERBOSE" != "no" ] && log_success_msg "Loaded module: $mod" - else - if [ "$VERBOSE" != "no" ]; then - log_warning_msg "Unable to load module: $mod" - fi - fi - fi - done - log_end_msg $STATUS - fi - echo "$PRINTK" > /proc/sys/kernel/printk -} - -case "$1" in - start) - [ -f /proc/modules ] && load_modules - log_begin_msg "Starting ACPI services..." - start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/acpid -- $OPTIONS - log_end_msg $? - ;; - stop) - log_begin_msg "Stopping ACPI services..." - start-stop-daemon --stop --quiet --oknodo --retry 2 --exec /usr/sbin/acpid - log_end_msg $? - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - reload|force-reload) - log_begin_msg "Reloading ACPI services..." - start-stop-daemon --stop --signal 1 --exec /usr/sbin/acpid - log_end_msg $? - ;; - *) - log_success_msg "Usage: /etc/init.d/acpid {start|stop|restart|reload|force-reload}" - exit 1 -esac - -exit 0 diff -u acpid-1.0.6/debian/changelog acpid-1.0.6/debian/changelog --- acpid-1.0.6/debian/changelog +++ acpid-1.0.6/debian/changelog @@ -1,3 +1,10 @@ +acpid (1.0.6-12sven1) unstable; urgency=low + + * Check for Debian/Ubuntu at package creation time, closes: #500003. + * Add build-dependency on lsb-release. + + -- Sven Joachim <[EMAIL PROTECTED]> Wed, 24 Sep 2008 12:12:53 +0200 + acpid (1.0.6-12) unstable; urgency=low * Check for Ubuntu/Debian in apt sources list instead of /etc/issue, only in patch2: unchanged: --- acpid-1.0.6.orig/debian/acpid.init.d.in +++ acpid-1.0.6/debian/acpid.init.d.in @@ -0,0 +1,117 @@ +#! /bin/sh -e +### BEGIN INIT INFO +# Provides: acpid +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# X-Start-Before: kdm gdm xdm hal +# X-Stop-After: kdm gdm xdm hal +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start the Advanced Configuration and Power Interface daemon +# Description: Provide a socket for X11, hald and others to multiplex +# kernel ACPI events. +### END INIT INFO + +# Check for daemon presence +test -x /usr/sbin/acpid || exit 0 + +# Check for ACPI support on kernel side +[ -d "/proc/acpi" ] || exit 0 + +# Include acpid defaults if available +OPTIONS="" +if [ -f "/etc/default/acpid" ] ; then + . /etc/default/acpid +fi + +# Get lsb functions +. /lib/lsb/init-functions +. /etc/default/rcS + +# Are we Debian or Ubuntu? +DISTRO=@@DISTRO@@ + +if [ "$VERBOSE" = "no" ]; then + MODPROBE_OPTIONS="$MODPROBE_OPTIONS --quiet" + export MODPROBE_OPTIONS +fi + +# As the name says. If the kernel supports modules, it'll try to load +# the ones listed in "MODULES". +load_modules() { + PRINTK=$(cat /proc/sys/kernel/printk) + [ "$VERBOSE" = "no" ] && echo "0 0 0 0" > /proc/sys/kernel/printk + + LIST="$(/sbin/lsmod | awk '!/Module/ {print $1}')" + + # Get list of available modules + LOC="/lib/modules/$(uname -r)/kernel/drivers/acpi" + if [ -d "$LOC" ]; then + MODAVAIL="$( ( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \ + find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh )" + else + MODAVAIL="" + fi + + if [ $DISTRO = "Ubuntu" ]; then + LOC="/lib/modules/$(uname -r)/kernel/ubuntu/acpi" + if [ -d "$LOC" ]; then + MODAVAIL="$MODAVAIL $( ( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \ + find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh )" + fi + fi + + if [ "$MODULES" = "all" ]; then + MODULES="$MODAVAIL" + fi + + if [ -n "$MODULES" ]; then + log_begin_msg "Loading ACPI modules..." + STATUS=0 + for mod in $MODULES; do + echo $MODAVAIL | grep -q -w "$mod" || continue + if echo $LIST | grep -q -w "$mod"; then + [ "$VERBOSE" != "no" ] && log_success_msg "Module already loaded: $mod" + else + if modprobe -b $mod 2>/dev/null; then + [ "$VERBOSE" != "no" ] && log_success_msg "Loaded module: $mod" + else + if [ "$VERBOSE" != "no" ]; then + log_warning_msg "Unable to load module: $mod" + fi + fi + fi + done + log_end_msg $STATUS + fi + echo "$PRINTK" > /proc/sys/kernel/printk +} + +case "$1" in + start) + [ -f /proc/modules ] && load_modules + log_begin_msg "Starting ACPI services..." + start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/acpid -- $OPTIONS + log_end_msg $? + ;; + stop) + log_begin_msg "Stopping ACPI services..." + start-stop-daemon --stop --quiet --oknodo --retry 2 --exec /usr/sbin/acpid + log_end_msg $? + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + reload|force-reload) + log_begin_msg "Reloading ACPI services..." + start-stop-daemon --stop --signal 1 --exec /usr/sbin/acpid + log_end_msg $? + ;; + *) + log_success_msg "Usage: /etc/init.d/acpid {start|stop|restart|reload|force-reload}" + exit 1 +esac + +exit 0