The attached patch contains a few patches against udev, to remove
use of various XSI:isms and bash:isms, and to change two scripts form
/bin/bash to /bin/sh. None of the bash-scripts in test/ uses any
bash-specific functions as far as I know, but I didn't touch them since
they aren't used runtime.
Rationale:
* Both of the /bin/bash-scripts are totally free from bashisms, hence they
don't need to be /bin/bash; using /bin/sh instead helps (mainly)
embedded-people
* local and source are bash:isms (well, they exist in several other
shells as well, but they aren't part of POSIX or any of its extensions)
* -a in tests is an XSI-extension, not part of strict POSIX, and is
easily replaced by &&
| http://www.opengroup.org/onlinepubs/
009695399/utilities/test.html
* Use of fgrep is deprecated in POSIX in favour of grep -F (though fgrep
will remain in use for a long time...)
| http://www.opengroup.org/onlinepubs/
009695399/utilities/grep.html
The fgrep-change isn't really necessary, since fgrep can always be
implemented as a shell-script, but the rest of the changes would really
be appreciated.
[ "$UDEV_CONSOLE" != "yes" ] && exit 0
if [ -x /sbin/pam_console_setowner ]; then
- if [ "$UDEV_LOG" = "yes" -a -x /usr/bin/logger ]; then
+ if [ "$UDEV_LOG" = "yes" ] && [ -x /usr/bin/logger ]; then
/usr/bin/logger -p auth.debug "Restoring console permissions for $DEVNAME"
fi
exec /sbin/pam_console_setowner $DEVNAME
[ "$UDEV_SELINUX" != "yes" ] && exit 0
if [ -x /sbin/restorecon ]; then
- if [ "$UDEV_LOG" = "yes" -a -x /usr/bin/logger ]; then
+ if [ "$UDEV_LOG" = "yes" ] && [ -x /usr/bin/logger ]; then
/usr/bin/logger -p auth.debug "Restoring file security contexts for $DEVNAME"
fi
/sbin/restorecon $DEVNAME
-#! /bin/bash
+#! /bin/sh
#
# udev init script to setup /udev
#
-#! /bin/bash
+#! /bin/sh
#
# random init script to setup /udev
#
# 2003, 2004 by Michael Buesch <mbuesch@freenet.de>
#
-source /etc/sysconfig/rc
-source $rc_functions
-source /etc/udev/udev.conf
+. /etc/sysconfig/rc
+. $rc_functions
+. /etc/udev/udev.conf
sysfs_dir="/sys"
bin="/sbin/udev"
fi
get_dev_number() {
- local x=
- local num=0
- local MEDIA=
- local DRIVE="${1%%[0-9]*}"
+ num=0
+ DRIVE="${1%%[0-9]*}"
for x in /proc/ide/*/media; do
if [ -e "${x}" ]; then
- MEDIA=`cat ${x}`
- if [ "${MEDIA}" = "$2" ]; then
+ lMEDIA=`cat ${x}`
+ if [ "${lMEDIA}" = "$2" ]; then
num=$((${num} + 1))
fi
if [ "${x}" = "/proc/ide/${DRIVE}/media" ]; then
echo $((${num} - 1))
}
-if [ -z "$3" -a -f /proc/ide/${1}/media ]; then
+if [ -z "$3" ] && [ -f /proc/ide/${1}/media ]; then
MEDIA=`cat /proc/ide/${1}/media`
if [ "${MEDIA}" = "cdrom" ]; then
echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom`
# BUS="scsi", KERNEL="sg*", PROGRAM="/etc/udev/scsi-devfs.sh sg %b %n", NAME="%c{1}", SYMLINK="%c{2} %k %c{3} %c{4}"
# Find out where sysfs is mounted. Exit if not available
-sysfs=`fgrep sysfs /proc/mounts | awk '{print $2}'`
+sysfs=`grep -F sysfs /proc/mounts | awk '{print $2}'`
if [ "$sysfs" = "" ]; then
echo "sysfs is required"
exit 1
l_log="scsi/host$scsi_host/$l_com"
s_log="$1/c${scsi_host}${s_com}"
-readlink $2 | fgrep -q pci
+readlink $2 | grep -F -q pci
if [ "$?" != "0" ]; then
# Not a PCI controller, show logical locations only
echo $l_log $s_log
-#! /bin/bash
+#! /bin/sh
#
# start_udev
#