Version bump to 3.0 = upstream udev-219.
authorAnthony G. Basile <blueness@gentoo.org>
Fri, 20 Mar 2015 00:12:09 +0000 (00:12 +0000)
committerAnthony G. Basile <blueness@gentoo.org>
Fri, 20 Mar 2015 00:12:09 +0000 (00:12 +0000)
Package-Manager: portage-2.2.14/cvs/Linux x86_64
Manifest-Sign-Key: 0xF52D4BBA

sys-fs/eudev/ChangeLog
sys-fs/eudev/Manifest
sys-fs/eudev/eudev-3.0.ebuild [new file with mode: 0644]

index 7f9ec388355b1c461f8264dcd049de2ccf098d3c..bd442a36725bab7555eeadb418bed400447abcea 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for sys-fs/eudev
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/eudev/ChangeLog,v 1.155 2015/02/12 00:57:47 blueness Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/eudev/ChangeLog,v 1.156 2015/03/20 00:11:55 blueness Exp $
+
+*eudev-3.0 (20 Mar 2015)
+
+  20 Mar 2015; Anthony G. Basile <blueness@gentoo.org> +eudev-3.0.ebuild:
+  Version bump to 3.0 = upstream udev-219.
 
   12 Feb 2015; Anthony G. Basile <blueness@gentoo.org> eudev-9999.ebuild:
   Update 9999 version for eudev 3.0 branch.
index 269dceaf0e3ddf756388078817b8000ed629bd37..2fb39605363b68f48d71df52577821b136a33ca4 100644 (file)
@@ -12,28 +12,30 @@ DIST eudev-1.3.tar.gz 1679385 SHA256 6f1f0b15971a53c7070a44c902c7c1303f952927aa6
 DIST eudev-1.5.3.tar.gz 1724415 SHA256 8e4362979572719562f600bfd7decd42d4e21506db5483e3d2e88f725396c57b SHA512 c00f34d76d76ebd5c2862310a2ba3d7bf2f8d348a96e0120ed02aa9014857df736e3a2280a4478e50f2537cabc9082b8f5f5e57ef7b3cf925fae6dc3a4688ddb WHIRLPOOL b3fc943f6c3eaeba92aed72dee417738a840f4176182e08f7564a1fd34baa3cf2a52787ac8e936f74f6c13b7896eb929a2f83cf087b8b09e5b8c7d7858471dd5
 DIST eudev-1.9.tar.gz 1762520 SHA256 8f17e92f1177ce9352bde00360e227a7cbb3b97ac8816174bee34be80e44cef0 SHA512 13bd7df42d686818f499856d260e5dfaf10425f06e05449bf4cc8318667b166e2ae9c5e8b519008285aeaab9284ec5fde1f9f19e536dd4bae09a5439c86336b3 WHIRLPOOL d0504f05e191e94229bf60a497cab82fe461f52072ba7ed2171654e684397e4ffa9ba47c8b18cd0cc6d0168701dcac3b7d4b6c73168382e2432c7c229b2d0293
 DIST eudev-2.1.1.tar.gz 1786403 SHA256 6aef101c5496a2dc45e669307d478dbccb0ee0462a285512edcda51ff12e0e6a SHA512 b3fb6d80ef94f124e7c23d7df61ed65c298e58f400d8df6b38fb1cea1da6cd387a17866dd54e12c8160214a496dab5d55b2e40ab1a6142a332f951cd3525d490 WHIRLPOOL 2c1ea2463ea7f1a72071866795609f75021abd81d9ab36298238dc481586de5d71864467b5da04546d0e1a1e0abf9ac1386bda2140ed1b5d277ae13baaf0a7d5
