Hi, for the faulty behaviour of bash "test -e" I added a workaround for udev without having to install /bin/dash.
The bug is only present when HAVE_DEV_STDIN is not defined, which is the case when /dev/std{in,err,out} is not present at build time. The build logs all define HAVE_DEV_STDIN - except sparc. From the sparc build log[1]: [..] checking whether /dev/stdin stdout stderr are available... absent [..] Since there is no build log for i386 I suspect that there the /dev/std* are also absent and HAVE_DEV_STDIN is not defined. The result is different behaviour of "test -e" on different architectures, which is not good. For a fix of this bug I suggest making that all build machines have the /dev/std{in,err,out} files. Regards, Bastian [1] http://buildd.debian.org/fetch.php?&pkg=bash&ver=3.0-16&arch=sparc&stamp=1125945502&file=log&as=raw PS: I CC'ed the sparc build daemon to check the /dev/std{in,err,out} existance. -- ,''`. Bastian Kleineidam : :' : GnuPG Schlüssel `. `' gpg --keyserver wwwkeys.pgp.net --recv-keys 32EC6F3E `-
--- udev 2005-10-10 19:02:43.000000000 +0200 +++ udev_fixed 2005-10-09 23:49:52.185663293 +0200 @@ -38,11 +38,11 @@ [ -e /etc/udev/links.conf ] || return 0 grep '^[^#]' /etc/udev/links.conf | \ while read type name arg1; do - [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue + [ "$type" -a "$name" ] ||continue case "$type" in - L) ln -s $arg1 /dev/$name ;; - D) mkdir -p /dev/$name ;; - M) mknod -m 600 /dev/$name $arg1 ;; + L) if [ ! -L /dev/$name ]; then ln -s $arg1 /dev/$name; fi ;; + D) if [ ! -d /dev/$name ]; then mkdir -p /dev/$name; fi ;; + M) if [ ! -e /dev/$name ]; then mknod --mode=600 /dev/$name $arg1; fi ;; *) log_warning_msg "links.conf: unparseable line ($type $name $arg1)" ;; esac done
signature.asc
Description: Digital signature