Fixed ugly manpage symlink (.gz.bz2). No longer use mktemp in addon, Bug #163695...
authorMatthias Schwarzott <zzam@gentoo.org>
Thu, 25 Jan 2007 21:11:03 +0000 (21:11 +0000)
committerMatthias Schwarzott <zzam@gentoo.org>
Thu, 25 Jan 2007 21:11:03 +0000 (21:11 +0000)
Package-Manager: portage-2.1.2-r4

sys-fs/udev/ChangeLog
sys-fs/udev/Manifest
sys-fs/udev/files/digest-udev-104-r3 [new file with mode: 0644]
sys-fs/udev/files/udev-start-104-r3.sh [new file with mode: 0644]
sys-fs/udev/files/udev-stop-104-r3.sh [new file with mode: 0755]
sys-fs/udev/udev-104-r3.ebuild [new file with mode: 0644]

index e3f93d6548a6b0d2cbf29936011b94a4714299f9..35d725367d798740f541cc56a317be8124947aac 100644 (file)
@@ -1,6 +1,15 @@
 # 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.229 2007/01/24 17:09:00 zzam Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.230 2007/01/25 21:11:03 zzam Exp $
+
+*udev-104-r3 (25 Jan 2007)
+
+  25 Jan 2007; Matthias Schwarzott <zzam@gentoo.org>
+  +files/udev-start-104-r3.sh, +files/udev-stop-104-r3.sh,
+  +udev-104-r3.ebuild:
+  Fixed ugly manpage symlink (.gz.bz2). No longer use mktemp in addon, Bug
+  #163695. Make storing devices work again, Bug #162866. Finally removed
+  device-nodes added to /lib by default, Bug #128302.
 
 *udev-104-r2 (24 Jan 2007)
 
index 9a336c771a98cc521606ecd311ecd00e433a892e..0fea56a61e97ffdfb85ad080ecb080cf1edffb1e 100644 (file)
@@ -93,6 +93,10 @@ AUX udev-start-099.sh 3574 RMD160 306aa783d9915a24017730e7f5871350f096d818 SHA1
 MD5 de8c4747585960be3a56c6d527feb550 files/udev-start-099.sh 3574
 RMD160 306aa783d9915a24017730e7f5871350f096d818 files/udev-start-099.sh 3574
 SHA256 e76e214ac122ea6e9dd3468f1d33a8376111a5299c9fef697f883d37f02ebd50 files/udev-start-099.sh 3574
+AUX udev-start-104-r3.sh 3437 RMD160 a28f108e8ad1fd1f86b417928681e21dacf867ee SHA1 ab541a8725a7dd15417b3d6729eebdeea4cec128 SHA256 e276092d1637d0bf8f407ddfa0127115791338a4c3aabc0e2f0f9638ea72277e
+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.sh 3425 RMD160 b47daeb07880b99c77d0c3d0b9274776c48cbb51 SHA1 fa047c0ad218695c524f3bbe6d5f4be1a50dc454 SHA256 20d84c412c429eda077f606f565ff81b611fc37da5873850e4133790e128ee92
 MD5 496fd5c03bf0ddf014cd3d6d9a0ea6e9 files/udev-start-104.sh 3425
 RMD160 b47daeb07880b99c77d0c3d0b9274776c48cbb51 files/udev-start-104.sh 3425
@@ -101,6 +105,10 @@ AUX udev-start.sh 2460 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c SHA1 2558
 MD5 622f085dff7fb6138f3e2c992d569593 files/udev-start.sh 2460
 RMD160 97afa40bab5aed0106e3a3b065ae480ce329e11c files/udev-start.sh 2460
 SHA256 0527b03ac666dd9e4c94811b10d499f04b3f6f8ae2f03e6460727c1b570d985d files/udev-start.sh 2460
+AUX udev-stop-104-r3.sh 2713 RMD160 2d4a447ab761912450d61e6b5a0be82606bddaca SHA1 61180a2a269866132d2fcb6d4e92dc0898117155 SHA256 1b7d1f6ff17bc985bad0a53741b0955e35e100d45d943bef806325ad48117f41
+MD5 e96140f8cf487251013ebefb25bc9f11 files/udev-stop-104-r3.sh 2713
+RMD160 2d4a447ab761912450d61e6b5a0be82606bddaca files/udev-stop-104-r3.sh 2713
+SHA256 1b7d1f6ff17bc985bad0a53741b0955e35e100d45d943bef806325ad48117f41 files/udev-stop-104-r3.sh 2713
 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
