blob: b3e7d092c58dad25cd38afcd1199282c4e9f2631 [file] [log] [blame]
Andrew Geisslerd5838332022-05-27 11:33:10 -05001SUMMARY = "eudev is a fork of systemd's udev"
2HOMEPAGE = "https://github.com/eudev-project/eudev"
3DESCRIPTION = "eudev is Gentoo's fork of udev, systemd's device file manager for the Linux kernel. It manages device nodes in /dev and handles all user space actions when adding or removing devices."
4LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
5LICENSE:libudev = "LGPL-2.1-or-later"
6LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
7
8DEPENDS = "gperf-native"
9
10PROVIDES = "udev"
11
Andrew Geissler87f5cff2022-09-30 13:13:31 -050012SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
Patrick Williamsf52e3dd2024-01-26 13:04:43 -060013 file://netifnames.patch \
Andrew Geisslerd5838332022-05-27 11:33:10 -050014 file://init \
15 file://local.rules \
Patrick Williams96e4b4e2025-02-03 15:49:15 -050016 file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \
Andrew Geissler5082cc72023-09-11 08:41:39 -040017 "
Andrew Geisslerd5838332022-05-27 11:33:10 -050018
Patrick Williamsda295312023-12-05 16:48:56 -060019SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
Andrew Geisslerd5838332022-05-27 11:33:10 -050020
Andrew Geissler87f5cff2022-09-30 13:13:31 -050021GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
Andrew Geisslerd5838332022-05-27 11:33:10 -050022
Patrick Williams2a254922023-08-11 09:48:11 -050023inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases
Andrew Geisslerd5838332022-05-27 11:33:10 -050024
25CONFLICT_DISTRO_FEATURES = "systemd"
26
27EXTRA_OECONF = " \
28 --sbindir=${base_sbindir} \
29 --with-rootlibdir=${base_libdir} \
30 --with-rootlibexecdir=${nonarch_base_libdir}/udev \
31 --with-rootprefix= \
32"
33
34PACKAGECONFIG ?= "blkid hwdb kmod \
35 ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
36"
37PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
38PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb"
39PACKAGECONFIG[kmod] = "--enable-kmod,--disable-kmod,kmod"
40PACKAGECONFIG[manpages] = "--enable-manpages,--disable-manpages"
41PACKAGECONFIG[rule-generator] = "--enable-rule-generator,--disable-rule-generator"
42PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
43
44do_install:append() {
45 install -d ${D}${sysconfdir}/init.d
Andrew Geissleredff4922024-06-19 14:12:16 -040046 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/udev
Andrew Geisslerd5838332022-05-27 11:33:10 -050047 sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev
48 sed -i s%@KMOD@%${base_bindir}/kmod% ${D}${sysconfdir}/init.d/udev
49
50 install -d ${D}${sysconfdir}/udev/rules.d
Andrew Geissleredff4922024-06-19 14:12:16 -040051 install -m 0644 ${UNPACKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
Andrew Geisslerd5838332022-05-27 11:33:10 -050052
Patrick Williams73bd93f2024-02-20 08:07:48 -060053 # Use classic network interface naming scheme if no 'pni-names' distro feature
54 if ${@bb.utils.contains('DISTRO_FEATURES', 'pni-names', 'false', 'true', d)}; then
55 touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules
56 fi
Andrew Geisslerd5838332022-05-27 11:33:10 -050057}
58
59do_install:prepend:class-target () {
60 # Remove references to buildmachine
61 sed -i -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
62 ${B}/src/udev/keyboard-keys-from-name.h
63}
64
65INITSCRIPT_NAME = "udev"
66INITSCRIPT_PARAMS = "start 04 S ."
67
68PACKAGE_BEFORE_PN = "libudev ${PN}-hwdb"
69
70FILES:${PN} += "${nonarch_base_libdir}/udev"
71FILES:libudev = "${base_libdir}/libudev.so.*"
72FILES:${PN}-hwdb = "${sysconfdir}/udev/hwdb.d"
73
74RDEPENDS:${PN}-hwdb += "eudev"
75RDEPENDS:${PN} += "kmod"
76
77RPROVIDES:${PN} = "hotplug udev"
78RPROVIDES:${PN}-hwdb += "udev-hwdb"
79
80PACKAGE_WRITE_DEPS += "qemu-native"
81pkg_postinst:${PN}-hwdb () {
82 if test -n "$D"; then
83 $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
84 else
85 udevadm hwdb --update
86 fi
87}
88
89pkg_prerm:${PN}-hwdb () {
90 rm -f $D${sysconfdir}/udev/hwdb.bin
91}