diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2007-03-12 14:52:16 +0000 |
---|---|---|
committer | Matthias Schwarzott <zzam@gentoo.org> | 2007-03-12 14:52:16 +0000 |
commit | 0945ffdb4fc5edbcfc5812b4d12a5860634f1c07 (patch) | |
tree | 3cf71aecf107ef9eba4676a81b49666ca74d68c6 /sys-fs | |
parent | remove trailing whitespace. (diff) | |
download | historical-0945ffdb4fc5edbcfc5812b4d12a5860634f1c07.tar.gz historical-0945ffdb4fc5edbcfc5812b4d12a5860634f1c07.tar.bz2 historical-0945ffdb4fc5edbcfc5812b4d12a5860634f1c07.zip |
Now support kernel cmdline gentoo=nocoldplug to disable udev coldplug. Do not install persistent net rules for s390 arch, as it has no persistent mac addresses. No longer ignore device mapper devices, but look up the name and create /dev/mapper/NAME, that allows hal to get the events, Bug #137831. Do not apply normal rules to network devices, Bug #166652.
Package-Manager: portage-2.1.2.2
Diffstat (limited to 'sys-fs')
-rw-r--r-- | sys-fs/udev/ChangeLog | 13 | ||||
-rw-r--r-- | sys-fs/udev/Manifest | 33 | ||||
-rw-r--r-- | sys-fs/udev/files/digest-udev-106-r2 | 3 | ||||
-rw-r--r-- | sys-fs/udev/files/udev-start-106-r2.sh | 155 | ||||
-rw-r--r-- | sys-fs/udev/files/udev.rules-106-r2 | 330 | ||||
-rw-r--r-- | sys-fs/udev/udev-106-r2.ebuild | 282 |
6 files changed, 811 insertions, 5 deletions
diff --git a/sys-fs/udev/ChangeLog b/sys-fs/udev/ChangeLog index 644ee68e9db2..022db799fdf7 100644 --- a/sys-fs/udev/ChangeLog +++ b/sys-fs/udev/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for sys-fs/udev # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.279 2007/03/11 00:42:31 uberlord Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.280 2007/03/12 14:52:16 zzam Exp $ + +*udev-106-r2 (12 Mar 2007) + + 12 Mar 2007; Matthias Schwarzott <zzam@gentoo.org> + +files/udev.rules-106-r2, +files/udev-start-106-r2.sh, + +udev-106-r2.ebuild: + Now support kernel cmdline gentoo=nocoldplug to disable udev coldplug. Do + not install persistent net rules for s390 arch, as it has no persistent mac + addresses. No longer ignore device mapper devices, but look up the name and + create /dev/mapper/NAME, that allows hal to get the events, Bug #137831. Do + not apply normal rules to network devices, Bug #166652. 11 Mar 2007; Roy Marples <uberlord@gentoo.org> files/modprobe-104-r12.sh, files/modprobe-105.sh, files/modprobe.sh: diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest index 900f69b148f3..2cb1881e1643 100644 --- a/sys-fs/udev/Manifest +++ b/sys-fs/udev/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + AUX 05-udev-early.rules-078 288 RMD160 e4d07ee5080618ba60c9cfb544d438f2eb11cab6 SHA1 fbdeedb8b7a638c9d930f1e405aa83e55d9d2eec SHA256 63602afdbefafa4eb0b3301685e47dec5cc206b66765e733f9bcc6afe2a5d31b MD5 17c291f5c6e624792d02dd304fb8177e files/05-udev-early.rules-078 288 RMD160 e4d07ee5080618ba60c9cfb544d438f2eb11cab6 files/05-udev-early.rules-078 288 @@ -138,6 +141,10 @@ AUX udev-start-105.sh 4082 RMD160 843b2899cbb7911ba8c7e71550ec1f79d6bf5595 SHA1 MD5 5b2ce8d3db73b91ae203cd28619c9669 files/udev-start-105.sh 4082 RMD160 843b2899cbb7911ba8c7e71550ec1f79d6bf5595 files/udev-start-105.sh 4082 SHA256 aeecfa70194cc5078956253227459587b1b9f93d95d6b002fec64b9b95cdbcbb files/udev-start-105.sh 4082 +AUX udev-start-106-r2.sh 4208 RMD160 6c87a0bd179915dd14b6d243ea660d1da93e1271 SHA1 278d2956bc25365625696276935acdb177cfca90 SHA256 66fab3510332fabbe617fe4263f69e5e25f791dfd70fe5ea692cbef6ca9d419e +MD5 62a0cecff5b72abddf907d0cb039abeb files/udev-start-106-r2.sh 4208 +RMD160 6c87a0bd179915dd14b6d243ea660d1da93e1271 files/udev-start-106-r2.sh 4208 +SHA256 66fab3510332fabbe617fe4263f69e5e25f791dfd70fe5ea692cbef6ca9d419e files/udev-start-106-r2.sh 4208 AUX udev-start.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c SHA1 2558e3265c9bed383198e2f263e10016ad6f34a0 SHA256 0527b03ac666dd9e4c94811b10d499f04b3f6f8ae2f03e6460727c1b570d985d MD5 622f085dff7fb6138f3e2c992d569593 files/udev-start.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c files/udev-start.sh 2460 @@ -258,6 +265,10 @@ AUX udev.rules-106-r1 11525 RMD160 f25809478916c5051b0d64a39b7028f36d8c14bf SHA1 MD5 09121cf694013d2e69189d3260e36bd9 files/udev.rules-106-r1 11525 RMD160 f25809478916c5051b0d64a39b7028f36d8c14bf files/udev.rules-106-r1 11525 SHA256 4a4b8c258a83e9f35af4a3aa102c76c20777493631376b98b0b6f06901587a61 files/udev.rules-106-r1 11525 +AUX udev.rules-106-r2 11775 RMD160 6a46a9e16e5a6cf139f26a6227fcb881a5ced4cc SHA1 a66818e76ab88565f88560aaee21c70c688c63a6 SHA256 9a9c28900965dee549a049bc09fa1e0b6e76337ad6c56edbe7a38a1f71fe6eb2 +MD5 58927e1233eb59c9df971911093a6dae files/udev.rules-106-r2 11775 +RMD160 6a46a9e16e5a6cf139f26a6227fcb881a5ced4cc files/udev.rules-106-r2 11775 +SHA256 9a9c28900965dee549a049bc09fa1e0b6e76337ad6c56edbe7a38a1f71fe6eb2 files/udev.rules-106-r2 11775 AUX udev.rules.post_012 4184 RMD160 0fa81b4bafa732497b8e65cf658adf2cf32f3a0a SHA1 12300249d33f01c4fd1a8708a4733dafddb90ffe SHA256 3fc8785c40acb43d92a2f7b3c4e21cfa7b947fb5d2e87d1c109297ff34994100 MD5 7f23fbfcba51c7c4b8c29a8c08429996 files/udev.rules.post_012 4184 RMD160 0fa81b4bafa732497b8e65cf658adf2cf32f3a0a files/udev.rules.post_012 4184 @@ -346,14 +357,18 @@ EBUILD udev-106-r1.ebuild 9203 RMD160 87c4e91935c29a97cac74e3a86173d33f32fc814 S MD5 fe1598abe49f0a283feb6925d518f0f7 udev-106-r1.ebuild 9203 RMD160 87c4e91935c29a97cac74e3a86173d33f32fc814 udev-106-r1.ebuild 9203 SHA256 4ece2eda1a1852e40ac0cf1c14c0952d484915d841abd4d11634e938ec83de19 udev-106-r1.ebuild 9203 +EBUILD udev-106-r2.ebuild 9426 RMD160 f57c35316fa4ec7478b64a0f456ae3f82ffd256f SHA1 b31207f3d2df26df5d29deecaca230ee4310531a SHA256 3b6e0953a877409f32203e32512ebed6804e403a951f40898f8be43bf11e2a8e +MD5 ece8498e2179e5b0a89a57a5c342921a udev-106-r2.ebuild 9426 +RMD160 f57c35316fa4ec7478b64a0f456ae3f82ffd256f udev-106-r2.ebuild 9426 +SHA256 3b6e0953a877409f32203e32512ebed6804e403a951f40898f8be43bf11e2a8e udev-106-r2.ebuild 9426 EBUILD udev-106.ebuild 9197 RMD160 f41a2a34de78690fb114d8d48bea4e4c928724fd SHA1 c1ce96d49de3d27ea90c594ba07c0da4b559dff2 SHA256 bfb6ea516560a111c00cbd3abf3f8a4a86fa64e8215a66bac9897f24531e29eb MD5 e58b973d172923d98c751ec0b29181a5 udev-106.ebuild 9197 RMD160 f41a2a34de78690fb114d8d48bea4e4c928724fd udev-106.ebuild 9197 SHA256 bfb6ea516560a111c00cbd3abf3f8a4a86fa64e8215a66bac9897f24531e29eb udev-106.ebuild 9197 -MISC ChangeLog 51806 RMD160 ca6aca95999af13cc7dd2d701b5fd6acd19a530f SHA1 e9989378180a84477fba9c8a4be434a3543568b1 SHA256 4e2a784ef8383d3b7a7135fe959ef3e93e1130c75676100e6e7f70fa8173035a -MD5 c0dc962bc2db9e711e256749d8b37583 ChangeLog 51806 -RMD160 ca6aca95999af13cc7dd2d701b5fd6acd19a530f ChangeLog 51806 -SHA256 4e2a784ef8383d3b7a7135fe959ef3e93e1130c75676100e6e7f70fa8173035a ChangeLog 51806 +MISC ChangeLog 52332 RMD160 51f86bb6858da9ca1d29ebcb2227bcd216ef11cf SHA1 3dce0b13f6a113d038639daa5723694cae2d88d2 SHA256 9fbeafe60740812bfb34773b1c3f461abb054c6a14638bc3ac992fd7ffb5026c +MD5 f368515045b13c4f3381b0c6fcf50bfd ChangeLog 52332 +RMD160 51f86bb6858da9ca1d29ebcb2227bcd216ef11cf ChangeLog 52332 +SHA256 9fbeafe60740812bfb34773b1c3f461abb054c6a14638bc3ac992fd7ffb5026c ChangeLog 52332 MISC metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be SHA1 70c43d2863c09958849bfce8c5bb97d406a0662b SHA256 a9881de1424ac71191111bd30c7c1253589673b0cdce13c352204f1499e9d884 MD5 f74bee0505505c00e76da6313db29e49 metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be metadata.xml 447 @@ -415,3 +430,13 @@ SHA256 6d6620b896b3c0eee107f7a7bdee0a648b198ec04d17599162e78d3743f2dd63 files/di MD5 973c082873a5b1e461964c9db1753eab files/digest-udev-106-r1 229 RMD160 08bf8737aba13167f8f7c38148b937b767a086e1 files/digest-udev-106-r1 229 SHA256 6d6620b896b3c0eee107f7a7bdee0a648b198ec04d17599162e78d3743f2dd63 files/digest-udev-106-r1 229 +MD5 973c082873a5b1e461964c9db1753eab files/digest-udev-106-r2 229 +RMD160 08bf8737aba13167f8f7c38148b937b767a086e1 files/digest-udev-106-r2 229 +SHA256 6d6620b896b3c0eee107f7a7bdee0a648b198ec04d17599162e78d3743f2dd63 files/digest-udev-106-r2 229 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.3 (GNU/Linux) + +iD8DBQFF9Wkmt2vP6XvVdOcRAgpLAKCe4/p9+znKdSpSG/SlPWRYFgE2wwCgxbYT +qxeCo23BNZ54U38FJAl4DbE= +=FUAQ +-----END PGP SIGNATURE----- diff --git a/sys-fs/udev/files/digest-udev-106-r2 b/sys-fs/udev/files/digest-udev-106-r2 new file mode 100644 index 000000000000..7bc700ae9207 --- /dev/null +++ b/sys-fs/udev/files/digest-udev-106-r2 @@ -0,0 +1,3 @@ +MD5 320ccd2d0f4540d10e021bafa14f8985 udev-106.tar.bz2 188557 +RMD160 2a01d06746b143c53d01b8c6aa97e635c062e9d3 udev-106.tar.bz2 188557 +SHA256 544a7372468459e8a631ffdf9cace29bc77365b9a6dab4189c6ba813da002156 udev-106.tar.bz2 188557 diff --git a/sys-fs/udev/files/udev-start-106-r2.sh b/sys-fs/udev/files/udev-start-106-r2.sh new file mode 100644 index 000000000000..f20b8d19be40 --- /dev/null +++ b/sys-fs/udev/files/udev-start-106-r2.sh @@ -0,0 +1,155 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +populate_udev() { + # populate /dev with devices already found by the kernel + + # tell modprobe.sh to be verbose to $CONSOLE + echo CONSOLE=${CONSOLE} > /dev/.udev_populate + + if get_bootparam "nocoldplug" ; then + RC_COLDPLUG="no" + ewarn "Skipping udev coldplug as requested in kernel cmdline" + fi + + if [ $(get_KV) -gt $(KV_to_int '2.6.14') ] ; then + ebegin "Populating /dev with existing devices through uevents" + local opts= + [ ${RC_COLDPLUG} != "yes" ] && opts="--attr-match=dev" + /sbin/udevtrigger ${opts} + eend $? + else + ebegin "Populating /dev with existing devices with udevstart" + /sbin/udevstart + eend $? + fi + + # loop until everything is finished + # there's gotta be a better way... + ebegin "Letting udev process events" + /sbin/udevsettle --timeout=60 + eend $? + + rm -f /dev/.udev_populate + return 0 +} + +seed_dev() { + # Seed /dev with some things that we know we need + ebegin "Seeding /dev with needed nodes" + + # if /dev/console is missing on root-partition, + # kernel could not open it and we need to do that for + # udevd (Bug #151414) + [ ! -c /dev/console ] && mknod /dev/console c 5 1 + + # creating /dev/tty1 as it is used by bootsplash + # (to allow us to write to $CONSOLE before udev has + # created it) + [ ! -c /dev/tty1 ] && mknod /dev/tty1 c 4 1 + + # udevd will dup its stdin/stdout/stderr to /dev/null + # and we do not want a file which gets buffered in ram + [ ! -c /dev/null ] && mknod /dev/null c 1 3 + + # copy over any persistant things + if [ -d /lib/udev/devices ] ; then + cp --preserve=all --recursive --update /lib/udev/devices/* /dev 2>/dev/null + fi + + # Not provided by sysfs but needed + ln -snf /proc/self/fd /dev/fd + ln -snf fd/0 /dev/stdin + ln -snf fd/1 /dev/stdout + ln -snf fd/2 /dev/stderr + [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core + + # Create problematic directories + mkdir -p /dev/pts /dev/shm + eend 0 +} + +main() { + # check if /dev/console exists outside tmpfs + [ -c /dev/console ] ; local need_redirect=$? + + # Setup temporary storage for /dev + ebegin "Mounting /dev for udev" + if [ "${RC_USE_FSTAB}" = "yes" ] ; then + mntcmd=$(get_mount_fstab /dev) + else + unset mntcmd + fi + if [ -n "${mntcmd}" ] ; then + try mount -n ${mntcmd} + else + if grep -Eq "[[:space:]]+tmpfs$" /proc/filesystems ; then + mntcmd="tmpfs" + else + mntcmd="ramfs" + fi + # many video drivers require exec access in /dev #92921 + try mount -n -t "${mntcmd}" -o exec,nosuid,mode=0755 udev /dev + fi + eend $? + + # Create a file so that our rc system knows it's still in sysinit. + # Existance means init scripts will not directly run. + # rc will remove the file when done with sysinit. + touch /dev/.rcsysinit + + # Selinux lovin; /selinux should be mounted by selinux-patched init + if [ -x /sbin/restorecon ] && [ -c /selinux/null ] ; then + restorecon /dev > /selinux/null + fi + + # Actually get udev rolling + if [ "${RC_DEVICE_TARBALL}" = "yes" ] && \ + [ -s /lib/udev/state/devices.tar.bz2 ] ; then + ebegin "Populating /dev with saved device nodes" + try tar -jxpf /lib/udev/state/devices.tar.bz2 -C /dev + eend $? + fi + + seed_dev + + # Setup hotplugging (if possible) + if [ -e /proc/sys/kernel/hotplug ] ; then + ebegin "Setting up proper hotplug agent" + eindent + if [ $(get_KV) -gt $(KV_to_int '2.6.14') ] ; then + einfo "Using netlink for hotplug events..." + echo "" > /proc/sys/kernel/hotplug + else + einfo "Setting /sbin/udevsend as hotplug agent ..." + echo "/sbin/udevsend" > /proc/sys/kernel/hotplug + fi + eoutdent + eend 0 + fi + + ebegin "Starting udevd" + if [ ${need_redirect} -eq 1 ]; then + # we need to open fds 0 1 2 to solve Bug #151414 + /sbin/udevd --daemon </dev/console >/dev/console 2>/dev/console + else + /sbin/udevd --daemon + fi + eend $? + + populate_udev + + # Create nodes that udev can't + ebegin "Finalizing udev configuration" + [ -x /sbin/dmsetup ] && /sbin/dmsetup mknodes &>/dev/null + [ -x /sbin/lvm ] && \ + /sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null + # Running evms_activate on a LiveCD causes lots of headaches + [ -z "${CDBOOT}" ] && [ -x /sbin/evms_activate ] && \ + /sbin/evms_activate -q &>/dev/null + eend 0 +} + +main + +# vim:ts=4 diff --git a/sys-fs/udev/files/udev.rules-106-r2 b/sys-fs/udev/files/udev.rules-106-r2 new file mode 100644 index 000000000000..bee125051984 --- /dev/null +++ b/sys-fs/udev/files/udev.rules-106-r2 @@ -0,0 +1,330 @@ +# /etc/udev/rules/50-udev.rules: device naming rules for udev +# +# Gentoo specific rules +# +# There are a number of modifiers that are allowed to be used in some of the +# fields. See the udev man page for a full description of them. +# +# Try not to modify this file, if you wish to change things, create a new rule +# file that can be run before this one. +# + +# Net devices can have arbitrary names, even +# ones set by the user. Not try to match normal +# rules on net devices (Bug #166652) +SUBSYSTEM=="net", GOTO="gentoo_device_rules_end" + +# console +KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="vcs*", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="vcsa*", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="tty", NAME="%k", GROUP="tty", MODE="0666", OPTIONS="last_rule" +KERNEL=="tty[0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="tty[0-9][0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule" +KERNEL=="console", NAME="%k", GROUP="tty", MODE="0600" +KERNEL=="ptmx", NAME="%k", GROUP="tty", MODE="0666" + +# tty devices +KERNEL=="ttyS[0-9]*", NAME="%k", SYMLINK="tts/%n", GROUP="uucp", MODE="0660" +KERNEL=="ttyUSB[0-9]*", NAME="%k", SYMLINK="tts/USB%n", GROUP="uucp", MODE="0660" +KERNEL=="ippp0", NAME="%k", GROUP="uucp", MODE="0660" +KERNEL=="isdn*" NAME="%k", GROUP="uucp", MODE="0660" +KERNEL=="dcbri*", NAME="%k", GROUP="uucp", MODE="0660" +KERNEL=="ircomm*", NAME="%k", GROUP="uucp", MODE="0660" + +# all block devices +SUBSYSTEM=="block", GROUP="disk" + +# cdrom symlinks and other good cdrom naming +KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", ACTION=="add", IMPORT{program}="cdrom_id --export $tempnode" +ENV{ID_CDROM}=="?*", GROUP="cdrom" + +# assign cdrom-permission also to associated generic device (for cd-burning ...) +KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom" + +# disk devices +KERNEL=="sd*", NAME="%k", GROUP="disk" +KERNEL=="dasd*", NAME="%k", GROUP="disk" +KERNEL=="ataraid*", NAME="%k", GROUP="disk" + +# compaq smart array +KERNEL=="cciss*", NAME="%k" +KERNEL=="ida*", NAME="%k" + +# mylex +KERNEL=="rd*", NAME="%k" + +# dri devices +KERNEL=="card*", NAME="dri/card%n", GROUP="video" +KERNEL=="nvidia*", NAME="%k", GROUP="video" +KERNEL=="3dfx*", NAME="%k", GROUP="video" + +# alsa devices +SUBSYSTEM=="sound", GROUP="audio" +KERNEL=="controlC[0-9]*", NAME="snd/%k" +KERNEL=="hw[CD0-9]*", NAME="snd/%k" +KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k" +KERNEL=="midiC[D0-9]*", NAME="snd/%k" +KERNEL=="timer", NAME="snd/%k" +KERNEL=="seq", NAME="snd/%k" + +# capi devices +KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20", GROUP="uucp", MODE="0660" +KERNEL=="capi*", NAME="capi/%n", GROUP="uucp", MODE="0660" + +# cpu devices +KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" +KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" +KERNEL=="microcode", NAME="cpu/microcode" + +# dm devices +# lookup device name and create device in /dev/mapper +# use dmsetup, until devmap_name is provided by sys-fs/device-mapper +ACTION=="add", SUBSYSTEM=="block", KERNEL=="dm-*", \ + PROGRAM="/sbin/dmsetup -j %M -m %m --noopencount --noheadings -c -o name info", \ + NAME="mapper/%c" +KERNEL=="device-mapper", NAME="mapper/control" + +# fb devices +KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video" + +# floppy devices +KERNEL=="fd[0-9]*", NAME="floppy/%k", SYMLINK+="%k", GROUP="floppy" +KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/floppy/%k" +KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f $root/floppy/%k?*'" + +# i2c devices +KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k" + +# input devices +KERNEL=="mice", NAME="input/%k", MODE="0644" +KERNEL=="mouse*", NAME="input/%k", MODE="0644" +KERNEL=="event*", NAME="input/%k", MODE="0600" +KERNEL=="js*", NAME="input/%k", MODE="664" +KERNEL=="ts*", NAME="input/%k", MODE="0600" + +# loop devices +KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k", GROUP="disk" + +# md block devices +KERNEL=="md[0-9]*", NAME="md/%n", SYMLINK+="%k", GROUP="disk" + +# aoe char devices, +SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220" +SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440" +SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220" + +# misc devices +KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k" +KERNEL=="psaux", NAME="misc/%k", SYMLINK+="%k" +KERNEL=="rtc", NAME="misc/%k", SYMLINK+="%k", MODE="0664" +KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k" +KERNEL=="inotify", NAME="misc/%k", SYMLINK+="%k", MODE="0666" + +# netlink devices +KERNEL=="route", NAME="netlink/%k" +KERNEL=="skip", NAME="netlink/%k" +KERNEL=="usersock", NAME="netlink/%k" +KERNEL=="fwmonitor", NAME="netlink/%k" +KERNEL=="tcpdiag", NAME="netlink/%k" +KERNEL=="nflog", NAME="netlink/%k" +KERNEL=="xfrm", NAME="netlink/%k" +KERNEL=="arpd", NAME="netlink/%k" +KERNEL=="route6", NAME="netlink/%k" +KERNEL=="ip6_fw", NAME="netlink/%k" +KERNEL=="dnrtmsg", NAME="netlink/%k" +KERNEL=="tap*", NAME="netlink/%k" + +# network devices +KERNEL=="tun", NAME="net/%k", MODE="0600" + +# ramdisk devices +KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k" + +# IEEE1394 (firewire) devices (must be before raw devices below) +KERNEL=="raw1394", NAME="%k", GROUP="video" +KERNEL=="dv1394*", NAME="dv1394/%n", GROUP="video" +KERNEL=="video1394*", NAME="video1394/%n", GROUP="video" + +# raw devices +SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" +KERNEL=="ram*", NAME="%k", GROUP="disk" + +# sound devices +KERNEL=="adsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="adsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="audio", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="audio[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="dsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="dsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="mixer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="mixer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="sequencer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" +KERNEL=="sequencer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" + +# memory devices +KERNEL=="random", NAME="%k", MODE="0666" +KERNEL=="urandom", NAME="%k", MODE="0444" +KERNEL=="mem", NAME="%k", MODE="0640" +KERNEL=="kmem", NAME="%k", MODE="0640" +KERNEL=="port", NAME="%k", MODE="0640" +KERNEL=="full", NAME="%k", MODE="0666" +KERNEL=="null", NAME="%k", MODE="0666" +KERNEL=="zero", NAME="%k", MODE="0666" + +# usb devices +KERNEL=="hiddev*", NAME="usb/%k" +KERNEL=="auer*", NAME="usb/%k" +KERNEL=="legousbtower*", NAME="usb/%k", GROUP="usb" +KERNEL=="dabusb*", NAME="usb/%k" +BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp" + +# v4l devices +KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video" +KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video" +KERNEL=="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK+="vbi%n", GROUP="video" +KERNEL=="vtx[0-9]*", NAME="v4l/vtx%n", GROUP="video" + +# dvb devices +SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video" + +# Asterisk Zaptel devices +KERNEL=="zapctl", NAME="zap/ctl" +KERNEL=="zaptimer", NAME="zap/timer" +KERNEL=="zapchannel", NAME="zap/channel" +KERNEL=="zappseudo", NAME="zap/pseudo" +KERNEL=="zap[0-9]*", NAME="zap/%n" + +# pilot/palm devices +KERNEL=="pilot", NAME="%k", GROUP="uucp" + +# jaz devices +KERNEL=="jaz*", NAME="%k", GROUP="disk" + +# zip devices +KERNEL=="pocketzip*", NAME="%k", GROUP="disk" +KERNEL=="zip*", NAME="%k", GROUP="disk" + +# ls120 devices +KERNEL=="ls120", NAME="%k", GROUP="disk" + +# lp devices +KERNEL=="lp*", NAME="%k", GROUP="lp" +KERNEL=="irlpt", NAME="%k", GROUP="lp" +KERNEL=="usblp", NAME="%k", GROUP="lp" +KERNEL=="lp*", NAME="%k", GROUP="lp" +KERNEL=="parport*", NAME="%k", GROUP="lp" + +# tape devices +KERNEL=="ht*", NAME="%k", GROUP="tape" +KERNEL=="nht*", NAME="%k", GROUP="tape" +KERNEL=="pt*", NAME="%k", GROUP="tape" +KERNEL=="npt*", NAME="%k", GROUP="tape" +KERNEL=="st*", NAME="%k", GROUP="tape" +KERNEL=="nst*", NAME="%k", GROUP="tape" +KERNEL=="osst*", NAME="%k", GROUP="tape" +KERNEL=="nosst*", NAME="%k", GROUP="tape" + +# diskonkey devices +KERNEL=="diskonkey*", NAME="%k", GROUP="disk" + +# rem_ide devices +KERNEL=="microdrive*", NAME="%k", GROUP="disk" + +# kbd devices +KERNEL=="kbd", NAME="%k", MODE="0664" + +# Sony Vaio Jogdial sonypi device +KERNEL=="sonypi", NAME="%k", MODE="0666" + +# packet devices +KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrw", MODE="0660" +KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/pktcdvd%n", GROUP="cdrw", MODE="0660" + +# infiniband devices +KERNEL=="umad*", NAME="infiniband/%k" +KERNEL=="issm*", NAME="infiniband/%k" + + +# usbfs-like device nodes +SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="usb", MODE="0664" + + +# Setting timeout for tape-devices to 900 seconds +# if you need timeouts for other devices add a similar rule +# with correct type-value, or open a bug on bugs.gentoo.org. +ACTION=="add", SUBSYSTEM=="scsi" , ATTRS{type}=="1", \ + RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'" + + +# Module autoloading +ACTION!="add", GOTO="hotplug_no_add_event" + +# check if the device has already been claimed by a driver +ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_load_end" + +# this driver is broken and should not be loaded automatically +SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_load_end" + +# Autoload modules that lack aliases but have them defined inutoload modules +ENV{MODALIAS}=="?*", RUN+="modprobe.sh $env{MODALIAS}" + +# /etc/modprobe.conf. +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /lib/udev/modprobe.sh pnp:d$$id; done < /sys$devpath/id'" +# If you have problems with some pnp modules being loaded, please enter the +# following aliases into the modprobe configuration files. These are needed by +# udev to autoload some modules +# alias pnp:dPNP0510 irtty-sir +# alias pnp:dPNP0511 irtty-sir +# alias pnp:dPNP0700 floppy +# alias pnp:dPNP0800 pcspkr +# alias pnp:dPNP0b00 rtc +# alias pnp:dPNP0303 atkbd +# alias pnp:dPNP0f13 psmouse +# alias pnp:dPNPb02f analog + + +SUBSYSTEM=="i2o", RUN+="modprobe.sh i2o_block" +SUBSYSTEM=="mmc", RUN+="modprobe.sh mmc_block" + +# Parts taken from redhat-rules +# sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC +# sr: 4 TYPE_WORM, 5 TYPE_ROM +# st/osst: 1 TYPE_TAPE + +# Load driver for scsi-device +SUBSYSTEM!="scsi_device", GOTO="hotplug_scsi_end" +ATTRS{type}=="?*", RUN+="modprobe.sh sg" +ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod" +ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod" +ATTRS{type}=="8", RUN+="modprobe.sh ch" + +ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st" +ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", \ + ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst" +ENV{ID_SCSI_TAPE_DRIVER}=="?*", RUN+="modprobe.sh $env{ID_SCSI_TAPE_DRIVER}" +LABEL="hotplug_scsi_end" + + +SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi" + +LABEL="hotplug_load_end" + + +# Load firmware +SUBSYSTEM=="firmware", RUN+="firmware.sh" + +LABEL="hotplug_no_add_event" + +LABEL="gentoo_device_rules_end" + +# be backward compatible for a while with the /etc/dev.d and /etc/hotplug.d/ systems +# run /etc/hotplug.d/ stuff only if we came from a hotplug event, not for udevstart +#ENV{UDEVD_EVENT}=="1", RUN+="udev_run_hotplugd $env{SUBSYSTEM}" + +# always run /etc/dev.d/ stuff for now. +RUN+="udev_run_devd $env{SUBSYSTEM}" + +# debugging monitor +RUN+="socket:/org/kernel/udev/monitor" diff --git a/sys-fs/udev/udev-106-r2.ebuild b/sys-fs/udev/udev-106-r2.ebuild new file mode 100644 index 000000000000..7d655a723aa8 --- /dev/null +++ b/sys-fs/udev/udev-106-r2.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-106-r2.ebuild,v 1.1 2007/03/12 14:52:16 zzam Exp $ + +inherit eutils flag-o-matic multilib toolchain-funcs + +DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)" +HOMEPAGE="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" +SRC_URI="mirror://kernel/linux/utils/kernel/hotplug/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="selinux" + +DEPEND="selinux? ( sys-libs/libselinux )" +RDEPEND="!sys-apps/coldplug" +RDEPEND="${DEPEND} ${RDEPEND} + >=sys-apps/baselayout-1.12.5" +# We need the lib/rcscripts/addon support +PROVIDE="virtual/dev-manager" + +src_unpack() { + unpack ${A} + + cd "${S}" + + # patches go here... + #epatch ${FILESDIR}/${P}-udev_volume_id.patch + epatch ${FILESDIR}/${PN}-104-peristent-net-disable-xen.patch + epatch ${FILESDIR}/${P}-floppy-devices-no-umask.diff + + # No need to clutter the logs ... + sed -ie '/^DEBUG/ c\DEBUG = false' Makefile + # Do not use optimization flags from the package + sed -ie 's|$(OPTIMIZATION)||g' Makefile + + # Make sure there is no sudden changes to udev.rules.gentoo + # (more for my own needs than anything else ...) + MD5=`md5sum < "${S}/etc/udev/gentoo/udev.rules"` + MD5=${MD5/ -/} + if [ "${MD5}" != "295a9b7bdc8bdb239f8860d14af761b0" ] + then + echo + eerror "gentoo/udev.rules has been updated, please validate!" + die "gentoo/udev.rules has been updated, please validate!" + fi +} + +src_compile() { + filter-flags -fprefetch-loop-arrays + local myconf= + local extras="extras/ata_id \ + extras/cdrom_id \ + extras/dasd_id \ + extras/edd_id \ + extras/firmware \ + extras/floppy \ + extras/path_id \ + extras/run_directory \ + extras/scsi_id \ + extras/usb_id \ + extras/volume_id \ + extras/rule_generator" + + use selinux && myconf="${myconf} USE_SELINUX=true" + + # Not everyone has full $CHOST-{ld,ar,etc...} yet + local mycross="" + type -p ${CHOST}-ar && mycross=${CHOST}- + + echo "get_libdir = $(get_libdir)" + # Do not work with emake + make \ + EXTRAS="${extras}" \ + udevdir="/dev/" \ + CROSS_COMPILE=${mycross} \ + ${myconf} || die +} + +src_install() { + # we install everything by "hand" and don't rely on the udev Makefile to do + # it for us (why? it's easier that way...) + dobin udevinfo || die "Required binary not installed properly" + dobin udevtest || die "Required binary not installed properly" + dobin udevmonitor || die "Required binary not installed properly" + into / + dosbin udevd || die "Required binary not installed properly" + dosbin udevstart || die "Required binary not installed properly" + dosbin udevtrigger || die "Required binary not installed properly" + dosbin udevcontrol || die "Required binary not installed properly" + dosbin udevsettle || die "Required binary not installed properly" + + # Helpers + exeinto /lib/udev + doexe extras/run_directory/udev_run_devd || die "Required helper not installed properly" + doexe extras/run_directory/udev_run_hotplugd || die "Required helper not installed properly" + doexe extras/ata_id/ata_id || die "Required helper not installed properly" + doexe extras/volume_id/vol_id || die "Required helper not installed properly" + doexe extras/scsi_id/scsi_id || die "Required helper not installed properly" + doexe extras/usb_id/usb_id || die "Required helper not installed properly" + doexe extras/path_id/path_id || die "Required helper not installed properly" + doexe extras/cdrom_id/cdrom_id || die "Required helper not installed properly" + doexe extras/dasd_id/dasd_id || die "Required helper not installed properly" + doexe extras/edd_id/edd_id || die "Required helper not installed properly" + doexe extras/rule_generator/write_cd_rules || die "Required helper not installed properly" + doexe extras/rule_generator/write_net_rules || die "Required helper not installed properly" + doexe extras/rule_generator/rule_generator.functions || die "Required helper not installed properly" + keepdir /lib/udev/state + keepdir /lib/udev/devices + + # vol_id library (needed by mount and HAL) + dolib extras/volume_id/lib/*.a extras/volume_id/lib/*.so* + # move the .a files to /usr/lib + dodir /usr/$(get_libdir) + mv -f "${D}"/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ + + # handle static linking bug #4411 + gen_usr_ldscript libvolume_id.so + + # save pkgconfig info + insinto /usr/$(get_libdir)/pkgconfig + doins extras/volume_id/lib/*.pc + + #exeinto /etc/udev/scripts + exeinto /lib/udev + #doexe extras/ide-devfs.sh + #doexe extras/scsi-devfs.sh + #doexe extras/raid-devfs.sh + doexe extras/floppy/create_floppy_devices || die "Required binary not installed properly" + doexe extras/firmware/firmware.sh || die "Required binary not installed properly" + newexe ${FILESDIR}/net-104-r10.sh net.sh || die "Required binary not installed properly" + newexe ${FILESDIR}/modprobe-105.sh modprobe.sh || die "Required binary not installed properly" + doexe ${FILESDIR}/seq_node.sh || die "Required binary not installed properly" + + # Our udev config file + insinto /etc/udev + newins ${FILESDIR}/udev.conf.post_081 udev.conf + + # Our rules files + insinto /etc/udev/rules.d/ + newins etc/udev/gentoo/udev.rules 50-udev.rules + newins ${FILESDIR}/udev.rules-106-r2 50-udev.rules + newins ${FILESDIR}/05-udev-early.rules-104-r5 05-udev-early.rules + doins ${FILESDIR}/95-net.rules + # Use upstream's persistent rules for devices + doins etc/udev/rules.d/60-*.rules + doins extras/rule_generator/75-*.rules || die "rules not installed properly" + + # scsi_id configuration + insinto /etc + doins extras/scsi_id/scsi_id.config + + # set up the /etc/dev.d directory tree + keepdir /etc/dev.d + + # all of the man pages + doman *.7 + doman *.8 + doman extras/ata_id/ata_id.8 + doman extras/edd_id/edd_id.8 + doman extras/scsi_id/scsi_id.8 + doman extras/volume_id/vol_id.8 + doman extras/dasd_id/dasd_id.8 + doman extras/cdrom_id/cdrom_id.8 + # create a extra symlink for udevcontrol + dosym udevd.8 /usr/share/man/man8/udevcontrol.8 + + # our udev hooks into the rc system + insinto /lib/rcscripts/addons + newins "${FILESDIR}"/udev-start-106-r2.sh udev-start.sh + newins "${FILESDIR}"/udev-stop-105.sh udev-stop.sh + + # needed to compile latest Hal + insinto /usr/include + doins extras/volume_id/lib/libvolume_id.h + + dodoc ChangeLog FAQ README TODO RELEASE-NOTES + dodoc docs/{overview,udev_vs_devfs} + dodoc docs/writing_udev_rules/* + + newdoc extras/volume_id/README README_volume_id + + if use s390; then + # s390 does not has persistent mac addresses + # and we only have persistence rules for mac. + # For now just remove the rules file. + rm ${D}/etc/udev/rules.d/75-persistent-net-generator.rules + fi + +} + +pkg_preinst() { + if [[ -d ${ROOT}/lib/udev-state ]] ; then + mv -f "${ROOT}"/lib/udev-state/* "${D}"/lib/udev/state/ + rm -r "${ROOT}"/lib/udev-state + fi + + if [ -f "${ROOT}/etc/udev/udev.config" -a \ + ! -f "${ROOT}/etc/udev/udev.rules" ] + then + mv -f ${ROOT}/etc/udev/udev.config ${ROOT}/etc/udev/udev.rules + fi + + # delete the old udev.hotplug symlink if it is present + if [ -h "${ROOT}/etc/hotplug.d/default/udev.hotplug" ] + then + rm -f ${ROOT}/etc/hotplug.d/default/udev.hotplug + fi + + # delete the old wait_for_sysfs.hotplug symlink if it is present + if [ -h "${ROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug" ] + then + rm -f ${ROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug + fi + + # delete the old wait_for_sysfs.hotplug symlink if it is present + if [ -h "${ROOT}/etc/hotplug.d/default/10-udev.hotplug" ] + then + rm -f ${ROOT}/etc/hotplug.d/default/10-udev.hotplug + fi + + # is there a stale coldplug initscript? (CONFIG_PROTECT leaves it behind) + coldplug_stale="" + if [ -f "${ROOT}/etc/init.d/coldplug" ] + then + coldplug_stale="1" + fi +} + +pkg_postinst() { + if [[ ${ROOT} == "/" ]] ; then + # check if root of init-process is identical to ours + if [ -r /proc/1/root -a /proc/1/root/ -ef /proc/self/root/ ]; then + einfo "restarting udevd now." + if [[ -n $(pidof udevd) ]] ; then + killall -15 udevd &>/dev/null + sleep 1 + killall -9 udevd &>/dev/null + fi + /sbin/udevd --daemon + fi + fi + + # people want reminders, I'll give them reminders. Odds are they will + # just ignore them anyway... + + if [[ ${coldplug_stale} == "1" ]] ; then + ewarn "A stale coldplug init script found. You should run:" + ewarn + ewarn " rc-update del coldplug" + ewarn " rm -f /etc/init.d/coldplug" + ewarn + ewarn "udev now provides its own coldplug functionality." + fi + + # delete 40-scsi-hotplug.rules - all integrated in 50-udev.rules + if has_version "=sys-fs/udev-103-r3"; then + if [[ -e "${ROOT}/etc/udev/rules.d/40-scsi-hotplug.rules" ]] + then + ewarn "Deleting stray 40-scsi-hotplug.rules" + ewarn "installed by sys-fs/udev-103-r3" + rm -f ${ROOT}/etc/udev/rules.d/40-scsi-hotplug.rules + fi + fi + + # Removing some device-nodes we thought we need some time ago + if [[ -d "${ROOT}"/lib/udev/devices ]]; then + rm -f "${ROOT}"/lib/udev/devices/{null,zero,console,urandom} + fi + + # Removing some old file + if has_version "<sys-fs/udev-104-r5"; then + rm -f "${ROOT}"/etc/dev.d/net/hotplug.dev + rmdir --ignore-fail-on-non-empty "${ROOT}"/etc/dev.d/net + fi + + einfo + einfo "For more information on udev on Gentoo, writing udev rules, and" + einfo " fixing known issues visit:" + einfo " http://www.gentoo.org/doc/en/udev-guide.xml" +} |