From 5a81243455fabc5a670bedc9d5a5271bca842b7a Mon Sep 17 00:00:00 2001 From: dkwo Date: Fri, 24 Feb 2023 17:01:40 -0500 Subject: [PATCH 1/3] mdevd: add conf and service --- srcpkgs/mdevd/files/mdev.conf | 70 +++++++++++++++++++++++++++++++++++ srcpkgs/mdevd/files/mdevd/run | 4 ++ srcpkgs/mdevd/template | 7 +++- 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/mdevd/files/mdev.conf create mode 100644 srcpkgs/mdevd/files/mdevd/run diff --git a/srcpkgs/mdevd/files/mdev.conf b/srcpkgs/mdevd/files/mdev.conf new file mode 100644 index 000000000000..0c88a022cdcc --- /dev/null +++ b/srcpkgs/mdevd/files/mdev.conf @@ -0,0 +1,70 @@ +# Configuration based on 'mdev-like-a-boss'. +# https://github.com/slashbeast/mdev-like-a-boss/blob/master/mdev.conf + +null root:root 666 @chmod 666 $MDEV +zero root:root 666 +full root:root 666 +random root:root 444 +urandom root:root 444 +hwrandom root:root 444 +grsec root:root 660 +kmem root:root 640 +mem root:root 640 + +port root:root 640 +console root:tty 600 @chmod 600 $MDEV +ptmx root:tty 666 +pty.* root:tty 660 +tty root:tty 666 +tty[0-9]* root:tty 660 +vcsa*[0-9]* root:tty 660 + +# Kernel based virtual machine. +kvm root:kvm 660 +vhost-net root:kvm 660 + +# Block devices. +ram([0-9]*) root:disk 660 >rd/%1 +loop([0-9]+) root:disk 660 >loop/%1 +sr[0-9]* root:cdrom 660 @ln -sf $MDEV cdrom +fd[0-9]* root:floppy 660 + +net/tun[0-9]* root:kvm 660 +net/tap[0-9]* root:root 600 +fuse root:root 666 +agpgart root:root 660 >misc/ +psaux root:root 660 >misc/ +rtc root:root 664 >misc/ + +# Audio stuff. +adsp root:audio 660 >sound/ +audio root:audio 660 >sound/ +dsp root:audio 660 >sound/ +mixer root:audio 660 >sound/ +sequencer.* root:audio 660 >sound/ +snd/.* root:audio 660 + +# Raid controllers. +cciss!(.*) root:disk 660 =cciss/%1 +ida!(.*) root:disk 660 =ida/%1 +rd!(.*) root:disk 660 =rd/%1 + +# Input stuff. +SUBSYSTEM=input;.* root:input 660 + +# Video stuff. +card[0-9] root:video 660 =dri/ +vbi[0-9] root:video 660 >v4l/ +video[0-9] root:video 660 >v4l/ +dri/.* root:video 660 + +# Don't create old usbdev* devices. +usbdev[0-9].[0-9]* root:root 660 ! + +# Stop creating x:x:x:x which looks like /dev/dm-*. +[0-9]+\:[0-9]+\:[0-9]+\:[0-9]+ root:root 660 ! + +# /dev/cpu support. +microcode root:root 600 =cpu/ +cpu([0-9]+) root:root 600 =cpu/%1/cpuid +msr([0-9]+) root:root 600 =cpu/%1/msr diff --git a/srcpkgs/mdevd/files/mdevd/run b/srcpkgs/mdevd/files/mdevd/run new file mode 100644 index 000000000000..3d95ad3a6850 --- /dev/null +++ b/srcpkgs/mdevd/files/mdevd/run @@ -0,0 +1,4 @@ +#!/bin/sh + +exec 2>&1 +exec mdevd -f /etc/mdev.conf -D 3 -b 200000 -O4 diff --git a/srcpkgs/mdevd/template b/srcpkgs/mdevd/template index 15690b0ead37..3a3c113cfa3b 100644 --- a/srcpkgs/mdevd/template +++ b/srcpkgs/mdevd/template @@ -1,7 +1,7 @@ # Template file for 'mdevd' pkgname=mdevd version=0.1.6.2 -revision=1 +revision=2 build_style=configure configure_args="--includedir=/usr/include --bindir=/usr/bin --libdir=/usr/lib --with-sysdeps=${XBPS_CROSS_BASE}/usr/lib/skalibs/sysdeps @@ -15,9 +15,10 @@ homepage="https://skarnet.org/software/mdevd/" changelog="https://skarnet.org/software/mdevd/upgrade.html" distfiles="https://skarnet.org/software/mdevd/mdevd-${version}.tar.gz" checksum=ac2fcf9004f07904592c5894e2c401e15bb027ecf37bcb8ea661e2a7993447be - +conf_files="/etc/mdev.conf" build_options="static" desc_option_static="Build static binaries" +make_check=no # no tests case "$XBPS_TARGET_MACHINE" in *-musl) @@ -30,6 +31,8 @@ post_install() { vlicense COPYING vdoc README vcopy "doc/*" usr/share/doc/${pkgname} + vsv mdevd + vcopy ${FILESDIR}/mdev.conf etc/mdev.conf } mdevd-doc_package() { From dac598d55b4611039444d76146e9a0bd1ab73f5a Mon Sep 17 00:00:00 2001 From: dkwo Date: Wed, 1 Mar 2023 17:07:50 -0500 Subject: [PATCH 2/3] runit-void: patch for udev --- srcpkgs/runit-void/patches/udev.patch | 95 +++++++++++++++++++++++++++ srcpkgs/runit-void/template | 2 +- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/runit-void/patches/udev.patch diff --git a/srcpkgs/runit-void/patches/udev.patch b/srcpkgs/runit-void/patches/udev.patch new file mode 100644 index 000000000000..6583d87a38ab --- /dev/null +++ b/srcpkgs/runit-void/patches/udev.patch @@ -0,0 +1,95 @@ +From 30be966515f6d766baa6d3da83c66efa66a9b725 Mon Sep 17 00:00:00 2001 +From: dkwo +Date: Wed, 1 Mar 2023 15:42:53 -0500 +Subject: [PATCH] core-services/{02,99},rc.conf,shutdown.d/60: allow + alternative udevd + +--- + core-services/02-udev.sh | 27 +++++++++++++-------------- + core-services/99-cleanup.sh | 11 +++++++++++ + rc.conf | 5 +++++ + shutdown.d/60-udev.sh | 4 ---- + 4 files changed, 29 insertions(+), 18 deletions(-) + delete mode 100644 shutdown.d/60-udev.sh + +diff --git a/core-services/02-udev.sh b/core-services/02-udev.sh +index b08f8ca..2c46d55 100644 +--- a/core-services/02-udev.sh ++++ b/core-services/02-udev.sh +@@ -2,18 +2,17 @@ + + [ -n "$VIRTUALIZATION" ] && return 0 + +-if [ -x /usr/lib/systemd/systemd-udevd ]; then +- _udevd=/usr/lib/systemd/systemd-udevd +-elif [ -x /sbin/udevd -o -x /bin/udevd ]; then +- _udevd=udevd +-else +- msg_warn "cannot find udevd!" +-fi ++msg "Starting device manager and waiting for devices to settle..." ++case $CONFIG_DEV in ++ udevd) ++ udevd --daemon ++ udevadm trigger --action=add --type=subsystems ++ udevadm trigger --action=add --type=devices ++ udevadm settle ++ ;; + +-if [ -n "${_udevd}" ]; then +- msg "Starting udev and waiting for devices to settle..." +- ${_udevd} --daemon +- udevadm trigger --action=add --type=subsystems +- udevadm trigger --action=add --type=devices +- udevadm settle +-fi ++ mdevd) ++ mdevd & pid_mdevd=$! ++ mdevd-coldplug ++ ;; ++esac +diff --git a/core-services/99-cleanup.sh b/core-services/99-cleanup.sh +index f27f728..d9f3f98 100644 +--- a/core-services/99-cleanup.sh ++++ b/core-services/99-cleanup.sh +@@ -8,3 +8,14 @@ if [ ! -e /var/log/btmp ]; then + fi + install -dm1777 /tmp/.X11-unix /tmp/.ICE-unix + rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot ++ ++msg "Killing device manager to make way for service..." ++case $CONFIG_DEV in ++ udevd) ++ udevadm control --exit ++ ;; ++ ++ mdevd) ++ kill "$pid_mdevd" ++ ;; ++esac +diff --git a/rc.conf b/rc.conf +index aa3da51..8a5e9f4 100644 +--- a/rc.conf ++++ b/rc.conf +@@ -45,3 +45,8 @@ + # RNG, for example if you plan to replicate this file system image and do not + # have the wherewithal to first delete the contents of /var/lib/seedrng. + #SEEDRNG_SKIP_CREDIT=false ++ ++# The device manager to run during the init process. This is killed once boot ++# is complete for a supervised version to take its place. Valid values are ++# currently 'mdevd' or 'udevd' (default). ++CONFIG_DEV=udevd +diff --git a/shutdown.d/60-udev.sh b/shutdown.d/60-udev.sh +deleted file mode 100644 +index dd42ff7..0000000 +--- a/shutdown.d/60-udev.sh ++++ /dev/null +@@ -1,4 +0,0 @@ +-if [ -z "$VIRTUALIZATION" ]; then +- msg "Stopping udev..." +- udevadm control --exit +-fi +-- +2.40.0 + diff --git a/srcpkgs/runit-void/template b/srcpkgs/runit-void/template index 9c46593c7d58..207b7c08f0f7 100644 --- a/srcpkgs/runit-void/template +++ b/srcpkgs/runit-void/template @@ -1,7 +1,7 @@ # Template file for 'runit-void' pkgname=runit-void version=20230413 -revision=1 +revision=2 build_style=gnu-makefile short_desc="Void Linux runit scripts" maintainer="Enno Boland " From d5c934271f6ec836a97b5b0dfa198d19b63c948f Mon Sep 17 00:00:00 2001 From: dkwo Date: Fri, 24 Feb 2023 18:26:36 -0500 Subject: [PATCH 3/3] new package: libudev-zero --- common/shlibs | 1 + srcpkgs/libudev-zero-devel | 1 + srcpkgs/libudev-zero-helper | 1 + srcpkgs/libudev-zero/template | 44 +++++++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 120000 srcpkgs/libudev-zero-devel create mode 120000 srcpkgs/libudev-zero-helper create mode 100644 srcpkgs/libudev-zero/template diff --git a/common/shlibs b/common/shlibs index 21cafd798519..6f5b8c10659e 100644 --- a/common/shlibs +++ b/common/shlibs @@ -218,6 +218,7 @@ libgirepository-gimarshallingtests-1.0.so libgirepository-1.30_1 libgirepository-everything-1.0.so libgirepository-1.30_1 libgirepository-1.0.so.1 libgirepository-1.30_1 libudev.so.1 eudev-libudev-1.6_1 +libudev.so.1 libudev-zero-1.0.1_1 libgudev-1.0.so.0 libgudev-230_1 libumockdev.so.0 libumockdev-0.17.6_1 libext2fs.so.2 e2fsprogs-libs-1.41.5_1 diff --git a/srcpkgs/libudev-zero-devel b/srcpkgs/libudev-zero-devel new file mode 120000 index 000000000000..fa3977904232 --- /dev/null +++ b/srcpkgs/libudev-zero-devel @@ -0,0 +1 @@ +libudev-zero/ \ No newline at end of file diff --git a/srcpkgs/libudev-zero-helper b/srcpkgs/libudev-zero-helper new file mode 120000 index 000000000000..fa3977904232 --- /dev/null +++ b/srcpkgs/libudev-zero-helper @@ -0,0 +1 @@ +libudev-zero/ \ No newline at end of file diff --git a/srcpkgs/libudev-zero/template b/srcpkgs/libudev-zero/template new file mode 100644 index 000000000000..9b4f9b8bc095 --- /dev/null +++ b/srcpkgs/libudev-zero/template @@ -0,0 +1,44 @@ +# Template file for 'libudev-zero' +pkgname=libudev-zero +version=1.0.2 +revision=1 +_UDEV_VERSION=243 +build_style=gnu-makefile +short_desc="Daemonless replacement for libudev" +maintainer="dkwo " +license="ISC" +homepage="https://github.com/illiliti/libudev-zero" +distfiles="https://github.com/illiliti/libudev-zero/archive/refs/tags/${version}.tar.gz" +checksum=29dff942cab9519994fb92ba6407f57e08d3dd6e6c0b86bb93d7b1d681994ff8 +make_check=no # no tests +provides="libudev-${_UDEV_VERSION}_${revision}" +conflicts="eudev-libudev>=3.2.11_1" + +post_build() { + "$CC" $LDFLAGS $CFLAGS $CPPFLAGS -o libudev-zero-helper contrib/helper.c +} + +post_install() { + vlicense LICENSE +} + +libudev-zero-devel_package() { + provides="libudev-devel-${_UDEV_VERSION}_${revision}" + conflicts="eudev-libudev-devel>=3.2.11_1" + depends="libudev-zero>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/pkgconfig + vmove "usr/lib/*.a" + vmove "usr/lib/*.so" + } +} + +libudev-zero-helper_package() { + depends="libudev-zero>=${version}_${revision}" + short_desc+=" - helper" + pkg_install() { + vinstall libudev-zero-helper 755 usr/libexec + } +}