@@ -267,10 +275,14 @@ EBUILD udev-104-r2.ebuild 11789 RMD160 e4adbcb867864fbec9a0cb6bc2012831ab6d0182
 MD5 9452a475a1f4c37430a570aa550dbe21 udev-104-r2.ebuild 11789
 RMD160 e4adbcb867864fbec9a0cb6bc2012831ab6d0182 udev-104-r2.ebuild 11789
 SHA256 393f30133d44d90832febb1eb77e4368313b2b199e5c435c94e5516e41c3752c udev-104-r2.ebuild 11789
-MISC ChangeLog 42267 RMD160 5d7303fd76953fb7a8c48cec6080b69d1812f525 SHA1 be10c3839b72328d4a5022377ecf5758f45d4b30 SHA256 7f903bc061336fa63950f11785d9bc4e42dc127bcae68ebd43a6566d03833b1e
-MD5 4dca09d244ef8645630f3f23a3314bf1 ChangeLog 42267
-RMD160 5d7303fd76953fb7a8c48cec6080b69d1812f525 ChangeLog 42267
-SHA256 7f903bc061336fa63950f11785d9bc4e42dc127bcae68ebd43a6566d03833b1e ChangeLog 42267
+EBUILD udev-104-r3.ebuild 10987 RMD160 7cd320d4deb1438f7220d94c6f429963b0b404bd SHA1 b48472dfbae507304d0f72e285caab735ebcab91 SHA256 23044e96be523af505b6aa29fe6c854c8b895d0efc1d4277a46b730007929ffd
+MD5 2460851d35aa80b8e1dea7440d04c32d udev-104-r3.ebuild 10987
+RMD160 7cd320d4deb1438f7220d94c6f429963b0b404bd udev-104-r3.ebuild 10987
+SHA256 23044e96be523af505b6aa29fe6c854c8b895d0efc1d4277a46b730007929ffd udev-104-r3.ebuild 10987
+MISC ChangeLog 42633 RMD160 cc51e0ed81fa0758eff134a398c4fdb8e4f1287d SHA1 fa3383089b1342540e6065373d01322ae6d7ea12 SHA256 120cfe8be8e3db816890e7cada3af345cb9eb4e31f4abf8d224d9838995fa51e
+MD5 312cc3149864f33b9e6c8aed6437f255 ChangeLog 42633
+RMD160 cc51e0ed81fa0758eff134a398c4fdb8e4f1287d ChangeLog 42633
+SHA256 120cfe8be8e3db816890e7cada3af345cb9eb4e31f4abf8d224d9838995fa51e ChangeLog 42633
 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-r2 229
 RMD160 7fd47bd560da91a9953657f31d6cd2383d2032cb files/digest-udev-104-r2 229
 SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/digest-udev-104-r2 229
+MD5 834e944e237e0d9501aac75e61c50eb1 files/digest-udev-104-r3 229
+RMD160 7fd47bd560da91a9953657f31d6cd2383d2032cb files/digest-udev-104-r3 229
+SHA256 36aae1151cda7c7f51bfb8204b7cef8301f80ea336086802f1a8c495a7eb7749 files/digest-udev-104-r3 229
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.1 (GNU/Linux)
 
-iD8DBQFFt5K1t2vP6XvVdOcRAoU5AJ48VXGSe2V5djW2TnPaVGPWEGNi8wCggAgv
-NHOeheFKajG9ygSIr79Qei4=
-=D6HW
+iD8DBQFFuRzxt2vP6XvVdOcRAmiIAJ4/5wiBKBCNgD86Cx8PBu83t6Mj1ACfZYil
+pjdmqCTygPMyTk4YZ425IMU=
+=n5AC
 -----END PGP SIGNATURE-----
