Compare commits

...
11 Commits
Author SHA1 Message Date
Sandino Araico Sánchez e98ce39c57 Merge pull request #18 from mid-kid/master
sys-fs/eudev: Bump to 3.2.15
2026-09-30 05:11:50 -06:00
mid-kid adf4422542 sys-fs/eudev: Bump to 3.2.15
Dropped stable keywords
Also re-aligned the -9999 version with the current ebuild

Signed-off-by: Esteve Varela Colominas <esteve.varela@gmail.com>
2026-09-29 14:13:04 +02:00
Sandino Araico Sanchez cc2b6edb68 virtual/tmpfiles-0-r7: stabilized for amd64 arm arm64 x86 2026-09-22 11:43:08 -06:00
Sandino Araico Sanchez 72cb189356 sys-auth/elogind: enable thin manifests 2026-08-16 04:33:12 -06:00
Sandino Araico Sanchez f96d522949 sys-auth/elogind-257.16 2026-08-16 04:17:34 -06:00
Sandino Araico Sanchez 9cd8edc02d virtual/libude: Fixed Manifest 2026-06-23 10:47:45 -06:00
Sandino Araico Sánchez 00ec75411b Merge pull request #13 from canoine/master
Add virtual/libudev-257.ebuild
2026-06-22 19:33:08 -06:00
CNE e3dbc6adbc Add virtual/libudev-257.ebuild
Add virtual/libudev-257.ebuild to match gentoo repo updates.
2026-06-22 23:46:09 +02:00
Sandino Araico Sánchez 7bafc5aeeb Merge pull request #10 from mid-kid/master
sys-fs/eudev: Few improvements
2026-06-09 19:28:13 -06:00
mid-kid 3269df212c sys-fs/eudev: Create /usr/bin/udevadm symlink
This is required now that upstream udev/logind don't care about
split-usr anymore. While elogind is doing this now, other projects might
follow suit.

Closes: https://github.com/KenjiBrown/without-systemd/issues/9
Signed-off-by: mid-kid <esteve.varela@gmail.com>
2026-06-09 14:35:32 +02:00
mid-kid 68157fa890 sys-fs/eudev: Improve net-name-slot message
And hide it with USE=rule-generator, as it's factually incorrect when
this is enabled.

Closes: https://github.com/KenjiBrown/without-systemd/issues/3
Signed-off-by: mid-kid <esteve.varela@gmail.com>
2026-06-09 14:30:23 +02:00
12 changed files with 832 additions and 55 deletions

No files matched your search