+DIST eudev-3.0.tar.gz 1835636 SHA256 74db8aaf13cc392edfb821291783ecd64d815e6f81409f57e290d3017750db29 SHA512 a0cfbbd5b1e59dafaf0ba2e321756bb7bff3d1a92e09ab0fca674adc80911e55aec29ed0b74262846516443d344cf044a0cfffb9e1d1caeb2f145da8d1a5327f WHIRLPOOL e08dcdd18bc6a8f4df2d66099e2ff90abb6bf62f75af81fb98c90261ce254eba986a6742eeca5d673818c2098d8a335ce9212aa3f1be5e1495ac05a397fe3f7a
 EBUILD eudev-1.10-r2.ebuild 9321 SHA256 086d5aa01d0a84ca53d839dd5be7decb93eb3c3e53cd0c339102a9bedd034af0 SHA512 de87d97b57a2765735aa7ab0d7a8d8983caa21236c7b09416f2fc852cc09bc7790b70d9220772227db759c57fb33ad5ea814083c8bdac872f4fc36235737c8d6 WHIRLPOOL 840c47da642442382feb0aa985e90df4504b7a89b271c6d68f20ba734b4e901e7be8afc62384695aab8b0c0da2292332550b1786a566b6dd46466ce54679c973
 EBUILD eudev-1.3.ebuild 7871 SHA256 9747f4fce99ec962f0eacade26606350c8508e4a0274a2536b8fd6d0e1a731b9 SHA512 bf492ccb058c86d9fa92182fcb4e69813ce6c497d33ffa46bbae979d6b76c95871ad57d8a09c899775fe00d18984753d2cd7423bf67bee7fce2c52297c77955f WHIRLPOOL 6f928fc89eed467cc85d0f260c86bda5a6d78c75328509f96ad3fdbc01ab94e85b89d7e7a25e2927505f9439dc819b8090277c89e2a870b6411a07a308bf6972
 EBUILD eudev-1.5.3-r1.ebuild 8093 SHA256 90def0b2c5a877861b64778cfe57ca2fb21a8d22f95696d78011ea3e72360e40 SHA512 39c921fa2810f0cb074de9238dbd5d2a346b5cf3cb68d9f31390c3019db88d2c66efd2dfc7b52ee1ccfcbd97aaac6366307b25981c095a3df4c55ea9961f602c WHIRLPOOL 901466cbea0f9177e6f2deae598f312f685166d96fb343f85513eeef6f19e6277a3a209f875f6ea90453067179ae1f6e0a55abbd593b249d2ae90e495fbe7a56
 EBUILD eudev-1.9-r2.ebuild 9332 SHA256 af35f58240456fd1cdc3fec7f1b9ab9ff33bf1e90a129c82a05cc64627092859 SHA512 668f679d03fb23008786b8d231c60eb3ced97ce600ded0cc4f4a766ad0421ab115c7831275b04ff1d90979df35b4780992b2dddb2b505be66d8fd5b6d87a50b3 WHIRLPOOL 427cc4b4217135ce8ce9bd3b957679e9910718ad052c4912d5a10fbe0882bc66c5b9580291e2352cb3aea08779c32ad68c0eef3e9dbd5dcd871505bb45be7140
 EBUILD eudev-2.1.1.ebuild 9095 SHA256 157d03449446958be8a4b069c3fbd0deb2537231957731710ff3e5597c187011 SHA512 a12478f39b4efb116077d5fbb312bfcc9be89db3bdad57b22d489d63674b83a8dc4ccbb638ca054146b549971ecb971da26a6a6b87ce8648e8b59dffd4e85c33 WHIRLPOOL 0e427ffcf05cf713049089e7c655b2f5e28bbaf7e88efaa21def339dfb893750366656854d4a3df189ef6b7983b561a97e4ec09dab2c915b7246549567f9444f
+EBUILD eudev-3.0.ebuild 8233 SHA256 aaed7c1805c865f671da14016f10efe22b0ca7e1e25b32e381a655a8a84b3e01 SHA512 d0f09a3bc7346e75b3c5993855901e33d0fb53926b69e2b93cdae74fe51d088a378c79121b34221facc51a7871121a49d7472cdae027ca23e98a9723f9a24f6d WHIRLPOOL b8f02250986e0695a29abef78d46f3746cc4708d783e9c71f8747205abac38fafd08c120d346ba5224b653e4aa76e0ed512168800b63f108eb07378a6ee59c09
 EBUILD eudev-9999.ebuild 8235 SHA256 0e8258b544d73005b117ef3d0523a4febb6c51b31cf894cc9242b7d39b93bed4 SHA512 125c6baf0e69ab83c54ce33c11368ab0389d45b3841c8361b0eb7d0a35e84324431b460b87d4db99d5810d4c06c872861b05afa6b729ab2a60cf62c74989f8e9 WHIRLPOOL 6db97bcfc79997297220d433c610c72d1576bcc6ce5770fdf832dc90b08722157b80bae5b0479ca676224c367b3a7f4c3441352a88723ee24f9e82cf20de8e86
