[Pkg-utopia-commits] r604 - in packages/experimental/hal/debian: .
patches
Sjoerd Simons
sjoerd at costa.debian.org
Fri Feb 17 21:01:48 UTC 2006
Author: sjoerd
Date: 2006-02-17 21:01:03 +0000 (Fri, 17 Feb 2006)
New Revision: 604
Removed:
packages/experimental/hal/debian/patches/01_hal_privsep.patch
packages/experimental/hal/debian/patches/03_storage_sigio.patch
packages/experimental/hal/debian/patches/04_hald-no-patch.patch
packages/experimental/hal/debian/patches/05_hald_clear_udev_buffer.patch
Modified:
packages/experimental/hal/debian/changelog
Log:
* CVS snapshot
* debian/patches/01_hal_privsep.patch
+ Removed. Fixed upstream
* debian/patches/03_storage_sigio.patch
+ Removed. Fixed upstream
* debian/patches/04_hald-no-patch.patch
+ Removed. Fixed upstream
* debian/patches/05_hald_clear_udev_buffer.patch
+ Removed. Fixed upstream
Modified: packages/experimental/hal/debian/changelog
===================================================================
--- packages/experimental/hal/debian/changelog 2006-02-17 20:56:32 UTC (rev 603)
+++ packages/experimental/hal/debian/changelog 2006-02-17 21:01:03 UTC (rev 604)
@@ -1,3 +1,17 @@
+hal (0.5.6+cvs20060217-1) experimental; urgency=low
+
+ * CVS snapshot
+ * debian/patches/01_hal_privsep.patch
+ + Removed. Fixed upstream
+ * debian/patches/03_storage_sigio.patch
+ + Removed. Fixed upstream
+ * debian/patches/04_hald-no-patch.patch
+ + Removed. Fixed upstream
+ * debian/patches/05_hald_clear_udev_buffer.patch
+ + Removed. Fixed upstream
+
+ -- Sjoerd Simons <sjoerd at debian.org> Fri, 17 Feb 2006 21:56:49 +0100
+
hal (0.5.6-4) unstable; urgency=high
* debian/patches/05_hald_clear_udev_buffer.patch
Deleted: packages/experimental/hal/debian/patches/01_hal_privsep.patch
===================================================================
--- packages/experimental/hal/debian/patches/01_hal_privsep.patch 2006-02-17 20:56:32 UTC (rev 603)
+++ packages/experimental/hal/debian/patches/01_hal_privsep.patch 2006-02-17 21:01:03 UTC (rev 604)
@@ -1,4134 +0,0 @@
-diff -ruN hal-0.5.6-old/Makefile.am hal-0.5.6/Makefile.am
---- hal-0.5.6-old/Makefile.am 2005-08-26 22:27:21.000000000 +0200
-+++ hal-0.5.6/Makefile.am 2006-02-12 17:58:28.000000000 +0100
-@@ -1,7 +1,7 @@
- ## Process this file with automake to produce Makefile.in
-
--SUBDIRS = volume_id drive_id libhal libhal-storage hald tools fdi doc \
-- examples po
-+SUBDIRS = volume_id drive_id libhal libhal-storage hald hald-runner tools \
-+ fdi doc examples po
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = hal.pc hal-storage.pc
-diff -ruN hal-0.5.6-old/Makefile.in hal-0.5.6/Makefile.in
---- hal-0.5.6-old/Makefile.in 2006-01-17 02:07:51.000000000 +0100
-+++ hal-0.5.6/Makefile.in 2006-02-12 17:58:28.000000000 +0100
-@@ -295,8 +295,8 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
--SUBDIRS = volume_id drive_id libhal libhal-storage hald tools fdi doc \
-- examples po
-+SUBDIRS = volume_id drive_id libhal libhal-storage hald hald-runner tools \
-+ fdi doc examples po
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = hal.pc hal-storage.pc
-diff -ruN hal-0.5.6-old/configure hal-0.5.6/configure
---- hal-0.5.6-old/configure 2006-01-17 01:26:24.000000000 +0100
-+++ hal-0.5.6/configure 2006-02-12 17:58:28.000000000 +0100
-@@ -1201,7 +1201,7 @@
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
-- cd $ac_popdir
-+ cd "$ac_popdir"
- done
- fi
-
-@@ -2666,8 +2666,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -2725,8 +2724,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -2842,8 +2840,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -2897,8 +2894,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -2943,8 +2939,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -2988,8 +2983,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3176,8 +3170,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3231,8 +3224,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3631,8 +3623,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3690,8 +3681,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3807,8 +3797,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3862,8 +3851,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3908,8 +3896,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -3953,8 +3940,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4469,8 +4455,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4528,8 +4513,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4645,8 +4629,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4700,8 +4683,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4746,8 +4728,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -4791,8 +4772,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -5226,8 +5206,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -5963,7 +5942,7 @@
- ;;
- *-*-irix6*)
- # Find out which ABI we are using.
-- echo '#line 5966 "configure"' > conftest.$ac_ext
-+ echo '#line 5945 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -6083,8 +6062,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6183,8 +6161,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6251,8 +6228,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6512,8 +6488,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6571,8 +6546,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6643,8 +6617,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -6688,8 +6661,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -7161,7 +7133,7 @@
-
-
- # Provide some information about the compiler.
--echo "$as_me:7164:" \
-+echo "$as_me:7136:" \
- "checking for Fortran 77 compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
- { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-@@ -7207,8 +7179,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_f77_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -7257,8 +7228,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_f77_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -8224,11 +8194,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:8227: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:8197: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:8231: \$? = $ac_status" >&5
-+ echo "$as_me:8201: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -8492,11 +8462,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:8495: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:8465: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:8499: \$? = $ac_status" >&5
-+ echo "$as_me:8469: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -8596,11 +8566,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:8599: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:8569: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:8603: \$? = $ac_status" >&5
-+ echo "$as_me:8573: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -9072,8 +9042,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -9133,8 +9102,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10065,7 +10033,7 @@
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
-- echo '#line 10068 "configure"' > conftest.$ac_ext
-+ echo '#line 10036 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -10422,8 +10390,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10526,8 +10493,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10592,8 +10558,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10686,8 +10651,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10752,8 +10716,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10819,8 +10782,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10886,8 +10848,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -10962,7 +10923,7 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
--#line 10965 "configure"
-+#line 10926 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11062,7 +11023,7 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
--#line 11065 "configure"
-+#line 11026 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -12145,8 +12106,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -12207,8 +12167,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_cxx_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -13402,11 +13361,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:13405: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:13364: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:13409: \$? = $ac_status" >&5
-+ echo "$as_me:13368: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -13506,11 +13465,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:13509: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:13468: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:13513: \$? = $ac_status" >&5
-+ echo "$as_me:13472: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -14042,7 +14001,7 @@
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
-- echo '#line 14045 "configure"' > conftest.$ac_ext
-+ echo '#line 14004 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -15097,11 +15056,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:15100: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:15059: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:15104: \$? = $ac_status" >&5
-+ echo "$as_me:15063: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -15201,11 +15160,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:15204: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:15163: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:15208: \$? = $ac_status" >&5
-+ echo "$as_me:15167: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -15667,8 +15626,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_f77_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -15718,8 +15676,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_f77_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -16650,7 +16607,7 @@
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
-- echo '#line 16653 "configure"' > conftest.$ac_ext
-+ echo '#line 16610 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -17425,11 +17382,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:17428: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:17385: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:17432: \$? = $ac_status" >&5
-+ echo "$as_me:17389: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -17693,11 +17650,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:17696: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:17653: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:17700: \$? = $ac_status" >&5
-+ echo "$as_me:17657: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -17797,11 +17754,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:17800: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:17757: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:17804: \$? = $ac_status" >&5
-+ echo "$as_me:17761: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -18273,8 +18230,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -18334,8 +18290,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -19266,7 +19221,7 @@
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
-- echo '#line 19269 "configure"' > conftest.$ac_ext
-+ echo '#line 19224 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -20708,8 +20663,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -20738,8 +20692,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -20809,8 +20762,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -20862,8 +20814,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -20934,8 +20885,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -20987,8 +20937,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -21057,8 +21006,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -21358,8 +21306,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -21517,8 +21464,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -22029,8 +21975,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -22183,8 +22128,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -22566,8 +22510,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -22635,8 +22578,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23092,8 +23034,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23529,8 +23470,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23675,8 +23615,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23747,8 +23686,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23892,8 +23830,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -23951,8 +23888,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24049,8 +23985,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24129,8 +24064,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24194,8 +24128,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24259,8 +24192,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24337,8 +24269,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24402,8 +24333,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24519,8 +24449,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24687,8 +24616,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24821,8 +24749,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -24907,8 +24834,7 @@
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-@@ -25063,7 +24989,7 @@
- < $srcdir/po/POTFILES.in > po/POTFILES
-
-
-- ac_config_files="$ac_config_files hal.pc hal-storage.pc hal.conf Makefile hald/Makefile hald/dummy/Makefile hald/linux2/Makefile hald/linux2/probing/Makefile hald/linux2/addons/Makefile hald/solaris/Makefile hald/haldaemon libhal/Makefile libhal-storage/Makefile tools/Makefile tools/fstab-sync.8 tools/linux/Makefile tools/device-manager/hal-device-manager tools/device-manager/Makefile tools/device-manager/Const.py fdi/Makefile fdi/preprobe/Makefile fdi/preprobe/10osvendor/Makefile fdi/preprobe/20thirdparty/Makefile fdi/preprobe/30user/Makefile fdi/information/Makefile fdi/information/10freedesktop/Makefile fdi/information/20thirdparty/Makefile fdi/information/30user/Makefile fdi/policy/Makefile fdi/policy/10osvendor/Makefile fdi/policy/20thirdparty/Makefile fdi/policy/30user/Makefile doc/Makefile doc/api/Makefile doc/api/Doxyfile doc/conf/Makefile doc/spec/Makefile doc/spec/hal-spec.xml examples/Makefile examples/volumed/Makefile po/Makefile.in drive_id/Makefile volume_id/Makefile tools/hal-luks-setup tools/hal-luks-remove"
-+ ac_config_files="$ac_config_files hal.pc hal-storage.pc hal.conf Makefile hald/Makefile hald-runner/Makefile hald/dummy/Makefile hald/linux2/Makefile hald/linux2/probing/Makefile hald/linux2/addons/Makefile hald/solaris/Makefile hald/haldaemon libhal/Makefile libhal-storage/Makefile tools/Makefile tools/fstab-sync.8 tools/linux/Makefile tools/device-manager/hal-device-manager tools/device-manager/Makefile tools/device-manager/Const.py fdi/Makefile fdi/preprobe/Makefile fdi/preprobe/10osvendor/Makefile fdi/preprobe/20thirdparty/Makefile fdi/preprobe/30user/Makefile fdi/information/Makefile fdi/information/10freedesktop/Makefile fdi/information/20thirdparty/Makefile fdi/information/30user/Makefile fdi/policy/Makefile fdi/policy/10osvendor/Makefile fdi/policy/20thirdparty/Makefile fdi/policy/30user/Makefile doc/Makefile doc/api/Makefile doc/api/Doxyfile doc/conf/Makefile doc/spec/Makefile doc/spec/hal-spec.xml examples/Makefile examples/volumed/Makefile po/Makefile.in drive_id/Makefile volume_id/Makefile tools/hal-luks-setup tools/hal-luks-remove"
- cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
- # tests run on this system so they can be shared between configure
-@@ -25754,6 +25680,7 @@
- "hal.conf" ) CONFIG_FILES="$CONFIG_FILES hal.conf" ;;
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "hald/Makefile" ) CONFIG_FILES="$CONFIG_FILES hald/Makefile" ;;
-+ "hald-runner/Makefile" ) CONFIG_FILES="$CONFIG_FILES hald-runner/Makefile" ;;
- "hald/dummy/Makefile" ) CONFIG_FILES="$CONFIG_FILES hald/dummy/Makefile" ;;
- "hald/linux2/Makefile" ) CONFIG_FILES="$CONFIG_FILES hald/linux2/Makefile" ;;
- "hald/linux2/probing/Makefile" ) CONFIG_FILES="$CONFIG_FILES hald/linux2/probing/Makefile" ;;
-@@ -26229,11 +26156,6 @@
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
-- if test x"$ac_file" != x-; then
-- { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
-- rm -f "$ac_file"
-- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
-@@ -26272,6 +26194,12 @@
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-+
-+ if test x"$ac_file" != x-; then
-+ { echo "$as_me:$LINENO: creating $ac_file" >&5
-+echo "$as_me: creating $ac_file" >&6;}
-+ rm -f "$ac_file"
-+ fi
- _ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-diff -ruN hal-0.5.6-old/configure.in hal-0.5.6/configure.in
---- hal-0.5.6-old/configure.in 2006-01-17 01:25:32.000000000 +0100
-+++ hal-0.5.6/configure.in 2006-02-12 17:58:28.000000000 +0100
-@@ -480,6 +480,7 @@
- hal.conf
- Makefile
- hald/Makefile
-+hald-runner/Makefile
- hald/dummy/Makefile
- hald/linux2/Makefile
- hald/linux2/probing/Makefile
-diff -ruN hal-0.5.6-old/hald/Makefile.am hal-0.5.6/hald/Makefile.am
---- hal-0.5.6-old/hald/Makefile.am 2005-12-08 19:23:23.000000000 +0100
-+++ hal-0.5.6/hald/Makefile.am 2006-02-12 17:58:28.000000000 +0100
-@@ -40,6 +40,7 @@
- hald_SOURCES = \
- hald_marshal.h hald_marshal.c \
- util.h util.c \
-+ hald_runner.h hald_runner.c \
- device.h device.c \
- device_info.h device_info.c \
- device_store.h device_store.c \
-diff -ruN hal-0.5.6-old/hald/Makefile.in hal-0.5.6/hald/Makefile.in
---- hal-0.5.6-old/hald/Makefile.in 2006-01-17 02:07:48.000000000 +0100
-+++ hal-0.5.6/hald/Makefile.in 2006-02-12 17:58:28.000000000 +0100
-@@ -53,9 +53,9 @@
- sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
- PROGRAMS = $(sbin_PROGRAMS)
- am_hald_OBJECTS = hald_marshal.$(OBJEXT) util.$(OBJEXT) \
-- device.$(OBJEXT) device_info.$(OBJEXT) device_store.$(OBJEXT) \
-- hald.$(OBJEXT) hald_dbus.$(OBJEXT) logger.$(OBJEXT) \
-- property.$(OBJEXT)
-+ hald_runner.$(OBJEXT) device.$(OBJEXT) device_info.$(OBJEXT) \
-+ device_store.$(OBJEXT) hald.$(OBJEXT) hald_dbus.$(OBJEXT) \
-+ logger.$(OBJEXT) property.$(OBJEXT)
- hald_OBJECTS = $(am_hald_OBJECTS)
- hald_DEPENDENCIES = $(top_builddir)/hald/$(HALD_BACKEND)/libhald_$(HALD_BACKEND).la
- initdSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-@@ -323,6 +323,7 @@
- hald_SOURCES = \
- hald_marshal.h hald_marshal.c \
- util.h util.c \
-+ hald_runner.h hald_runner.c \
- device.h device.c \
- device_info.h device_info.c \
- device_store.h device_store.c \
-@@ -442,6 +443,7 @@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hald.Po at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hald_dbus.Po at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hald_marshal.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hald_runner.Po at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/logger.Po at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/property.Po at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/util.Po at am__quote@
-diff -ruN hal-0.5.6-old/hald/hald.c hal-0.5.6/hald/hald.c
---- hal-0.5.6-old/hald/hald.c 2006-01-13 03:24:10.000000000 +0100
-+++ hal-0.5.6/hald/hald.c 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: hald.c,v 1.45 2006/01/12 17:48:44 dkukawka Exp $
-+ * CVSID: $Id: hald.c,v 1.47 2006/01/21 16:54:04 david Exp $
- *
- * hald.c : main startup for HAL daemon
- *
-@@ -55,6 +55,7 @@
- #include "osspec.h"
- #include "hald_dbus.h"
- #include "util.h"
-+#include "hald_runner.h"
-
- static void delete_pid(void)
- {
-@@ -71,15 +72,6 @@
-
- static HalDeviceStore *temporary_device_list = NULL;
-
--static GSList *running_addons = NULL;
--
--static void
--addon_terminated (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
--{
-- running_addons = g_slist_remove (running_addons, helper_data);
--}
--
- static void
- gdl_store_changed (HalDeviceStore *store, HalDevice *device,
- gboolean is_added, gpointer user_data)
-@@ -94,45 +86,18 @@
-
- for (i = addons; i != NULL; i = g_slist_next (i)) {
- const gchar *command_line;
-- HalHelperData *helper_data;
- gchar *extra_env[2] = {"HALD_ACTION=addon", NULL};
-
- command_line = (const gchar *) i->data;
-- helper_data = hal_util_helper_invoke (command_line, extra_env, device,
-- NULL, NULL,
-- addon_terminated, 0 /* no timeout */);
--
-- if (helper_data != NULL) {
-- HAL_INFO (("Invoked addon %s with pid %d for udi %s",
-- command_line, helper_data->pid, helper_data->d->udi));
-- running_addons = g_slist_prepend (running_addons, helper_data);
-- }
-+ hald_runner_start (device, command_line, extra_env);
-+
-+ HAL_INFO (("Started addon %s for udi %s",
-+ command_line, hal_device_get_udi(device)));
- }
- }
- } else {
-- GSList *i;
--
- HAL_INFO (("Removed device from GDL; udi=%s", hal_device_get_udi(device)));
--
-- start_from_beginning:
--
-- /* may have several addons running */
-- for (i = running_addons; i != NULL; i = g_slist_next (i)) {
-- HalHelperData *helper_data;
--
-- helper_data = (HalHelperData *) (i->data);
-- if (helper_data->d == device) {
-- HAL_INFO (("Terminating addon with pid %d for udi %s",
-- helper_data->pid, helper_data->d->udi));
-- /* will force a callback - the callback removes us from the list */
-- hal_util_terminate_helper (helper_data);
-- /* TODO: is it safe to remove an elem from a GSList and keep iterating?
-- * Better play it safe for now.
-- */
-- goto start_from_beginning;
-- }
-- }
--
-+ hald_runner_kill_device(device);
- }
-
- /*hal_device_print (device);*/
-@@ -215,8 +180,6 @@
- " --use-syslog Print out debug messages to syslog instead of stderr.\n"
- " Use this option to get debug messages if HAL runs as\n"
- " daemon.\n"
-- " --retain-privileges Run as root instead of normal user (calling of\n"
-- " external scripts to modify fstab etc. will work)\n"
- " --help Show this information and exit\n"
- " --version Output version information and exit"
- "\n"
-@@ -261,7 +224,6 @@
- GError *err = NULL;
- gchar data[1];
- gsize bytes_read;
-- unsigned int num_helpers;
-
- /* Empty the pipe */
- if (G_IO_STATUS_NORMAL !=
-@@ -273,8 +235,7 @@
- }
-
- HAL_INFO (("Caught SIGTERM, initiating shutdown"));
-- num_helpers = hal_util_kill_all_helpers ();
-- HAL_INFO (("Killed %d helpers; exiting"));
-+ hald_runner_kill_all();
- exit (0);
-
- out:
-@@ -404,13 +365,9 @@
- {
- GMainLoop *loop;
- guint sigterm_iochn_listener_source_id;
-- gboolean retain_privs;
- char *path;
- char newpath[512];
-
-- retain_privs = FALSE;
--
--
- openlog ("hald", LOG_PID, LOG_DAEMON);
-
- g_type_init ();
-@@ -443,7 +400,6 @@
- {"verbose", 1, NULL, 0},
- {"use-syslog", 0, NULL, 0},
- {"help", 0, NULL, 0},
-- {"retain-privileges", 0, NULL, 0},
- {"version", 0, NULL, 0},
- {NULL, 0, NULL, 0}
- };
-@@ -481,8 +437,6 @@
- usage ();
- return 1;
- }
-- } else if (strcmp (opt, "retain-privileges") == 0) {
-- retain_privs = TRUE;
- } else if (strcmp (opt, "use-syslog") == 0) {
- hald_use_syslog = TRUE;
- }
-@@ -606,13 +560,16 @@
- /* set up the local dbus server */
- if (!hald_dbus_local_server_init ())
- return 1;
-+ /* Start the runner helper daemon */
-+ if (!hald_runner_start_runner ()) {
-+ return 1;
-+ }
-+
-+ drop_privileges();
-
- /* initialize operating system specific parts */
- osspec_init ();
-
-- if (!retain_privs)
-- drop_privileges();
--
- hald_is_initialising = TRUE;
-
- /* detect devices */
-@@ -659,7 +616,7 @@
- HAL_INFO (("Device probing completed"));
-
- if (!hald_dbus_init ()) {
-- hal_util_kill_all_helpers ();
-+ hald_runner_kill_all();
- exit (1);
- }
-
-diff -ruN hal-0.5.6-old/hald/hald_dbus.c hal-0.5.6/hald/hald_dbus.c
---- hal-0.5.6-old/hald/hald_dbus.c 2006-01-13 03:24:10.000000000 +0100
-+++ hal-0.5.6/hald/hald_dbus.c 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: hald_dbus.c,v 1.48 2006/01/12 17:48:44 dkukawka Exp $
-+ * CVSID: $Id: hald_dbus.c,v 1.53 2006/01/21 16:54:04 david Exp $
- *
- * dbus.c : D-BUS interface of HAL daemon
- *
-@@ -46,6 +46,7 @@
- #include "logger.h"
- #include "osspec.h"
- #include "util.h"
-+#include "hald_runner.h"
-
- static DBusConnection *dbus_connection = NULL;
-
-@@ -1540,7 +1541,7 @@
- {
- dbus_bool_t rc;
- const char *udi;
-- const char *caps;
-+ GSList *caps;
- char *capability;
- HalDevice *d;
- DBusMessage *reply;
-@@ -1573,23 +1574,18 @@
- DIE (("No memory"));
-
- rc = FALSE;
-- caps = hal_device_property_get_string (d, "info.capabilities");
-+ caps = hal_device_property_get_strlist (d, "info.capabilities");
- if (caps != NULL) {
-- char **capsv, **iter;
-+ GSList *iter;
-
-- capsv = g_strsplit (caps, " ", 0);
-- for (iter = capsv; *iter != NULL; iter++) {
-- if (strcmp (*iter, capability) == 0) {
-+ for (iter = caps; iter != NULL; iter=g_slist_next(iter)) {
-+ if (strcmp (iter->data, capability) == 0) {
- rc = TRUE;
- break;
- }
- }
--
-- g_strfreev (capsv);
- }
-
-- dbus_free (capability);
--
- dbus_message_iter_init_append (reply, &iter);
- dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &rc);
-
-@@ -2482,54 +2478,36 @@
- }
-
- static void
--hald_exec_method_cb (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+hald_exec_method_cb (HalDevice *d, guint32 exit_type,
-+ gint return_code, gchar **error,
-+ gpointer data1, gpointer data2)
- {
- dbus_uint32_t result;
-- DBusMessage *reply;
-+ DBusMessage *reply = NULL;
- DBusMessage *message;
- DBusMessageIter iter;
-- int *stderr_fd;
-- char buf[512]; /* TODO: don't hardcode error message size */
-- char *exp_name;
-- char *exp_detail;
-+ gchar *exp_name = NULL;
-+ gchar *exp_detail = NULL;
-
- message = (DBusMessage *) data1;
-- stderr_fd = (int *) data2;
--
-- exp_name = NULL;
-- exp_detail = NULL;
--
-- /* read back possible error conditions from stderr */
-- if (stderr_fd != NULL) {
-- ssize_t num_read;
--
-- num_read = read (*stderr_fd, buf, sizeof (buf) - 2);
-- buf[sizeof (buf) - 2] = '\0';
-- buf[sizeof (buf) - 1] = '\0';
-- if (num_read > 0) {
-- char *p;
-- char *s;
-- p = buf;
-- for (s = p; *s != '\n' && *s != '\0'; s++)
-- ;
-- if (*s != '\0') {
-- exp_name = g_strndup (p, s - p);
-- p = s + 1;
-- for (s = p; *s != '\n' && *s != '\0'; s++)
-- ;
-- if (*s != '\0') {
-- exp_detail = g_strndup (p, s - p);
-- }
-- }
-+
-+ if (exit_type == HALD_RUN_SUCCESS && error != NULL &&
-+ error[0] != NULL && error[1] != NULL) {
-+ exp_name = error[0];
-+ if (error[0] != NULL) {
-+ exp_detail = error[1];
- }
-- }
--
-- if (exp_name != NULL && exp_detail != NULL) {
- HAL_INFO (("failed with '%s' '%s'", exp_name, exp_detail));
--
-- /* throw exception */
--
-+ }
-+
-+ if (exit_type != HALD_RUN_SUCCESS) {
-+ reply = dbus_message_new_error (message, "org.freedesktop.Hal.Device.UnknownError", "An unknown error occured");
-+ if (dbus_connection != NULL) {
-+ if (!dbus_connection_send (dbus_connection, reply, NULL))
-+ DIE (("No memory"));
-+ }
-+ dbus_message_unref (reply);
-+ } else if (exp_name != NULL && exp_detail != NULL) {
- reply = dbus_message_new_error (message, exp_name, exp_detail);
- if (reply == NULL) {
- /* error name may be invalid - assume caller fucked up and use a generic HAL error name */
-@@ -2563,21 +2541,14 @@
- }
-
- dbus_message_unref (message);
-- g_free (stderr_fd);
-- g_free (exp_name);
-- g_free (exp_detail);
- }
-
- static DBusHandlerResult
- hald_exec_method (HalDevice *d, DBusConnection *connection, DBusMessage *message, const char *execpath)
- {
- int type;
-- char *stdin;
- GString *stdin_str;
- DBusMessageIter iter;
-- int stdin_fd;
-- int *stderr_fd;
-- ssize_t written;
- const char *sender;
- char *extra_env[2];
- char uid_export[128];
-@@ -2700,21 +2671,15 @@
- dbus_message_iter_next (&iter);
- }
-
-- stdin = g_string_free (stdin_str, FALSE);
--
-- stderr_fd = (int *) g_new0 (int, 1);
--
- /* no timeout */
-- if (hal_util_helper_invoke_with_pipes (execpath, extra_env, d,
-- (gpointer) message, (gpointer) stderr_fd,
-- hald_exec_method_cb, 0, &stdin_fd, NULL, stderr_fd) != NULL) {
-- written = write (stdin_fd, stdin, strlen (stdin));
-- close (stdin_fd);
-- }
--
-+ hald_runner_run_method(d,
-+ execpath, extra_env,
-+ stdin_str->str, TRUE,
-+ 0,
-+ hald_exec_method_cb,
-+ (gpointer) message, NULL);
- dbus_message_ref (message);
--
-- g_free (stdin);
-+ g_string_free (stdin_str, TRUE);
-
- return DBUS_HANDLER_RESULT_HANDLED;
-
-diff -ruN hal-0.5.6-old/hald/hald_dbus.h hal-0.5.6/hald/hald_dbus.h
---- hal-0.5.6-old/hald/hald_dbus.h 2005-11-02 16:38:13.000000000 +0100
-+++ hal-0.5.6/hald/hald_dbus.h 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: hald_dbus.h,v 1.10 2005/11/02 15:38:13 david Exp $
-+ * CVSID: $Id: hald_dbus.h,v 1.11 2006/01/21 02:45:27 david Exp $
- *
- * hal_dbus.h : D-BUS interface of HAL daemon
- *
-@@ -94,6 +94,4 @@
- DBusHandlerResult hald_dbus_filter_function (DBusConnection * connection, DBusMessage * message, void *user_data);
-
- char *hald_dbus_local_server_addr (void);
--
--
- #endif /* HAL_DBUS_H */
-diff -ruN hal-0.5.6-old/hald/hald_runner.c hal-0.5.6/hald/hald_runner.c
---- hal-0.5.6-old/hald/hald_runner.c 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald/hald_runner.c 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,430 @@
-+/***************************************************************************
-+ * CVSID: $Id: hald_runner.c,v 1.5 2006/01/21 19:08:27 david Exp $
-+ *
-+ * hald_runner.c - Interface to the hal runner helper daemon
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+
-+#include <glib.h>
-+#include <dbus/dbus.h>
-+#include <dbus/dbus-glib-lowlevel.h>
-+
-+#include "hald.h"
-+#include "util.h"
-+#include "logger.h"
-+#include "hald_dbus.h"
-+#include "hald_runner.h"
-+
-+typedef struct {
-+ HalDevice *d;
-+ HalRunTerminatedCB cb;
-+ gpointer data1;
-+ gpointer data2;
-+} HelperData;
-+
-+#define DBUS_SERVER_ADDRESS "unix:tmpdir=/tmp/hald-runner"
-+
-+static DBusConnection *runner_connection = NULL;
-+
-+static void
-+handle_connection(DBusServer *server,
-+ DBusConnection *new_connection,
-+ void *data) {
-+
-+ if (runner_connection == NULL) {
-+ runner_connection = new_connection;
-+ dbus_connection_ref (new_connection);
-+ dbus_connection_setup_with_g_main (new_connection, NULL);
-+ /* dbus_server_unref(server); */
-+ }
-+}
-+
-+static void
-+runner_died(GPid pid, gint status, gpointer data) {
-+ g_spawn_close_pid (pid);
-+ DIE (("Runner died"));
-+}
-+
-+gboolean
-+hald_runner_start_runner(void)
-+{
-+ DBusServer *server = NULL;
-+ DBusError err;
-+ GError *error = NULL;
-+ GPid pid;
-+ char *argv[] = { NULL, NULL};
-+ char *env[] = { NULL, NULL, NULL, NULL};
-+ const char *hald_runner_path;
-+
-+ dbus_error_init(&err);
-+ server = dbus_server_listen(DBUS_SERVER_ADDRESS, &err);
-+ if (server == NULL) {
-+ HAL_ERROR (("Cannot create D-BUS server for the runner"));
-+ goto error;
-+ }
-+
-+ dbus_server_setup_with_g_main(server, NULL);
-+ dbus_server_set_new_connection_function(server, handle_connection,
-+ NULL, NULL);
-+ argv[0] = "hald-runner";
-+ env[0] = g_strdup_printf("HALD_RUNNER_DBUS_ADDRESS=%s",
-+ dbus_server_get_address(server));
-+ hald_runner_path = g_getenv("HALD_RUNNER_PATH");
-+ if (hald_runner_path != NULL) {
-+ env[1] = g_strdup_printf ("PATH=%s:" PACKAGE_LIBEXEC_DIR ":" PACKAGE_SCRIPT_DIR, hald_runner_path);
-+ } else {
-+ env[1] = g_strdup_printf ("PATH=" PACKAGE_LIBEXEC_DIR ":" PACKAGE_SCRIPT_DIR);
-+ }
-+
-+ /*env[2] = "DBUS_VERBOSE=1";*/
-+
-+
-+ if (!g_spawn_async(NULL, argv, env, G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH,
-+ NULL, NULL, &pid, &error)) {
-+ HAL_ERROR (("Could not spawn runner : '%s'", error->message));
-+ g_error_free (error);
-+ goto error;
-+ }
-+ g_free(env[0]);
-+ g_free(env[1]);
-+
-+ HAL_INFO (("Runner has pid %d", pid));
-+
-+ g_child_watch_add(pid, runner_died, NULL);
-+ while (runner_connection == NULL) {
-+ /* Wait for the runner */
-+ g_main_context_iteration(NULL, TRUE);
-+ }
-+ return TRUE;
-+
-+error:
-+ if (server != NULL)
-+ dbus_server_unref(server);
-+ return FALSE;
-+}
-+
-+static gboolean
-+add_property_to_msg (HalDevice *device, HalProperty *property,
-+ gpointer user_data)
-+{
-+ char *prop_upper, *value;
-+ char *c;
-+ gchar *env;
-+ DBusMessageIter *iter = (DBusMessageIter *)user_data;
-+
-+ prop_upper = g_ascii_strup (hal_property_get_key (property), -1);
-+
-+ /* periods aren't valid in the environment, so replace them with
-+ * underscores. */
-+ for (c = prop_upper; *c; c++) {
-+ if (*c == '.')
-+ *c = '_';
-+ }
-+
-+ value = hal_property_to_string (property);
-+ env = g_strdup_printf ("HAL_PROP_%s=%s", prop_upper, value);
-+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &env);
-+
-+ g_free (env);
-+ g_free (value);
-+ g_free (prop_upper);
-+
-+ return TRUE;
-+}
-+
-+static void
-+add_env(DBusMessageIter *iter, const gchar *key, const gchar *value) {
-+ gchar *env;
-+ env = g_strdup_printf ("%s=%s", key, value);
-+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &env);
-+ g_free(env);
-+}
-+
-+static void
-+add_basic_env(DBusMessageIter *iter, const gchar *udi) {
-+ if (hald_is_verbose) {
-+ add_env(iter, "HALD_VERBOSE", "1");
-+ }
-+ if (hald_is_initialising) {
-+ add_env(iter, "HALD_STARTUP", "1");
-+ }
-+ add_env(iter, "UDI", udi);
-+ add_env(iter, "HALD_DIRECT_ADDR", hald_dbus_local_server_addr());
-+}
-+
-+static void
-+add_extra_env(DBusMessageIter *iter, gchar **env) {
-+ int i;
-+ if (env != NULL) for (i = 0; env[i] != NULL; i++) {
-+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &env[i]);
-+ }
-+}
-+
-+static gboolean
-+add_command(DBusMessageIter *iter, const gchar *command_line) {
-+ gint argc;
-+ gint x;
-+ char **argv;
-+ GError *err = NULL;
-+ DBusMessageIter array_iter;
-+
-+ if (!g_shell_parse_argv(command_line, &argc, &argv, &err)) {
-+ HAL_ERROR (("Error parsing commandline '%s': %s",
-+ command_line, err->message));
-+ g_error_free (err);
-+ return FALSE;
-+ }
-+ if (!dbus_message_iter_open_container(iter,
-+ DBUS_TYPE_ARRAY,
-+ DBUS_TYPE_STRING_AS_STRING,
-+ &array_iter))
-+ DIE (("No memory"));
-+ for (x = 0 ; argv[x] != NULL; x++) {
-+ dbus_message_iter_append_basic(&array_iter, DBUS_TYPE_STRING, &argv[x]);
-+ }
-+ dbus_message_iter_close_container(iter, &array_iter);
-+
-+ g_strfreev(argv);
-+ return TRUE;
-+}
-+
-+static gboolean
-+add_first_part(DBusMessageIter *iter, HalDevice *device,
-+ const gchar *command_line, char **extra_env) {
-+ DBusMessageIter array_iter;
-+ const char *udi;
-+
-+ udi = hal_device_get_udi(device);
-+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &udi);
-+
-+ dbus_message_iter_open_container(iter,
-+ DBUS_TYPE_ARRAY,
-+ DBUS_TYPE_STRING_AS_STRING,
-+ &array_iter);
-+ hal_device_property_foreach (device, add_property_to_msg, &array_iter);
-+ add_basic_env(&array_iter, udi);
-+ add_extra_env(&array_iter, extra_env);
-+ dbus_message_iter_close_container(iter, &array_iter);
-+
-+ if (!add_command(iter, command_line)) {
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+/* Start a helper, returns true on a successfull start */
-+gboolean
-+hald_runner_start(HalDevice *device,
-+ const gchar *command_line, char **extra_env) {
-+ DBusMessage *msg, *reply;
-+ DBusError err;
-+ DBusMessageIter iter;
-+
-+ dbus_error_init(&err);
-+ msg = dbus_message_new_method_call("org.freedesktop.HalRunner",
-+ "/org/freedesktop/HalRunner",
-+ "org.freedesktop.HalRunner",
-+ "Start");
-+ if (msg == NULL)
-+ DIE(("No memory"));
-+ dbus_message_iter_init_append(msg, &iter);
-+
-+ if (!add_first_part(&iter, device, command_line, extra_env))
-+ goto error;
-+
-+ /* Wait for the reply, should be almost instantanious */
-+ reply =
-+ dbus_connection_send_with_reply_and_block(runner_connection,
-+ msg, -1, &err);
-+ if (reply) {
-+ gboolean ret =
-+ (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_METHOD_RETURN);
-+ dbus_message_unref(reply);
-+ dbus_message_unref(msg);
-+ return ret;
-+ }
-+
-+error:
-+ dbus_message_unref(msg);
-+ return FALSE;
-+}
-+
-+static void
-+call_notify(DBusPendingCall *pending, void *user_data)
-+{
-+ HelperData *hb = (HelperData *)user_data;
-+ dbus_uint32_t exitt = HALD_RUN_SUCCESS;
-+ dbus_int32_t return_code = 0;
-+ DBusMessage *m;
-+ GArray *error = NULL;
-+ DBusMessageIter iter;
-+
-+ error = g_array_new(TRUE, FALSE, sizeof(char *));
-+
-+ m = dbus_pending_call_steal_reply(pending);
-+ if (dbus_message_get_type(m) != DBUS_MESSAGE_TYPE_METHOD_RETURN)
-+ goto malformed;
-+
-+ if (!dbus_message_iter_init(m, &iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32)
-+ goto malformed;
-+ dbus_message_iter_get_basic(&iter, &exitt);
-+
-+ if (!dbus_message_iter_next(&iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_INT32)
-+ goto malformed;
-+ dbus_message_iter_get_basic(&iter, &return_code);
-+
-+ while (dbus_message_iter_next(&iter) &&
-+ dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_STRING) {
-+ const char *value;
-+ dbus_message_iter_get_basic(&iter, &value);
-+ g_array_append_vals(error, &value, 1);
-+ }
-+
-+ hb->cb(hb->d, exitt, return_code,
-+ (gchar **)error->data, hb->data1, hb->data2);
-+
-+ dbus_message_unref(m);
-+ g_array_free(error, FALSE);
-+
-+ return;
-+malformed:
-+ /* Send a Fail callback on malformed messages */
-+ HAL_ERROR (("Malformed or unexpected reply message"));
-+ hb->cb(hb->d, HALD_RUN_FAILED, return_code, NULL, hb->data1, hb->data2);
-+ dbus_message_unref(m);
-+ g_array_free(error, FALSE);
-+}
-+
-+/* Run a helper program using the commandline, with input as infomation on
-+ * stdin */
-+void
-+hald_runner_run_method(HalDevice *device,
-+ const gchar *command_line, char **extra_env,
-+ gchar *input, gboolean error_on_stderr,
-+ guint32 timeout,
-+ HalRunTerminatedCB cb,
-+ gpointer data1, gpointer data2) {
-+ DBusMessage *msg;
-+ DBusMessageIter iter;
-+ DBusPendingCall *call;
-+ HelperData *hd = NULL;
-+ msg = dbus_message_new_method_call("org.freedesktop.HalRunner",
-+ "/org/freedesktop/HalRunner",
-+ "org.freedesktop.HalRunner",
-+ "Run");
-+ if (msg == NULL)
-+ DIE(("No memory"));
-+ dbus_message_iter_init_append(msg, &iter);
-+
-+ if (!add_first_part(&iter, device, command_line, extra_env))
-+ goto error;
-+
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &input);
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &error_on_stderr);
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &timeout);
-+
-+ if (!dbus_connection_send_with_reply(runner_connection,
-+ msg, &call, INT_MAX))
-+ DIE (("No memory"));
-+
-+ hd = malloc(sizeof(HelperData));
-+ hd->d = device;
-+ hd->cb = cb;
-+ hd->data1 = data1;
-+ hd->data2 = data2;
-+
-+ dbus_pending_call_set_notify(call, call_notify, hd, free);
-+ dbus_message_unref(msg);
-+ return;
-+error:
-+ dbus_message_unref(msg);
-+ free(hd);
-+ cb(device, HALD_RUN_FAILED, 0, NULL, data1, data2);
-+}
-+
-+void
-+hald_runner_run(HalDevice *device,
-+ const gchar *command_line, char **extra_env,
-+ guint timeout,
-+ HalRunTerminatedCB cb,
-+ gpointer data1, gpointer data2) {
-+ hald_runner_run_method(device, command_line, extra_env,
-+ "", FALSE, timeout, cb, data1, data2);
-+}
-+
-+void
-+hald_runner_kill_device(HalDevice *device) {
-+ DBusMessage *msg, *reply;
-+ DBusError err;
-+ DBusMessageIter iter;
-+ const char *udi;
-+
-+ msg = dbus_message_new_method_call("org.freedesktop.HalRunner",
-+ "/org/freedesktop/HalRunner",
-+ "org.freedesktop.HalRunner",
-+ "Kill");
-+ if (msg == NULL)
-+ DIE(("No memory"));
-+ dbus_message_iter_init_append(msg, &iter);
-+ udi = hal_device_get_udi(device);
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &udi);
-+
-+ /* Wait for the reply, should be almost instantanious */
-+ dbus_error_init(&err);
-+ reply =
-+ dbus_connection_send_with_reply_and_block(runner_connection, msg, -1, &err);
-+ if (reply) {
-+ dbus_message_unref(reply);
-+ }
-+
-+ dbus_message_unref(msg);
-+}
-+
-+void
-+hald_runner_kill_all(HalDevice *device) {
-+ DBusMessage *msg, *reply;
-+ DBusError err;
-+ msg = dbus_message_new_method_call("org.freedesktop.HalRunner",
-+ "/org/freedesktop/HalRunner",
-+ "org.freedesktop.HalRunner",
-+ "KillAll");
-+ if (msg == NULL)
-+ DIE(("No memory"));
-+
-+ /* Wait for the reply, should be almost instantanious */
-+ dbus_error_init(&err);
-+ reply =
-+ dbus_connection_send_with_reply_and_block(runner_connection,
-+ msg, -1, &err);
-+ if (reply) {
-+ dbus_message_unref(reply);
-+ }
-+
-+ dbus_message_unref(msg);
-+}
-diff -ruN hal-0.5.6-old/hald/hald_runner.h hal-0.5.6/hald/hald_runner.h
---- hal-0.5.6-old/hald/hald_runner.h 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald/hald_runner.h 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,76 @@
-+/***************************************************************************
-+ *
-+ * CVSID: $Id: hald_runner.h,v 1.2 2006/01/21 16:54:04 david Exp $
-+ *
-+ * hald_runner.h - Interface to the hal runner helper daemon
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+
-+#ifndef HALD_RUNNER_H
-+#define HALD_RUNNER_H
-+
-+#include "device.h"
-+
-+/* Successful run of the program */
-+#define HALD_RUN_SUCCESS 0x0
-+/* Process was killed because of running too long */
-+#define HALD_RUN_TIMEOUT 0x1
-+/* Failed to start for some reason */
-+#define HALD_RUN_FAILED 0x2
-+/* Killed on purpose, e.g. hal_runner_kill_device */
-+#define HALD_RUN_KILLED 0x4
-+
-+/* Default sane timeout */
-+#define HAL_HELPER_TIMEOUT 10000
-+
-+typedef void (*HalRunTerminatedCB) (HalDevice *d, guint32 exit_type,
-+ gint return_code, gchar **error,
-+ gpointer data1, gpointer data2);
-+
-+/* Start the runner daemon */
-+gboolean
-+hald_runner_start_runner(void);
-+
-+/* Start a helper, returns true on a successfull start */
-+gboolean
-+hald_runner_start(HalDevice *device, const gchar *command_line,
-+ char **extra_env);
-+
-+/* Run a helper program using the commandline, with input as infomation on
-+ * stdin */
-+void
-+hald_runner_run(HalDevice *device,
-+ const gchar *command_line, char **extra_env,
-+ guint32 timeout,
-+ HalRunTerminatedCB cb,
-+ gpointer data1, gpointer data2);
-+void
-+hald_runner_run_method(HalDevice *device,
-+ const gchar *command_line, char **extra_env,
-+ gchar *input, gboolean error_on_stderr,
-+ guint32 timeout,
-+ HalRunTerminatedCB cb,
-+ gpointer data1, gpointer data2);
-+
-+void hald_runner_kill_device(HalDevice *device);
-+void hald_runner_kill_all();
-+
-+#endif
-diff -ruN hal-0.5.6-old/hald/haldaemon.in hal-0.5.6/hald/haldaemon.in
---- hal-0.5.6-old/hald/haldaemon.in 2005-02-25 02:55:08.000000000 +0100
-+++ hal-0.5.6/hald/haldaemon.in 2006-02-12 17:58:28.000000000 +0100
-@@ -25,7 +25,7 @@
-
- start() {
- echo -n $"Starting HAL daemon: "
-- daemon --check $servicename $processname --retain-privileges
-+ daemon --check $servicename $processname
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch @LOCALSTATEDIR@/lock/subsys/$servicename
-diff -ruN hal-0.5.6-old/hald/linux2/blockdev.c hal-0.5.6/hald/linux2/blockdev.c
---- hal-0.5.6-old/hald/linux2/blockdev.c 2006-01-08 18:58:02.000000000 +0100
-+++ hal-0.5.6/hald/linux2/blockdev.c 2006-02-12 17:59:55.000000000 +0100
-@@ -1,9 +1,10 @@
- /***************************************************************************
-- * CVSID: $Id: blockdev.c,v 1.29 2006/01/06 18:41:23 dkukawka Exp $
-+ * CVSID: $Id: blockdev.c,v 1.33 2006/01/23 12:15:50 kay Exp $
- *
- * blockdev.c : Handling of block devices
- *
- * Copyright (C) 2005 David Zeuthen, <david at fubar.dk>
-+ * Copyright (C) 2005,2006 Kay Sievers, <kay.sievers at vrfy.org>
- *
- * Licensed under the Academic Free License version 2.1
- *
-@@ -60,6 +61,7 @@
- #include "../device_info.h"
- #include "../hald_dbus.h"
- #include "../util.h"
-+#include "../hald_runner.h"
-
- #include "osspec_linux.h"
-
-@@ -269,15 +271,16 @@
- }
-
- static void
--add_blockdev_probing_helper_done (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+add_blockdev_probing_helper_done (HalDevice *d, guint32 exit_type,
-+ gint return_code, char **error,
-+ gpointer data1, gpointer data2)
- {
- void *end_token = (void *) data1;
- gboolean is_volume;
-
- /* helper_data may be null if probing is skipped */
-
-- HAL_INFO (("entering; timed_out=%d, return_code=%d", timed_out, return_code));
-+ HAL_INFO (("entering; exit_type=%d, return_code=%d", exit_type, return_code));
-
- if (d == NULL) {
- HAL_INFO (("Device object already removed"));
-@@ -291,7 +294,8 @@
- *
- * (return code 2 means fs found on main block device (for non-volumes))
- */
-- if (timed_out || !(return_code == 0 || (!is_volume && return_code == 2))) {
-+ if (exit_type != HALD_RUN_SUCCESS
-+ || !(return_code == 0 || (!is_volume && return_code == 2))) {
- hal_device_store_remove (hald_get_tdl (), d);
- g_object_unref (d);
- hotplug_event_end (end_token);
-@@ -332,7 +336,7 @@
-
-
- out:
-- ;
-+ return;
- }
-
- static void
-@@ -350,7 +354,7 @@
- hal_device_property_set_string (d, "info.product", "Ignored Device");
-
- HAL_INFO (("Preprobing merged info.ignore==TRUE"));
--
-+
- /* Move from temporary to global device store */
- hal_device_store_remove (hald_get_tdl (), d);
- hal_device_store_add (hald_get_gdl (), d);
-@@ -362,27 +366,23 @@
- if (!hal_device_property_get_bool (d, "storage.media_check_enabled") &&
- hal_device_property_get_bool (d, "storage.no_partitions_hint")) {
-
--
- /* special probe for PC floppy drives */
- if (strcmp (hal_device_property_get_string (d, "storage.bus"), "platform") == 0 &&
- strcmp (hal_device_property_get_string (d, "storage.drive_type"), "floppy") == 0) {
- HAL_INFO (("Probing PC floppy %s to see if it is present",
- hal_device_property_get_string (d, "block.device")));
-
-- if (hal_util_helper_invoke ("hald-probe-pc-floppy", NULL, d, (gpointer) end_token,
-- NULL, add_blockdev_probing_helper_done,
-- HAL_HELPER_TIMEOUT) == NULL) {
-- hal_device_store_remove (hald_get_tdl (), d);
-- g_object_unref (d);
-- hotplug_event_end (end_token);
-- }
-+ hald_runner_run(d,
-+ "hald-probe-pc-floppy", NULL,
-+ HAL_HELPER_TIMEOUT,
-+ add_blockdev_probing_helper_done,
-+ (gpointer) end_token, NULL);
- goto out;
--
- } else {
- HAL_INFO (("Not probing storage device %s",
- hal_device_property_get_string (d, "block.device")));
-
-- add_blockdev_probing_helper_done (d, FALSE, 0, (gpointer) end_token, NULL, NULL);
-+ add_blockdev_probing_helper_done (d, FALSE, 0, NULL, (gpointer) end_token, NULL);
- goto out;
- }
- }
-@@ -397,25 +397,23 @@
- HAL_INFO (("Probing storage device %s", hal_device_property_get_string (d, "block.device")));
-
- /* probe the device */
-- if (hal_util_helper_invoke ("hald-probe-storage", NULL, d, (gpointer) end_token,
-- NULL, add_blockdev_probing_helper_done,
-- HAL_HELPER_TIMEOUT) == NULL) {
-- hal_device_store_remove (hald_get_tdl (), d);
-- g_object_unref (d);
-- hotplug_event_end (end_token);
-- }
-+ hald_runner_run(d,
-+ "hald-probe-storage", NULL,
-+ HAL_HELPER_TIMEOUT,
-+ add_blockdev_probing_helper_done,
-+ (gpointer) end_token, NULL);
-
- out:
-- ;
-+ return;
- }
-
--static void
-+static void
- blockdev_callouts_preprobing_volume_done (HalDevice *d, gpointer userdata1, gpointer userdata2)
- {
- void *end_token = (void *) userdata1;
-
- if (hal_device_property_get_bool (d, "info.ignore")) {
-- /* Leave the device here with info.ignore==TRUE so we won't pick up children
-+ /* Leave the device here with info.ignore==TRUE so we won't pick up children
- * Also remove category and all capabilities
- */
- hal_device_property_remove (d, "info.category");
-@@ -424,26 +422,23 @@
- hal_device_property_set_string (d, "info.product", "Ignored Device");
-
- HAL_INFO (("Preprobing merged info.ignore==TRUE"));
--
-+
- /* Move from temporary to global device store */
- hal_device_store_remove (hald_get_tdl (), d);
- hal_device_store_add (hald_get_gdl (), d);
--
-+
- hotplug_event_end (end_token);
- goto out;
- }
-
- /* probe the device */
-- if (hal_util_helper_invoke ("hald-probe-volume", NULL, d, (gpointer) end_token,
-- NULL, add_blockdev_probing_helper_done,
-- HAL_HELPER_TIMEOUT) == NULL) {
-- hal_device_store_remove (hald_get_tdl (), d);
-- g_object_unref (d);
-- hotplug_event_end (end_token);
-- }
--
-+ hald_runner_run (d,
-+ "hald-probe-volume", NULL,
-+ HAL_HELPER_TIMEOUT,
-+ add_blockdev_probing_helper_done,
-+ (gpointer) end_token, NULL);
- out:
-- ;
-+ return;
- }
-
- static const gchar *
-@@ -535,6 +530,7 @@
- hotplug_event_begin_add_blockdev (const gchar *sysfs_path, const gchar *device_file, gboolean is_partition,
- HalDevice *parent, void *end_token)
- {
-+ HotplugEvent *hotplug_event = (HotplugEvent *) end_token;
- gchar *major_minor;
- HalDevice *d;
- unsigned int major, minor;
-@@ -659,7 +655,7 @@
-
- scsidev = NULL;
- physdev = NULL;
-- physdev_udi = NULL;
-+ physdev_udi = NULL;
-
- is_removable = FALSE;
- is_hotpluggable = FALSE;
-@@ -883,10 +879,10 @@
- * VOLUMES
- *
- ************************/
--
- hal_device_property_set_string (d, "block.storage_device", parent->udi);
-
-- /* set defaults */
-+ /* defaults */
-+ hal_device_property_set_string (d, "storage.model", "");
- hal_device_property_set_string (d, "volume.fstype", "");
- hal_device_property_set_string (d, "volume.fsusage", "");
- hal_device_property_set_string (d, "volume.fsversion", "");
-@@ -1162,14 +1158,15 @@
- }
-
- static void
--block_rescan_storage_done (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+block_rescan_storage_done (HalDevice *d, guint32 exit_type,
-+ gint return_code, gchar **error,
-+ gpointer data1, gpointer data2)
- {
- const char *sysfs_path;
- HalDevice *fakevolume;
- char fake_sysfs_path[HAL_PATH_MAX];
-
-- HAL_INFO (("hald-probe-storage --only-check-for-media returned %d (timed_out=%d)", return_code, timed_out));
-+ HAL_INFO (("hald-probe-storage --only-check-for-media returned %d (exit_type=%d)", return_code, exit_type));
-
- if (d == NULL) {
- HAL_INFO (("Device object already removed"));
-@@ -1220,13 +1217,11 @@
- }
-
- /* now see if we got a file system on the main block device */
-- if (hal_util_helper_invoke ("hald-probe-storage --only-check-for-media", NULL, d, NULL,
-- NULL, block_rescan_storage_done,
-- HAL_HELPER_TIMEOUT) == NULL) {
-- HAL_INFO (("Could not invoke 'hald-probe-storage --only-check-for-media'"));
-- goto out;
-- }
--
-+ hald_runner_run (d,
-+ "hald-probe-storage --only-check-for-media", NULL,
-+ HAL_HELPER_TIMEOUT,
-+ block_rescan_storage_done,
-+ NULL, NULL);
- ret = TRUE;
-
- out:
-diff -ruN hal-0.5.6-old/hald/linux2/classdev.c hal-0.5.6/hald/linux2/classdev.c
---- hal-0.5.6-old/hald/linux2/classdev.c 2006-01-17 01:25:34.000000000 +0100
-+++ hal-0.5.6/hald/linux2/classdev.c 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: classdev.c,v 1.40 2006/01/13 16:40:31 kay Exp $
-+ * CVSID: $Id: classdev.c,v 1.42 2006/01/28 22:51:18 david Exp $
- *
- * classdev.c : Handling of functional kernel devices
- *
-@@ -65,6 +65,7 @@
- #include "../device_info.h"
- #include "../device_store.h"
- #include "../util.h"
-+#include "../hald_runner.h"
-
- #include "osspec_linux.h"
-
-@@ -1282,13 +1283,14 @@
- }
-
- static void
--add_classdev_probing_helper_done (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+add_classdev_probing_helper_done (HalDevice *d, guint32 exit_type,
-+ gint return_code, char **error,
-+ gpointer data1, gpointer data2)
- {
- void *end_token = (void *) data1;
- ClassDevHandler *handler = (ClassDevHandler *) data2;
-
-- HAL_INFO (("entering; timed_out=%d, return_code=%d", timed_out, return_code));
-+ HAL_INFO (("entering; exit_type=%d, return_code=%d", exit_type, return_code));
-
- if (d == NULL) {
- HAL_INFO (("Device object already removed"));
-@@ -1297,7 +1299,7 @@
- }
-
- /* Discard device if probing reports failure */
-- if (return_code != 0) {
-+ if (exit_type != HALD_RUN_SUCCESS || return_code != 0) {
- hal_device_store_remove (hald_get_tdl (), d);
- g_object_unref (d);
- hotplug_event_end (end_token);
-@@ -1350,20 +1352,16 @@
- prober = NULL;
- if (prober != NULL) {
- /* probe the device */
-- if (hal_util_helper_invoke (prober, NULL, d, (gpointer) end_token,
-- (gpointer) handler, add_classdev_probing_helper_done,
-- HAL_HELPER_TIMEOUT) == NULL) {
-- hal_device_store_remove (hald_get_tdl (), d);
-- g_object_unref (d);
-- hotplug_event_end (end_token);
-- }
-- goto out;
-+ hald_runner_run(d,
-+ prober, NULL,
-+ HAL_HELPER_TIMEOUT,
-+ add_classdev_probing_helper_done,
-+ (gpointer) end_token, (gpointer) handler);
- } else {
- add_classdev_after_probing (d, handler, end_token);
-- goto out;
- }
- out:
-- ;
-+ ;
- }
-
- void
-diff -ruN hal-0.5.6-old/hald/linux2/osspec.c hal-0.5.6/hald/linux2/osspec.c
---- hal-0.5.6-old/hald/linux2/osspec.c 2006-01-13 03:24:10.000000000 +0100
-+++ hal-0.5.6/hald/linux2/osspec.c 2006-02-12 17:58:28.000000000 +0100
-@@ -66,6 +66,7 @@
- #include "../logger.h"
- #include "../hald.h"
- #include "../hald_dbus.h"
-+#include "../hald_runner.h"
- #include "../device_info.h"
- #include "../util.h"
-
-@@ -75,12 +76,10 @@
- #include "hotplug_helper.h"
-
- #include "ids.h"
--
- #include "acpi.h"
- #include "apm.h"
- #include "pmu.h"
- #include "blockdev.h"
--
- #include "osspec_linux.h"
-
- static char *hal_sysfs_path;
-@@ -457,8 +456,9 @@
- }
-
- static void
--computer_probing_pcbios_helper_done (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+computer_probing_pcbios_helper_done (HalDevice *d, guint32 exit_type,
-+ gint return_code, gchar **error,
-+ gpointer data1, gpointer data2)
- {
- const char *chassis_type;
- const char *system_manufacturer;
-@@ -635,16 +635,15 @@
-
- /* TODO: add prober for PowerMac's */
- if (should_decode_dmi) {
-- if (hal_util_helper_invoke ("hald-probe-smbios", NULL, root, NULL, NULL,
-- computer_probing_pcbios_helper_done,
-- HAL_HELPER_TIMEOUT) != NULL)
-- goto out;
-- }
-+ hald_runner_run (root, "hald-probe-smbios", NULL,
-+ HAL_HELPER_TIMEOUT,
-+ computer_probing_pcbios_helper_done,
-+ NULL, NULL);
-+ } else {
-+ /* no probing */
-+ computer_probing_helper_done (root);
-+ }
-
-- /* no probing or probing failed */
-- computer_probing_helper_done (root);
--out:
-- ;
- }
-
- DBusHandlerResult
-diff -ruN hal-0.5.6-old/hald/util.c hal-0.5.6/hald/util.c
---- hal-0.5.6-old/hald/util.c 2005-12-08 19:23:23.000000000 +0100
-+++ hal-0.5.6/hald/util.c 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: util.c,v 1.34 2005/11/29 17:38:00 dkukawka Exp $
-+ * CVSID: $Id: util.c,v 1.36 2006/01/23 12:15:50 kay Exp $
- *
- * util.c - Various utilities
- *
-@@ -50,6 +50,7 @@
-
- #include "hald_dbus.h"
- #include "util.h"
-+#include "hald_runner.h"
-
- typedef struct {
- int last_level;
-@@ -534,235 +535,6 @@
- ;
- }
-
--void
--hal_util_terminate_helper (HalHelperData *ed)
--{
-- if (ed->already_issued_kill) {
-- HAL_INFO (("Already issued SIGTERM for pid %d, udi %s",
-- ed->pid, ed->d != NULL ? ed->d->udi : "(finalized object)"));
-- goto out;
-- }
--
-- HAL_INFO (("killing %d for udi %s", ed->pid, ed->d != NULL ? ed->d->udi : "(finalized object)"));
--
-- /* kill kenny! kill it!! */
-- ed->already_issued_kill = TRUE;
-- kill (ed->pid, SIGTERM);
--
-- if (ed->timeout_watch_id != (guint) -1) {
-- g_source_remove (ed->timeout_watch_id);
-- ed->timeout_watch_id = -1;
-- }
--
-- if (!ed->already_issued_callback) {
-- ed->already_issued_callback = TRUE;
-- ed->cb (ed->d, TRUE, -1, ed->data1, ed->data2, ed);
-- }
--
-- /* ed will be cleaned up when helper_child_exited reaps the child */
--out:
-- ;
--}
--
--static gboolean
--helper_child_timeout (gpointer data)
--{
-- HalHelperData *ed = (HalHelperData *) data;
--
-- HAL_INFO (("child timeout for pid %d", ed->pid));
--
-- /* kill kenny! kill it!! */
-- ed->already_issued_kill = TRUE;
-- kill (ed->pid, SIGTERM);
--
-- ed->timeout_watch_id = -1;
--
-- if (!ed->already_issued_callback) {
-- ed->already_issued_callback = TRUE;
-- ed->cb (ed->d, TRUE, -1, ed->data1, ed->data2, ed);
-- }
--
-- /* ed will be cleaned up when helper_child_exited reaps the child */
-- return FALSE;
--}
--
--static GSList *running_helpers = NULL;
--
--static void
--helper_device_object_finalized (gpointer data, GObject *where_the_object_was)
--{
-- HalHelperData *ed = (HalHelperData *) data;
--
-- HAL_INFO (("device object finalized for helper with pid %d", ed->pid));
--
-- ed->d = NULL;
-- hal_util_terminate_helper (ed);
--}
--
--static void
--helper_child_exited (GPid pid, gint status, gpointer data)
--{
-- HalHelperData *ed = (HalHelperData *) data;
--
-- HAL_INFO (("child exited for pid %d", pid));
--
-- if (ed->timeout_watch_id != (guint) -1)
-- g_source_remove (ed->timeout_watch_id);
-- g_spawn_close_pid (ed->pid);
--
-- if (ed->d != NULL)
-- g_object_weak_unref (G_OBJECT (ed->d), helper_device_object_finalized, ed);
--
-- if (!ed->already_issued_callback)
-- ed->cb (ed->d, FALSE, WEXITSTATUS (status), ed->data1, ed->data2, ed);
--
-- running_helpers = g_slist_remove (running_helpers, ed);
--
-- g_free (ed);
--}
--
--static gboolean
--helper_add_property_to_env (HalDevice *device, HalProperty *property, gpointer user_data)
--{
-- char *prop_upper, *value;
-- char *c;
-- gchar ***ienvp = (gchar ***) user_data;
-- gchar **envp;
--
-- envp = *ienvp;
-- *ienvp = *ienvp + 1;
--
-- prop_upper = g_ascii_strup (hal_property_get_key (property), -1);
--
-- /* periods aren't valid in the environment, so replace them with
-- * underscores. */
-- for (c = prop_upper; *c; c++) {
-- if (*c == '.')
-- *c = '_';
-- }
--
-- value = hal_property_to_string (property);
--
-- *envp = g_strdup_printf ("HAL_PROP_%s=%s", prop_upper, value);
--
-- g_free (value);
-- g_free (prop_upper);
--
-- return TRUE;
--}
--
--static void
--callout_failed (HalHelperData *ed);
--
--HalHelperData *
--hal_util_helper_invoke (const gchar *command_line, gchar **extra_env, HalDevice *d,
-- gpointer data1, gpointer data2, HalHelperTerminatedCB cb, guint timeout)
--{
-- return hal_util_helper_invoke_with_pipes (command_line, extra_env, d, data1, data2, cb, timeout, NULL, NULL, NULL);
--}
--
--HalHelperData *
--hal_util_helper_invoke_with_pipes (const gchar *command_line, gchar **extra_env, HalDevice *d,
-- gpointer data1, gpointer data2, HalHelperTerminatedCB cb, guint timeout,
-- int *standard_input, int *standard_output, int *standard_error)
--{
-- HalHelperData *ed;
-- gint argc;
-- gchar **argv;
-- gchar **envp;
-- gchar **ienvp;
-- GError *err = NULL;
-- guint num_env_vars;
-- guint i, j;
-- guint num_properties;
-- guint num_extras;
-- char *local_addr;
--
-- ed = g_new0 (HalHelperData, 1);
-- ed->data1 = data1;
-- ed->data2 = data2;
-- ed->d = d;
-- ed->cb = cb;
-- ed->already_issued_callback = FALSE;
-- ed->already_issued_kill = FALSE;
--
-- num_properties = hal_device_num_properties (d);
-- if (extra_env == NULL)
-- num_extras = 0;
-- else
-- num_extras = g_strv_length ((gchar **) extra_env);
-- num_env_vars = num_properties + 2 + num_extras;
-- if (hald_is_verbose)
-- num_env_vars++;
-- if (hald_is_initialising)
-- num_env_vars++;
-- if ((local_addr = hald_dbus_local_server_addr ()) != NULL)
-- num_env_vars++;
--
-- envp = g_new (char *, num_env_vars);
-- ienvp = envp;
-- hal_device_property_foreach (d, helper_add_property_to_env, &ienvp);
-- i = num_properties;
-- envp[i++] = g_strdup_printf ("UDI=%s", hal_device_get_udi (d));
-- if (hald_is_verbose)
-- envp[i++] = g_strdup ("HALD_VERBOSE=1");
-- if (hald_is_initialising)
-- envp[i++] = g_strdup ("HALD_STARTUP=1");
-- if (local_addr != NULL)
-- envp[i++] = g_strdup_printf ("HALD_DIRECT_ADDR=%s", local_addr);
-- for (j = 0; j < num_extras; j++) {
-- envp[i++] = g_strdup (extra_env[j]);
-- }
-- envp[i++] = NULL;
--
-- err = NULL;
-- if (!g_shell_parse_argv (command_line, &argc, &argv, &err)) {
-- HAL_ERROR (("Error parsing commandline '%s': %s", command_line, err->message));
-- g_error_free (err);
-- g_free (ed);
-- ed = NULL;
-- } else {
-- err = NULL;
-- if (!g_spawn_async_with_pipes (NULL,
-- argv,
-- envp,
-- G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH,
-- NULL,
-- NULL,
-- &ed->pid,
-- standard_input,
-- standard_output,
-- standard_error,
-- &err)) {
-- HAL_ERROR (("Couldn't spawn '%s' err=%s!", command_line, err->message));
-- g_error_free (err);
--
-- /* move ahead in list */
-- callout_failed(ed);
--
-- g_free (ed);
-- ed = NULL;
-- } else {
-- ed->child_watch_id = g_child_watch_add (ed->pid, helper_child_exited, (gpointer) ed);
-- if (timeout > 0)
-- ed->timeout_watch_id = g_timeout_add (timeout, helper_child_timeout, (gpointer) ed);
-- else
-- ed->timeout_watch_id = (guint) -1;
--
-- running_helpers = g_slist_prepend (running_helpers, ed);
-- /* device object may disappear from underneath us - this is
-- * used to terminate the helper and pass d=NULL in the
-- * HalHelperTerminatedCB callback
-- */
-- g_object_weak_ref (G_OBJECT (d), helper_device_object_finalized, ed);
-- }
-- }
--
-- g_strfreev (envp);
-- g_free (argv);
--
-- return ed;
--}
-
- gboolean
- hal_util_path_ascend (gchar *path)
-@@ -1127,21 +899,10 @@
-
- static void callout_do_next (Callout *c);
-
--static void
--callout_failed (HalHelperData *ed)
--{
-- if (ed->data1 != NULL) {
-- Callout *c;
-- c = (Callout *) ed->data1;
--
-- c->next_program++;
-- callout_do_next(c);
-- }
--}
--
- static void
--callout_terminated (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data)
-+callout_terminated (HalDevice *d, guint32 exit_type,
-+ gint return_code, gchar **error,
-+ gpointer data1, gpointer data2)
- {
- Callout *c;
-
-@@ -1172,8 +933,9 @@
- callback (d, userdata1, userdata2);
-
- } else {
-- hal_util_helper_invoke (c->programs[c->next_program], c->extra_env, c->d,
-- (gpointer) c, NULL, callout_terminated, HAL_HELPER_TIMEOUT);
-+ hald_runner_run(c->d, c->programs[c->next_program], c->extra_env,
-+ HAL_HELPER_TIMEOUT, callout_terminated,
-+ (gpointer)c, NULL);
- c->next_program++;
- }
- }
-@@ -1250,27 +1012,21 @@
- ;
- }
-
--/** Kill all helpers we have running; useful when exiting hald.
-- *
-- * @return Number of childs killed
-- */
--unsigned int
--hal_util_kill_all_helpers (void)
-+gchar *
-+hal_util_strdup_valid_utf8 (const char *str)
- {
-- unsigned int n;
-- GSList *i;
-+ char *endchar;
-+ char *newstr;
-
-- n = 0;
-- for (i = running_helpers; i != NULL; i = i->next) {
-- HalHelperData *ed;
-+ if (str == NULL)
-+ return NULL;
-
-- ed = i->data;
-- HAL_INFO (("Killing helper with pid %d", ed->pid));
-- kill (ed->pid, SIGTERM);
-- n++;
-- }
-+ newstr = g_strdup (str);
-
-- return n;
-+ while (!g_utf8_validate (str, -1, (const char **) &endchar)) {
-+ *endchar = '?';
-+ }
-+ return newstr;
- }
-
- void
-diff -ruN hal-0.5.6-old/hald/util.h hal-0.5.6/hald/util.h
---- hal-0.5.6-old/hald/util.h 2005-11-14 17:16:03.000000000 +0100
-+++ hal-0.5.6/hald/util.h 2006-02-12 17:58:28.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: util.h,v 1.15 2005/11/09 20:45:44 dkukawka Exp $
-+ * CVSID: $Id: util.h,v 1.17 2006/01/23 12:15:50 kay Exp $
- *
- * util.h - Various utilities
- *
-@@ -29,6 +29,10 @@
- #include "device.h"
- #include "device_store.h"
-
-+#define HAL_NAME_MAX 256
-+#define HAL_PATH_MAX 256
-+#define HAL_HELPER_TIMEOUT 10000
-+
- int util_compute_time_remaining (const char *id, int chargeRate, int chargeLevel, int chargeLastFull,
- gboolean isDischarging, gboolean isCharging, gboolean guessChargeRate);
-
-@@ -81,38 +85,6 @@
- const gchar *linestart, guint elem, const gchar *expected,
- gboolean reuse_file);
-
--struct HalHelperData_s;
--typedef struct HalHelperData_s HalHelperData;
--
--typedef void (*HalHelperTerminatedCB) (HalDevice *d, gboolean timed_out, gint return_code,
-- gpointer data1, gpointer data2, HalHelperData *helper_data);
--
--struct HalHelperData_s
--{
-- GPid pid;
-- guint timeout_watch_id;
-- guint child_watch_id;
-- HalHelperTerminatedCB cb;
-- gpointer data1;
-- gpointer data2;
-- HalDevice *d;
--
-- gboolean already_issued_callback;
-- gboolean already_issued_kill;
--};
--
--unsigned int hal_util_kill_all_helpers (void);
--
--HalHelperData *hal_util_helper_invoke (const gchar *command_line, gchar **extra_env, HalDevice *d,
-- gpointer data1, gpointer data2, HalHelperTerminatedCB cb, guint timeout);
--
--HalHelperData *hal_util_helper_invoke_with_pipes (const gchar *command_line, gchar **extra_env, HalDevice *d,
-- gpointer data1, gpointer data2, HalHelperTerminatedCB cb,
-- guint timeout,
-- int *standard_input, int *standard_output, int *standard_error);
--
--void hal_util_terminate_helper (HalHelperData *helper_data);
--
- gchar **hal_util_dup_strv_from_g_slist (GSList *strlist);
-
- typedef void (*HalCalloutsDone) (HalDevice *d, gpointer userdata1, gpointer userdata2);
-@@ -121,10 +93,8 @@
- void hal_util_callout_device_remove (HalDevice *d, HalCalloutsDone callback, gpointer userdata1, gpointer userdata2);
- void hal_util_callout_device_preprobe (HalDevice *d, HalCalloutsDone callback, gpointer userdata1, gpointer userdata2);
-
--void hal_util_hexdump (const void *buf, unsigned int size);
--
--#define HAL_HELPER_TIMEOUT 10000
-+gchar *hal_util_strdup_valid_utf8 (const char *str);
-
--#define HAL_PATH_MAX 256
-+void hal_util_hexdump (const void *buf, unsigned int size);
-
- #endif /* UTIL_H */
-diff -ruN hal-0.5.6-old/hald-runner/.cvsignore hal-0.5.6/hald-runner/.cvsignore
---- hal-0.5.6-old/hald-runner/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/.cvsignore 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,5 @@
-+.deps
-+.libs
-+Makefile
-+Makefile.in
-+hald-runner
-diff -ruN hal-0.5.6-old/hald-runner/Makefile.am hal-0.5.6/hald-runner/Makefile.am
---- hal-0.5.6-old/hald-runner/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/Makefile.am 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,16 @@
-+## Process this file with automake to produce Makefile.in
-+INCLUDES = \
-+ -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \
-+ -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \
-+ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-+ -DPACKAGE_BIN_DIR=\""$(bindir)"\" \
-+ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
-+ -DPACKAGE_LOCALSTATEDIR=\""$(localstatedir)"\" \
-+ -DPACKAGE_SCRIPT_DIR=\""$(datadir)/hal/scripts"\" \
-+ -I$(top_srcdir) \
-+ @PACKAGE_CFLAGS@
-+
-+libexec_PROGRAMS = hald-runner
-+
-+hald_runner_SOURCES = main.c runner.c runner.h utils.h utils.c
-+hald_runner_LDADD = @PACKAGE_LIBS@ @DBUS_LIBS@
-diff -ruN hal-0.5.6-old/hald-runner/Makefile.in hal-0.5.6/hald-runner/Makefile.in
---- hal-0.5.6-old/hald-runner/Makefile.in 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/Makefile.in 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,573 @@
-+# Makefile.in generated by automake 1.9.6 from Makefile.am.
-+# @configure_input@
-+
-+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-+# 2003, 2004, 2005 Free Software Foundation, Inc.
-+# This Makefile.in is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-+# PARTICULAR PURPOSE.
-+
-+ at SET_MAKE@
-+
-+srcdir = @srcdir@
-+top_srcdir = @top_srcdir@
-+VPATH = @srcdir@
-+pkgdatadir = $(datadir)/@PACKAGE@
-+pkglibdir = $(libdir)/@PACKAGE@
-+pkgincludedir = $(includedir)/@PACKAGE@
-+top_builddir = ..
-+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-+INSTALL = @INSTALL@
-+install_sh_DATA = $(install_sh) -c -m 644
-+install_sh_PROGRAM = $(install_sh) -c
-+install_sh_SCRIPT = $(install_sh) -c
-+INSTALL_HEADER = $(INSTALL_DATA)
-+transform = $(program_transform_name)
-+NORMAL_INSTALL = :
-+PRE_INSTALL = :
-+POST_INSTALL = :
-+NORMAL_UNINSTALL = :
-+PRE_UNINSTALL = :
-+POST_UNINSTALL = :
-+build_triplet = @build@
-+host_triplet = @host@
-+libexec_PROGRAMS = hald-runner$(EXEEXT)
-+subdir = hald-runner
-+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
-+ $(top_srcdir)/configure.in
-+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-+ $(ACLOCAL_M4)
-+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-+CONFIG_HEADER = $(top_builddir)/config.h
-+CONFIG_CLEAN_FILES =
-+am__installdirs = "$(DESTDIR)$(libexecdir)"
-+libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-+PROGRAMS = $(libexec_PROGRAMS)
-+am_hald_runner_OBJECTS = main.$(OBJEXT) runner.$(OBJEXT) \
-+ utils.$(OBJEXT)
-+hald_runner_OBJECTS = $(am_hald_runner_OBJECTS)
-+hald_runner_DEPENDENCIES =
-+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-+depcomp = $(SHELL) $(top_srcdir)/depcomp
-+am__depfiles_maybe = depfiles
-+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
-+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-+ $(AM_CFLAGS) $(CFLAGS)
-+CCLD = $(CC)
-+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+SOURCES = $(hald_runner_SOURCES)
-+DIST_SOURCES = $(hald_runner_SOURCES)
-+ETAGS = etags
-+CTAGS = ctags
-+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-+ACLOCAL = @ACLOCAL@
-+ACPI_ACPID = @ACPI_ACPID@
-+ACPI_ACPID_FALSE = @ACPI_ACPID_FALSE@
-+ACPI_ACPID_TRUE = @ACPI_ACPID_TRUE@
-+ACPI_PROC = @ACPI_PROC@
-+ACPI_PROC_FALSE = @ACPI_PROC_FALSE@
-+ACPI_PROC_TRUE = @ACPI_PROC_TRUE@
-+ALL_LINGUAS = @ALL_LINGUAS@
-+AMDEP_FALSE = @AMDEP_FALSE@
-+AMDEP_TRUE = @AMDEP_TRUE@
-+AMTAR = @AMTAR@
-+AR = @AR@
-+AUTOCONF = @AUTOCONF@
-+AUTOHEADER = @AUTOHEADER@
-+AUTOMAKE = @AUTOMAKE@
-+AWK = @AWK@
-+BINDIR = @BINDIR@
-+CATALOGS = @CATALOGS@
-+CATOBJEXT = @CATOBJEXT@
-+CC = @CC@
-+CCDEPMODE = @CCDEPMODE@
-+CFLAGS = @CFLAGS@
-+CPP = @CPP@
-+CPPFLAGS = @CPPFLAGS@
-+CXX = @CXX@
-+CXXCPP = @CXXCPP@
-+CXXDEPMODE = @CXXDEPMODE@
-+CXXFLAGS = @CXXFLAGS@
-+CYGPATH_W = @CYGPATH_W@
-+DATADIR = @DATADIR@
-+DATADIRNAME = @DATADIRNAME@
-+DBUS_CFLAGS = @DBUS_CFLAGS@
-+DBUS_LIBS = @DBUS_LIBS@
-+DBUS_SYS_DIR = @DBUS_SYS_DIR@
-+DEFS = @DEFS@
-+DEPDIR = @DEPDIR@
-+DOCBOOK = @DOCBOOK@
-+DOCBOOK_DOCS_ENABLED_FALSE = @DOCBOOK_DOCS_ENABLED_FALSE@
-+DOCBOOK_DOCS_ENABLED_TRUE = @DOCBOOK_DOCS_ENABLED_TRUE@
-+DOCDIR = @DOCDIR@
-+DOXYGEN = @DOXYGEN@
-+DOXYGEN_DOCS_ENABLED_FALSE = @DOXYGEN_DOCS_ENABLED_FALSE@
-+DOXYGEN_DOCS_ENABLED_TRUE = @DOXYGEN_DOCS_ENABLED_TRUE@
-+ECHO = @ECHO@
-+ECHO_C = @ECHO_C@
-+ECHO_N = @ECHO_N@
-+ECHO_T = @ECHO_T@
-+EGREP = @EGREP@
-+EXEEXT = @EXEEXT@
-+EXPAT_LIB = @EXPAT_LIB@
-+F77 = @F77@
-+FFLAGS = @FFLAGS@
-+FSTAB_SYNC_ENABLED = @FSTAB_SYNC_ENABLED@
-+FSTAB_SYNC_ENABLED_FALSE = @FSTAB_SYNC_ENABLED_FALSE@
-+FSTAB_SYNC_ENABLED_TRUE = @FSTAB_SYNC_ENABLED_TRUE@
-+GCOV_FALSE = @GCOV_FALSE@
-+GCOV_TRUE = @GCOV_TRUE@
-+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-+GMOFILES = @GMOFILES@
-+GMSGFMT = @GMSGFMT@
-+HALD_BACKEND = @HALD_BACKEND@
-+HALD_COMPILE_LINUX2_FALSE = @HALD_COMPILE_LINUX2_FALSE@
-+HALD_COMPILE_LINUX2_TRUE = @HALD_COMPILE_LINUX2_TRUE@
-+HALD_COMPILE_SOLARIS_FALSE = @HALD_COMPILE_SOLARIS_FALSE@
-+HALD_COMPILE_SOLARIS_TRUE = @HALD_COMPILE_SOLARIS_TRUE@
-+HALD_PID_FILE = @HALD_PID_FILE@
-+HAL_GROUP = @HAL_GROUP@
-+HAL_USER = @HAL_USER@
-+HAVE_LIBUSB_FALSE = @HAVE_LIBUSB_FALSE@
-+HAVE_LIBUSB_TRUE = @HAVE_LIBUSB_TRUE@
-+HAVE_SELINUX_FALSE = @HAVE_SELINUX_FALSE@
-+HAVE_SELINUX_TRUE = @HAVE_SELINUX_TRUE@
-+HWDATA_DIR = @HWDATA_DIR@
-+INSTALL_DATA = @INSTALL_DATA@
-+INSTALL_PROGRAM = @INSTALL_PROGRAM@
-+INSTALL_SCRIPT = @INSTALL_SCRIPT@
-+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-+INSTOBJEXT = @INSTOBJEXT@
-+INTLLIBS = @INTLLIBS@
-+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
-+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
-+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
-+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-+INTLTOOL_ICONV = @INTLTOOL_ICONV@
-+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
-+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
-+INTLTOOL_MERGE = @INTLTOOL_MERGE@
-+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
-+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
-+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
-+INTLTOOL_PERL = @INTLTOOL_PERL@
-+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
-+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
-+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
-+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
-+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
-+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
-+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
-+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
-+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
-+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
-+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
-+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
-+LDFLAGS = @LDFLAGS@
-+LIBDIR = @LIBDIR@
-+LIBEXECDIR = @LIBEXECDIR@
-+LIBOBJS = @LIBOBJS@
-+LIBS = @LIBS@
-+LIBTOOL = @LIBTOOL@
-+LIBUSB_CONFIG = @LIBUSB_CONFIG@
-+LINUX_HOTPLUG_DIR = @LINUX_HOTPLUG_DIR@
-+LN_S = @LN_S@
-+LOCALSTATEDIR = @LOCALSTATEDIR@
-+LTLIBOBJS = @LTLIBOBJS@
-+LT_AGE = @LT_AGE@
-+LT_CURRENT = @LT_CURRENT@
-+LT_REVISION = @LT_REVISION@
-+MAINT = @MAINT@
-+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-+MAKEINFO = @MAKEINFO@
-+MKINSTALLDIRS = @MKINSTALLDIRS@
-+MSGFMT = @MSGFMT@
-+OBJEXT = @OBJEXT@
-+OS_TYPE_RED_HAT_FALSE = @OS_TYPE_RED_HAT_FALSE@
-+OS_TYPE_RED_HAT_TRUE = @OS_TYPE_RED_HAT_TRUE@
-+OS_TYPE_UNKNOWN_FALSE = @OS_TYPE_UNKNOWN_FALSE@
-+OS_TYPE_UNKNOWN_TRUE = @OS_TYPE_UNKNOWN_TRUE@
-+PACKAGE = @PACKAGE@
-+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-+PACKAGE_CFLAGS = @PACKAGE_CFLAGS@
-+PACKAGE_LIBS = @PACKAGE_LIBS@
-+PACKAGE_NAME = @PACKAGE_NAME@
-+PACKAGE_STRING = @PACKAGE_STRING@
-+PACKAGE_TARNAME = @PACKAGE_TARNAME@
-+PACKAGE_VERSION = @PACKAGE_VERSION@
-+PATH_SEPARATOR = @PATH_SEPARATOR@
-+PCMCIA_STAB_FILE = @PCMCIA_STAB_FILE@
-+PCMCIA_SUPPORT_ENABLE = @PCMCIA_SUPPORT_ENABLE@
-+PCMCIA_SUPPORT_ENABLE_FALSE = @PCMCIA_SUPPORT_ENABLE_FALSE@
-+PCMCIA_SUPPORT_ENABLE_TRUE = @PCMCIA_SUPPORT_ENABLE_TRUE@
-+PKG_CONFIG = @PKG_CONFIG@
-+POFILES = @POFILES@
-+POSUB = @POSUB@
-+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
-+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
-+PYTHON = @PYTHON@
-+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-+PYTHON_PLATFORM = @PYTHON_PLATFORM@
-+PYTHON_PREFIX = @PYTHON_PREFIX@
-+PYTHON_VERSION = @PYTHON_VERSION@
-+RANLIB = @RANLIB@
-+SBINDIR = @SBINDIR@
-+SET_MAKE = @SET_MAKE@
-+SHELL = @SHELL@
-+STRIP = @STRIP@
-+SYSCONFDIR = @SYSCONFDIR@
-+USE_NLS = @USE_NLS@
-+VERSION = @VERSION@
-+XGETTEXT = @XGETTEXT@
-+ac_ct_AR = @ac_ct_AR@
-+ac_ct_CC = @ac_ct_CC@
-+ac_ct_CXX = @ac_ct_CXX@
-+ac_ct_F77 = @ac_ct_F77@
-+ac_ct_RANLIB = @ac_ct_RANLIB@
-+ac_ct_STRIP = @ac_ct_STRIP@
-+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
-+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-+am__include = @am__include@
-+am__leading_dot = @am__leading_dot@
-+am__quote = @am__quote@
-+am__tar = @am__tar@
-+am__untar = @am__untar@
-+bindir = @bindir@
-+build = @build@
-+build_alias = @build_alias@
-+build_cpu = @build_cpu@
-+build_os = @build_os@
-+build_vendor = @build_vendor@
-+datadir = @datadir@
-+exec_prefix = @exec_prefix@
-+host = @host@
-+host_alias = @host_alias@
-+host_cpu = @host_cpu@
-+host_os = @host_os@
-+host_vendor = @host_vendor@
-+includedir = @includedir@
-+infodir = @infodir@
-+install_sh = @install_sh@
-+libdir = @libdir@
-+libexecdir = @libexecdir@
-+localstatedir = @localstatedir@
-+mandir = @mandir@
-+mkdir_p = @mkdir_p@
-+oldincludedir = @oldincludedir@
-+pkgpyexecdir = @pkgpyexecdir@
-+pkgpythondir = @pkgpythondir@
-+prefix = @prefix@
-+program_transform_name = @program_transform_name@
-+pyexecdir = @pyexecdir@
-+pythondir = @pythondir@
-+sbindir = @sbindir@
-+sharedstatedir = @sharedstatedir@
-+sysconfdir = @sysconfdir@
-+target_alias = @target_alias@
-+INCLUDES = \
-+ -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \
-+ -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \
-+ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-+ -DPACKAGE_BIN_DIR=\""$(bindir)"\" \
-+ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
-+ -DPACKAGE_LOCALSTATEDIR=\""$(localstatedir)"\" \
-+ -DPACKAGE_SCRIPT_DIR=\""$(datadir)/hal/scripts"\" \
-+ -I$(top_srcdir) \
-+ @PACKAGE_CFLAGS@
-+
-+hald_runner_SOURCES = main.c runner.c runner.h utils.h utils.c
-+hald_runner_LDADD = @PACKAGE_LIBS@ @DBUS_LIBS@
-+all: all-am
-+
-+.SUFFIXES:
-+.SUFFIXES: .c .lo .o .obj
-+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
-+ @for dep in $?; do \
-+ case '$(am__configure_deps)' in \
-+ *$$dep*) \
-+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-+ && exit 0; \
-+ exit 1;; \
-+ esac; \
-+ done; \
-+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu hald-runner/Makefile'; \
-+ cd $(top_srcdir) && \
-+ $(AUTOMAKE) --gnu hald-runner/Makefile
-+.PRECIOUS: Makefile
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+ @case '$?' in \
-+ *config.status*) \
-+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-+ *) \
-+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-+ esac;
-+
-+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-+
-+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-+install-libexecPROGRAMS: $(libexec_PROGRAMS)
-+ @$(NORMAL_INSTALL)
-+ test -z "$(libexecdir)" || $(mkdir_p) "$(DESTDIR)$(libexecdir)"
-+ @list='$(libexec_PROGRAMS)'; for p in $$list; do \
-+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-+ if test -f $$p \
-+ || test -f $$p1 \
-+ ; then \
-+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \
-+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \
-+ else :; fi; \
-+ done
-+
-+uninstall-libexecPROGRAMS:
-+ @$(NORMAL_UNINSTALL)
-+ @list='$(libexec_PROGRAMS)'; for p in $$list; do \
-+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-+ echo " rm -f '$(DESTDIR)$(libexecdir)/$$f'"; \
-+ rm -f "$(DESTDIR)$(libexecdir)/$$f"; \
-+ done
-+
-+clean-libexecPROGRAMS:
-+ @list='$(libexec_PROGRAMS)'; for p in $$list; do \
-+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-+ echo " rm -f $$p $$f"; \
-+ rm -f $$p $$f ; \
-+ done
-+hald-runner$(EXEEXT): $(hald_runner_OBJECTS) $(hald_runner_DEPENDENCIES)
-+ @rm -f hald-runner$(EXEEXT)
-+ $(LINK) $(hald_runner_LDFLAGS) $(hald_runner_OBJECTS) $(hald_runner_LDADD) $(LIBS)
-+
-+mostlyclean-compile:
-+ -rm -f *.$(OBJEXT)
-+
-+distclean-compile:
-+ -rm -f *.tab.c
-+
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/main.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/runner.Po at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/utils.Po at am__quote@
-+
-+.c.o:
-+ at am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@ $(COMPILE) -c $<
-+
-+.c.obj:
-+ at am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-+
-+.c.lo:
-+ at am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-+
-+mostlyclean-libtool:
-+ -rm -f *.lo
-+
-+clean-libtool:
-+ -rm -rf .libs _libs
-+
-+distclean-libtool:
-+ -rm -f libtool
-+uninstall-info-am:
-+
-+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-+ unique=`for i in $$list; do \
-+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+ done | \
-+ $(AWK) ' { files[$$0] = 1; } \
-+ END { for (i in files) print i; }'`; \
-+ mkid -fID $$unique
-+tags: TAGS
-+
-+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
-+ $(TAGS_FILES) $(LISP)
-+ tags=; \
-+ here=`pwd`; \
-+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-+ unique=`for i in $$list; do \
-+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+ done | \
-+ $(AWK) ' { files[$$0] = 1; } \
-+ END { for (i in files) print i; }'`; \
-+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-+ test -n "$$unique" || unique=$$empty_fix; \
-+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-+ $$tags $$unique; \
-+ fi
-+ctags: CTAGS
-+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
-+ $(TAGS_FILES) $(LISP)
-+ tags=; \
-+ here=`pwd`; \
-+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-+ unique=`for i in $$list; do \
-+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-+ done | \
-+ $(AWK) ' { files[$$0] = 1; } \
-+ END { for (i in files) print i; }'`; \
-+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
-+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-+ $$tags $$unique
-+
-+GTAGS:
-+ here=`$(am__cd) $(top_builddir) && pwd` \
-+ && cd $(top_srcdir) \
-+ && gtags -i $(GTAGS_ARGS) $$here
-+
-+distclean-tags:
-+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-+
-+distdir: $(DISTFILES)
-+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-+ list='$(DISTFILES)'; for file in $$list; do \
-+ case $$file in \
-+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-+ esac; \
-+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-+ dir="/$$dir"; \
-+ $(mkdir_p) "$(distdir)$$dir"; \
-+ else \
-+ dir=''; \
-+ fi; \
-+ if test -d $$d/$$file; then \
-+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-+ fi; \
-+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-+ else \
-+ test -f $(distdir)/$$file \
-+ || cp -p $$d/$$file $(distdir)/$$file \
-+ || exit 1; \
-+ fi; \
-+ done
-+check-am: all-am
-+check: check-am
-+all-am: Makefile $(PROGRAMS)
-+installdirs:
-+ for dir in "$(DESTDIR)$(libexecdir)"; do \
-+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
-+ done
-+install: install-am
-+install-exec: install-exec-am
-+install-data: install-data-am
-+uninstall: uninstall-am
-+
-+install-am: all-am
-+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-+
-+installcheck: installcheck-am
-+install-strip:
-+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-+ `test -z '$(STRIP)' || \
-+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-+mostlyclean-generic:
-+
-+clean-generic:
-+
-+distclean-generic:
-+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-+
-+maintainer-clean-generic:
-+ @echo "This command is intended for maintainers to use"
-+ @echo "it deletes files that may require special tools to rebuild."
-+clean: clean-am
-+
-+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
-+ mostlyclean-am
-+
-+distclean: distclean-am
-+ -rm -rf ./$(DEPDIR)
-+ -rm -f Makefile
-+distclean-am: clean-am distclean-compile distclean-generic \
-+ distclean-libtool distclean-tags
-+
-+dvi: dvi-am
-+
-+dvi-am:
-+
-+html: html-am
-+
-+info: info-am
-+
-+info-am:
-+
-+install-data-am:
-+
-+install-exec-am: install-libexecPROGRAMS
-+
-+install-info: install-info-am
-+
-+install-man:
-+
-+installcheck-am:
-+
-+maintainer-clean: maintainer-clean-am
-+ -rm -rf ./$(DEPDIR)
-+ -rm -f Makefile
-+maintainer-clean-am: distclean-am maintainer-clean-generic
-+
-+mostlyclean: mostlyclean-am
-+
-+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-+ mostlyclean-libtool
-+
-+pdf: pdf-am
-+
-+pdf-am:
-+
-+ps: ps-am
-+
-+ps-am:
-+
-+uninstall-am: uninstall-info-am uninstall-libexecPROGRAMS
-+
-+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-+ clean-libexecPROGRAMS clean-libtool ctags distclean \
-+ distclean-compile distclean-generic distclean-libtool \
-+ distclean-tags distdir dvi dvi-am html html-am info info-am \
-+ install install-am install-data install-data-am install-exec \
-+ install-exec-am install-info install-info-am \
-+ install-libexecPROGRAMS install-man install-strip installcheck \
-+ installcheck-am installdirs maintainer-clean \
-+ maintainer-clean-generic mostlyclean mostlyclean-compile \
-+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-+ tags uninstall uninstall-am uninstall-info-am \
-+ uninstall-libexecPROGRAMS
-+
-+# Tell versions [3.59,3.63) of GNU make to not export all variables.
-+# Otherwise a system limit (for SysV at least) may be exceeded.
-+.NOEXPORT:
-diff -ruN hal-0.5.6-old/hald-runner/main.c hal-0.5.6/hald-runner/main.c
---- hal-0.5.6-old/hald-runner/main.c 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/main.c 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,217 @@
-+/***************************************************************************
-+ * CVSID: $Id: main.c,v 1.3 2006/01/23 14:54:48 kay Exp $
-+ *
-+ * main.c - Main dbus interface of the hald runner
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+#include <stdio.h>
-+#include <stdlib.h>
-+#define DBUS_API_SUBJECT_TO_CHANGE
-+#include <dbus/dbus-glib-lowlevel.h>
-+
-+#include <glib.h>
-+#include "utils.h"
-+#include "runner.h"
-+
-+static gboolean
-+parse_first_part(run_request *r, DBusMessage *msg, DBusMessageIter *iter)
-+{
-+ DBusMessageIter sub_iter;
-+ char *tmpstr;
-+
-+ /* First should be the device UDI */
-+ if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_STRING)
-+ goto malformed;
-+ dbus_message_iter_get_basic(iter, &tmpstr);
-+ r->udi = g_strdup(tmpstr);
-+
-+ /* Then the environment array */
-+ if (!dbus_message_iter_next(iter) || dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY)
-+ goto malformed;
-+ dbus_message_iter_recurse(iter, &sub_iter);
-+ r->environment = get_string_array(&sub_iter);
-+
-+ /* Then argv */
-+ if (!dbus_message_iter_next(iter) || dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY)
-+ goto malformed;
-+ dbus_message_iter_recurse(iter, &sub_iter);
-+ r->argv = get_string_array(&sub_iter);
-+
-+ return TRUE;
-+
-+malformed:
-+ return FALSE;
-+}
-+
-+static void
-+handle_run(DBusConnection *con, DBusMessage *msg)
-+{
-+ DBusMessage *reply;
-+ DBusMessageIter iter;
-+ run_request *r;
-+ char *tmpstr;
-+
-+ r = new_run_request();
-+ g_assert(dbus_message_iter_init(msg, &iter));
-+
-+ if (!parse_first_part(r, msg, &iter))
-+ goto malformed;
-+
-+ /* Next a string of what should be written to stdin */
-+ if (!dbus_message_iter_next(&iter) || dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
-+ goto malformed;
-+ dbus_message_iter_get_basic(&iter, &tmpstr);
-+ r->input = g_strdup(tmpstr);
-+
-+ /* Then an bool to indicate if we should grab stderr */
-+ if (!dbus_message_iter_next(&iter) || dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_BOOLEAN)
-+ goto malformed;
-+ dbus_message_iter_get_basic(&iter, &(r->error_on_stderr));
-+
-+ /* Then an uint32 timeout for it */
-+ if (!dbus_message_iter_next(&iter) || dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32)
-+ goto malformed;
-+ dbus_message_iter_get_basic(&iter, &(r->timeout));
-+
-+ /* let run_request_run handle the reply */
-+ run_request_run(r, con, msg);
-+ return;
-+
-+malformed:
-+ del_run_request(r);
-+ reply = dbus_message_new_error(msg, "org.freedesktop.HalRunner.Malformed",
-+ "Malformed run request");
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+}
-+
-+static void
-+handle_start(DBusConnection *con, DBusMessage *msg)
-+{
-+ DBusMessage *reply;
-+ DBusMessageIter iter;
-+ run_request *r;
-+
-+ r = new_run_request();
-+ g_assert(dbus_message_iter_init(msg, &iter));
-+
-+ if (!dbus_message_iter_init(msg, &iter) || !parse_first_part(r, msg, &iter))
-+ goto malformed;
-+
-+ if (run_request_run(r, NULL, NULL)) {
-+ reply = dbus_message_new_method_return(msg);
-+ } else {
-+ reply = dbus_message_new_error(msg, "org.freedesktop.HalRunner.Failed",
-+ "Start request failed");
-+ }
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+ return ;
-+malformed:
-+ del_run_request(r);
-+ reply = dbus_message_new_error(msg, "org.freedesktop.HalRunner.Malformed",
-+ "Malformed start request");
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+}
-+
-+static void
-+handle_kill(DBusConnection *con, DBusMessage *msg)
-+{
-+ DBusError error;
-+ DBusMessage *reply = NULL;
-+ char *udi;
-+
-+ dbus_error_init (&error);
-+ if (!dbus_message_get_args(msg, &error,
-+ DBUS_TYPE_STRING, &udi,
-+ DBUS_TYPE_INVALID)) {
-+ reply = dbus_message_new_error (msg, "org.freedesktop.HalRunner.Malformed",
-+ "Malformed kill message");
-+ g_assert(reply);
-+ dbus_connection_send (con, reply, NULL);
-+ dbus_message_unref(reply);
-+ return;
-+ }
-+ run_kill_udi(udi);
-+
-+ /* always successfull */
-+ reply = dbus_message_new_method_return(msg);
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+}
-+
-+static DBusHandlerResult
-+filter(DBusConnection *con, DBusMessage *msg, void *user_data)
-+{
-+ DBusMessage *reply;
-+
-+ if (dbus_message_is_method_call(msg, "org.freedesktop.HalRunner", "Run")) {
-+ handle_run(con, msg);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ } else if (dbus_message_is_method_call(msg, "org.freedesktop.HalRunner", "Start")) {
-+ handle_start(con, msg);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ } else if (dbus_message_is_method_call(msg, "org.freedesktop.HalRunner", "Kill")) {
-+ handle_kill(con, msg);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ } else if (dbus_message_is_method_call(msg, "org.freedesktop.HalRunner", "KillAll")) {
-+ run_kill_all();
-+ /* alwasy successfull */
-+ reply = dbus_message_new_method_return(msg);
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-+}
-+
-+int
-+main(int argc, char **argv)
-+{
-+ DBusConnection *c;
-+ DBusError error;
-+ GMainLoop *loop;
-+ char *dbus_address;
-+
-+ run_init();
-+ dbus_error_init(&error);
-+ dbus_address = getenv("HALD_RUNNER_DBUS_ADDRESS");
-+ g_assert(dbus_address != NULL);
-+
-+ fprintf(stderr, "Runner started - allowed paths are '%s'\n", getenv("PATH"));
-+
-+ c = dbus_connection_open(dbus_address, &error);
-+ if (c == NULL)
-+ goto error;
-+
-+ loop = g_main_loop_new(NULL, FALSE);
-+
-+ dbus_connection_setup_with_g_main(c, NULL);
-+ dbus_connection_set_exit_on_disconnect(c, TRUE);
-+ dbus_connection_add_filter(c, filter, NULL, NULL);
-+
-+ g_main_loop_run(loop);
-+
-+error:
-+ fprintf(stderr,"An error has occured: %s\n", error.message);
-+ return -1;
-+}
-diff -ruN hal-0.5.6-old/hald-runner/runner.c hal-0.5.6/hald-runner/runner.c
---- hal-0.5.6-old/hald-runner/runner.c 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/runner.c 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,347 @@
-+/***************************************************************************
-+ * CVSID: $Id: runner.c,v 1.6 2006/01/29 15:03:27 hughsient Exp $
-+ *
-+ * runner.c - Process running code
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <stdlib.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/wait.h>
-+#include <signal.h>
-+#include <string.h>
-+
-+#define DBUS_API_SUBJECT_TO_CHANGE
-+#include <dbus/dbus-glib-lowlevel.h>
-+
-+#include <glib.h>
-+#include "utils.h"
-+#include "runner.h"
-+
-+/* Successful run of the program */
-+#define HALD_RUN_SUCCESS 0x0
-+/* Process was killed because of running too long */
-+#define HALD_RUN_TIMEOUT 0x1
-+/* Failed to start for some reason */
-+#define HALD_RUN_FAILED 0x2
-+/* Killed on purpose, e.g. hal_util_kill_device_helpers */
-+#define HALD_RUN_KILLED 0x4
-+
-+GHashTable *udi_hash = NULL;
-+
-+typedef struct {
-+ run_request *r;
-+ DBusMessage *msg;
-+ DBusConnection *con;
-+ GPid pid;
-+ gint stderr_v;
-+ guint watch;
-+ guint timeout;
-+ gboolean sent_kill;
-+} run_data;
-+
-+static void
-+del_run_data(run_data *rd)
-+{
-+ if (rd == NULL)
-+ return;
-+
-+ del_run_request(rd->r);
-+ if (rd->msg)
-+ dbus_message_unref(rd->msg);
-+
-+ g_spawn_close_pid(rd->pid);
-+
-+ if (rd->stderr_v >= 0)
-+ close(rd->stderr_v);
-+
-+ if (rd->timeout != 0)
-+ g_source_remove(rd->timeout);
-+
-+ g_free(rd);
-+}
-+
-+run_request *
-+new_run_request(void)
-+{
-+ run_request *result;
-+ result = g_new0(run_request, 1);
-+ g_assert(result != NULL);
-+ return result;
-+}
-+
-+void
-+del_run_request(run_request *r)
-+{
-+ if (r == NULL)
-+ return;
-+ g_free(r->udi);
-+ free_string_array(r->environment);
-+ free_string_array(r->argv);
-+ g_free(r->input);
-+ g_free(r);
-+}
-+
-+static void
-+send_reply(DBusConnection *con, DBusMessage *msg, guint32 exit_type, gint32 return_code, gchar **error)
-+{
-+ DBusMessage *reply;
-+ DBusMessageIter iter;
-+ int i;
-+
-+ if (con == NULL || msg == NULL)
-+ return;
-+
-+ reply = dbus_message_new_method_return(msg);
-+ g_assert(reply != NULL);
-+
-+ dbus_message_iter_init_append(reply, &iter);
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &exit_type);
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &return_code);
-+ if (error != NULL) for (i = 0; error[i] != NULL; i++) {
-+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &error[i]);
-+ }
-+
-+ dbus_connection_send(con, reply, NULL);
-+ dbus_message_unref(reply);
-+}
-+
-+static void
-+remove_from_hash_table(run_data *rd)
-+{
-+ GList *list;
-+
-+ /* Remove to the hashtable */
-+ list = (GList *)g_hash_table_lookup(udi_hash, rd->r->udi);
-+ list = g_list_remove(list, rd);
-+ /* The hash table will take care to not leak the dupped string */
-+ g_hash_table_insert(udi_hash, g_strdup(rd->r->udi), list);
-+}
-+
-+static void
-+run_exited(GPid pid, gint status, gpointer data)
-+{
-+ run_data *rd = (run_data *)data;
-+ char **error = NULL;
-+
-+ printf("%s exited\n", rd->r->argv[0]);
-+ rd->watch = 0;
-+ if (rd->sent_kill == TRUE) {
-+ /* We send it a kill, so ignore */
-+ del_run_data(rd);
-+ return;
-+ }
-+ /* Check if it was a normal exit */
-+ if (!WIFEXITED(status)) {
-+ /* No not normal termination ? crash ? */
-+ send_reply(rd->con, rd->msg, HALD_RUN_FAILED, 0, NULL);
-+ remove_from_hash_table(rd);
-+ del_run_data(rd);
-+ return;
-+ }
-+ /* normal exit */
-+ if (rd->stderr_v >= 0) {
-+ /* Need to read stderr */
-+ error = get_string_array_from_fd(rd->stderr_v);
-+ rd->stderr_v = -1;
-+ }
-+ if (rd->msg != NULL)
-+ send_reply(rd->con, rd->msg, HALD_RUN_SUCCESS, WEXITSTATUS(status), error);
-+ free_string_array(error);
-+ remove_from_hash_table(rd);
-+ del_run_data(rd);
-+}
-+
-+static gboolean
-+run_timedout(gpointer data) {
-+ run_data *rd = (run_data *)data;
-+ /* Time is up, kill the process, send reply that it was killed!
-+ * Don't wait for exit, because it could hang in state D
-+ */
-+ kill(rd->pid, SIGTERM);
-+ /* Ensure the timeout is not removed in the delete */
-+ rd->timeout = 0;
-+ /* So the exit watch will know it's killed in case it runs*/
-+ rd->sent_kill = TRUE;
-+
-+ send_reply(rd->con, rd->msg, HALD_RUN_TIMEOUT, 0, NULL);
-+ remove_from_hash_table(rd);
-+ return FALSE;
-+}
-+
-+static gboolean
-+find_program(char **argv)
-+{
-+ /* Search for the program in the dirs where it's allowed to be */
-+ char *program;
-+ char *path = NULL;
-+
-+ if (argv[0] == NULL)
-+ return FALSE;
-+
-+ program = g_path_get_basename(argv[0]);
-+
-+ /* first search $PATH to make e.g. run-hald.sh work */
-+ path = g_find_program_in_path (program);
-+ g_free(program);
-+ if (path == NULL)
-+ return FALSE;
-+ else {
-+ /* Replace program in argv[0] with the full path */
-+ g_free(argv[0]);
-+ argv[0] = path;
-+ }
-+ return TRUE;
-+}
-+
-+/* Run the given request and reply it's result on msg */
-+gboolean
-+run_request_run(run_request *r, DBusConnection *con, DBusMessage *msg)
-+{
-+ GPid pid;
-+ GError *error = NULL;
-+ gint *stdin_p = NULL;
-+ gint *stderr_p = NULL;
-+ gint stdin_v;
-+ gint stderr_v = -1;
-+ run_data *rd = NULL;
-+ gboolean program_exists = FALSE;
-+ char *program_dir = NULL;
-+ GList *list;
-+
-+ printf("Run started %s (%d) (%d) \n!", r->argv[0], r->timeout,
-+ r->error_on_stderr);
-+ if (r->input != NULL) {
-+ stdin_p = &stdin_v;
-+ }
-+ if (r->error_on_stderr) {
-+ stderr_p = &stderr_v;
-+ }
-+
-+ program_exists = find_program(r->argv);
-+
-+ if (program_exists)
-+ program_dir = g_path_get_dirname (r->argv[0]);
-+
-+ if (!program_exists ||
-+ !g_spawn_async_with_pipes(program_dir, r->argv, r->environment,
-+ G_SPAWN_DO_NOT_REAP_CHILD,
-+ NULL, NULL, &pid,
-+ stdin_p, NULL, stderr_p, &error)) {
-+ g_free (program_dir);
-+ del_run_request(r);
-+ if (con && msg)
-+ send_reply(con, msg, HALD_RUN_FAILED, 0, NULL);
-+ return FALSE;
-+ }
-+ g_free (program_dir);
-+
-+ if (r->input) {
-+ write(stdin_v, r->input, strlen(r->input));
-+ close(stdin_v);
-+ }
-+
-+ rd = g_new0(run_data,1);
-+ g_assert(rd != NULL);
-+ rd->r = r;
-+ rd->msg = msg;
-+ if (msg != NULL)
-+ dbus_message_ref(msg);
-+
-+ rd->con = con;
-+ rd->pid = pid;
-+ rd->stderr_v = stderr_v;
-+ rd->sent_kill = FALSE;
-+
-+ /* Add watch for exit of the program */
-+ rd->watch = g_child_watch_add(pid, run_exited, rd);
-+
-+ /* Add timeout if needed */
-+ if (r->timeout > 0)
-+ rd->timeout = g_timeout_add(r->timeout, run_timedout, rd);
-+ else
-+ rd->timeout = 0;
-+
-+ /* Add to the hashtable */
-+ list = (GList *)g_hash_table_lookup(udi_hash, r->udi);
-+ list = g_list_prepend(list, rd);
-+
-+ /* The hash table will take care to not leak the dupped string */
-+ g_hash_table_insert(udi_hash, g_strdup(r->udi), list);
-+ return TRUE;
-+}
-+
-+static void
-+kill_rd(gpointer data, gpointer user_data)
-+{
-+ run_data *rd = (run_data *)data;
-+
-+ kill(rd->pid, SIGTERM);
-+ printf("Sent kill to %d\n", rd->pid);
-+ if (rd->timeout != 0) {
-+ /* Remove the timeout watch */
-+ g_source_remove(rd->timeout);
-+ rd->timeout = 0;
-+ }
-+
-+ /* So the exit watch will know it's killed in case it runs */
-+ rd->sent_kill = TRUE;
-+
-+ if (rd->msg != NULL)
-+ send_reply(rd->con, rd->msg, HALD_RUN_KILLED, 0, NULL);
-+}
-+
-+static void
-+do_kill_udi(gchar *udi)
-+{
-+ GList *list;
-+ list = (GList *)g_hash_table_lookup(udi_hash, udi);
-+ g_list_foreach(list, kill_rd, NULL);
-+ g_list_free(list);
-+}
-+
-+/* Kill all running request for a udi */
-+void
-+run_kill_udi(gchar *udi)
-+{
-+ do_kill_udi(udi);
-+ g_hash_table_remove(udi_hash, udi);
-+}
-+
-+static void
-+hash_kill_udi(gpointer key, gpointer value, gpointer user_data) {
-+ do_kill_udi(key);
-+}
-+
-+/* Kill all running request*/
-+void
-+run_kill_all()
-+{
-+ g_hash_table_foreach_remove(udi_hash, hash_kill_udi, NULL);
-+}
-+
-+void
-+run_init()
-+{
-+ udi_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
-+}
-diff -ruN hal-0.5.6-old/hald-runner/runner.h hal-0.5.6/hald-runner/runner.h
---- hal-0.5.6-old/hald-runner/runner.h 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/runner.h 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,57 @@
-+/***************************************************************************
-+ * CVSID: $Id: runner.h,v 1.2 2006/01/23 14:54:48 kay Exp $
-+ *
-+ * runner.h - Process running interface
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+#ifndef RUNNER_H
-+#define RUNNER_H
-+
-+#define DBUS_API_SUBJECT_TO_CHANGE
-+#include <dbus/dbus-glib-lowlevel.h>
-+
-+#include <glib.h>
-+
-+typedef struct {
-+ gchar *udi;
-+ gchar **environment;
-+ gchar **argv;
-+ gchar *input;
-+ gboolean error_on_stderr;
-+ guint32 timeout;
-+} run_request;
-+
-+run_request *new_run_request(void);
-+void del_run_request(run_request *r);
-+
-+/* Run the given request and reply it's result on msg */
-+gboolean run_request_run(run_request *r, DBusConnection *con, DBusMessage *msg);
-+
-+/* Kill all running request for a udi */
-+void run_kill_udi(gchar *udi);
-+
-+/* Kill all running request*/
-+void run_kill_all();
-+
-+/* initialise the actual runner data */
-+void run_init();
-+
-+#endif /* RUNNER_H */
-diff -ruN hal-0.5.6-old/hald-runner/utils.c hal-0.5.6/hald-runner/utils.c
---- hal-0.5.6-old/hald-runner/utils.c 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/utils.c 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,89 @@
-+/***************************************************************************
-+ * CVSID: $Id: utils.c,v 1.2 2006/01/23 14:54:48 kay Exp $
-+ *
-+ * utils.c - Some utils for the hald runner
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+#include <stdio.h>
-+#include <stdlib.h>
-+#define DBUS_API_SUBJECT_TO_CHANGE
-+#include <dbus/dbus-glib-lowlevel.h>
-+#include <glib.h>
-+
-+#include "utils.h"
-+
-+char **
-+get_string_array(DBusMessageIter *iter)
-+{
-+ GArray *array;
-+ char **result;
-+ array = g_array_new(TRUE, FALSE, sizeof(char *));
-+
-+ while (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_STRING) {
-+ const char *value;
-+ char *t;
-+ dbus_message_iter_get_basic(iter, &value);
-+ t = g_strdup(value);
-+ g_array_append_vals(array, &t, 1);
-+ dbus_message_iter_next(iter);
-+ }
-+ result = (char **) array->data;
-+ g_array_free(array, FALSE);
-+ return result;
-+}
-+
-+char **
-+get_string_array_from_fd(int fd)
-+{
-+ GArray *array;
-+ char **result;
-+ GString *str;
-+ gsize pos;
-+ GIOChannel *io;
-+ int i = 0;
-+
-+ array = g_array_new(TRUE, FALSE, sizeof(char *));
-+ str = g_string_new("");
-+ io = g_io_channel_unix_new(fd);
-+ while (g_io_channel_read_line_string(io, str, &pos, NULL) == G_IO_STATUS_NORMAL && (i++ < 128)) {
-+ char *t;
-+
-+ /* Remove the terminting char aka \n */
-+ g_string_erase(str, pos, 1);
-+ t = g_strdup(str->str);
-+ g_array_append_vals(array, &t, 1);
-+ }
-+ g_string_free(str, TRUE);
-+ g_io_channel_unref(io);
-+ result = (char **) array->data;
-+ g_array_free(array, FALSE);
-+ return result;
-+}
-+
-+void
-+free_string_array(char **array)
-+{
-+ char **p;
-+
-+ for (p = array; p != NULL && *p != NULL; p++)
-+ g_free(*p);
-+ g_free(array);
-+}
-diff -ruN hal-0.5.6-old/hald-runner/utils.h hal-0.5.6/hald-runner/utils.h
---- hal-0.5.6-old/hald-runner/utils.h 1970-01-01 01:00:00.000000000 +0100
-+++ hal-0.5.6/hald-runner/utils.h 2006-02-12 17:58:28.000000000 +0100
-@@ -0,0 +1,35 @@
-+/***************************************************************************
-+ * CVSID: $Id: utils.h,v 1.1 2006/01/21 02:45:27 david Exp $
-+ *
-+ * utils.h - Some utils for the hald runner
-+ *
-+ * Copyright (C) 2006 Sjoerd Simons, <sjoerd at luon.net>
-+ *
-+ * Licensed under the Academic Free License version 2.1
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ **************************************************************************/
-+#ifndef UTILS_H
-+#define UTILS_H
-+
-+#define DBUS_API_SUBJECT_TO_CHANGE
-+#include <dbus/dbus-glib-lowlevel.h>
-+
-+char **get_string_array(DBusMessageIter *iter);
-+char **get_string_array_from_fd(int fd);
-+void free_string_array(char **array);
-+
-+#endif /* UTILS_H */
Deleted: packages/experimental/hal/debian/patches/03_storage_sigio.patch
===================================================================
--- packages/experimental/hal/debian/patches/03_storage_sigio.patch 2006-02-17 20:56:32 UTC (rev 603)
+++ packages/experimental/hal/debian/patches/03_storage_sigio.patch 2006-02-17 21:01:03 UTC (rev 604)
@@ -1,67 +0,0 @@
-diff -ruN hal-0.5.6-old/hald/linux2/addons/addon-storage.c hal-0.5.6/hald/linux2/addons/addon-storage.c
---- hal-0.5.6-old/hald/linux2/addons/addon-storage.c 2005-11-02 16:38:14.000000000 +0100
-+++ hal-0.5.6/hald/linux2/addons/addon-storage.c 2006-02-01 23:50:49.000000000 +0100
-@@ -1,5 +1,5 @@
- /***************************************************************************
-- * CVSID: $Id: addon-storage.c,v 1.14 2005/11/02 15:38:14 david Exp $
-+ * CVSID: $Id: addon-storage.c,v 1.15 2006/01/27 15:43:58 kay Exp $
- *
- * addon-storage.c : Poll storage devices for media changes
- *
-@@ -42,6 +42,7 @@
- #include <linux/cdrom.h>
- #include <linux/fs.h>
- #include <mntent.h>
-+#include <scsi/sg.h>
-
- #include "libhal/libhal.h"
-
-@@ -270,26 +271,22 @@
-
- /* check if eject button was pressed */
- if (got_media) {
-- struct cdrom_generic_command cgc;
-- struct request_sense sense;
-+ unsigned char cdb[10] = { 0x4a, 1, 0, 0, 16, 0, 0, 0, 8, 0};
- unsigned char buffer[8];
-- int ret;
-+ struct sg_io_hdr sg_h;
-+ int retval;
-
-- memset (&cgc, 0, sizeof (struct cdrom_generic_command));
-- memset (&sense, 0, sizeof (struct request_sense));
-- memset (buffer, 0, sizeof (buffer));
-- cgc.cmd[0] = GPCMD_GET_EVENT_STATUS_NOTIFICATION;
-- cgc.cmd[1] = 1;
-- cgc.cmd[4] = 16;
-- cgc.cmd[8] = sizeof (buffer);
-- cgc.timeout = 600;
-- cgc.buffer = buffer;
-- cgc.buflen = sizeof (buffer);
-- cgc.data_direction = CGC_DATA_READ;
-- cgc.sense = &sense;
-- cgc.quiet = 1;
-- ret = ioctl (fd, CDROM_SEND_PACKET, &cgc);
-- if (ret == 0 && (buffer[4] & 0x0f) == 0x01) {
-+ memset(buffer, 0, sizeof(buffer));
-+ memset(&sg_h, 0, sizeof(struct sg_io_hdr));
-+ sg_h.interface_id = 'S';
-+ sg_h.cmd_len = sizeof(cdb);
-+ sg_h.dxfer_direction = SG_DXFER_FROM_DEV;
-+ sg_h.dxfer_len = sizeof(buffer);
-+ sg_h.dxferp = buffer;
-+ sg_h.cmdp = cdb;
-+ sg_h.timeout = 5000;
-+ retval = ioctl(fd, SG_IO, &sg_h);
-+ if (retval == 0 && sg_h.status == 0 && (buffer[4] & 0x0f) == 0x01) {
- DBusError error;
-
- /* emit signal from drive device object */
-@@ -297,7 +294,6 @@
- libhal_device_emit_condition (ctx, udi, "EjectPressed", "", &error);
- }
- }
--
- close (fd);
- } else {
- fd = open (device_file, O_RDONLY);
Deleted: packages/experimental/hal/debian/patches/04_hald-no-patch.patch
===================================================================
--- packages/experimental/hal/debian/patches/04_hald-no-patch.patch 2006-02-17 20:56:32 UTC (rev 603)
+++ packages/experimental/hal/debian/patches/04_hald-no-patch.patch 2006-02-17 21:01:03 UTC (rev 604)
@@ -1,27 +0,0 @@
-diff -ruN hal-0.5.6-old/hald/hald.c hal-0.5.6/hald/hald.c
---- hal-0.5.6-old/hald/hald.c 2006-02-01 23:56:06.000000000 +0100
-+++ hal-0.5.6/hald/hald.c 2006-02-01 23:56:18.000000000 +0100
-@@ -382,13 +382,18 @@
- * run-hald.sh and friends)
- */
- path = getenv ("PATH");
-- g_strlcpy (newpath, path, sizeof (newpath));
- if (path != NULL) {
-+ g_strlcpy (newpath, path, sizeof (newpath));
- g_strlcat (newpath, ":", sizeof (newpath));
-- g_strlcat (newpath, PACKAGE_LIBEXEC_DIR, sizeof (newpath));
-- g_strlcat (newpath, ":", sizeof (newpath));
-- g_strlcat (newpath, PACKAGE_SCRIPT_DIR, sizeof (newpath));
-- }
-+ } else {
-+ /* No PATH was set */
-+ newpath[0] = '\0';
-+ }
-+
-+ g_strlcat (newpath, PACKAGE_LIBEXEC_DIR, sizeof (newpath));
-+ g_strlcat (newpath, ":", sizeof (newpath));
-+ g_strlcat (newpath, PACKAGE_SCRIPT_DIR, sizeof (newpath));
-+
- setenv ("PATH", newpath, TRUE);
-
- while (1) {
Deleted: packages/experimental/hal/debian/patches/05_hald_clear_udev_buffer.patch
===================================================================
--- packages/experimental/hal/debian/patches/05_hald_clear_udev_buffer.patch 2006-02-17 20:56:32 UTC (rev 603)
+++ packages/experimental/hal/debian/patches/05_hald_clear_udev_buffer.patch 2006-02-17 21:01:03 UTC (rev 604)
@@ -1,12 +0,0 @@
-diff -ruN hal-0.5.6-old/hald/linux2/osspec.c hal-0.5.6/hald/linux2/osspec.c
---- hal-0.5.6-old/hald/linux2/osspec.c 2006-02-13 18:46:22.000000000 +0100
-+++ hal-0.5.6/hald/linux2/osspec.c 2006-02-13 18:47:55.000000000 +0100
-@@ -118,6 +118,8 @@
- int ifindex = -1;
- unsigned long long seqnum = 0;
-
-+ memset(buf, 0x00, sizeof (buf));
-+
- fd = g_io_channel_unix_get_fd (source);
-
- iov.iov_base = &buf;
More information about the Pkg-utopia-commits
mailing list