+1
View File
@@ -1 +1,2 @@
masters = gentoo
thin-manifests = true
+2
View File
@@ -0,0 +1,2 @@
DIST elogind-255.24.tar.gz 2143770 BLAKE2B b205cfa60a1eddac114e23f5dc28bd7dd3fa903ff67e1d4177cbe60f0e10da8f2cde9a92e8d7aea65535961aaf353e0c7a5df2d71196a5ab8154f38928b6739b SHA512 b8a436a7271df895613e6135f3ff9804f580fd7da915f38840e0c65638a6135f9a4671145f41fb186333b69a61ca52495b9e957aadbb383b15421e1e13f53b79
DIST elogind-257.16.tar.gz 2634151 BLAKE2B d243c53e91fdfc0493e745665c757a3d76308da77ece7171980bb64fe462979f07c0db8f83bc5b80887fc4b2b76c9c7e671c4cd21d58ae02c1790b472b29e9e1 SHA512 dfd61b635124de87bfbb5bac7e6607148e9f7f3eda5961669f9472ca7d050f465fe368ceb63e3aba1e5efe445959e91cf703d6a561966bafc9bc50c245224e68
+193
View File
@@ -0,0 +1,193 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
if [[ ${PV} = *9999* ]]; then
EGIT_BRANCH="v255-stable"
EGIT_REPO_URI="https://github.com/elogind/elogind.git"
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils
DESCRIPTION="The systemd project's logind, extracted to a standalone package"
HOMEPAGE="https://github.com/elogind/elogind"
LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
SLOT="0"
IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test"
RESTRICT="!test? ( test )"
BDEPEND="
app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-stylesheets
dev-util/gperf
virtual/pkgconfig
$(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]')
$(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
"
DEPEND="
audit? ( sys-process/audit )
sys-apps/util-linux
sys-libs/libcap
virtual/libudev:=
acl? ( sys-apps/acl )
pam? ( sys-libs/pam )
selinux? ( sys-libs/libselinux )
"
RDEPEND="${DEPEND}
!sys-apps/systemd
sys-fs/eudev
"
PDEPEND="
sys-apps/dbus
policykit? ( sys-auth/polkit )
"
DOCS=( README.md )
python_check_deps() {
python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
}
pkg_setup() {
local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
use kernel_linux && linux-info_pkg_setup
}
src_prepare() {
default
xdg_environment_reset
# don't cleanup /dev/shm/ on logout on logout
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698
sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \
-i src/login/logind.conf.in || die
}
src_configure() {
if use cgroup-hybrid; then
cgroupmode="hybrid"
else
cgroupmode="unified"
fi
python_setup
EMESON_BUILDTYPE="$(usex debug debug release)"
local emesonargs=(
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
-Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
--libexecdir="lib/elogind"
--localstatedir="${EPREFIX}"/var
-Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
-Dman=auto
-Dsmack=true
-Dcgroup-controller=openrc
-Ddefault-hierarchy=${cgroupmode}
-Ddefault-kill-user-processes=false
-Dacl=$(usex acl enabled disabled)
-Daudit=$(usex audit enabled disabled)
-Dhtml=$(usex doc auto disabled)
-Dpam=$(usex pam enabled disabled)
-Dpamlibdir="$(getpam_mod_dir)"
-Dselinux=$(usex selinux enabled disabled)
-Dtests=$(usex test true false)
-Dutmp=$(usex elibc_musl false true)
-Dmode=release
# Ensure consistency between merged-usr and split-usr (bug 945965)
-Dhalt-path="${EPREFIX}/sbin/halt"
-Dkexec-path="${EPREFIX}/usr/sbin/kexec"
-Dnologin-path="${EPREFIX}/sbin/nologin"
-Dpoweroff-path="${EPREFIX}/sbin/poweroff"
-Dreboot-path="${EPREFIX}/sbin/reboot"
)
meson_src_configure
}
src_install() {
meson_src_install
keepdir /var/lib/elogind
rm "${ED}"/usr/share/doc/${PF}/LICENSE* || die
rm "${ED}"/usr/share/doc/${PF}/CODING_STYLE.md || die
newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
newconfd "${FILESDIR}"/${PN}.conf ${PN}
}
pkg_postinst() {
udev_reload
if ! use pam; then
ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!"
ewarn "In other words, it will be useless for most applications."
ewarn
fi
if ! use policykit; then
ewarn "loginctl will not be able to perform privileged operations without"
ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate."
ewarn
fi
if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
elog "elogind is currently started from boot runlevel."
elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
ewarn "elogind is currently started from default runlevel."
ewarn "Please remove elogind from the default runlevel and"
ewarn "add it to the boot runlevel by:"
ewarn "# rc-update del elogind default"
ewarn "# rc-update add elogind boot"
else
elog "elogind is currently not started from any runlevel."
elog "You may add it to the boot runlevel by:"
elog "# rc-update add elogind boot"
elog
elog "Alternatively, you can leave elogind out of any"
elog "runlevel. It will then be started automatically"
if use pam; then
elog "when the first service calls it via dbus, or"
elog "the first user logs into the system."
else
elog "when the first service calls it via dbus."
fi
fi
if ver_replacing -lt 252.9; then
elog "Starting with release 252.9 the sleep configuration is now done"
elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep"
elog "configuration remember to migrate those to new configuration file."
fi
local file files
# find custom hooks excluding known (nvidia-drivers, sys-power/tlp)
if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then
readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \
-type f \( -not -iname ".keep_dir" -a \
-not -iname "nvidia" -a \
-not -iname "49-tlp-sleep" \) || die)
fi
if [[ ${#files[@]} -gt 0 ]]; then
ewarn "*** Custom hooks in obsolete path detected ***"
for file in "${files[@]}"; do
ewarn " ${file}"
done
ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead."
fi
}
pkg_postrm() {
udev_reload
}
+1 -10
View File
@@ -1,13 +1,4 @@
AUX 40-gentoo.rules 167 BLAKE2B 07116c6e5aab7de9fa8a88c6cdd9ad76a09d797d6f7bc3d0535c93ccf83486bbdae8f68d682714576b072a174df070505cce9c6f4b729e91a6f61ed89da72e8e SHA512 92e2be610839432f46cefab4d128825199dc9f2c5ef33119f9ff84dfe635ef56a4f7aaed64ba52ea2798868b00c3a1b7955caa33219aa298c6a2b8290181f94b
AUX eudev-3.2.12-sticky-tags.patch 4775 BLAKE2B e1eca0feb6f235aa69308673a523be4a702884f790609760ef198a9820b26617d6c1e7d8f6f3b2203b5d483dbd3658e60914d80fc1b17c8c79591c20a6a9cb6b SHA512 38d9395fe0d5ad637a756b01c861889d0794d6fa75f56ecfcacdd1ada0c3c19a17a78e556c07d851f7c3e34bf289d5e85d3a437e007c98133ba8079f6b138293
AUX udev-postmount 1208 BLAKE2B bcfbaee26ea666304091092deabcc068c533c7707252917a0d8617812f26744c0454f10f5f829031f8668a345c35034ec68396cbf07792a4a83a87e3816001bb SHA512 8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88
DIST eudev-3.2.11.tar.gz 2254373 BLAKE2B cfa6235d6509b751fde93ff2b0961b93c3741458e561a7ad9b07b49a57779627532cff25ad3519e5f79320854fcedfcdc23642ef542505cebcd6b2803067389a SHA512 17b328365913af3e434abe667dd0498c3702a41c6cb66f3793ca2c195b05ac06397b0a401077f81df7dd25193e4eeea13657a221ca6cb3d237c4d91e31e30b33
DIST eudev-3.2.12.tar.gz 2195743 BLAKE2B 1d2dcc158432f722904f645749420cb44ff98f68b8b8fc11917e83750c95280d0dc2c4d9a322909a4acdb9455c6ec373eade77aacb1039096daa8e642076d3d1 SHA512 da63364e4337515b60a39d354344c03afa1f79d76e264f2ec859c8b8c922595cf24c046e5b0a1bbaa33c5eb6d47632e7853a51bc9304dce2c308318e094a6ec1
DIST eudev-3.2.14.tar.gz 2188254 BLAKE2B 7d68e77012288ecfac43be31f724224d371cb1084238fe045df248927eff854dbb391ad501e2a36d9b5ea4eb0a8cba3f9f21ea668908584a24c2a65df93ffdf8 SHA512 1e7593b53c5508a99fe7ff5d24d1d09b3753d9cfba086e7d8cc6ab80cc88013ec687dc4f1eac7b7889051f4e5fd5c40d2b87f5f2d948479d679c8836014d08e0
EBUILD eudev-3.2.11-r4.ebuild 7146 BLAKE2B b4961871e468c9f2f708b24be8f40f59ce54c0d9de8b14df833cae7764689c2c991b1fed806aaa1c8991f3c8d145ef7dd692eae7140601d3908f7dab1ccbd8a0 SHA512 75484b41d701334673c86fb4fc1066678d0ad9140aea68ce76febda8d4edc7df61af620656be093d6971640bab515670798a4212c6cac19b1e4b7fc7dd516674
EBUILD eudev-3.2.11-r5.ebuild 7378 BLAKE2B 56592f5ad0382ac944821d816310987d1a8cef10e73e19a92bbd012f1cbd49ed0bc8075367ff851145dcb5270fc9f0361f946c27eee02183da3b1d05d8e0c70d SHA512 f05ebe1e069664e612e14512d8c6a181075d356baabfe32e3990773b346c66d1f648f17ff311d603b1e022c520bf492c672f249606c5169225eda8125a2e0727
EBUILD eudev-3.2.12-r1.ebuild 7283 BLAKE2B dac57fec7b4dee0b087dec4583849f494608d9d5ee5a925dc0f5f7f0fcceaed5164d9489afbb9f74f1a68029dcc7d13e03ae2f5ff65b4544a89cac09e8d1c98d SHA512 793ffe32b13efcbd7fe4726c30dbca593a64bb294404b9b66b433c3f50215ecfda0cb371f238442adf5a66e6348b3b303b86fb0ad58b1f96c590d0dd8353cfaf
EBUILD eudev-3.2.12-r2.ebuild 7382 BLAKE2B 4e5b50d987a7433358b9b1c636723efb1809576b8b0bd5e0694ba64fa490abf4dafea0663a2eaa122b815b284816c4ea55d9a4092adedd339741b5f0637b5491 SHA512 c72a3f935a753f2c9c4226e6e0e34e07220fb04db7b141b3134346d9714732324632c87ed14589ee1af5dc6b18151e08e401ac035ff523ae381a91e592dbd22f
EBUILD eudev-3.2.14.ebuild 7323 BLAKE2B 2a127623252a51ed493195a060315c065e9187e10d5bb33daeb773b6a3cfe030707b948fa4d4635ef6c7456f07bb098f7b5e3a7a8bf2c39ca206155ae0d5215e SHA512 bd5954fc593127e55a47ee0311a019177c8f2d2af2869cb451b63ffa119781115585abc6f7163a5a4b158d0f024ef58bfd6ec0b8da30574681e4c6c39eb5a790
EBUILD eudev-9999.ebuild 7350 BLAKE2B 039c5b9fdaa82e2285a99561c3ebd9a4abbd81de6b566e485dc1e881ca6e9d76860aa6ab53f51f3af04600f66b610a18055b4469e87ed6229e5cfe977a225801 SHA512 c3b43c27a763cf4ef33a732379f9c1c5a6ffa4ebc0d7776ef0844f5eee98e3e45e61c3b40b26ff64cc908057f907357ed6c6a91895fb93f1f6d824387be4775c
MISC metadata.xml 629 BLAKE2B c67407dd805c6e8d4fb0c5152e897263ca56649d1d5c7692c74a69a751e7824a2b6084fe1ce0f8cd1b13dbdd0ae3f082430d6552807690a9d52d83c907f43f64 SHA512 204a04a68ee53fe8fec226ad82fdbb3f2ee478f538379466343bbf55fd0146a71889ac11742d59261ef954bb9b8e09e8d2b9416079da63cc78ab400efd2ba49b
DIST eudev-3.2.15.tar.gz 2516637 BLAKE2B 2eb9af78d4784bf175a312fec1e3a294fb013c7f016f703a71e0b905515112b2c64205aaa271fc4bfe9e88e4b2e242a0d9b193847c78244f440222f95c1c369e SHA512 d192b57094969edade50d8fcb72815ea46da9474b3f9be93fb4bcb9d43680037f3dbfa3d1b9a4a7a1bd5b783ff25b92ad7dc52a96b5a4865dc82881835a6dd1f
+291
View File
@@ -0,0 +1,291 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
KV_MIN=2.6.39
inherit autotools linux-info multilib-minimal toolchain-funcs udev
if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://github.com/eudev-project/eudev.git"
inherit git-r3
else
MY_PV=${PV/_pre/-pre}
SRC_URI="https://github.com/eudev-project/eudev/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz"
S="${WORKDIR}"/${PN}-${MY_PV}
if [[ ${PV} != *_pre* ]] ; then
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
fi
fi
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
HOMEPAGE="https://github.com/eudev-project/eudev"
LICENSE="LGPL-2.1 MIT GPL-2"
SLOT="0"
IUSE="+kmod rule-generator selinux split-usr static-libs test"
RESTRICT="!test? ( test )"
DEPEND="
>=sys-apps/util-linux-2.20
>=sys-kernel/linux-headers-${KV_MIN}
virtual/libcrypt:=
kmod? ( >=sys-apps/kmod-16 )
selinux? ( >=sys-libs/libselinux-2.1.9 )
!sys-apps/gentoo-systemd-integration
!sys-apps/systemd
"
RDEPEND="
${DEPEND}
acct-group/input
acct-group/kvm
acct-group/render
acct-group/audio
acct-group/cdrom
acct-group/dialout
acct-group/disk
acct-group/floppy
acct-group/input
acct-group/kmem
acct-group/kvm
acct-group/lp
acct-group/render
acct-group/sgx
acct-group/tape
acct-group/tty
acct-group/usb
acct-group/video
!sys-apps/systemd-utils[udev]
!sys-fs/udev
!sys-apps/systemd
!sys-apps/hwids[udev]
"
BDEPEND="
dev-util/gperf
virtual/os-headers
virtual/pkgconfig
test? (
app-text/tree
dev-lang/perl
)
"
PDEPEND=">=sys-fs/udev-init-scripts-26"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/udev.h
)
pkg_pretend() {
if ! use rule-generator; then
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
ewarn
ewarn "If you wish to disable this new iface naming, please be sure that"
ewarn "/etc/udev/rules.d/80-net-name-slot.rule exists:"
ewarn "# touch /etc/udev/rules.d/80-net-name-slot.rules"
ewarn
ewarn "Alternatively, consider USE=rule-generator, as a way to create persistent"
ewarn "iface naming. You don't need to create 80-net-name-slot.rules in this case."
ewarn
fi
}
pkg_setup() {
CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
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() {
default
# 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"
# required for the sticky-tags patch
#if [[ ${PV} == 9999* ]] ; then
eautoreconf
#fi
}
rootprefix() {
usex split-usr '' /usr
}
sbindir() {
usex split-usr sbin bin
}
multilib_src_configure() {
# bug #463846
tc-export CC
# bug #502950
export cc_cv_CFLAGS__flto=no
local myeconfargs=(
ac_cv_search_cap_init=
ac_cv_header_sys_capability_h=yes
DBUS_CFLAGS=' '
DBUS_LIBS=' '
--with-rootprefix="${EPREFIX}$(rootprefix)"
--with-rootrundir=/run
--exec-prefix="${EPREFIX}"
--bindir="${EPREFIX}$(rootprefix)/bin"
--sbindir="${EPREFIX}$(rootprefix)/$(sbindir)"
--includedir="${EPREFIX}"/usr/include
--libdir="${EPREFIX}/usr/$(get_libdir)"
--with-rootlibexecdir="${EPREFIX}$(rootprefix)/lib/udev"
$(use_enable split-usr)
--enable-manpages
)
# 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
myeconfargs+=(
--with-rootlibdir="${EPREFIX}$(rootprefix)/$(get_libdir)"
$(use_enable kmod)
$(use_enable static-libs static)
$(use_enable selinux)
$(use_enable rule-generator)
)
else
myeconfargs+=(
--disable-static
--disable-kmod
--disable-selinux
--disable-rule-generator
--disable-hwdb
)
fi
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_compile() {
if multilib_is_native_abi ; then
emake
else
emake -C src/shared
emake -C src/libudev
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
fi
}
multilib_src_install() {
if multilib_is_native_abi ; then
emake DESTDIR="${D}" install
else
emake -C src/libudev DESTDIR="${D}" install
fi
}
multilib_src_install_all() {
find "${ED}" -name '*.la' -delete || die
insinto "$(rootprefix)/lib/udev/rules.d"
doins "${FILESDIR}"/40-gentoo.rules
use rule-generator && doinitd "${FILESDIR}"/udev-postmount
# Create symlinks for split-usr
# While sys-fs/udev-init-scripts still uses /sbin/udevd, it makes no sense
# to move everything to /usr yet. Other udev rules will also still depend
# on this for the time being.
if use split-usr; then
# sys-auth/elogind requires /usr/bin/udevadm in 71-seat.rules
dosym ../../bin/udevadm /usr/bin/udevadm
fi
}
pkg_postrm() {
udev_reload
}
pkg_postinst() {
udev_reload
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
# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
# process it as a list. We only care about the zero case (new install) or the case where
# the same version is being re-emerged. If there is a second version, allow it to abort.
local rv rvres=doitnew
for rv in ${REPLACING_VERSIONS} ; do
if [[ ${rvres} == doit* ]]; then
if [[ ${rv%-r*} == ${PV} ]]; then
rvres=doit
else
rvres=${rv}
fi
fi
done
if has_version 'sys-apps/hwids[udev]'; then
udevadm hwdb --update --root="${ROOT}"
# https://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 [[ ${rvres} == doit* ]] && [[ -z ${ROOT} ]] && [[ ${PV} != "9999" ]]; then
udevadm control --reload
fi
fi
if [[ ${rvres} != doitnew ]]; then
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"
fi
if use rule-generator && \
[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
ewarn
ewarn "Please add the udev-postmount init script to your default runlevel"
ewarn "to ensure the legacy rule-generator functionality works as reliably"
ewarn "as possible."
ewarn "\trc-update add udev-postmount default"
fi
elog
elog "For more information on eudev on Gentoo, writing udev rules, and"
elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
}
+15 -11
View File
@@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -78,16 +78,20 @@ MULTILIB_WRAPPED_HEADERS=(
)
pkg_pretend() {
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://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
if ! use rule-generator; then
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
ewarn
ewarn "If you wish to disable this new iface naming, please be sure that"
ewarn "/etc/udev/rules.d/80-net-name-slot.rule exists:"
ewarn "# touch /etc/udev/rules.d/80-net-name-slot.rules"
ewarn
ewarn "Alternatively, consider USE=rule-generator, as a way to create persistent"
ewarn "iface naming. You don't need to create 80-net-name-slot.rules in this case."
ewarn
fi
}
pkg_setup() {
+279
View File
@@ -0,0 +1,279 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
KV_MIN=2.6.39
inherit linux-info multilib-minimal toolchain-funcs udev
if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://github.com/eudev-project/eudev.git"
inherit autotools git-r3
else
MY_PV=${PV/_pre/-pre}
SRC_URI="https://github.com/eudev-project/eudev/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz"
S="${WORKDIR}"/${PN}-${MY_PV}
if [[ ${PV} != *_pre* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
fi
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
HOMEPAGE="https://github.com/eudev-project/eudev"
LICENSE="LGPL-2.1 MIT GPL-2"
SLOT="0"
IUSE="+kmod rule-generator selinux split-usr static-libs test"
RESTRICT="!test? ( test )"
DEPEND="
>=sys-apps/util-linux-2.20
>=sys-kernel/linux-headers-${KV_MIN}
virtual/libcrypt:=
kmod? ( >=sys-apps/kmod-16 )
selinux? ( >=sys-libs/libselinux-2.1.9 )
!sys-apps/gentoo-systemd-integration
!sys-apps/systemd
"
RDEPEND="
${DEPEND}
acct-group/input
acct-group/kvm
acct-group/render
acct-group/audio
acct-group/cdrom
acct-group/dialout
acct-group/disk
acct-group/floppy
acct-group/input
acct-group/kmem
acct-group/kvm
acct-group/lp
acct-group/render
acct-group/sgx
acct-group/tape
acct-group/tty
acct-group/usb
acct-group/video
!sys-apps/systemd-utils[udev]
!sys-apps/systemd
"
BDEPEND="
dev-util/gperf
virtual/os-headers
virtual/pkgconfig
test? (
app-text/tree
dev-lang/perl
)
"
PDEPEND=">=sys-fs/udev-init-scripts-26"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/udev.h
)
pkg_pretend() {
if ! use rule-generator; then
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
ewarn
ewarn "If you wish to disable this new iface naming, please be sure that"
ewarn "/etc/udev/rules.d/80-net-name-slot.rule exists:"
ewarn "# touch /etc/udev/rules.d/80-net-name-slot.rules"
ewarn
ewarn "Alternatively, consider USE=rule-generator, as a way to create persistent"
ewarn "iface naming. You don't need to create 80-net-name-slot.rules in this case."
ewarn
fi
}
pkg_setup() {
CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
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() {
default
# 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"
if [[ ${PV} == 9999* ]] ; then
eautoreconf
fi
}
rootprefix() {
usex split-usr '' /usr
}
sbindir() {
usex split-usr sbin bin
}
multilib_src_configure() {
# bug #463846
tc-export CC
# bug #502950
export cc_cv_CFLAGS__flto=no
local myeconfargs=(
ac_cv_search_cap_init=
ac_cv_header_sys_capability_h=yes
DBUS_CFLAGS=' '
DBUS_LIBS=' '
--with-rootprefix="${EPREFIX}$(rootprefix)"
--with-rootrundir=/run
--exec-prefix="${EPREFIX}"
--bindir="${EPREFIX}$(rootprefix)/bin"
--sbindir="${EPREFIX}$(rootprefix)/$(sbindir)"
--includedir="${EPREFIX}"/usr/include
--libdir="${EPREFIX}/usr/$(get_libdir)"
--with-rootlibexecdir="${EPREFIX}$(rootprefix)/lib/udev"
$(use_enable split-usr)
--enable-manpages
)
# 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
myeconfargs+=(
--with-rootlibdir="${EPREFIX}$(rootprefix)/$(get_libdir)"
$(use_enable kmod)
$(use_enable static-libs static)
$(use_enable selinux)
$(use_enable rule-generator)
)
else
myeconfargs+=(
--disable-static
--disable-kmod
--disable-selinux
--disable-rule-generator
--disable-hwdb
)
fi
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_compile() {
if multilib_is_native_abi ; then
emake
else
emake -C src/shared
emake -C src/libudev
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
fi
}
multilib_src_install() {
if multilib_is_native_abi ; then
emake DESTDIR="${D}" install
else
emake -C src/libudev DESTDIR="${D}" install
fi
}
multilib_src_install_all() {
find "${ED}" -name '*.la' -delete || die
insinto "$(rootprefix)/lib/udev/rules.d"
doins "${FILESDIR}"/40-gentoo.rules
use rule-generator && doinitd "${FILESDIR}"/udev-postmount
}
pkg_postrm() {
udev_reload
}
pkg_postinst() {
udev_reload
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
# REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
# process it as a list. We only care about the zero case (new install) or the case where
# the same version is being re-emerged. If there is a second version, allow it to abort.
local rv rvres=doitnew
for rv in ${REPLACING_VERSIONS} ; do
if [[ ${rvres} == doit* ]]; then
if [[ ${rv%-r*} == ${PV} ]]; then
rvres=doit
else
rvres=${rv}
fi
fi
done
if has_version 'sys-apps/hwids[udev]'; then
udevadm hwdb --update --root="${ROOT}"
# https://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 [[ ${rvres} == doit* ]] && [[ -z ${ROOT} ]] && [[ ${PV} != "9999" ]]; then
udevadm control --reload
fi
fi
if [[ ${rvres} != doitnew ]]; then
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"
fi
if use rule-generator && \
[[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
ewarn
ewarn "Please add the udev-postmount init script to your default runlevel"
ewarn "to ensure the legacy rule-generator functionality works as reliably"
ewarn "as possible."
ewarn "\trc-update add udev-postmount default"
fi
elog
elog "For more information on eudev on Gentoo, writing udev rules, and"
elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
}
+16 -18
View File
@@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ else
S="${WORKDIR}"/${PN}-${MY_PV}
if [[ ${PV} != *_pre* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
fi
@@ -58,9 +58,7 @@ RDEPEND="
acct-group/usb
acct-group/video
!sys-apps/systemd-utils[udev]
!sys-fs/udev
!sys-apps/systemd
!sys-apps/hwids[udev]
"
BDEPEND="
dev-util/gperf
@@ -77,21 +75,21 @@ MULTILIB_WRAPPED_HEADERS=(
/usr/include/udev.h
)
PATCHES=(
"${FILESDIR}"/${PN}-3.2.12-sticky-tags.patch
)
pkg_pretend() {
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://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
if ! use rule-generator; then
ewarn
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
ewarn "as described in the URL below:"
ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
ewarn
ewarn "If you wish to disable this new iface naming, please be sure that"
ewarn "/etc/udev/rules.d/80-net-name-slot.rule exists:"
ewarn "# touch /etc/udev/rules.d/80-net-name-slot.rules"
ewarn
ewarn "Alternatively, consider USE=rule-generator, as a way to create persistent"
ewarn "iface naming. You don't need to create 80-net-name-slot.rules in this case."
ewarn
fi
}
pkg_setup() {
+1
View File
@@ -2,4 +2,5 @@ EBUILD libudev-232-r8.ebuild 548 BLAKE2B 43147addecf3cadf996f60f5ca39d210cc22301
EBUILD libudev-251-r1.ebuild 641 BLAKE2B d7699d0e4c859438951457415039d9e6db6f0132d014f4dfe3e8d556ae22392086609a58f1944cd5efa3768a310361fa26cae3faa185ec9768886f87ceab38bd SHA512 81ea70c0f20b4001df04919f812b10369c1f640bf838301bc8e7b528c7b354340dec47758d4e15a04807858caeadb23c4999ee0d39b96d3555325deb5ef2f46f
EBUILD libudev-251-r2.ebuild 549 BLAKE2B fa556d6fba2eace9011e6546c10e0d07880a0423627f990a88b8bc69fd15e42e2c0440e37669ad02a276fb5a542561ba3292d3760b1b322482d780a606b65e64 SHA512 2e0158c7b4be3284a741c1539c0899db76710ccbbf58049cc475955d994c2042847e748dfd4e22afd7780c40f369a5e3d0108063156c0654453bf4cde9dbe65d
EBUILD libudev-251.ebuild 561 BLAKE2B 5f84d8afc6650e05f935de58d6515bdbcb8677cc86ad05b1ca5615e06c03bd21377d7095f828f6cc5897eacbf1ae77ddd493ad5c2b24e0de5073d02c98b5ba46 SHA512 bfe1404204fe97597754b77f13fb98e3d2334e86fe2c888b838b5aa9e5418686acc316945e4bc4d7bb1f272d683f3d6b14f776cd1f95d08e5d882a7a65f9db7b
EBUILD libudev-257.ebuild 519 BLAKE2B 524035f64824b0e6cc7891dc72f913ed8ffbbc4c45e120a54a5fe809d1ca3dad2639d5751ba15f5991c827656af28282e445794af06451c11cc88c41d127f210 SHA512 474e5597492f59cb9a40a78e9b16b5edfc913cd5db8afd1785cc1f8da763830a345f7d9bea22381ee4340343a794858562064c11a40c1a8372ed297ae2fa6998
MISC metadata.xml 283 BLAKE2B baac6c38612ee83c21c09958225eeb33e1f267bfb8c5245ed4dcd44c1145121d264a34f5c3b4d1220e2f8a558c3ac81f3bd6dbb89386e6919ccbb3edd870740c SHA512 b74ac31a4120aea2234da45e434228c65cc639e8f02eb8120555d734dc1182f1ec879d59162cb93016b4a8abc430ad0ceb75f4de101077fc492bb158b83158b1
+21
View File
@@ -0,0 +1,21 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-build
DESCRIPTION="Virtual for libudev providers"
SLOT="0/1"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="systemd"
RDEPEND="
!systemd? ( || (
sys-fs/eudev[${MULTILIB_USEDEP}]
sys-fs/libudev-zero
>=sys-apps/systemd-utils-${PV}[udev,${MULTILIB_USEDEP}]
) )
systemd? ( >=sys-apps/systemd-${PV}:0/2[${MULTILIB_USEDEP}] )
"
-6
View File
@@ -1,6 +0,0 @@
EBUILD tmpfiles-0-r1.ebuild 516 BLAKE2B ffa20ba4b90a3b829d3003f3cf211927bdc779dde0d3d5876361bcc7b26fcfddfc97939871bca227802c9b94ad337b0a979d058c1ed3d1014c071eba5fbf7010 SHA512 c8076d46d454795dd008bcd5364d6d50ebb033b4792b0515871482e9746558c0e334ec55a6551dbc01ae9c0764dcc98864977dc0bdbc22fc7d3316cc5d53750b
EBUILD tmpfiles-0-r4.ebuild 545 BLAKE2B cd01819bd8f9906c62cb23f96f8b3a7e79f5aac9df8adc42172d2931027ddef8a1745a738e656ab0353dbb723f14dd6fa2fd04e3b4a5714a88cb190164679679 SHA512 b2f40a3a04ece5a6e00831d2dc3f547109e0e8d0ed37b64ee0e1c20813700e2c7ef8e6e29c31d357bfdd2ac8c2df03863e6affd8c46b3f69f069fc43950265b7
EBUILD tmpfiles-0-r5.ebuild 566 BLAKE2B 4412a2dbbabfcbfee9c1c90feed5c4fc4e48e31e281f1783c9d9f7f385cabc4670323115e1b689b8abcb2ebfce2a14357f14588b8cf41ad62bde6d89d68b05c9 SHA512 7b4bc919f07ba63031bc5308644ca1c72d60c69866f5009159b603cc0cc71d8ac83992f101045194f2b75ed51142e604408df4fec4aa9898dff5b4459df3b62b
EBUILD tmpfiles-0-r6.ebuild 550 BLAKE2B 70182dc1f0a8f330ec3bc3a2f3552e0af670722fc6fcd80fe5c19f9c20a1980757da7f54218f6ae170097c616b40c3e0bdd32b124f1a68716a4d9a634bef510f SHA512 5a3ed59e02951c6066b52363741a4164d8a084d9a13e869d21b33f6ee97c3835275082f91d308e889939c486166bd7c8f53c963c2cad3ece80e52c6cc9d62876
EBUILD tmpfiles-0-r7.ebuild 579 BLAKE2B 527edf48495aa5a43360764bf11c2bed97c8c3df7941f4dd512dd7f5688c41ff6e5ffeb200c82589b0d5b2aacfedb9a5b3c0e3347a8475dcda00f08f89611c34 SHA512 96877f8e7bdf59d0a0002c98f8ba10abfda8c7eddc288834099528dcb88bec755f1b085057631046c7c25e92235a924bdba75ced812c995eb5e892d8f8c3ea26
MISC metadata.xml 283 BLAKE2B baac6c38612ee83c21c09958225eeb33e1f267bfb8c5245ed4dcd44c1145121d264a34f5c3b4d1220e2f8a558c3ac81f3bd6dbb89386e6919ccbb3edd870740c SHA512 b74ac31a4120aea2234da45e434228c65cc639e8f02eb8120555d734dc1182f1ec879d59162cb93016b4a8abc430ad0ceb75f4de101077fc492bb158b83158b1
+12 -10
View File
@@ -5,19 +5,21 @@ EAPI=8
DESCRIPTION="Virtual to select between different tmpfiles.d handlers"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="systemd"
RDEPEND="
!prefix-guest? (
systemd? ( sys-apps/systemd )
!systemd? (
|| (
sys-apps/hardenedtmpfiles
sys-apps/opentmpfiles
sys-apps/seedfiles
sys-apps/systemd-utils[tmpfiles]
sys-apps/tmpfilesd
kernel_linux? (
!prefix-guest? (
systemd? ( sys-apps/systemd )
!systemd? (
|| (
sys-apps/hardenedtmpfiles
sys-apps/opentmpfiles
sys-apps/seedfiles
sys-apps/systemd-utils[tmpfiles]
sys-apps/tmpfilesd
)
)
)
)