-MISC ChangeLog 22290 SHA256 97f5f06840747174ff0fc2edff2549efff70ab3093020b2e90ed6633b8a413d7 SHA512 a00831e80459511bab981a040532f3c3b22a2a2cb715e02df8867a851f5a94c0de032652a03d54a25e7b6ac5bb762d5186b6ba08c69784748b6cabf1a51283b5 WHIRLPOOL 1790d70f6a85c674174d2fe88c26025ff62518d766e509413e136bf5c4f21dfbd2e71131d829a796012683aeb99c10c417d244f53f285550f1ccd21aa630935e
+MISC ChangeLog 22434 SHA256 91eb6d877227099d344c75ec80d372bd8d775e9dc453435b63891b924a135a81 SHA512 f9f546dc6cce341b5ba1fdc55b414940bce788de0ddaa4f9b880ff1e3ecab6a960789428c7e23f1695e9c0ff41499d89629d639f873207a9297690687b9734f2 WHIRLPOOL dc37851fc73b754914d023157ab89b845db3737f6f45620eb5d3dfb4113907e85e896e8e6577a32af227b60de2b248b79caf169052c6c04908610c895aa9797e
 MISC metadata.xml 978 SHA256 273446e57cfba7f612e72c3dcc2e1b93ac0003f878c504aa72daa762f2cdbba5 SHA512 244dc230cf7123afef2c4c0f0caa418bbc621f3da0e6303f7cecfb4f3cc53290fcf0adddf2d176ff208991a5bb27801c5c9f6ad5ea3bada513f7ebb22d02d06a WHIRLPOOL e39a5caec32bcd404eb2fdb54e3abff5631f7115786d039a6f2f04a8503e445f971a993dedd0564022e148133e2f15c4579b3cc664ffd393003a858ac77166c5
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iQIcBAEBCAAGBQJU2/teAAoJEJOE+m71LUu6s8sP/3/OzTx67OQILKj8OGUDOzXM
-3hFjohroPQpY9wclx7dI5H1r+tGwsc3Yo6D+/cp1nYhrnsAQ3GltRb+Yk1IcuZ9Q
-hGh+WMV5fCV54XKsdwG+cDTbeHM4TMitx1nMRppyqXf8uCqmCYTBmegIYnY37QEU
-NMlde/aJ7TL7yUAsrOBQUyg63ubbTNe0dpbh8n4QTJTzm1opeK2N1rg6QY9ayyru
-jyNwXbsyAJnJaak1+Ux2Pn9mur2j+kY/2/hsXMl7bpvId90VV3OUJYl87/Ppradm
-Kn8uyQSVyU53QMt1899+a2pwtw/Y5TnDyau+Y+8SsZFu4x33hlM/UUvbEuGBjyGH
-8y5gw/c6wMOIvr4D6rsbg/MuI9rUxRg4mFl3FPk08O+LZv6uWPqCkrSGuGRKjne5
-XTJslL53xjRx0Fs0CdvUCZ4ZTum70vCRyL+Bdxa9THFnfWd9opMPs3c934WMG4eJ
-SIzMm+wE94yBYI9uep+Xx5bjt8o8kxHCs+VsMPV8DZXOMMq1+i3HBMA/kL0GnBso
-+hATtH0WDVEiEcDLaBIcrYS7mV2d5ruNZo3ROzij+WxQhMljniTg1NrpOEtfRzIT
-Sw8JopHxldBtPpbCLmOJcAhAsBOwc7Kx43jF2h4h1bCM4nFL46huartlv2ZMJJuO
-/N0FjRPNxlEH/8DAOr/J
-=Pgra
+iQIcBAEBCAAGBQJVC2YoAAoJEJOE+m71LUu6+8IQAJzRSFZXAQAnoqVqdiu9+c5w
+0U9h428nIqsKSTk8foOkA9DRq3iOkTC9Crgr/8AHERgsEJ7tQuLTeVKNVH+lURTE
+yAjXeHIsjJcI5jPq9Q7D4P2KsN1kkEUK0oPAMZmAPcEoTqY06tNC8U7e+jiL/BPD
+2i/7K8BMGNhF1CGacNroVrOTdA/7cALjNHutySgGNDBjir+8cF1rinafe1VKacjy
+tzFVMC9X3gWs/wAh41vPAllOqnsemqiBp0wMRouUCKpSQy9s0/a03B7gy0nfB1ji
+oSOh+I1ty3TOw8sIbKtJ2gJ3hD7AX1XzGN61Gozpc9nUxv52HitEIPaYVFEBrtdS
+GpFvZw9k8fAhVoSz97e2VnkLMjLt8G7H7BZ8ZM2JcEs6LGwOTCIQIsSmDvJNquLT
+ewCIBVQDzMDf8pO7y2co2twpp84Dd8kEMyFiC1Ik73UmJ3xTWmSoQJd9YsYmErSS
+fxLW4tqQwXhDaxzutPchgM2a6+gqEZkU/QGtVWPVHJ98pKh1S+NHC+sizrGuHEtH
+1Bok8gTkWe0GpqpvXthHDVA+J5kFi8DExBM7BMRpOazimr0BDwxv8eNgCTyN+Cab
+bl2rX05TukCdGbxWsrMTcImhSFhSJcugxee0IaMoAA7dR3YDgPrbwxSYMb7QV7Wo
+n08Y2Bxy2Go881+Act7G
+=OreV
 -----END PGP SIGNATURE-----
