From 186c4a33e7f8e9906634e26d0c5bb6019b1c715e Mon Sep 17 00:00:00 2001 From: Matthias Schwarzott Date: Sun, 27 May 2007 08:15:44 +0000 Subject: Changed udev-start.sh to return an exit-code of 0, to not let baselayout think udev failed, and start mdev afterwards, solving bug #179847. Package-Manager: portage-2.1.2.7 --- sys-fs/udev/ChangeLog | 10 +- sys-fs/udev/Manifest | 36 ++-- sys-fs/udev/files/digest-udev-111-r2 | 3 - sys-fs/udev/files/digest-udev-111-r3 | 3 + sys-fs/udev/files/udev-start-111-r2.sh | 206 --------------------- sys-fs/udev/files/udev-start-111-r3.sh | 209 ++++++++++++++++++++++ sys-fs/udev/udev-111-r2.ebuild | 317 --------------------------------- sys-fs/udev/udev-111-r3.ebuild | 317 +++++++++++++++++++++++++++++++++ 8 files changed, 556 insertions(+), 545 deletions(-) delete mode 100644 sys-fs/udev/files/digest-udev-111-r2 create mode 100644 sys-fs/udev/files/digest-udev-111-r3 delete mode 100644 sys-fs/udev/files/udev-start-111-r2.sh create mode 100644 sys-fs/udev/files/udev-start-111-r3.sh delete mode 100644 sys-fs/udev/udev-111-r2.ebuild create mode 100644 sys-fs/udev/udev-111-r3.ebuild (limited to 'sys-fs/udev') diff --git a/sys-fs/udev/ChangeLog b/sys-fs/udev/ChangeLog index 58b48cb2458b..7b33a4461484 100644 --- a/sys-fs/udev/ChangeLog +++ b/sys-fs/udev/ChangeLog @@ -1,6 +1,14 @@ # 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.309 2007/05/25 13:51:07 zzam Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.310 2007/05/27 08:15:44 zzam Exp $ + +*udev-111-r3 (27 May 2007) + + 27 May 2007; Matthias Schwarzott + -files/udev-start-111-r2.sh, +files/udev-start-111-r3.sh, + -udev-111-r2.ebuild, +udev-111-r3.ebuild: + Changed udev-start.sh to return an exit-code of 0, to not let baselayout + think udev failed, and start mdev afterwards, solving bug #179847. *udev-111-r2 (25 May 2007) diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest index 18d1d0b30aa9..6e0a2aeab204 100644 --- a/sys-fs/udev/Manifest +++ b/sys-fs/udev/Manifest @@ -85,10 +85,10 @@ AUX udev-start-110-r1.sh 5327 RMD160 caeac2277a26017330b9c626976842eadfb0b11f SH MD5 07f7b394707e9c1a70e7511a4fd5f810 files/udev-start-110-r1.sh 5327 RMD160 caeac2277a26017330b9c626976842eadfb0b11f files/udev-start-110-r1.sh 5327 SHA256 7845199f72bc41f440da36a8a3e44c92b943fdbb84241f13c073961246190ad7 files/udev-start-110-r1.sh 5327 -AUX udev-start-111-r2.sh 5452 RMD160 9b9e36af971f8933b8edd329d991050944bb5906 SHA1 739578c45a075bf16f83ce7df8909db9c2b6c682 SHA256 402824c23d1af890722abf3651c4f2ad08b4acf683472e01ce8ff985eb8c7fb1 -MD5 b38cb9fe1d6e219fe954bc4d01055e89 files/udev-start-111-r2.sh 5452 -RMD160 9b9e36af971f8933b8edd329d991050944bb5906 files/udev-start-111-r2.sh 5452 -SHA256 402824c23d1af890722abf3651c4f2ad08b4acf683472e01ce8ff985eb8c7fb1 files/udev-start-111-r2.sh 5452 +AUX udev-start-111-r3.sh 5492 RMD160 d2a50553900f27c84a2bb6375f6caa95d3cb2d56 SHA1 1c1c2c818bd56a175968237458223d49414c2cb6 SHA256 b60e39b3c6a95340ee5faf46f4a181aa50c203bad22c8e0159a9ccd9b2894370 +MD5 d5f8a0847b2cf4919057109bd747945d files/udev-start-111-r3.sh 5492 +RMD160 d2a50553900f27c84a2bb6375f6caa95d3cb2d56 files/udev-start-111-r3.sh 5492 +SHA256 b60e39b3c6a95340ee5faf46f4a181aa50c203bad22c8e0159a9ccd9b2894370 files/udev-start-111-r3.sh 5492 AUX udev-stop-104-r8.sh 3208 RMD160 76a1fa5ce68250710c79e141d76d83b3331a4f2e SHA1 78ec2b84513e9acba286dd5abb95e21f6d54d999 SHA256 5b1eb2912a33987eae9502297f804a189e14e41498b7ea08d97423bcfb2e2f2c MD5 cbc06136105b520864575794e0dc3de7 files/udev-stop-104-r8.sh 3208 RMD160 76a1fa5ce68250710c79e141d76d83b3331a4f2e files/udev-stop-104-r8.sh 3208 @@ -123,18 +123,18 @@ EBUILD udev-111-r1.ebuild 10289 RMD160 977633c568082766d6b44c616ce622da68f90166 MD5 75f7f771d5e710ceaa69a1b501496ac6 udev-111-r1.ebuild 10289 RMD160 977633c568082766d6b44c616ce622da68f90166 udev-111-r1.ebuild 10289 SHA256 498b5721ec3206f3c9c41fc0db5abbb9836341c81139489c3429e0bf2aa832d5 udev-111-r1.ebuild 10289 -EBUILD udev-111-r2.ebuild 10286 RMD160 87de871c52faebc0528bd265618fed611508861f SHA1 bda8c5c653e72747e966fc108436131fb96bcbf7 SHA256 e846ccf0af928985e6d1d671d15167ffaaaaa2061579bfd7fee15a8cf0e13fd5 -MD5 6ea077de172bae3d519cf70d7e7d82bc udev-111-r2.ebuild 10286 -RMD160 87de871c52faebc0528bd265618fed611508861f udev-111-r2.ebuild 10286 -SHA256 e846ccf0af928985e6d1d671d15167ffaaaaa2061579bfd7fee15a8cf0e13fd5 udev-111-r2.ebuild 10286 +EBUILD udev-111-r3.ebuild 10286 RMD160 5bbed52b3668e2a81da9cc9aa7ce207e9d906d1b SHA1 497266d663a9ff8fbba3a51397d7fc5f541990b4 SHA256 4fd1c70e2c7776d57203260a195befddb6d3a48fe496ea26df0b7610d28d4824 +MD5 494517b1a5369db880db4ffb6e4e0a21 udev-111-r3.ebuild 10286 +RMD160 5bbed52b3668e2a81da9cc9aa7ce207e9d906d1b udev-111-r3.ebuild 10286 +SHA256 4fd1c70e2c7776d57203260a195befddb6d3a48fe496ea26df0b7610d28d4824 udev-111-r3.ebuild 10286 EBUILD udev-111.ebuild 10283 RMD160 d43cbdbd20902f110485e4299a8767a223f3c7fb SHA1 83100c8bc471cf1cf6d4bc439f9ad069ef279c8c SHA256 bee390b8c0e10bbc659aca22ef4b073712a6491b8a377797b4639965fb410650 MD5 1304b26ff1a45be54fb571bbac6f3706 udev-111.ebuild 10283 RMD160 d43cbdbd20902f110485e4299a8767a223f3c7fb udev-111.ebuild 10283 SHA256 bee390b8c0e10bbc659aca22ef4b073712a6491b8a377797b4639965fb410650 udev-111.ebuild 10283 -MISC ChangeLog 61942 RMD160 929e610c83a54172c9ac9f48849e635d48aed917 SHA1 785cd57d8597f6f9332354089e12d1daa7f4447a SHA256 0c689d5624def14af539bf63ba2614477ef144bce71dbea103a8e464e25435dc -MD5 9e8c138bebb90e704abc0519cebdca27 ChangeLog 61942 -RMD160 929e610c83a54172c9ac9f48849e635d48aed917 ChangeLog 61942 -SHA256 0c689d5624def14af539bf63ba2614477ef144bce71dbea103a8e464e25435dc ChangeLog 61942 +MISC ChangeLog 62272 RMD160 30db2a210f037ab6e8eeab68cacfac7790f63ef8 SHA1 a6fd993af21e739b67e653182651147e5464601a SHA256 757cf0ec2c054cf6217fbd0ea5167035c369fb147b6f0e7fd9dd5be0fd834893 +MD5 97634f6fb93884527c5683ad0e5ed9aa ChangeLog 62272 +RMD160 30db2a210f037ab6e8eeab68cacfac7790f63ef8 ChangeLog 62272 +SHA256 757cf0ec2c054cf6217fbd0ea5167035c369fb147b6f0e7fd9dd5be0fd834893 ChangeLog 62272 MISC metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be SHA1 70c43d2863c09958849bfce8c5bb97d406a0662b SHA256 a9881de1424ac71191111bd30c7c1253589673b0cdce13c352204f1499e9d884 MD5 f74bee0505505c00e76da6313db29e49 metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be metadata.xml 447 @@ -148,13 +148,13 @@ SHA256 e9b70d3341d67047bbc63a8b60a403fffce01a30974814a50e4e05aa15d80603 files/di MD5 f972e05a59a06d7a8f0558e95c815023 files/digest-udev-111-r1 229 RMD160 e3d3502313bf0cc5c20e675bc2ed2dfc7a26487f files/digest-udev-111-r1 229 SHA256 e9b70d3341d67047bbc63a8b60a403fffce01a30974814a50e4e05aa15d80603 files/digest-udev-111-r1 229 -MD5 f972e05a59a06d7a8f0558e95c815023 files/digest-udev-111-r2 229 -RMD160 e3d3502313bf0cc5c20e675bc2ed2dfc7a26487f files/digest-udev-111-r2 229 -SHA256 e9b70d3341d67047bbc63a8b60a403fffce01a30974814a50e4e05aa15d80603 files/digest-udev-111-r2 229 +MD5 f972e05a59a06d7a8f0558e95c815023 files/digest-udev-111-r3 229 +RMD160 e3d3502313bf0cc5c20e675bc2ed2dfc7a26487f files/digest-udev-111-r3 229 +SHA256 e9b70d3341d67047bbc63a8b60a403fffce01a30974814a50e4e05aa15d80603 files/digest-udev-111-r3 229 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (GNU/Linux) -iD8DBQFGVunUt2vP6XvVdOcRAiSYAJ4nsDPMYUz1P19CD/SAGpU7dD6m2ACgy6Tk -8PMEqXKhoKO7QG6yGrlSdJA= -=PTNY +iD8DBQFGWT43t2vP6XvVdOcRAtOCAKCMK9VBkahMZo79BHSd36SdKWT28wCeJYpX +wMFpfG8FaWzu8pN/gVFF93A= +=GNRV -----END PGP SIGNATURE----- diff --git a/sys-fs/udev/files/digest-udev-111-r2 b/sys-fs/udev/files/digest-udev-111-r2 deleted file mode 100644 index 6cefddeda901..000000000000 --- a/sys-fs/udev/files/digest-udev-111-r2 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 bd2a94e3ed243e6a3d501a5c8afc4b54 udev-111.tar.bz2 190020 -RMD160 bb3f1c2b1e24092b42507b663eceffe17f8a4a06 udev-111.tar.bz2 190020 -SHA256 ec47cc46b15838321c31589d7bdbdcf553c0ea4f406edc6f239cb20a3732c233 udev-111.tar.bz2 190020 diff --git a/sys-fs/udev/files/digest-udev-111-r3 b/sys-fs/udev/files/digest-udev-111-r3 new file mode 100644 index 000000000000..6cefddeda901 --- /dev/null +++ b/sys-fs/udev/files/digest-udev-111-r3 @@ -0,0 +1,3 @@ +MD5 bd2a94e3ed243e6a3d501a5c8afc4b54 udev-111.tar.bz2 190020 +RMD160 bb3f1c2b1e24092b42507b663eceffe17f8a4a06 udev-111.tar.bz2 190020 +SHA256 ec47cc46b15838321c31589d7bdbdcf553c0ea4f406edc6f239cb20a3732c233 udev-111.tar.bz2 190020 diff --git a/sys-fs/udev/files/udev-start-111-r2.sh b/sys-fs/udev/files/udev-start-111-r2.sh deleted file mode 100644 index fbc867a21e4c..000000000000 --- a/sys-fs/udev/files/udev-start-111-r2.sh +++ /dev/null @@ -1,206 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -tmpfs_size="10M" - -[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf - -populate_udev() { - # populate /dev with devices already found by the kernel - - # tell modprobe.sh to be verbose to $CONSOLE - - echo "export CONSOLE=${CONSOLE}" > /dev/.udev_populate - echo "export TERM=${TERM}" >> /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" - - # creating /dev/console and /dev/tty1 to be able to write - # to $CONSOLE with/without bootsplash before udevd creates it - [ ! -c /dev/console ] && mknod /dev/console c 5 1 - [ ! -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 -} - -unpack_device_tarball() { - # 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 -} - -make_dev_root() { - local DEV="$(/lib/udev/get_dir_major_minor "/")" - if [ $? = 0 -a -n "${DEV}" ]; then - mknod -m 600 /dev/root b ${DEV} - fi -} - -check_persistent_net() { - # check if there are problems with persistent-net - local syspath= - local devs= - local problem_found=0 - for syspath in /sys/class/net/*_rename*; do - if [ -d "${syspath}" ]; then - devs="${devs} ${syspath##*/}" - problem_found=1 - fi - done - - [ "${problem_found}" = 0 ] && return 0 - - eerror "UDEV: Your system has a problem assigning persistent names" - eerror "to these network interfaces: ${devs}" - - einfo "Checking persistent-net rules:" - # the sed-expression lists all duplicate lines - # from the input, like "uniq -d" does, but uniq - # is installed into /usr/bin and not available at boot. - dups=$( - RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' - . /lib/udev/rule_generator.functions - find_all_rules 'NAME=' '.*'|tr ' ' '\n'|sort|sed '$!N; s/^\(.*\)\n\1$/\1/; t; D' - ) - if [ -n "${dups}" ]; then - ewarn "The rules create multiple entries assigning these names:" - eindent - ewarn "${dups}" - eoutdent - else - ewarn "Found no duplicate names in persistent-net rules," - ewarn "there must be some other problem!" - fi - return 1 -} - -main() { - # 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 - mntopts="exec,nosuid,mode=0755,size=${tmpfs_size}" - 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 "${mntopts}" 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 -a -c /selinux/null ] ; then - restorecon /dev > /selinux/null - fi - - unpack_device_tarball - 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" - /sbin/udevd --daemon - eend $? - - populate_udev - make_dev_root - - # Only do this for baselayout-1* - if [ ! -e /lib/librc.so ]; then - - # Create nodes that udev can't - ebegin "Finalizing udev configuration" - [ -x /sbin/lvm ] && \ - /sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null - # Running evms_activate on a LiveCD causes lots of headaches - [ -z "${CDBOOT}" -a -x /sbin/evms_activate ] && \ - /sbin/evms_activate -q &>/dev/null - eend 0 - fi - - check_persistent_net - - # trigger executing initscript when /etc is writable - IN_HOTPLUG=1 /etc/init.d/udev-postmount start >/dev/null 2>/dev/null -} - -main - -# vim:ts=4 diff --git a/sys-fs/udev/files/udev-start-111-r3.sh b/sys-fs/udev/files/udev-start-111-r3.sh new file mode 100644 index 000000000000..53ff8db091ce --- /dev/null +++ b/sys-fs/udev/files/udev-start-111-r3.sh @@ -0,0 +1,209 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +tmpfs_size="10M" + +[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf + +populate_udev() { + # populate /dev with devices already found by the kernel + + # tell modprobe.sh to be verbose to $CONSOLE + + echo "export CONSOLE=${CONSOLE}" > /dev/.udev_populate + echo "export TERM=${TERM}" >> /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" + + # creating /dev/console and /dev/tty1 to be able to write + # to $CONSOLE with/without bootsplash before udevd creates it + [ ! -c /dev/console ] && mknod /dev/console c 5 1 + [ ! -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 +} + +unpack_device_tarball() { + # 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 +} + +make_dev_root() { + local DEV="$(/lib/udev/get_dir_major_minor "/")" + if [ $? = 0 -a -n "${DEV}" ]; then + mknod -m 600 /dev/root b ${DEV} + fi +} + +check_persistent_net() { + # check if there are problems with persistent-net + local syspath= + local devs= + local problem_found=0 + for syspath in /sys/class/net/*_rename*; do + if [ -d "${syspath}" ]; then + devs="${devs} ${syspath##*/}" + problem_found=1 + fi + done + + [ "${problem_found}" = 0 ] && return 0 + + eerror "UDEV: Your system has a problem assigning persistent names" + eerror "to these network interfaces: ${devs}" + + einfo "Checking persistent-net rules:" + # the sed-expression lists all duplicate lines + # from the input, like "uniq -d" does, but uniq + # is installed into /usr/bin and not available at boot. + dups=$( + RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' + . /lib/udev/rule_generator.functions + find_all_rules 'NAME=' '.*'|tr ' ' '\n'|sort|sed '$!N; s/^\(.*\)\n\1$/\1/; t; D' + ) + if [ -n "${dups}" ]; then + ewarn "The rules create multiple entries assigning these names:" + eindent + ewarn "${dups}" + eoutdent + else + ewarn "Found no duplicate names in persistent-net rules," + ewarn "there must be some other problem!" + fi + return 1 +} + +main() { + # 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 + mntopts="exec,nosuid,mode=0755,size=${tmpfs_size}" + 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 "${mntopts}" 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 -a -c /selinux/null ] ; then + restorecon /dev > /selinux/null + fi + + unpack_device_tarball + 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" + /sbin/udevd --daemon + eend $? + + populate_udev + make_dev_root + + # Only do this for baselayout-1* + if [ ! -e /lib/librc.so ]; then + + # Create nodes that udev can't + ebegin "Finalizing udev configuration" + [ -x /sbin/lvm ] && \ + /sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null + # Running evms_activate on a LiveCD causes lots of headaches + [ -z "${CDBOOT}" -a -x /sbin/evms_activate ] && \ + /sbin/evms_activate -q &>/dev/null + eend 0 + fi + + check_persistent_net + + # trigger executing initscript when /etc is writable + IN_HOTPLUG=1 /etc/init.d/udev-postmount start >/dev/null 2>/dev/null + + # udev started successfully + return 0 +} + +main + +# vim:ts=4 diff --git a/sys-fs/udev/udev-111-r2.ebuild b/sys-fs/udev/udev-111-r2.ebuild deleted file mode 100644 index 2b1a5e01ec79..000000000000 --- a/sys-fs/udev/udev-111-r2.ebuild +++ /dev/null @@ -1,317 +0,0 @@ -# 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-111-r2.ebuild,v 1.1 2007/05/25 13:51:07 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" - -pkg_setup() { - udev_helper_dir="/$(get_libdir)/udev" -} - -sed_helper_dir() { - sed -e "s#/lib/udev#${udev_helper_dir}#" -i "$@" -} - -src_unpack() { - unpack ${A} - - cd "${S}" - - # patches go here... - epatch ${FILESDIR}/${PN}-104-peristent-net-disable-xen.patch - EPATCH_OPTS="-p1" epatch ${FILESDIR}/${PN}-110-root-link-1.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/50-udev.rules"` - MD5=${MD5/ -/} - if [ "${MD5}" != "04a8f3303a2b172affbed26973745f26" ] - then - echo - eerror "gentoo/udev.rules has been updated, please validate!" - die "gentoo/udev.rules has been updated, please validate!" - fi - - sed_helper_dir \ - etc/udev/gentoo/50-udev.rules \ - extras/rule_generator/write_*_rules \ - udev_rules_parse.c \ - udev_utils_run.c -} - -src_compile() { - filter-flags -fprefetch-loop-arrays - local myconf= - local extras="extras/ata_id \ - extras/cdrom_id \ - extras/edd_id \ - extras/firmware \ - extras/floppy \ - extras/path_id \ - extras/scsi_id \ - extras/usb_id \ - extras/volume_id \ - extras/rule_generator \ - extras/root_link" - - 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)" - emake \ - EXTRAS="${extras}" \ - udevdir="/dev/" \ - CROSS_COMPILE=${mycross} \ - OPTFLAGS="" \ - ${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 "${udev_helper_dir}" - 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/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" - doexe extras/root_link/get_dir_major_minor || die "Required helper not installed properly" - 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-111-r1.sh modprobe.sh || die "Required binary not installed properly" - doexe "${FILESDIR}"/move_tmp_persistent_rules.sh || die "Required binary not installed properly" - - keepdir "${udev_helper_dir}"/state - keepdir "${udev_helper_dir}"/devices - - # create symlinks for these utilities to /sbin - # where multipath-tools expect them to be (Bug #168588) - dosym "..${udev_helper_dir}/vol_id" /sbin/vol_id - dosym "..${udev_helper_dir}/scsi_id" /sbin/scsi_id - - # 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 - - - # Our udev config file - insinto /etc/udev - newins ${FILESDIR}/udev.conf.post_108 udev.conf - - # Our rules files - insinto /etc/udev/rules.d/ - doins etc/udev/gentoo/??-*.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 - - # 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/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 /$(get_libdir)/rcscripts/addons - newins "${FILESDIR}"/udev-start-111-r2.sh udev-start.sh - newins "${FILESDIR}"/udev-stop-111-r2.sh udev-stop.sh - - # The udev-post init-script - newinitd "${FILESDIR}"/udev-postmount-initd-111-r2 udev-postmount - - # convert /lib/udev to real used dir - sed_helper_dir \ - "${D}/$(get_libdir)"/rcscripts/addons/*.sh \ - "${D}/${udev_helper_dir}"/*.sh \ - "${D}"/etc/init.d/udev* - - # 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 - - insinto /etc/modprobe.d - newins ${FILESDIR}/blacklist-110 blacklist - doins ${FILESDIR}/pnp-aliases - - # convert /lib/udev to real used dir - sed_helper_dir "${D}"/etc/modprobe.d/* - - 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 "/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 "