summaryrefslogtreecommitdiff
path: root/sys-fs/udev
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /sys-fs/udev
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'sys-fs/udev')
-rw-r--r--sys-fs/udev/Manifest9
-rw-r--r--sys-fs/udev/files/249-udev-linux-headers-5-15.patch22
-rw-r--r--sys-fs/udev/udev-249-r3.ebuild2
-rw-r--r--sys-fs/udev/udev-249.6-r1.ebuild310
-rw-r--r--sys-fs/udev/udev-249.6.ebuild303
-rw-r--r--sys-fs/udev/udev-9999.ebuild25
6 files changed, 664 insertions, 7 deletions
diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest
index 20ecc54e48ea..34586f302ef5 100644
--- a/sys-fs/udev/Manifest
+++ b/sys-fs/udev/Manifest
@@ -1,8 +1,13 @@
AUX 249-libudev-static.patch 1454 BLAKE2B 420f9452066ccf951033c1ae1e215284fa9d11f24777c68ecd0178db5c7571ee881451300d409468c1ba3f3b2ad4b35adca5b2761309c84b315bbabd45f6b97f SHA512 4d616b4b02981c4622951a46f23519e03c2d1228453837d31fe060db70afa24722883ca57c08c55cd9fd35c720a5ef2ecb11ab3313867e1b3cfc3682e45e3f45
AUX 249-sys-include-posix.patch 1831 BLAKE2B eaea99f57a189d77789c9b61ed7962f108f1ed733e3ab8d76fb8dd4849faf8f05338f3addaaad97ba2f8796200de0f5079d3838d995ba2519b7d4ea2a568d0d5 SHA512 3d98055f2beb22fe5607125585929fc531b790f489779dcd162541b5461a9da15d76e7a713f6476a3278073e6fd2488bc0af19eca952f6534d90aadb81ef644f
+AUX 249-udev-linux-headers-5-15.patch 828 BLAKE2B 767e5b7ad7320e5fb5e75939bcb4c65ea99d914a9446725da1f1019d088c1830f2760c07d9c16fdd301b92761494b296ee70ac16ee43db4bd4a3307b2f1302bb SHA512 ed88ed1dcd3e18cfc5d19244eeb681bb9091098163f0c93d523f9d180648eace1c05b328285e9980be861655515f89b068d6fe0d05aa09639e1b71bd1db143af
AUX 40-gentoo.rules 167 BLAKE2B 07116c6e5aab7de9fa8a88c6cdd9ad76a09d797d6f7bc3d0535c93ccf83486bbdae8f68d682714576b072a174df070505cce9c6f4b729e91a6f61ed89da72e8e SHA512 92e2be610839432f46cefab4d128825199dc9f2c5ef33119f9ff84dfe635ef56a4f7aaed64ba52ea2798868b00c3a1b7955caa33219aa298c6a2b8290181f94b
DIST systemd-249.tar.gz 10588828 BLAKE2B f7896dea0bdec25125188b94ee84270b972649b1eb16599bed1967ced79f62dbfd1494e22362934f418823c054b342fb24dc57706b49520814beb95b6956bf27 SHA512 0810d09cc32e4aaa4425ee5b7ddf129262b061ce159cbd43571fabda48285243d8f80b566379ece9215d531b9407ee45e1e72c71935644fea31c7bca1bbf540c
DIST systemd-musl-patches-249.1-r1.tar.xz 24536 BLAKE2B 25135519112b2a1c638046addb6971ea1997fc7dd8626de90d162a4beb6383b5724df78a14c73be1283df58632fb4a0fcb32f90f50f1886f31a1aded15e9567c SHA512 4655f2a06e1b3310cb27b839360353dfbfdbdaa86f4392aeebf63f63efd441d1953f7ac108be7fed7ea721596d191988ed999e34443e47922afca92db779175a
-EBUILD udev-249-r3.ebuild 7438 BLAKE2B d00b8eee8ddb7b72f4201f80cd62fd063d8fb30ceeba86e5a931e2b594562239fb15c161f3bedce83ed6ad51e5bd0e16a1187ae68d9dd05bee7d9703ebc238b4 SHA512 959210956e6bda3e08042e382bebf47c853e9760e2f8ab1e4d154eeb2e09f29c4d4f9baceb713880b2e960db20328b8344c59ce2c9f262b57b9b31dba120edfe
-EBUILD udev-9999.ebuild 7314 BLAKE2B 6175acd4032a3e96b017ccf4bf03ed0d0f013d353b8f0eff1e520fdd407c4aa87bebbbe744acea35f768fd5695ac134fc11772254778018d1dac780eb41f4cff SHA512 d4c5f81415eb423992df158cfab4d7621720bbc79f31aadcfa42b7561274290f30f054b9214dfd7fb6e167238848edcc19273cac79c004a2d578c9f475be8191
+DIST systemd-musl-patches-249.5-r1.tar.xz 25148 BLAKE2B 6717291b5335997dcc327764beffc4ded50a5ac0e777bb3c540b5e355bee419c3d9b4a5605c239392d4c1b0e70792bc87282fa15dc9c09a0465b5608f2909006 SHA512 4bb7566437c280e75402fc435a3437aedad127f7b94c9bd54b94e9e1e7507409ad0898681f23e813b9b47414f58e4ca413b6d4e520bbbf578faec09054bf7f9b
+DIST systemd-stable-249.6.tar.gz 10599611 BLAKE2B 9c0cbaa4319f2ce9a78dbe820d1b6df5191e6c632e2eac9f71f9ff9817564d9b3fc177d2aec0c0daea8ac33bbdc2066ad68a8967cf8857f4af3668b9a3e7d3bf SHA512 7a7791dfe4923c00987b924adcb1cd08c4d17af2b17b4c6c6c701856c6810cfda61f06821c39787339fc05293853c0ea61b9973fcf4495c7bf4f8054ecfae66f
+EBUILD udev-249-r3.ebuild 7609 BLAKE2B bdae4a297aa37813ff99a4821822719d51458d12cb8ab246ff89149dd358d36c9df30edafe6dfe51779cc3c4ed21f9e32230677ecad49d3e2917e837c1b523da SHA512 aa1d2a58c28a30ee488a3f9424946240dc08d2e47524250b023326e4bb7ec73630ddcd8ebd01c53280c5bee78ae4e1cb67868b339483625647a0a19aa8413d14
+EBUILD udev-249.6-r1.ebuild 7909 BLAKE2B cf5816429105c796deb6cfb8554dbc198163cee2df6df4b68b4302e07066b9c45501d3bf8050ec7e9a6bbb8d2fe96db700b106667def63568b3f821896225083 SHA512 c33cc650e8b8726caca8f65161d947c68b6ec37d11ec0dfe12576355f0e37b0499aeb9b6d074dfae1e0e82737aa62aa48bb7fe29fb877ef79a0ea0089512be0b
+EBUILD udev-249.6.ebuild 7771 BLAKE2B 0f5657c096483c9ddab5f749c2b250c64c4a7e7cb5df7e5dd8f45dbf76ccf181871a2ccff06ed807d5cd56fa581233ae7486ae78b095b6fb17dbc8051e1e7450 SHA512 c0ae5006e6bef8a035884e067f9d277761dac0883fe93842ddd999ccd24c0c90f4984ab99e5120e06e1121a75b1346b218e13318992db3fab73106dac044e616
+EBUILD udev-9999.ebuild 7905 BLAKE2B 2763c80b9a7d744744be9c626184693dada5ee2313265e099f22e94d523c532bd06940cbf06c3c76d36ae0692ba62f58249d702d90ea02d69b224fa84fe62b0c SHA512 442bc35901b2df59e68fae8fff3fb2a04c3e241c516ca3fe62cbe4a6a070cc7d95a15024285ab2cb480301853848ab9a0b2c4d489d7284d72d225088ee8f9299
MISC metadata.xml 475 BLAKE2B 51db3fcfdcb7942e2bfa6e3e9fac08f9a0de6018e08a04da65920d1c1e83af6620ef73dfff201f1feff31580a0a6341814a8182e43b2c07f9da7577252010ad1 SHA512 65c1345e9c0707248f12bbf436f9b0ccb6160eb86d6c22f3e62b34791879621df59eb195e4c4c95b5cf9440b052bdc7c2b5847789a44cc9fb13b6cd4867f580e
diff --git a/sys-fs/udev/files/249-udev-linux-headers-5-15.patch b/sys-fs/udev/files/249-udev-linux-headers-5-15.patch
new file mode 100644
index 000000000000..844099b72819
--- /dev/null
+++ b/sys-fs/udev/files/249-udev-linux-headers-5-15.patch
@@ -0,0 +1,22 @@
+https://github.com/systemd/systemd-stable/pull/132/commits/92bbfcdc733d39ec4097d8678bc92a7aaaf78ae1.patch
+https://bugs.gentoo.org/821550
+
+From: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Date: Fri, 10 Sep 2021 09:51:36 +1200
+Subject: [PATCH 1/2] basic/linux: Sync if_arp.h with Linux 5.14
+
+ARPHRD_MCTP was added in 5.14. Sync if_arp.h to pick up the definition
+
+Fixes #20694
+
+(cherry picked from commit 7c5b9952c4f6e2b72f90edbe439982528b7cf223)
+--- a/src/basic/linux/if_arp.h
++++ b/src/basic/linux/if_arp.h
+@@ -54,6 +54,7 @@
+ #define ARPHRD_X25 271 /* CCITT X.25 */
+ #define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
+ #define ARPHRD_CAN 280 /* Controller Area Network */
++#define ARPHRD_MCTP 290
+ #define ARPHRD_PPP 512
+ #define ARPHRD_CISCO 513 /* Cisco HDLC */
+ #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/sys-fs/udev/udev-249-r3.ebuild b/sys-fs/udev/udev-249-r3.ebuild
index 2e1601d89e08..84fa631f0f66 100644
--- a/sys-fs/udev/udev-249-r3.ebuild
+++ b/sys-fs/udev/udev-249-r3.ebuild
@@ -116,6 +116,7 @@ src_prepare() {
# backport from 250 to silence musl warnings
"${FILESDIR}/249-sys-include-posix.patch"
"${FILESDIR}/249-libudev-static.patch"
+ "${FILESDIR}/249-udev-linux-headers-5-15.patch"
)
use elibc_musl && PATCHES+=( "${WORKDIR}"/musl-patches )
@@ -294,5 +295,6 @@ pkg_postinst() {
ewarn
ewarn "If you wish to disable this, please see the above documentation, or set"
ewarn "net.ifnames=0 on the kernel command line."
+ ewarn "See also: https://wiki.gentoo.org/wiki/Udev#Optional:_Disable_or_override_predictable_network_interface_naming"
fi
}
diff --git a/sys-fs/udev/udev-249.6-r1.ebuild b/sys-fs/udev/udev-249.6-r1.ebuild
new file mode 100644
index 000000000000..7d3033099db3
--- /dev/null
+++ b/sys-fs/udev/udev-249.6-r1.ebuild
@@ -0,0 +1,310 @@
+# Copyright 2003-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit bash-completion-r1 flag-o-matic linux-info meson-multilib ninja-utils python-any-r1 toolchain-funcs udev usr-ldscript
+
+if [[ ${PV} = 9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *.* ]] ; then
+ MY_PN=systemd-stable
+ else
+ MY_PN=systemd
+ fi
+
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ S="${WORKDIR}/${MY_P}"
+ SRC_URI="https://github.com/systemd/${MY_PN}/archive/v${MY_PV}/${MY_P}.tar.gz"
+
+ # musl patches taken from:
+ # http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd
+ MUSL_PATCHSET="249.5-r1"
+ SRC_URI+="
+ elibc_musl? (
+ https://dev.gentoo.org/~gyakovlev/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+ https://dev.gentoo.org/~soap/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+ )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ dev-util/gperf
+ sys-devel/gettext
+ >=sys-apps/coreutils-8.16
+ virtual/pkgconfig
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/jinja[${PYTHON_USEDEP}]')
+ test? (
+ app-text/tree
+ dev-lang/perl
+ )
+"
+COMMON_DEPEND="
+ >=sys-apps/util-linux-2.30[${MULTILIB_USEDEP}]
+ sys-libs/libcap:0=[${MULTILIB_USEDEP}]
+ virtual/libcrypt:=[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-15 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+"
+DEPEND="${COMMON_DEPEND}
+ >=sys-kernel/linux-headers-3.9
+"
+RDEPEND="${COMMON_DEPEND}
+ acct-group/kmem
+ acct-group/tty
+ acct-group/audio
+ acct-group/cdrom
+ acct-group/dialout
+ acct-group/disk
+ acct-group/input
+ acct-group/kvm
+ acct-group/lp
+ acct-group/render
+ acct-group/tape
+ acct-group/video
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ !sys-apps/hwids[udev]
+"
+PDEPEND="
+ >=sys-fs/udev-init-scripts-34
+"
+
+python_check_deps() {
+ has_version -b "dev-python/jinja[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]] ; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ } ; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7 ; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ local PATCHES=(
+ )
+ use elibc_musl && PATCHES+=( "${WORKDIR}"/musl-patches )
+
+ default
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ $(meson_native_use_bool acl)
+ -Defi=false
+ $(meson_native_use_bool kmod)
+ $(meson_native_use_bool selinux)
+ -Dlink-udev-shared=false
+ -Dsplit-usr=true
+ -Drootlibdir="${EPREFIX}/usr/$(get_libdir)"
+
+ # Prevent automagic deps
+ -Dgcrypt=false
+ -Dlibcryptsetup=false
+ -Didn=false
+ -Dlibidn=false
+ -Dlibidn2=false
+ -Dlibiptc=false
+ -Dp11kit=false
+ -Dseccomp=false
+ -Dlz4=false
+ -Dxz=false
+ )
+ use elibc_musl && emesonargs+=(
+ -Dgshadow=false
+ -Dsmack=false
+ -Dutmp=false
+ )
+
+ meson_src_configure
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ python_setup
+
+ use elibc_musl && append-cppflags -D__UAPI_DEF_ETHHDR=0
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ # meson creates this link
+ local libudev=$(readlink libudev.so.1)
+
+ local targets=(
+ ${libudev}
+ src/libudev/libudev.pc
+ )
+ if multilib_is_native_abi; then
+ targets+=(
+ udevadm
+ src/udev/ata_id
+ src/udev/cdrom_id
+ src/udev/fido_id
+ src/udev/mtd_probe
+ src/udev/scsi_id
+ src/udev/udev.pc
+ src/udev/v4l_id
+ man/udev.conf.5
+ man/systemd.link.5
+ man/hwdb.7
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ hwdb.d/60-autosuspend-chromiumos.hwdb
+ rules.d/50-udev-default.rules
+ rules.d/64-btrfs.rules
+ )
+ fi
+ eninja "${targets[@]}"
+}
+
+src_test() {
+ # The testsuite is *very* finicky. Don't try running it in
+ # containers or anything but a full VM or on bare metal.
+ # udev calls 'mknod' a number of times, and this interacts
+ # badly with kernel namespaces.
+
+ if [[ ! -w /dev ]]; then
+ ewarn "udev tests needs full access to /dev"
+ ewarn "Skipping tests"
+ else
+ meson-multilib_src_test
+ fi
+}
+
+multilib_src_test() {
+ # two binaries required by udev-test.pl
+ eninja systemd-detect-virt test-udev
+ local -x PATH="${PWD}:${PATH}"
+
+ # prepare ${BUILD_DIR}/test/sys, required by udev-test.pl
+ "${EPYTHON}" "${S}"/test/sys-script.py test || die
+
+ # the perl script contains all the udev tests
+ "${S}"/test/udev-test.pl || die
+}
+
+multilib_src_install() {
+ local libudev=$(readlink libudev.so.1)
+
+ dolib.so {${libudev},libudev.so.1,libudev.so}
+ gen_usr_ldscript -a udev
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ doins src/libudev/libudev.pc
+
+ if multilib_is_native_abi ; then
+ into /
+ dobin udevadm
+
+ dosym ../../bin/udevadm /lib/systemd/systemd-udevd
+
+ exeinto /lib/udev
+ doexe src/udev/{ata_id,cdrom_id,fido_id,mtd_probe,scsi_id,v4l_id}
+
+ # Install generated rules (${BUILD_DIR}/rules.d/*.rules)
+ insinto /lib/udev/rules.d
+ doins rules.d/*.rules
+ insinto /lib/udev/hwdb.d
+ doins hwdb.d/*.hwdb
+
+ insinto /usr/share/pkgconfig
+ doins src/udev/udev.pc
+
+ mv man/systemd-udevd.service.8 man/systemd-udevd.8 || die
+ rm man/systemd-udevd-{control,kernel}.socket.8 || die
+ doman man/*.[0-9]
+ fi
+}
+
+multilib_src_install_all() {
+ doheader src/libudev/libudev.h
+
+ insinto /etc/udev
+ doins src/udev/udev.conf
+ keepdir /etc/udev/{hwdb.d,rules.d}
+
+ insinto /lib/systemd/network
+ doins network/99-default.link
+
+ # Install static rules (${S}/rules.d/*.rules)
+ insinto /lib/udev/rules.d
+ doins rules.d/*.rules
+ doins "${FILESDIR}"/40-gentoo.rules
+ insinto /lib/udev/hwdb.d
+ doins hwdb.d/*.hwdb
+
+ dobashcomp shell-completion/bash/udevadm
+
+ insinto /usr/share/zsh/site-functions
+ doins shell-completion/zsh/_udevadm
+
+ einstalldocs
+}
+
+pkg_preinst() {
+ has_version 'sys-fs/eudev' && HAD_EUDEV=1
+}
+
+pkg_postinst() {
+ # 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
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+
+ if [[ ${HAD_EUDEV} -eq 1 ]] ; then
+ ewarn
+ ewarn "${P} defaults to predictable interface renaming, as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "If you wish to disable this, please see the above documentation, or set"
+ ewarn "net.ifnames=0 on the kernel command line."
+ ewarn "See also: https://wiki.gentoo.org/wiki/Udev#Optional:_Disable_or_override_predictable_network_interface_naming"
+ if [[ -e ${EROOT}/etc/udev/rules.d/80-net-name-slot.rules ]]; then
+ ewarn
+ ewarn "Detected '${EROOT}/etc/udev/rules.d/80-net-name-slot.rules'"
+ ewarn "Renaming to '${EROOT}/etc/udev/rules.d/80-net-setup-link.rules'"
+ mv "${EROOT}"/etc/udev/rules.d/80-net-{name-slot,setup-link}.rules
+ fi
+ fi
+}
diff --git a/sys-fs/udev/udev-249.6.ebuild b/sys-fs/udev/udev-249.6.ebuild
new file mode 100644
index 000000000000..513cbfac6257
--- /dev/null
+++ b/sys-fs/udev/udev-249.6.ebuild
@@ -0,0 +1,303 @@
+# Copyright 2003-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit bash-completion-r1 flag-o-matic linux-info meson-multilib ninja-utils python-any-r1 toolchain-funcs udev usr-ldscript
+
+if [[ ${PV} = 9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *.* ]] ; then
+ MY_PN=systemd-stable
+ else
+ MY_PN=systemd
+ fi
+
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ S="${WORKDIR}/${MY_P}"
+ SRC_URI="https://github.com/systemd/${MY_PN}/archive/v${MY_PV}/${MY_P}.tar.gz"
+
+ # musl patches taken from:
+ # http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd
+ MUSL_PATCHSET="249.5-r1"
+ SRC_URI+="
+ elibc_musl? (
+ https://dev.gentoo.org/~gyakovlev/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+ https://dev.gentoo.org/~soap/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
+ )"
+
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ dev-util/gperf
+ sys-devel/gettext
+ >=sys-apps/coreutils-8.16
+ virtual/pkgconfig
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/jinja[${PYTHON_USEDEP}]')
+ test? (
+ app-text/tree
+ dev-lang/perl
+ )
+"
+COMMON_DEPEND="
+ >=sys-apps/util-linux-2.30[${MULTILIB_USEDEP}]
+ sys-libs/libcap:0=[${MULTILIB_USEDEP}]
+ virtual/libcrypt:=[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-15 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+"
+DEPEND="${COMMON_DEPEND}
+ >=sys-kernel/linux-headers-3.9
+"
+RDEPEND="${COMMON_DEPEND}
+ acct-group/kmem
+ acct-group/tty
+ acct-group/audio
+ acct-group/cdrom
+ acct-group/dialout
+ acct-group/disk
+ acct-group/input
+ acct-group/kvm
+ acct-group/lp
+ acct-group/render
+ acct-group/tape
+ acct-group/video
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-34"
+
+python_check_deps() {
+ has_version -b "dev-python/jinja[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]] ; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ } ; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7 ; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ local PATCHES=(
+ )
+ use elibc_musl && PATCHES+=( "${WORKDIR}"/musl-patches )
+
+ default
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ $(meson_native_use_bool acl)
+ -Defi=false
+ $(meson_native_use_bool kmod)
+ $(meson_native_use_bool selinux)
+ -Dlink-udev-shared=false
+ -Dsplit-usr=true
+ -Drootlibdir="${EPREFIX}/usr/$(get_libdir)"
+
+ # Prevent automagic deps
+ -Dgcrypt=false
+ -Dlibcryptsetup=false
+ -Didn=false
+ -Dlibidn=false
+ -Dlibidn2=false
+ -Dlibiptc=false
+ -Dp11kit=false
+ -Dseccomp=false
+ -Dlz4=false
+ -Dxz=false
+ )
+ use elibc_musl && emesonargs+=(
+ -Dgshadow=false
+ -Dsmack=false
+ -Dutmp=false
+ )
+
+ meson_src_configure
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ python_setup
+
+ use elibc_musl && append-cppflags -D__UAPI_DEF_ETHHDR=0
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ # meson creates this link
+ local libudev=$(readlink libudev.so.1)
+
+ local targets=(
+ ${libudev}
+ src/libudev/libudev.pc
+ )
+ if multilib_is_native_abi; then
+ targets+=(
+ udevadm
+ src/udev/ata_id
+ src/udev/cdrom_id
+ src/udev/fido_id
+ src/udev/mtd_probe
+ src/udev/scsi_id
+ src/udev/udev.pc
+ src/udev/v4l_id
+ man/udev.conf.5
+ man/systemd.link.5
+ man/hwdb.7
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ rules.d/50-udev-default.rules
+ rules.d/64-btrfs.rules
+ )
+ fi
+ eninja "${targets[@]}"
+}
+
+src_test() {
+ # The testsuite is *very* finicky. Don't try running it in
+ # containers or anything but a full VM or on bare metal.
+ # udev calls 'mknod' a number of times, and this interacts
+ # badly with kernel namespaces.
+
+ if [[ ! -w /dev ]]; then
+ ewarn "udev tests needs full access to /dev"
+ ewarn "Skipping tests"
+ else
+ meson-multilib_src_test
+ fi
+}
+
+multilib_src_test() {
+ # two binaries required by udev-test.pl
+ eninja systemd-detect-virt test-udev
+ local -x PATH="${PWD}:${PATH}"
+
+ # prepare ${BUILD_DIR}/test/sys, required by udev-test.pl
+ "${EPYTHON}" "${S}"/test/sys-script.py test || die
+
+ # the perl script contains all the udev tests
+ "${S}"/test/udev-test.pl || die
+}
+
+multilib_src_install() {
+ local libudev=$(readlink libudev.so.1)
+
+ dolib.so {${libudev},libudev.so.1,libudev.so}
+ gen_usr_ldscript -a udev
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ doins src/libudev/libudev.pc
+
+ if multilib_is_native_abi ; then
+ into /
+ dobin udevadm
+
+ dosym ../../bin/udevadm /lib/systemd/systemd-udevd
+
+ exeinto /lib/udev
+ doexe src/udev/{ata_id,cdrom_id,fido_id,mtd_probe,scsi_id,v4l_id}
+
+ # Install generated rules (${BUILD_DIR}/rules.d/*.rules)
+ insinto /lib/udev/rules.d
+ doins rules.d/*.rules
+
+ insinto /usr/share/pkgconfig
+ doins src/udev/udev.pc
+
+ mv man/systemd-udevd.service.8 man/systemd-udevd.8 || die
+ rm man/systemd-udevd-{control,kernel}.socket.8 || die
+ doman man/*.[0-9]
+ fi
+}
+
+multilib_src_install_all() {
+ doheader src/libudev/libudev.h
+
+ insinto /etc/udev
+ doins src/udev/udev.conf
+ keepdir /etc/udev/{hwdb.d,rules.d}
+
+ insinto /lib/systemd/network
+ doins network/99-default.link
+
+ # Install static rules (${S}/rules.d/*.rules)
+ insinto /lib/udev/rules.d
+ doins rules.d/*.rules
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ dobashcomp shell-completion/bash/udevadm
+
+ insinto /usr/share/zsh/site-functions
+ doins shell-completion/zsh/_udevadm
+
+ einstalldocs
+}
+
+pkg_preinst() {
+ has_version 'sys-fs/eudev' && HAD_EUDEV=1
+}
+
+pkg_postinst() {
+ # 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
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+
+ if [[ ${HAD_EUDEV} -eq 1 ]] ; then
+ ewarn
+ ewarn "${P} defaults to predictable interface renaming, as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "If you wish to disable this, please see the above documentation, or set"
+ ewarn "net.ifnames=0 on the kernel command line."
+ ewarn "See also: https://wiki.gentoo.org/wiki/Udev#Optional:_Disable_or_override_predictable_network_interface_naming"
+ if [[ -e ${EROOT}/etc/udev/rules.d/80-net-name-slot.rules ]]; then
+ ewarn
+ ewarn "Detected '${EROOT}/etc/udev/rules.d/80-net-name-slot.rules'"
+ ewarn "Renaming to '${EROOT}/etc/udev/rules.d/80-net-setup-link.rules'"
+ mv "${EROOT}"/etc/udev/rules.d/80-net-{name-slot,setup-link}.rules
+ fi
+ fi
+}
diff --git a/sys-fs/udev/udev-9999.ebuild b/sys-fs/udev/udev-9999.ebuild
index 0479fe245547..49ee2cd44c17 100644
--- a/sys-fs/udev/udev-9999.ebuild
+++ b/sys-fs/udev/udev-9999.ebuild
@@ -23,13 +23,14 @@ else
# musl patches taken from:
# http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd
+ MUSL_PATCHSET="${PV}"
SRC_URI+="
elibc_musl? (
- https://dev.gentoo.org/~gyakovlev/distfiles/systemd-musl-patches-${PV}.1-r1.tar.xz
- https://dev.gentoo.org/~soap/distfiles/systemd-musl-patches-${PV}.1-r1.tar.xz
+ https://dev.gentoo.org/~gyakovlev/distfiles/systemd-musl-patches-${MUSL_PATCHSE}.tar.xz
+ https://dev.gentoo.org/~soap/distfiles/systemd-musl-patches-${MUSL_PATCHSET}.tar.xz
)"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
@@ -82,9 +83,11 @@ RDEPEND="${COMMON_DEPEND}
acct-group/video
!sys-apps/gentoo-systemd-integration
!sys-apps/systemd
+ !sys-apps/hwids[udev]
+"
+PDEPEND="
+ >=sys-fs/udev-init-scripts-34
"
-PDEPEND=">=sys-apps/hwids-20140304[udev]
- >=sys-fs/udev-init-scripts-34"
python_check_deps() {
has_version -b "dev-python/jinja[${PYTHON_USEDEP}]"
@@ -184,6 +187,7 @@ multilib_src_compile() {
man/udev.7
man/systemd-udevd.service.8
man/udevadm.8
+ hwdb.d/60-autosuspend-chromiumos.hwdb
rules.d/50-udev-default.rules
rules.d/64-btrfs.rules
)
@@ -238,6 +242,8 @@ multilib_src_install() {
# Install generated rules (${BUILD_DIR}/rules.d/*.rules)
insinto /lib/udev/rules.d
doins rules.d/*.rules
+ insinto /lib/udev/hwdb.d
+ doins hwdb.d/*.hwdb
insinto /usr/share/pkgconfig
doins src/udev/udev.pc
@@ -262,6 +268,8 @@ multilib_src_install_all() {
insinto /lib/udev/rules.d
doins rules.d/*.rules
doins "${FILESDIR}"/40-gentoo.rules
+ insinto /lib/udev/hwdb.d
+ doins hwdb.d/*.hwdb
dobashcomp shell-completion/bash/udevadm
@@ -291,5 +299,12 @@ pkg_postinst() {
ewarn
ewarn "If you wish to disable this, please see the above documentation, or set"
ewarn "net.ifnames=0 on the kernel command line."
+ ewarn "See also: https://wiki.gentoo.org/wiki/Udev#Optional:_Disable_or_override_predictable_network_interface_naming"
+ if [[ -e ${EROOT}/etc/udev/rules.d/80-net-name-slot.rules ]]; then
+ ewarn
+ ewarn "Detected '${EROOT}/etc/udev/rules.d/80-net-name-slot.rules'"
+ ewarn "Renaming to '${EROOT}/etc/udev/rules.d/80-net-setup-link.rules'"
+ mv "${EROOT}"/etc/udev/rules.d/80-net-{name-slot,setup-link}.rules
+ fi
fi
}