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

Reply via email to