aboutsummaryrefslogtreecommitdiffstats
path: root/main/eudev
diff options
context:
space:
mode:
Diffstat (limited to 'main/eudev')
-rw-r--r--main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch42
-rw-r--r--main/eudev/APKBUILD83
-rw-r--r--main/eudev/eudev-hwids.trigger5
-rw-r--r--main/eudev/no-sgx.patch17
-rw-r--r--main/eudev/setup-udev28
5 files changed, 124 insertions, 51 deletions
diff --git a/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch b/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch
new file mode 100644
index 00000000000..d17fac07766
--- /dev/null
+++ b/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch
@@ -0,0 +1,42 @@
+From 917ae648f61681257000c3a1f0aca3fbd646563a Mon Sep 17 00:00:00 2001
+From: Johannes Nixdorf <mixi@shadowice.org>
+Date: Fri, 22 Dec 2023 10:27:08 +0100
+Subject: [PATCH] 78-sound-card.rules: Import ID_PATH early
+
+Pipewire requires ID_PATH to use the same device names as with systemd's
+udev. Some rules, such as the ones in asahi-audio [1] use those names, and
+fail if they don't match [2].
+
+On systemd's udev this is instead imported in 71-seat.rules, which we don't
+have.
+
+[1]: https://github.com/AsahiLinux/asahi-audio
+[2]: https://github.com/AsahiLinux/asahi-audio/issues/16
+
+Signed-off-by: Johannes Nixdorf <mixi@shadowice.org>
+---
+ rules/78-sound-card.rules | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rules/78-sound-card.rules b/rules/78-sound-card.rules
+index f2fc27739..c49bd1d4e 100644
+--- a/rules/78-sound-card.rules
++++ b/rules/78-sound-card.rules
+@@ -38,6 +38,8 @@ KERNEL!="card*", GOTO="sound_end"
+ ENV{SOUND_INITIALIZED}="1"
+
+ IMPORT{builtin}="hwdb"
++IMPORT{builtin}="path_id"
++
+ SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
+ SUBSYSTEMS=="usb", GOTO="skip_pci"
+
+@@ -62,8 +64,6 @@ LABEL="skip_pci"
+ ENV{ID_SERIAL}=="?*", ENV{ID_USB_INTERFACE_NUM}=="?*", ENV{ID_ID}="$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_USB_INTERFACE_NUM}"
+ ENV{ID_SERIAL}=="?*", ENV{ID_USB_INTERFACE_NUM}=="", ENV{ID_ID}="$env{ID_BUS}-$env{ID_SERIAL}"
+
+-IMPORT{builtin}="path_id"
+-
+ # The values used here for $SOUND_FORM_FACTOR and $SOUND_CLASS should be kept
+ # in sync with those defined for PulseAudio's src/pulse/proplist.h
+ # PA_PROP_DEVICE_FORM_FACTOR, PA_PROP_DEVICE_CLASS properties.
diff --git a/main/eudev/APKBUILD b/main/eudev/APKBUILD
index d48ebc4ab8d..bc8b48ddd0f 100644
--- a/main/eudev/APKBUILD
+++ b/main/eudev/APKBUILD
@@ -1,33 +1,46 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=eudev
-pkgver=3.2.9
-pkgrel=1
-pkgdesc="OpenRC compatible fork of systemd-udev"
-url="https://wiki.gentoo.org/wiki/Project:Eudev"
+pkgver=3.2.14
+_pkgver=${pkgver/_pre/-pre}
+pkgrel=2
+pkgdesc="init system agnostic fork of systemd-udev"
+url="https://github.com/eudev-project/eudev"
arch="all"
-options="!checkroot"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends="udev-init-scripts"
replaces="udev"
provides="udev=176"
-makedepends="gperf glib-dev linux-headers kmod-dev gobject-introspection-dev
- util-linux-dev"
+provider_priority=100
+makedepends="
+ gperf
+ glib-dev
+ linux-headers
+ kmod-dev
+ gobject-introspection-dev
+ util-linux-dev
+ "
checkdepends="tree xz perl"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openrc
- $pkgname-netifnames::noarch"
+ $pkgname-netifnames::noarch $pkgname-rule-generator::noarch $pkgname-hwids"
triggers="eudev.trigger=/lib/udev/rules.d:/usr/lib/udev/rules.d"
-source="https://dev.gentoo.org/~blueness/eudev/eudev-$pkgver.tar.gz
+source="https://github.com/eudev-project/eudev/releases/download/v$_pkgver/eudev-$_pkgver.tar.gz
default-rules.patch
load-fbcon.patch
+ no-sgx.patch
+ 78-sound-card.rules_Import_ID_PATH_early.patch
udev-postmount.initd
- setup-udev
"
+builddir="$srcdir"/"$pkgname"-"$_pkgver"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- # we need disable kmod til busybox depmod generates binary formats:
- # modules.dep.bin modules.alias.bin modules.symbols.bin
- # modules.builtin.bin
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -38,7 +51,6 @@ build() {
--libdir=/usr/lib \
--enable-split-usr \
--enable-manpages \
- --disable-hwdb \
--enable-kmod \
--exec-prefix=/ \
--bindir=/bin
@@ -55,8 +67,6 @@ package() {
install -Dm755 "$srcdir"/udev-postmount.initd \
"$pkgdir"/etc/init.d/udev-postmount
- install -Dm755 "$srcdir"/setup-udev \
- "$pkgdir"/sbin/setup-udev
}
dev() {
@@ -78,14 +88,41 @@ libs() {
netifnames() {
pkgdesc="udev rules for systemd-style interface names"
+ depends="!$pkgname-rule-generator"
+
+ amove lib/udev/rules.d/80-net-name-slot.rules
+}
+
+generator() {
+ pkgdesc="generate udev net persistance rules"
+ depends="!$pkgname-netifnames"
+
+ # Since we didn't enable rules-generator which disables netifnames, we
+ # install the rule-generator files.
+ sed -i 's/"write_net_rules"/"\/lib\/udev\/rule_generator\/write_net_rules"/' \
+ "$builddir"/rule_generator/75-persistent-net-generator.rules
+ install -Dm644 "$builddir"/rule_generator/75-persistent-net-generator.rules \
+ "$subpkgdir"/lib/udev/rules.d/75-persistent-net-generator.rules
+ install -Dm755 "$builddir"/rule_generator/write_net_rules \
+ "$subpkgdir"/lib/udev/rule_generator/write_net_rules
+ install -Dm755 "$builddir"/rule_generator/rule_generator.functions \
+ "$subpkgdir"/lib/udev/rule_generator.functions
+}
+
+hwids() {
+ pkgdesc="Hardware identification databases (from eudev)"
+ provides="hwids-udev=$pkgver-r$pkgrel"
+ install_if="hwdata eudev=$pkgver-r$pkgrel"
+ triggers="eudev-hwids.trigger=/lib/udev/hwdb.d:/etc/udev/hwdb.d:/usr/lib/udev/hwdb.d"
- mkdir -p "$subpkgdir"/lib/udev/rules.d
- mv "$pkgdir"/lib/udev/rules.d/80-net-name-slot.rules \
- "$subpkgdir"/lib/udev/rules.d/
+ amove etc/udev/hwdb.d
}
-sha512sums="09e49fff9848e72507ef14b9d4cfab2d1443f16d5b3d54d2b0e4f6b04c471ca41f09200cb8772e9f850f0dc4a574a7ec7eede7ce11cbabda65e210a89287531f eudev-3.2.9.tar.gz
+sha512sums="
+1e7593b53c5508a99fe7ff5d24d1d09b3753d9cfba086e7d8cc6ab80cc88013ec687dc4f1eac7b7889051f4e5fd5c40d2b87f5f2d948479d679c8836014d08e0 eudev-3.2.14.tar.gz
683e3c26ca4f058303f8db7d4977e436d728386ee6866719c4f11ff31db27572d3f486f51d3173310e1ec2cf995fa4c396f2415bdf45dabdd80e6e55e798a314 default-rules.patch
ff5928fd555e095d9f3234dd004ac4c5925405d308777e9b018e8e03112cd109935b51d75a3bc4a2a1018eb486e8a5e5ef6ee978860002a8fff93b116e9721f5 load-fbcon.patch
+1558800e4132ed2c10b37805fca044ff3129cdfebec71d3e758143fab9ffda824e86d52960926a9042b21fc22f0cda8fe6690484913bd7c3dc4436af92923efe no-sgx.patch
+8872f124267485d682dea9c7c47aaa8c228aadef90981c430af7ca7f7025b344d2c3c07c653241190a3f44096aa1d3aff990dd05210f5b278d999d6fede659b5 78-sound-card.rules_Import_ID_PATH_early.patch
8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88 udev-postmount.initd
-4e57349a9516d495a6eb6dd437e179c1f990b437c4e671667f64d4361fcd827a2172e4ca120fbd324ca29e9acc65a361cd22a75b8dd8437389cc19ba62198f83 setup-udev"
+"
diff --git a/main/eudev/eudev-hwids.trigger b/main/eudev/eudev-hwids.trigger
new file mode 100644
index 00000000000..b1516251b05
--- /dev/null
+++ b/main/eudev/eudev-hwids.trigger
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+udevadm hwdb --update
+
+exit 0
diff --git a/main/eudev/no-sgx.patch b/main/eudev/no-sgx.patch
new file mode 100644
index 00000000000..e06ae141b5c
--- /dev/null
+++ b/main/eudev/no-sgx.patch
@@ -0,0 +1,17 @@
+see https://gitlab.alpinelinux.org/alpine/aports/-/issues/15043
+we don't have sgx support
+--
+diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
+index ff50cb8..2cbd96e 100644
+--- a/rules/50-udev-default.rules
++++ b/rules/50-udev-default.rules
+@@ -39,9 +39,6 @@ SUBSYSTEM=="cec", GROUP="video"
+ SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="0666"
+ SUBSYSTEM=="kfd", GROUP="video", MODE="0666"
+
+-SUBSYSTEM=="misc", KERNEL=="sgx_enclave", GROUP="sgx", MODE="0660"
+-SUBSYSTEM=="misc", KERNEL=="sgx_vepc", GROUP="sgx", MODE="0660"
+-
+ # When using static_node= with non-default permissions, also update
+ # tmpfiles.d/static-nodes-permissions.conf.in to keep permissions synchronized.
+
diff --git a/main/eudev/setup-udev b/main/eudev/setup-udev
deleted file mode 100644
index 1b1c5664bca..00000000000
--- a/main/eudev/setup-udev
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-while getopts "hn" opt; do
- case "$opt" in
- h) echo "remove mdev and enable udev from boot"
- echo "usage: $0 [-n]"
- echo "options:"
- echo " -n Do not start udev"
- ;;
- n) dryrun=1
- ;;
- esac
-done
-
-rm -f /etc/runlevels/sysinit/hwdrivers /etc/runlevels/sysinit/mdev
-
-for i in sysinit/udev-trigger sysinit/udev default/udev-postmount; do
- if ! [ -e /etc/runlevels/$i ]; then
- ln -s /etc/init.d/${i#*/} /etc/runlevels/$i
- fi
-done
-
-if [ -z "$dryrun" ] && ! rc-service --quiet udev status; then
- rc-service udev start
- rc-service udev-postmount start
- rc-service udev-trigger start
- rc-service udev-settle start
-fi