From: Matthias Schwarzott Date: Mon, 29 Jan 2007 19:27:22 +0000 (+0000) Subject: Enable bootup with empty /dev on root-partition, Bug #151414. Setting IN_HOTPLUG... X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6be5d0357ef718885db637803f1de07b84110f63;p=gentoo.git Enable bootup with empty /dev on root-partition, Bug #151414. Setting IN_HOTPLUG for all events for compatibility. Package-Manager: portage-2.1.2-r5 --- diff --git a/sys-fs/udev/ChangeLog b/sys-fs/udev/ChangeLog index 744cda850c94..e28e61ea3773 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.234 2007/01/28 23:14:11 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.235 2007/01/29 19:27:22 zzam Exp $ + +*udev-104-r5 (29 Jan 2007) + + 29 Jan 2007; Matthias Schwarzott + +files/05-udev-early.rules-104-r5, +files/udev-start-104-r5.sh, + +udev-104-r5.ebuild: + Enable bootup with empty /dev on root-partition, Bug #151414. Setting + IN_HOTPLUG for all events for compatibility. 28 Jan 2007; Mike Frysinger udev-103.ebuild, udev-104-r3.ebuild, udev-104-r4.ebuild: diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest index e620520c482b..f4cd6ed65ec3 100644 --- a/sys-fs/udev/Manifest +++ b/sys-fs/udev/Manifest @@ -13,6 +13,10 @@ AUX 05-udev-early.rules-104-r2 475 RMD160 1f9be2d13eba72c4feaeec0ca3449824ad70cf MD5 241c3eab19b0e07b65b5b3a7345718a4 files/05-udev-early.rules-104-r2 475 RMD160 1f9be2d13eba72c4feaeec0ca3449824ad70cfa7 files/05-udev-early.rules-104-r2 475 SHA256 769450ad37e8d7afc123b4e9c06ad1403d5e63ac9b73db52d357616e288522cd files/05-udev-early.rules-104-r2 475 +AUX 05-udev-early.rules-104-r5 567 RMD160 8c7e021cc1f733d59c21f7f09ff74471b15f3ade SHA1 842021003645319d163202ab00aae39f219261ea SHA256 ecbcbbdb32c7530f2cadba10590826cc1abd176cc52cece7c53a5bd821a65bc8 +MD5 f10916c6977dc9cbd935154358974196 files/05-udev-early.rules-104-r5 567 +RMD160 8c7e021cc1f733d59c21f7f09ff74471b15f3ade files/05-udev-early.rules-104-r5 567 +SHA256 ecbcbbdb32c7530f2cadba10590826cc1abd176cc52cece7c53a5bd821a65bc8 files/05-udev-early.rules-104-r5 567 AUX 95-net.rules 550 RMD160 8e10d27a37f15bbcd8367266693b58d7a9101370 SHA1 53cf6e38d817f1d885cd54f8c2d1674c83878609 SHA256 19c6783fdd8bfb4f66376fb4929cd9a1a554c8949a40364e2a5b36b2e31f7574 MD5 b9c490717a6a973b52edd7082a7b09f8 files/95-net.rules 550 RMD160 8e10d27a37f15bbcd8367266693b58d7a9101370 files/95-net.rules 550 @@ -93,6 +97,10 @@ AUX udev-start-104-r3.sh 3437 RMD160 a28f108e8ad1fd1f86b417928681e21dacf867ee SH MD5 c63851a617f4a96ae9587191a01629ed files/udev-start-104-r3.sh 3437 RMD160 a28f108e8ad1fd1f86b417928681e21dacf867ee files/udev-start-104-r3.sh 3437 SHA256 e276092d1637d0bf8f407ddfa0127115791338a4c3aabc0e2f0f9638ea72277e files/udev-start-104-r3.sh 3437 +AUX udev-start-104-r5.sh 3987 RMD160 026f1df381f26e84bab116b84bc86728e96901d4 SHA1 9aba68a0bc3cec3ba19c5193c23fee9c3286d60d SHA256 0dc871d20caa16622b61fb988a0e65064efa96192f7fa078d585d1361b222823 +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.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c SHA1 2558e3265c9bed383198e2f263e10016ad6f34a0 SHA256 0527b03ac666dd9e4c94811b10d499f04b3f6f8ae2f03e6460727c1b570d985d MD5 622f085dff7fb6138f3e2c992d569593 files/udev-start.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c files/udev-start.sh 2460 @@ -207,7 +215,7 @@ DIST udev-090.tar.bz2 192213 RMD160 77c1cd3cd71d781daf420824723cc520c75f41c8 SHA DIST udev-094.tar.bz2 194721 RMD160 204330e28707e1fa5b699a89e1f663ecfd264e04 SHA1 665132873ece8f3c01d3786c91e7932a73645ca7 SHA256 a920b3c8126363f9559988e6b68148939ae09d1cccb9573c69a261b23a393590 DIST udev-096.tar.bz2 194109 RMD160 93aa8ef19160434d96800a7890af120e3b66a833 SHA1 8d15b89fdf93ba84e2d33ff6061e140aed0a4dce SHA256 a6e08ce1a29adf2fff0ee198a632f13d867929afd10a726829bc75b52afa453b DIST udev-098.tar.bz2 195723 RMD160 29a05c64d49397d345d25f75c916525fede346aa SHA1 1f1aa2a40a0469c90b3e80a3996d949522e345be SHA256 565f3cba2edf87668f503ada3869f4d7ebfa866340cdf2f3ae3d1c319090f0f5 -DIST udev-099.tar.bz2 197429 RMD160 c323d1f63010d70470872f8b9710cf9ed179643d SHA1 811bdc648704bc3b9f296a086ce4b7708d69c2ec SHA256 58a18e38ce9f28886b5b67784cff58ebb96a912bd32d6c32760e189881853bfa +DIST udev-099.tar.bz2 197429 RMD160 c323d1f63010d70470872f8b9710cf9ed179643d SHA256 58a18e38ce9f28886b5b67784cff58ebb96a912bd32d6c32760e189881853bfa 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 @@ -267,10 +275,14 @@ EBUILD udev-104-r4.ebuild 9084 RMD160 20452cd5ec7bc743eeeecaec198f103c5cacef08 S MD5 a9f082ccb826d1e2d1d78e76d8a7c47b udev-104-r4.ebuild 9084 RMD160 20452cd5ec7bc743eeeecaec198f103c5cacef08 udev-104-r4.ebuild 9084 SHA256 11d714cca5ff9508f5a45794a7f8487f75a7d177d1ab4b458cca4f6d9b3b6db6 udev-104-r4.ebuild 9084 -MISC ChangeLog 43647 RMD160 1432328a00cb2f1f8f009771c828d3787388a7f9 SHA1 630990d4808ac8774bf0e2adf5625020f7eb56d9 SHA256 3a819b8273a5273e9a05a03b30f6ddd5461ee60498ded45a455e7b50019d2055 -MD5 5a63e86969b84161b908a430d5adcdec ChangeLog 43647 -RMD160 1432328a00cb2f1f8f009771c828d3787388a7f9 ChangeLog 43647 -SHA256 3a819b8273a5273e9a05a03b30f6ddd5461ee60498ded45a455e7b50019d2055 ChangeLog 43647 +EBUILD udev-104-r5.ebuild 9158 RMD160 8dea8b004cbaee466efb3bcdaa4ac6a5b22a3bec SHA1 a8a9db01d9bc2b1a7c4c96e52ca7578abc21de5d SHA256 e1ced8abed669b4605c3cc9bf3ab2bf73da91c7c315382e8577287115043f0a2 +MD5 31305e07c2f13dae6e02c92eeac98ab4 udev-104-r5.ebuild 9158 +RMD160 8dea8b004cbaee466efb3bcdaa4ac6a5b22a3bec udev-104-r5.ebuild 9158 +SHA256 e1ced8abed669b4605c3cc9bf3ab2bf73da91c7c315382e8577287115043f0a2 udev-104-r5.ebuild 9158 +MISC ChangeLog 43935 RMD160 46565c2c348b9eeff60423b593549de7ae069c1a SHA1 312c8aa1e6e1562dbc2757e72ce305a7de447238 SHA256 687294ebc4c7f74a1bf4d702fa0b1d5ec40e529fefc0fc33692aef4705837882 +MD5 39c941a99658df1f8e11f7e48109f975 ChangeLog 43935 +RMD160 46565c2c348b9eeff60423b593549de7ae069c1a ChangeLog 43935 +SHA256 687294ebc4c7f74a1bf4d702fa0b1d5ec40e529fefc0fc33692aef4705837882 ChangeLog 43935 MISC metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be SHA1 70c43d2863c09958849bfce8c5bb97d406a0662b SHA256 a9881de1424ac71191111bd30c7c1253589673b0cdce13c352204f1499e9d884 MD5 f74bee0505505c00e76da6313db29e49 metadata.xml 447 RMD160 d1ba09bd6a434b25c718673de9258cc544e090be metadata.xml 447 @@ -317,10 +329,13 @@ SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/di MD5 834e944e237e0d9501aac75e61c50eb1 files/digest-udev-104-r4 229 RMD160 7fd47bd560da91a9953657f31d6cd2383d2032cb files/digest-udev-104-r4 229 SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/digest-udev-104-r4 229 +MD5 834e944e237e0d9501aac75e61c50eb1 files/digest-udev-104-r5 229 +RMD160 7fd47bd560da91a9953657f31d6cd2383d2032cb files/digest-udev-104-r5 229 +SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/digest-udev-104-r5 229 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.1 (GNU/Linux) -iD4DBQFFvS588bi6rjpTunYRApzYAJij1QCClQQeeU8ziNcgSYFtITiLAJ4yGeCK -yR/n586licLZgBVVrPSvrA== -=wqPZ +iD8DBQFFvkqht2vP6XvVdOcRAhj7AJ0SAqdG7k4hXEmkETCSyoKBI1wsogCghLbk +8TtYwhCd5z568tH7XDj6yj4= +=hPcy -----END PGP SIGNATURE----- diff --git a/sys-fs/udev/files/05-udev-early.rules-104-r5 b/sys-fs/udev/files/05-udev-early.rules-104-r5 new file mode 100644 index 000000000000..b4d24ae21698 --- /dev/null +++ b/sys-fs/udev/files/05-udev-early.rules-104-r5 @@ -0,0 +1,13 @@ +# ignore these events until someone needs them +SUBSYSTEM=="drivers", OPTIONS="ignore_device" +SUBSYSTEM=="module", OPTIONS="ignore_device" + +# sysfs is populated after the event is sent +ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus" +ACTION=="add", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" +ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address" +ACTION=="add", SUBSYSTEM=="net", ENV{PHYSDEVDRIVER}=="?*", WAIT_FOR_SYSFS="device/driver" + +# Set IN_HOTPLUG for compatibility with init-scripts called from udev +ENV{IN_HOTPLUG}="1" + diff --git a/sys-fs/udev/files/digest-udev-104-r5 b/sys-fs/udev/files/digest-udev-104-r5 new file mode 100644 index 000000000000..1d88fbeee74a --- /dev/null +++ b/sys-fs/udev/files/digest-udev-104-r5 @@ -0,0 +1,3 @@ +MD5 9bcfc782d40db2b406a9c1172defda8f udev-104.tar.bz2 187574 +RMD160 269aeb9a0b2043d18c274fde749d2e0d30398b73 udev-104.tar.bz2 187574 +SHA256 ec0e7bd0c322dce6149d5f94185aa477659f5030a3d684ff5428124eca684ea1 udev-104.tar.bz2 187574 diff --git a/sys-fs/udev/files/udev-start-104-r5.sh b/sys-fs/udev/files/udev-start-104-r5.sh new file mode 100644 index 000000000000..9e69b027d52f --- /dev/null +++ b/sys-fs/udev/files/udev-start-104-r5.sh @@ -0,0 +1,150 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +udev_version() { + # Version number copied in by ebuild + local version=@@UDEV_VERSION@@ + version=${version##0} + + echo "${version}" +} + +populate_udev() { + # populate /dev with devices already found by the kernel + if [ $(get_KV) -gt "$(KV_to_int '2.6.14')" ] ; then + ebegin "Populating /dev with existing devices through uevents" + local opts= + [[ ${RC_COLDPLUG} != "yes" && $(udev_version) -ge "96" ]] && \ + 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 $? + + 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) + mknod /dev/console c 5 1 + + # udevd will dup its stdin/stdout/stderr to /dev/null + # and we do not want a file which gets buffered in ram + 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,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 + # This is bash only, but saves on using grep + if [[ $( /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} == 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/udev-104-r5.ebuild b/sys-fs/udev/udev-104-r5.ebuild new file mode 100644 index 000000000000..3d43c260ed47 --- /dev/null +++ b/sys-fs/udev/udev-104-r5.ebuild @@ -0,0 +1,277 @@ +# 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-104-r5.ebuild,v 1.1 2007/01/29 19:27:22 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" + +# still rely on hotplug (need to fix that), but now we implement coldplug + +DEPEND="sys-apps/hotplug-base + 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}/${P}-netif-rename-busywait.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" + doexe ${FILESDIR}/net.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-104-r4 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-104-r5.sh udev-start.sh + newins "${FILESDIR}"/udev-stop-104-r3.sh udev-stop.sh + + # Insert udev-version number into udev-rcscript addon + sed -e "s/@@UDEV_VERSION@@/${PV}/" \ + -i "${D}"/lib/rcscripts/addons/udev-start.sh \ + -i "${D}"/lib/rcscripts/addons/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 + if [[ -n $(pidof udevd) ]] ; then + killall -15 udevd &>/dev/null + sleep 1 + killall -9 udevd &>/dev/null + fi + /sbin/udevd --daemon + 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 "