Package: makedev Version: 2.3.1-87 Severity: normal While trying to fix lirc for #393575 (lirc: mknod in maintainer script), I noticed that makedev's support for lirc seems to be broken:
if [ -x /dev/MAKEDEV ]; then
(cd /dev && ./MAKEDEV lirc) || true
fi
leads to
# LANG= ./MAKEDEV lirc
udev active, devices will be created in /dev/.static/dev/
mknod: extra operand `root'
Try `mknod --help' for more information.
Warning: MAKEDEV lircd p root lirc 0640 is missing parameter(s).
mknod: extra operand `root'
Fifos do not have major and minor device numbers.
Try `mknod --help' for more information.
makedev lircd p root lirc 0640: failed
Warning: MAKEDEV lircm p root lirc 0640 is missing parameter(s).
mknod: extra operand `root'
Fifos do not have major and minor device numbers.
Try `mknod --help' for more information.
makedev lircm p root lirc 0640: failed
The attached patch seems to fix this issue by creating a new makefifo()
function modelled after makedev() and fixing device node creation/ access
rights for lirc.
Regards
Stefan Lippers-Hollmann
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.24-2.6.24.3.slh.11-sidux-amd64 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages makedev depends on:
ii base-passwd 3.5.17 Debian base system master password
makedev recommends no packages.
-- no debconf information
diff -u makedev-2.3.1/MAKEDEV makedev-2.3.1/MAKEDEV
--- makedev-2.3.1/MAKEDEV
+++ makedev-2.3.1/MAKEDEV
@@ -31,7 +31,7 @@
coda=" root root 0600"
ipsec=" root root 0200"
readable=" root root 0444"
- lirc=" root lirc 0640"
+ lirc=" root video 0640"
MAXVT=63
@@ -153,0 +154,32 @@
+makefifo () { # usage: makefifo name owner group mode
+ if [ "$opt_v" ]
+ then if [ "$opt_d" ]
+ then echo "delete $1"
+ else echo "create $1 $2:$3 $4"
+ fi
+ fi
+ # missing parameters are a bug - bail - should we do an exit 1 here?
+ case :$1:$2:$3:$4: in
+ *::*) echo "Warning: MAKEFIFO $@ is missing parameter(s)." >&2;;
+ esac
+ if [ ! "$opt_n" ]
+ then
+ if [ "$opt_d" ]
+ then
+ rm -f $1
+ else
+ rm -f $1-
+ if mknod $1- p &&
+ chown $2:$3 $1- &&
+ chmod $4 $1- &&
+ mv $1- $1
+ then
+ : # it worked
+ else
+ # Didn't work, clean up any mess...
+ echo "makefifo $@: failed"
+ rm -f $1-
+ fi
+ fi
+ fi
+}
@@ -2103,9 +2135,9 @@
done
;;
lirc)
- mknod lirc c 61 0 $lirc
+ makedev lirc c 61 0 $lirc
for i in d m; do
- makedev lirc${i} p $lirc
+ makefifo lirc${i} $lirc
done
;;
update)
signature.asc
Description: This is a digitally signed message part.