diff --git a/sys-fs/udev/files/digest-udev-104-r3 b/sys-fs/udev/files/digest-udev-104-r3
new file mode 100644 (file)
index 0000000..1d88fbe
--- /dev/null
@@ -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-r3.sh b/sys-fs/udev/files/udev-start-104-r3.sh
new file mode 100644 (file)
index 0000000..a976d66
--- /dev/null
@@ -0,0 +1,133 @@
+# 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"
+
+       # 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() {
+       # 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 [[ $(</proc/filesystems)$'\n' =~ [[:space:]]tmpfs$'\n' ]] ; then
+                       mntcmd="tmpfs"
+               else
+                       mntcmd="ramfs"
+               fi
+               # many video drivers require exec access in /dev #92921
+               try mount -n -t ${mntcmd} udev /dev -o exec,nosuid,mode=0755
+       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"
+       /sbin/udevd --daemon
+       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-104-r3.sh b/sys-fs/udev/files/udev-stop-104-r3.sh
new file mode 100755 (executable)
index 0000000..1df2fd0
--- /dev/null
@@ -0,0 +1,94 @@
+# 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}"
+}
+
+main() {
+       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
+               eend 1 "Could not create temporary files!"
+       else
+               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
+               eval $(grep '^[[:space:]]*udev_db=' /etc/udev/udev.conf)
+               if [[ -d ${udev_db} ]]; then
+                       # New udev_db is clear text ...
+                       udevinfo=$(cat "${udev_db}"/*)
+               else
+                       # if no udev_db
+                       if [[ $(udev_version) -ge "104" ]]; then
+                               udevinfo=$(udevinfo --export-db)
+                       else
+                               # Old one is not ...
+                               udevinfo=$(udevinfo -d)
+                       fi
+               fi
+               # 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
+       fi
+
+       rm -rf "${save_tmp_base}"
+}
+
+main
+
+
+# vim:ts=4
diff --git a/sys-fs/udev/udev-104-r3.ebuild b/sys-fs/udev/udev-104-r3.ebuild
new file mode 100644 (file)
index 0000000..9560bc3
--- /dev/null
@@ -0,0 +1,311 @@
+# 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-r3.ebuild,v 1.1 2007/01/25 21:11:03 zzam Exp $
+
+inherit eutils flag-o-matic multilib
+
+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-r2 50-udev.rules
+       newins ${FILESDIR}/05-udev-early.rules-104-r2 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
+       dodir /etc/dev.d/default
+       dodir /etc/dev.d/net
+       exeinto /etc/dev.d/net
+       doexe extras/run_directory/dev.d/net/hotplug.dev
+
+       # 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-r3.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}" = "/" -a -n "`pidof udevd`" ]
+       then
+               killall -15 udevd &>/dev/null
+               sleep 1
+               killall -9 udevd &>/dev/null
+       fi
+       /sbin/udevd --daemon
+
+       # people want reminders, I'll give them reminders.  Odds are they will
+       # just ignore them anyway...
+       if has_version '<sys-fs/udev-046' ; then
+               ewarn "Note: If you rely on the output of udevinfo for anything, please"
+               ewarn "      either run 'udevstart' now, or reboot, in order to get a"
+               ewarn "      up-to-date udev database."
+               ewarn
+       fi
+       if has_version '<sys-fs/udev-050' ; then
+               ewarn "Note: If you had written some custom permissions rules, please"
+               ewarn "      realize that the permission rules are now part of the main"
+               ewarn "      udev rules files and are not stand-alone anymore.  This means"
+               ewarn "      you need to rewrite them."
+               ewarn
+       fi
+       if has_version '<sys-fs/udev-059' ; then
+               ewarn "Note: If you are upgrading from a version of udev prior to 059"
+               ewarn "      and you have written custom rules, and rely on the etc/dev.d/"
+               ewarn "      functionality, or the etc/hotplug.d functionality, or just"
+               ewarn "      want to write some very cool and power udev rules, please "
+               ewarn "      read the RELEASE-NOTES file for details on what has changed"
+               ewarn "      with this feature, and how to change your rules to work properly."
+               ewarn
+       elif has_version '<sys-fs/udev-057' ; then
+               ewarn "Note: If you have written custom rules, and rely on the etc/dev.d/"
+               ewarn "      functionality, please read the RELEASE-NOTES file for details"
+               ewarn "      on what has changed with this feature, and how to change your"
+               ewarn "      rules to work properly."
+               ewarn
+       fi
+       if has_version '<sys-fs/udev-063' ; then
+               ewarn "Note: If you use the devfs-style names for your block devices"
+               ewarn "      or use devfs-style names in /etc/inittab or /etc/securetty or"
+               ewarn "      your GRUB or LILO kernel boot command line, you need to"
+               ewarn "      change them back to LSB compliant names, as the devfs names are"
+               ewarn "      now gone.  If you wish to use some persistent names for your"
+               ewarn "      block devices, look at the symlinks in /dev/disk/ for the names"
+               ewarn "      you can use."
+               ewarn
+       fi
+
+       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
+
+       einfo
+       einfo "For more information on udev on Gentoo, writing udev rules, and"
+       einfo "         fixing known issues visit:"
+       einfo "         http://www.gentoo.org/doc/en/udev-guide.xml"
+}