diff --git a/sys-fs/eudev/eudev-3.0.ebuild b/sys-fs/eudev/eudev-3.0.ebuild
new file mode 100644 (file)
index 0000000..e56e749
--- /dev/null
@@ -0,0 +1,274 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/eudev/eudev-3.0.ebuild,v 1.1 2015/03/20 00:11:55 blueness Exp $
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+       EGIT_REPO_URI="git://github.com/gentoo/eudev.git"
+       inherit git-2
+else
+       SRC_URI="http://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="doc gudev +hwdb +kmod introspection selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+       gudev? ( >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] )
+       introspection? ( >=dev-libs/gobject-introspection-1.38 )
+       kmod? ( >=sys-apps/kmod-16 )
+       selinux? ( >=sys-libs/libselinux-2.1.9 )
+       !<sys-libs/glibc-2.11
+       !sys-apps/gentoo-systemd-integration
+       !sys-apps/systemd
+       abi_x86_32? (
+               !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+               !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+       )"
+DEPEND="${COMMON_DEPEND}
+       dev-util/gperf
+       virtual/os-headers
+       virtual/pkgconfig
+       >=sys-devel/make-3.82-r4
+       >=sys-kernel/linux-headers-${KV_min}
+       doc? ( >=dev-util/gtk-doc-1.18
+               app-text/docbook-xml-dtd:4.2
+               app-text/docbook-xml-dtd:4.5
+               app-text/docbook-xsl-stylesheets
+               dev-libs/libxslt
+       )
+       >=dev-util/intltool-0.50
+       test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+       !<sys-fs/lvm2-2.02.103
+       !<sec-policy/selinux-base-2.20120725-r10
+       !sys-fs/udev
+       !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+       hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+       ewarn
+       ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+       ewarn "as described in the URL below:"
+       ewarn "http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+       ewarn
+       ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+       ewarn "between the default or user-modified choice of sys-fs/udev.  If you wish to disable"
+       ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+       ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+       ewarn
+}
+
+pkg_setup() {
+       CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET"
+       linux-info_pkg_setup
+       get_running_version
+
+       # These are required kernel options, but we don't error out on them
+       # because you can build under one kernel and run under another.
+       if kernel_is lt ${KV_min//./ }; then
+               ewarn
+               ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+               ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+               ewarn
+       fi
+}
+
+src_prepare() {
+       # change rules back to group uucp instead of dialout for now
+       sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+       || die "failed to change group dialout to uucp"
+
+       epatch_user
+
+       if use doc; then
+               gtkdocize --docdir docs || die "gtkdocize failed"
+       else
+               echo 'EXTRA_DIST =' > docs/gtk-doc.make
+       fi
+       # This may break without WANT_AUTOMAKE=1.13, but we
+       # we want this so we can fix problems upstream.
+       eautoreconf
+}
+
+multilib_src_configure() {
+       tc-export CC #463846
+       export cc_cv_CFLAGS__flto=no #502950
+
+       # Keep sorted by ./configure --help and only pass --disable flags
+       # when *required* to avoid external deps or unnecessary compile
+       local econf_args
+       econf_args=(
+               ac_cv_search_cap_init=
+               ac_cv_header_sys_capability_h=yes
+               DBUS_CFLAGS=' '
+               DBUS_LIBS=' '
+               --with-rootprefix=
+               --docdir=/usr/share/doc/${PF}
+               --libdir=/usr/$(get_libdir)
+               --with-rootlibexecdir=/lib/udev
+               --with-html-dir="/usr/share/doc/${PF}/html"
+               --enable-split-usr
+               --exec-prefix=/
+
+               $(use_enable gudev)
+       )
+
+       # Only build libudev for non-native_abi, and only install it to libdir,
+       # that means all options only apply to native_abi
+       if multilib_is_native_abi; then
+               econf_args+=(
+                       --with-rootlibdir=/$(get_libdir)
+                       $(use_enable doc gtk-doc)
+                       $(use_enable introspection)
+                       $(use_enable kmod)
+                       $(use_enable static-libs static)
+                       $(use_enable selinux)
+               )
+       else
+               econf_args+=(
+                       --disable-static
+                       --disable-gtk-doc
+                       --disable-introspection
+                       --disable-kmod
+                       --disable-selinux
+               )
+       fi
+       ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+       if multilib_is_native_abi; then
+               emake
+       else
+               emake -C src/shared
+               emake -C src/libudev
+               use gudev && emake -C src/gudev
+       fi
+}
+
+multilib_src_install() {
+       if multilib_is_native_abi; then
+               emake DESTDIR="${D}" install
+       else
+               emake -C src/libudev DESTDIR="${D}" install
+               use gudev && emake -C src/gudev DESTDIR="${D}" install
+       fi
+}
+
+multilib_src_test() {
+       # make sandbox get out of the way
+       # these are safe because there is a fake root filesystem put in place,
+       # but sandbox seems to evaluate the paths of the test i/o instead of the
+       # paths of the actual i/o that results.
+       # also only test for native abi
+       if multilib_is_native_abi; then
+               addread /sys
+               addwrite /dev
+               addwrite /run
+               default_src_test
+       fi
+}
+
+multilib_src_install_all() {
+       prune_libtool_files --all
+       rm -rf "${ED}"/usr/share/doc/${PF}/LICENSE.*
+
+       # drop distributed hwdb files, they override sys-apps/hwids
+       rm -f "${ED}"/etc/udev/hwdb.d/*.hwdb
+
+       insinto /lib/udev/rules.d
+       doins "${FILESDIR}"/40-gentoo.rules
+
+       if ! [[ ${PV} = 9999* ]]; then
+               insinto /usr/share/doc/${PF}/html/gudev
+               doins "${S}"/docs/gudev/html/*
+
+               insinto /usr/share/doc/${PF}/html/libudev
+               doins "${S}"/docs/libudev/html/*
+       fi
+}
+
+pkg_preinst() {
+       local htmldir
+       for htmldir in gudev libudev; do
+               if [[ -d ${EROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
+                       rm -rf "${EROOT}"usr/share/gtk-doc/html/${htmldir}
+               fi
+               if [[ -d ${ED}/usr/share/doc/${PF}/html/${htmldir} ]]; then
+                       dosym ../../doc/${PF}/html/${htmldir} \
+                               /usr/share/gtk-doc/html/${htmldir}
+               fi
+       done
+}
+
+pkg_postinst() {
+       mkdir -p "${EROOT}"run
+
+       # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+       # So try to remove it here (will only work if empty).
+       rmdir "${EROOT}"dev/loop 2>/dev/null
+       if [[ -d ${EROOT}dev/loop ]]; then
+               ewarn "Please make sure your remove /dev/loop,"
+               ewarn "else losetup may be confused when looking for unused devices."
+       fi
+
+       if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+               udevadm hwdb --update --root="${ROOT%/}"
+
+               # http://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+               # reload database after it has be rebuilt, but only if we are not upgrading
+               # also pass if we are -9999 since who knows what hwdb related changes there might be
+               if [[ ${REPLACING_VERSIONS%-r*} == ${PV} || -z ${REPLACING_VERSIONS} ]] && \
+               [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+                       udevadm control --reload
+               fi
+       fi
+
+       ewarn
+       ewarn "You need to restart eudev as soon as possible to make the"
+       ewarn "upgrade go into effect:"
+       ewarn "\t/etc/init.d/udev --nodeps restart"
+
+       elog
+       elog "For more information on eudev on Gentoo, writing udev rules, and"
+       elog "fixing known issues visit:"
+       elog "         http://www.gentoo.org/doc/en/udev-guide.xml"
+       elog
+
+       # http://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+       # http://bugs.gentoo.org/246847
+       # http://bugs.gentoo.org/514174
+       enewgroup input
+
+       # Update hwdb database in case the format is changed by udev version.
+       if has_version 'sys-apps/hwids[udev]'; then
+               udevadm hwdb --update --root="${ROOT%/}"
+               # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+               if [[ -z ${REPLACING_VERSIONS} ]]; then
+                       # http://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+                       if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
+                               return 0
+                       fi
+                       udevadm control --reload
+               fi
+       fi
+}