Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > 26764e702e441b473525f6a16ac25557 > files > 36

hal-0.5.8.1-59.el5.src.rpm

diff --git a/fdi/policy/10osvendor/10-power-mgmt-policy.fdi b/fdi/policy/10osvendor/10-power-mgmt-policy.fdi
index c0b4845..6499f9b 100644
--- a/fdi/policy/10osvendor/10-power-mgmt-policy.fdi
+++ b/fdi/policy/10osvendor/10-power-mgmt-policy.fdi
@@ -33,11 +33,21 @@
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames" type="strlist">num_seconds_to_sleep</append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths" type="strlist">hal-system-power-suspend</append>
 
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_names" type="strlist">SuspendClearError</append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures" type="strlist"></append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames" type="strlist"></append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths" type="strlist">hal-system-power-suspend-clear-error</append>
+
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_names" type="strlist">Hibernate</append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures" type="strlist"></append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames" type="strlist"></append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths" type="strlist">hal-system-power-hibernate</append>
 
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_names" type="strlist">HibernateClearError</append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures" type="strlist"></append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames" type="strlist"></append>
+      <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths" type="strlist">hal-system-power-hibernate-clear-error</append>
+
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_names" type="strlist">Shutdown</append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures" type="strlist"></append>
       <append key="org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames" type="strlist"></append>
diff --git a/tools/Makefile.am b/tools/Makefile.am
index d820cc8..4fa431d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -86,7 +86,9 @@ script_SCRIPTS =				\
 	hal-luks-teardown                       \
 	hal-luks-remove		                \
 	hal-system-power-suspend		\
+	hal-system-power-suspend-clear-error	\
 	hal-system-power-hibernate		\
+	hal-system-power-hibernate-clear-error	\
 	hal-system-power-shutdown		\
 	hal-system-power-reboot			\
 	hal-system-lcd-get-brightness		\
@@ -110,5 +112,9 @@ check:
             fi; \
         done;
 
+install-data-local:
+	$(mkdir_p) $(DESTDIR)$(localstatedir)/lib/hal
+	chmod 0755 $(DESTDIR)$(localstatedir)/lib/hal
+
 clean-local :
 	rm -f *~
diff --git a/tools/linux/hal-system-power-hibernate-linux b/tools/linux/hal-system-power-hibernate-linux
index 91da280..eda996a 100755
--- a/tools/linux/hal-system-power-hibernate-linux
+++ b/tools/linux/hal-system-power-hibernate-linux
@@ -31,8 +31,17 @@ elif [ -f /etc/mandriva-release ] ; then
 #RedHat/Fedora only support pm-utils
 elif [ -f /etc/redhat-release ] || [ -f /etc/fedora-release ] ; then
 	if [ -x /usr/sbin/pm-hibernate ] ; then
-		/usr/sbin/pm-hibernate
+		rm -f /var/lib/hal/system-power-hibernate-output
+		touch /var/lib/hal/system-power-hibernate-output
+		chmod 644 /var/lib/hal/system-power-hibernate-output
+		echo "==== Kernel version: ====" >> /var/lib/hal/system-power-hibernate-output
+		/bin/uname -a >> /var/lib/hal/system-power-hibernate-output
+		echo "==== Modules loaded before hibernating: ====" >> /var/lib/hal/system-power-hibernate-output
+		/sbin/lsmod >> /var/lib/hal/system-power-hibernate-output
+		echo "==== Output of /usr/sbin/pm-hibernate ====" >> /var/lib/hal/system-power-hibernate-output
+		/bin/bash -x /usr/sbin/pm-hibernate >> /var/lib/hal/system-power-hibernate-output 2>&1
 		RET=$?
+		echo "==== DONE ====" >> /var/lib/hal/system-power-hibernate-output
 	else
 		unsupported
 	fi
@@ -68,7 +77,7 @@ do
 	for device in $devices
 	do
 		dbus-send --system --print-reply --dest=org.freedesktop.Hal \
-			  $device org.freedesktop.Hal.Device.Rescan
+			  $device org.freedesktop.Hal.Device.Rescan > /dev/null 2>&1
 	done
 done
 
diff --git a/tools/linux/hal-system-power-suspend-linux b/tools/linux/hal-system-power-suspend-linux
index 59cde73..8be9755 100755
--- a/tools/linux/hal-system-power-suspend-linux
+++ b/tools/linux/hal-system-power-suspend-linux
@@ -62,8 +62,17 @@ elif [ -f "/etc/redhat-release" ] || [ -
 	# TODO: fixup pm-suspend to define erroc code (see alarm above) and throw
 	#	   the appropriate exception
 	if [ -x "/usr/sbin/pm-suspend" ] ; then
-		/usr/sbin/pm-suspend
+		rm -f /var/lib/hal/system-power-suspend-output
+		touch /var/lib/hal/system-power-suspend-output
+		chmod 644 /var/lib/hal/system-power-suspend-output
+		echo "==== Kernel version: ====" >> /var/lib/hal/system-power-suspend-output
+		/bin/uname -a >> /var/lib/hal/system-power-suspend-output
+		echo "==== Modules loaded before suspending: ====" >> /var/lib/hal/system-power-suspend-output
+		/sbin/lsmod >> /var/lib/hal/system-power-suspend-output
+		echo "==== Output of /usr/sbin/pm-suspend ====" >> /var/lib/hal/system-power-suspend-output
+		/bin/bash -x /usr/sbin/pm-suspend >> /var/lib/hal/system-power-suspend-output 2>&1
 		RET=$?
+		echo "==== DONE ====" >> /var/lib/hal/system-power-suspend-output
 	else
 		# TODO: add support
 		unsupported
@@ -103,7 +112,7 @@ do
 	for device in $devices
 	do
 		dbus-send --system --print-reply --dest=org.freedesktop.Hal \
-			  $device org.freedesktop.Hal.Device.Rescan
+			  $device org.freedesktop.Hal.Device.Rescan > /dev/null 2>&1
 	done
 done
 
--- /dev/null	2006-11-08 11:09:00.112654773 -0500
+++ b/tools/hal-system-power-suspend-clear-error	2006-11-06 16:44:56.000000000 -0500
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+rm -f /var/lib/hal/system-power-suspend-output
--- /dev/null	2006-11-08 11:09:00.112654773 -0500
+++ b/tools/hal-system-power-hibernate-clear-error	2006-11-06 16:45:09.000000000 -0500
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+rm -f /var/lib/hal/system-power-hibernate-output
diff --git a/hald/haldaemon.in b/hald/haldaemon.in
index 004ec2c..0e0a519 100755
--- a/hald/haldaemon.in
+++ b/hald/haldaemon.in
@@ -40,6 +40,8 @@ stop() {
     if [ $RETVAL -eq 0 ]; then
         rm -f @LOCALSTATEDIR@/lock/subsys/$servicename
         rm -f @HALD_PID_FILE@
+	rm -f /var/lib/hal/system-power-hibernate-output
+	rm -f /var/lib/hal/system-power-suspend-output
     fi
 }