From: Matthias Schwarzott Date: Fri, 2 Mar 2007 13:21:02 +0000 (+0000) Subject: Version bumped. Cleaned up start/stop scripts regarding check for udev-version. Reord... X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0b2e96c8bcd892af49c9c1240adf97b74bca551e;p=gentoo.git Version bumped. Cleaned up start/stop scripts regarding check for udev-version. Reordered some rules, added module loading for ide tape devices, scsi medium changers and mmc devices. Do not load module i82365 as that can lead to deadlocks. Make modprobe.sh converted to generic shell and ignore requests silently if kernel has no module support, Bug #168322. Package-Manager: portage-2.1.2-r13 --- diff --git a/sys-fs/udev/ChangeLog b/sys-fs/udev/ChangeLog index 24a247c111d1..e593cc7faac0 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.268 2007/02/22 15:49:01 uberlord Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.269 2007/03/02 13:21:02 zzam Exp $ + +*udev-105 (02 Mar 2007) + + 02 Mar 2007; Matthias Schwarzott +files/udev.rules-105, + +files/modprobe-105.sh, +files/udev-start-105.sh, +files/udev-stop-105.sh, + +udev-105.ebuild: + Version bumped. Cleaned up start/stop scripts regarding check for + udev-version. Reordered some rules, added module loading for ide tape + devices, scsi medium changers and mmc devices. Do not load module i82365 as + that can lead to deadlocks. Make modprobe.sh converted to generic shell and + ignore requests silently if kernel has no module support, Bug #168322. 22 Feb 2007; Roy Marples files/udev-start-104-r12.sh, files/udev-stop-104-r8.sh: diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest index 1052a5dbb406..9d120310fdd7 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 @@ -18,6 +21,10 @@ AUX modprobe-104-r12.sh 826 RMD160 8724c7c91362efb7bee8452194a3a5bc039f6cbe SHA1 MD5 766e87292d27aca55c5dc9675572507a files/modprobe-104-r12.sh 826 RMD160 8724c7c91362efb7bee8452194a3a5bc039f6cbe files/modprobe-104-r12.sh 826 SHA256 e8b915e8dff3cd4ed702e8e7ca98d85eca61c77b50fb4f5bdbdc719b14959d41 files/modprobe-104-r12.sh 826 +AUX modprobe-105.sh 986 RMD160 52f3be2b6fd957281f1318d0448d31647adf94aa SHA1 daeb95de2ab11e211172be247cd47fe6c21cbc1d SHA256 0b9ad29935d7efb201b95f1a2bc4b1a07058beddb48ce9604aecc7525dae47bd +MD5 3d3b95507d80cd652af410df69d59d33 files/modprobe-105.sh 986 +RMD160 52f3be2b6fd957281f1318d0448d31647adf94aa files/modprobe-105.sh 986 +SHA256 0b9ad29935d7efb201b95f1a2bc4b1a07058beddb48ce9604aecc7525dae47bd files/modprobe-105.sh 986 AUX modprobe.sh 748 RMD160 f695e97729043fb821b0b6cda0fc9861256102bc SHA1 c32f29a6e80bde616e67dd3664038f5c341db03b SHA256 c5583754db49512b08b02f2d16ebf4a63a1582c0bea4c7aa3848f03f06979c67 MD5 fbc90bd2e42adc6a7c82b2cd09914a56 files/modprobe.sh 748 RMD160 f695e97729043fb821b0b6cda0fc9861256102bc files/modprobe.sh 748 @@ -126,6 +133,10 @@ AUX udev-start-104-r5.sh 3987 RMD160 026f1df381f26e84bab116b84bc86728e96901d4 SH MD5 7078fc6867da38a73c6fecc643fc85c2 files/udev-start-104-r5.sh 3987 RMD160 026f1df381f26e84bab116b84bc86728e96901d4 files/udev-start-104-r5.sh 3987 SHA256 0dc871d20caa16622b61fb988a0e65064efa96192f7fa078d585d1361b222823 files/udev-start-104-r5.sh 3987 +AUX udev-start-105.sh 4082 RMD160 843b2899cbb7911ba8c7e71550ec1f79d6bf5595 SHA1 7928d9308d0d09526fd2a59ce34ec664435b513d SHA256 aeecfa70194cc5078956253227459587b1b9f93d95d6b002fec64b9b95cdbcbb +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.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c SHA1 2558e3265c9bed383198e2f263e10016ad6f34a0 SHA256 0527b03ac666dd9e4c94811b10d499f04b3f6f8ae2f03e6460727c1b570d985d MD5 622f085dff7fb6138f3e2c992d569593 files/udev-start.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c files/udev-start.sh 2460 @@ -134,6 +145,10 @@ AUX udev-stop-104-r8.sh 3208 RMD160 76a1fa5ce68250710c79e141d76d83b3331a4f2e SHA MD5 cbc06136105b520864575794e0dc3de7 files/udev-stop-104-r8.sh 3208 RMD160 76a1fa5ce68250710c79e141d76d83b3331a4f2e files/udev-stop-104-r8.sh 3208 SHA256 5b1eb2912a33987eae9502297f804a189e14e41498b7ea08d97423bcfb2e2f2c files/udev-stop-104-r8.sh 3208 +AUX udev-stop-105.sh 2830 RMD160 cd74b761b93afa8c61c13b8f9a9948af164b3376 SHA1 f813ab716a275f19a7ed46a8e1b667bc5237f414 SHA256 9b378e668bfe5d6fc9aff16187ef5e4292cf9b4f14bd35d47f44c36345267765 +MD5 4e3b1899da16a3bef03f3f55c6159bc1 files/udev-stop-105.sh 2830 +RMD160 cd74b761b93afa8c61c13b8f9a9948af164b3376 files/udev-stop-105.sh 2830 +SHA256 9b378e668bfe5d6fc9aff16187ef5e4292cf9b4f14bd35d47f44c36345267765 files/udev-stop-105.sh 2830 AUX udev-stop.sh 2158 RMD160 0293fc9cd5de85b17624d38bd2c22a48c9722453 SHA1 6d918052006403d0fe1ab34041e36581cdeddcd4 SHA256 bb4fad16e3b58707565d9bb6652c94d917378dc0c462fd660957e17860313429 MD5 b73dfbd0300c444f047f77914ca1c956 files/udev-stop.sh 2158 RMD160 0293fc9cd5de85b17624d38bd2c22a48c9722453 files/udev-stop.sh 2158 @@ -230,6 +245,10 @@ AUX udev.rules-104-r7 10857 RMD160 35a7bc2812490e058ebd4c4bb4cd6a5560ad8796 SHA1 MD5 46b855d3f7b1fda2b32a548583cbb1fb files/udev.rules-104-r7 10857 RMD160 35a7bc2812490e058ebd4c4bb4cd6a5560ad8796 files/udev.rules-104-r7 10857 SHA256 e37d18d83fc1d4625d03adda955b4c68927b793119b997806b6805562f0534a2 files/udev.rules-104-r7 10857 +AUX udev.rules-105 11333 RMD160 6c76db6b7df203809ca1617dfcf35c46124472bd SHA1 26a21f593af9b4ee0e485590c0635012670162ff SHA256 f957a872406d315830d4350a452605504fdaeeec21bc3ca6e08b0aa922c1785a +MD5 537f961ee1b4a0e0d12e87bd3f4972d3 files/udev.rules-105 11333 +RMD160 6c76db6b7df203809ca1617dfcf35c46124472bd files/udev.rules-105 11333 +SHA256 f957a872406d315830d4350a452605504fdaeeec21bc3ca6e08b0aa922c1785a files/udev.rules-105 11333 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 @@ -244,6 +263,7 @@ DIST udev-099.tar.bz2 147768 RMD160 42ff2b444e23aa7ff903bb1faf1cedb1a4ad05b7 SHA DIST udev-100.tar.bz2 197628 RMD160 110903eda55348131ca412c4f4a9d539e5a35bdb SHA1 9c7cdca01db5e842761b2578fc59ab86b8609bb0 SHA256 ca1f83735bd9fc70b534c846e4214394f0297f6a32d1d9252e08ad796d0d94b6 DIST udev-103.tar.bz2 200027 RMD160 3b00a83ad8c538109ee030e2e471422272c7d071 SHA1 015372f585beeba05217ad6568178820b2713571 SHA256 047f5e2895f707117ab726cedd89fd35e8c9105530af54a8038fe81cf61c4e3f DIST udev-104.tar.bz2 187574 RMD160 269aeb9a0b2043d18c274fde749d2e0d30398b73 SHA1 53a8019f2be429be914e0283bfbcb91083fbbd9a SHA256 ec0e7bd0c322dce6149d5f94185aa477659f5030a3d684ff5428124eca684ea1 +DIST udev-105.tar.bz2 187920 RMD160 781e93ab042c064248686a091e4568d763704c80 SHA1 c889d1d73a87813fd98a9f784486b0e0e3a228b8 SHA256 deed028fc47af2d88381f51649b24dd8da82d878cd4cee6c52954ec90de4c8db EBUILD udev-079-r2.ebuild 7523 RMD160 bc3a75a2205cbe092ec431eaf474cb1f4959d4fe SHA1 b10bb23e64edc1a43b890f06c3f71a4e7c85ba9e SHA256 14a34689b36d1be9ffd953eedf20ee906b8638b0967b7148b4d0023d765da90f MD5 3a6af6ceddbbd1a93002a240a8e6b930 udev-079-r2.ebuild 7523 RMD160 bc3a75a2205cbe092ec431eaf474cb1f4959d4fe udev-079-r2.ebuild 7523 @@ -308,10 +328,14 @@ EBUILD udev-104-r9.ebuild 9216 RMD160 d022e7088ec4526f76fed85971ee66779b6ae547 S MD5 d5f8b36e305c0d8c7647b5aae1b619ed udev-104-r9.ebuild 9216 RMD160 d022e7088ec4526f76fed85971ee66779b6ae547 udev-104-r9.ebuild 9216 SHA256 546534c95123130045723adb5fda371697713c95a016349eb99ae3b5a7d5831b udev-104-r9.ebuild 9216 -MISC ChangeLog 49508 RMD160 2387f1840e2a30ecf9cd7d62f28324571db66b87 SHA1 58fce4c7b42e83befd4254f5b34c67e59d733bc7 SHA256 3ee717e09ea7798791603a6ca9757101ba3c62ec4e962818346589400cfa4f81 -MD5 1290051275fce95007309b88123c26d7 ChangeLog 49508 -RMD160 2387f1840e2a30ecf9cd7d62f28324571db66b87 ChangeLog 49508 -SHA256 3ee717e09ea7798791603a6ca9757101ba3c62ec4e962818346589400cfa4f81 ChangeLog 49508 +EBUILD udev-105.ebuild 9209 RMD160 2c5a1be665f21d30bcc7bdaa927b86a694226792 SHA1 50f0713970d4999a1fbd903e2e2fbde8a78d4053 SHA256 866f9a563b55b91323f78665ec3d59f8d8cc1e8bcf0181e1e179c2fe6ceed75d +MD5 f9f7bdc2c626aa6e233e9f5f435aa4c1 udev-105.ebuild 9209 +RMD160 2c5a1be665f21d30bcc7bdaa927b86a694226792 udev-105.ebuild 9209 +SHA256 866f9a563b55b91323f78665ec3d59f8d8cc1e8bcf0181e1e179c2fe6ceed75d udev-105.ebuild 9209 +MISC ChangeLog 50072 RMD160 bbe22510aa5c51350aafec7d1dfddcb57cee2019 SHA1 ace148a79c1d4c9f396b309cf3c57f37942befde SHA256 bc5e1edf0808482791b3f1312c20c8dea835e9579b7140f20e5c9ea90a38325b +MD5 74cd7ce37a511989908a13b73e6c9fb2 ChangeLog 50072 +RMD160 bbe22510aa5c51350aafec7d1dfddcb57cee2019 ChangeLog 50072 +SHA256 bc5e1edf0808482791b3f1312c20c8dea835e9579b7140f20e5c9ea90a38325b ChangeLog 50072 MISC metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be SHA1 70c43d2863c09958849bfce8c5bb97d406a0662b SHA256 a9881de1424ac71191111bd30c7c1253589673b0cdce13c352204f1499e9d884 MD5 f74bee0505505c00e76da6313db29e49 metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be metadata.xml 447 @@ -364,3 +388,13 @@ SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/di MD5 834e944e237e0d9501aac75e61c50eb1 files/digest-udev-104-r9 229 RMD160 7fd47bd560da91a9953657f31d6cd2383d2032cb files/digest-udev-104-r9 229 SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/digest-udev-104-r9 229 +MD5 951b6a62067f2cee962fb0a3e1b67b23 files/digest-udev-105 229 +RMD160 85064f6d87eae152707df1faf2a6cf49f256002c files/digest-udev-105 229 +SHA256 d0ca33726c9909f26832d8f30100eb3c22b3bcbded72f6871ec0e6ac6393bfab files/digest-udev-105 229 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.2 (GNU/Linux) + +iD8DBQFF6CTKt2vP6XvVdOcRAtSJAJ9w5lYLWY234OBNKbvUz3teAuUKxACdHI4R +llnGUPQjZy/lVrWYdEH3WQY= +=PTCZ +-----END PGP SIGNATURE----- diff --git a/sys-fs/udev/files/digest-udev-105 b/sys-fs/udev/files/digest-udev-105 new file mode 100644 index 000000000000..309a5561a462 --- /dev/null +++ b/sys-fs/udev/files/digest-udev-105 @@ -0,0 +1,3 @@ +MD5 e789686432bfdcb6ec23661b111364fa udev-105.tar.bz2 187920 +RMD160 781e93ab042c064248686a091e4568d763704c80 udev-105.tar.bz2 187920 +SHA256 deed028fc47af2d88381f51649b24dd8da82d878cd4cee6c52954ec90de4c8db udev-105.tar.bz2 187920 diff --git a/sys-fs/udev/files/modprobe-105.sh b/sys-fs/udev/files/modprobe-105.sh new file mode 100755 index 000000000000..2209d04fb7d7 --- /dev/null +++ b/sys-fs/udev/files/modprobe-105.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +# Do not continue for non-modular kernel - Bug #168322 +[ ! -f /proc/modules ] && exit 0 + +if [ -e /dev/.udev_populate ]; then + # Enable verbose while called from udev-addon-start + source /dev/.udev_populate + + if [ -c "${CONSOLE}" ]; then + # redirect stdin/out/err + exec <${CONSOLE} &>${CONSOLE} + fi +fi + +source /sbin/functions.sh + +MODPROBE=/sbin/modprobe +MODLIST=$("${MODPROBE}" -q -i --show-depends "${@}" 2>/dev/null \ + | sed -e "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" -e 's|-|_|g') + +# exit if you have no modules to load +[ -z "${MODLIST}" ] && exit 0 +for m in ${MODLIST}; do + MODNAME=$m +done + +# check for blacklisting +if [ -f /etc/modprobe.conf ]; then + if grep -q '^blacklist.*[[:space:]]'"${MODNAME}"'\([[:space:]]\|$\)' /etc/modprobe.conf; then + # module blacklisted + exit 0 + fi +fi + +# check if loaded +if ! grep -q "^${MODNAME}[[:space:]]" /proc/modules; then + # now do real loading + einfo " udev loading module ${MODNAME}" + exec "${MODPROBE}" -q "${@}" &>/dev/null +fi + diff --git a/sys-fs/udev/files/udev-start-105.sh b/sys-fs/udev/files/udev-start-105.sh new file mode 100644 index 000000000000..2af81ed01da6 --- /dev/null +++ b/sys-fs/udev/files/udev-start-105.sh @@ -0,0 +1,150 @@ +# 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_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 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-stop-105.sh b/sys-fs/udev/files/udev-stop-105.sh new file mode 100755 index 000000000000..a476762a9292 --- /dev/null +++ b/sys-fs/udev/files/udev-stop-105.sh @@ -0,0 +1,98 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# store persistent-rules that got created while booting +# when / was still read-only +store_persistent_rules() { + local type base tmp_rules real_rules + + for type in cd net; do + base=70-persistent-${type}.rules + tmp_rules=/dev/.udev/tmp-rules--${base} + real_rules=/etc/udev/rules.d/${base} + + if [ -f ${tmp_rules} ]; then + einfo "Saving udev persistent ${type} rules to /etc/udev/rules.d" + cat ${tmp_rules} >> ${real_rules} + rm ${tmp_rules} + fi + done +} + +create_device_tarball() { + if [ -e /dev/.devfsd ] || [ ! -e /dev/.udev ] || [ ! -z "${CDBOOT}" ] || \ + [ "${RC_DEVICE_TARBALL}" != "yes" ] || \ + ! touch /lib/udev/state/devices.tar.bz2 2>/dev/null + then + return 0 + fi + + ebegin "Saving device nodes" + # Handle our temp files + save_tmp_base=/tmp/udev.savedevices."$$" + devices_udev="${save_tmp_base}"/devices.udev + devices_real="${save_tmp_base}"/devices.real + devices_totar="${save_tmp_base}"/devices.totar + device_tarball="${save_tmp_base}"/devices + + rm -rf "${save_tmp_base}" + mkdir "${save_tmp_base}" + touch "${devices_udev}" "${devices_real}" \ + "${devices_totar}" "${device_tarball}" + + if [ -f ${devices_udev} ] && [ -f ${devices_real} ] && \ + [ -f ${devices_totar} ] && [ -f ${device_tarball} ] ; then + cd /dev + # Find all devices + find . -xdev -type b -or -type c -or -type l | cut -d/ -f2- > \ + "${devices_real}" + # Figure out what udev created + udevinfo=$(udevinfo --export-db) + + # This basically strips 'S:' and 'N:' from the db output, and then + # print all the nodes/symlinks udev created ... + echo "${udevinfo}" | gawk ' + /^(N|S):.+/ { + sub(/^(N|S):/, "") + split($0, nodes) + for (x in nodes) + print nodes[x] + }' > "${devices_udev}" + # These ones we also do not want in there + for x in MAKEDEV core fd initctl pts shm stderr stdin stdout; do + echo "${x}" >> "${devices_udev}" + done + if [ -d /lib/udev/devices ]; then + cd /lib/udev/devices + find . -xdev -type b -or -type c -or -type l | cut -d/ -f2- >> "${devices_udev}" + fi + cd /dev + fgrep -x -v -f "${devices_udev}" < "${devices_real}" | \ + grep -v ^\\.udev > "${devices_totar}" + + # Now only tarball those not created by udev if we have any + if [ -s ${devices_totar} ]; then + # we dont want to descend into mounted filesystems (e.g. devpts) + # looking up username may involve NIS/network, and net may be down + tar --one-file-system --numeric-owner -jcpf "${device_tarball}" -T "${devices_totar}" + mv -f "${device_tarball}" /lib/udev/state/devices.tar.bz2 + else + rm -f /lib/udev/state/devices.tar.bz2 + fi + eend 0 + else + eend 1 "Could not create temporary files!" + fi + + rm -rf "${save_tmp_base}" +} + +main() { + store_persistent_rules + create_device_tarball +} + +main + + +# vim:ts=4 diff --git a/sys-fs/udev/files/udev.rules-105 b/sys-fs/udev/files/udev.rules-105 new file mode 100644 index 000000000000..4a3dfbb8c210 --- /dev/null +++ b/sys-fs/udev/files/udev.rules-105 @@ -0,0 +1,315 @@ +# /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. +# + + +# 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" + +# 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 (ignore them) +KERNEL=="dm-[0-9]*", OPTIONS="ignore_device" +# create a symlink named after the device map name +# note devmap_name comes with extras/multipath +#KERNEL=="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK+="%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/%n", SYMLINK+="%k", GROUP="floppy" + +# 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'" + +# assign cdrom-permission also to associated generic device (for cd-burning ...) +KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom" + + +# Module autoloading +# this driver is broken and should not be loaded automatically +SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="module_load_end" + +# Autoload modules that lack aliases but have them defined inutoload modules +ENV{MODALIAS}=="?*", ACTION=="add", RUN+="modprobe.sh $env{MODALIAS}" + +# /etc/modprobe.conf. +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do 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", ACTION=="add", RUN+="/sbin/modprobe i2o_block" +SUBSYSTEM=="mmc", ACTION=="add", 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 +ACTION=="add", SUBSYSTEM=="scsi_device", RUN+="modprobe.sh sg" +ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", \ + RUN+="modprobe.sh sd_mod" +ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="4|5", \ + RUN+="modprobe.sh sr_mod" +ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="8", \ + RUN+="modprobe.sh ch" + +ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st" +ACTION=="add", SUBSYSTEM=="scsi_device", 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}" + +SUBSYSTEM=="ide", ACTION=="add", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi" + +LABEL="module_load_end" + + +# Load firmware +SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh" + + +# 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-105.ebuild b/sys-fs/udev/udev-105.ebuild new file mode 100644 index 000000000000..f3f70f9f217b --- /dev/null +++ b/sys-fs/udev/udev-105.ebuild @@ -0,0 +1,275 @@ +# 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-105.ebuild,v 1.1 2007/03/02 13:21:02 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.11.14" +# 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}/${PN}-104-persistent-net-fix-name-dups.patch + + # 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-105 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-105.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 + +} + +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 "