diff --git a/33738.patch b/33738.patch new file mode 100644 index 0000000..58ab604 --- /dev/null +++ b/33738.patch @@ -0,0 +1,37 @@ +From 69c5d6bea7cc2168a2a483d232aa9a77202173f0 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 16 Jul 2024 17:46:09 +0200 +Subject: [PATCH] rules: Add uaccess tag to /dev/udmabuf + +In some cases userspace may need to create dmabuffers from userspace +on such example is the software ISP part of libcamera which needs to +allocate dma-buffers for the output of the software ISP. + +At first the plan was to allow console users access to /dev/dma_heap/*, +this was discussed with various kernel folks here: +https://lore.kernel.org/all/bb372250-e8b8-4458-bc99-dd8365b06991@redhat.com/ + +Giving console users access to the dma_heap's was deemed a bad idea +because memory allocated this way is not accounted in cgroup limits. + +Giving access to /dev/udmabuf OTOH was deemed acceptable so that +is what this patch adds. + +Resolves: #32662 +--- + rules.d/70-uaccess.rules.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/rules.d/70-uaccess.rules.in b/rules.d/70-uaccess.rules.in +index b82ce04a39d38..e683bb1114461 100644 +--- a/rules.d/70-uaccess.rules.in ++++ b/rules.d/70-uaccess.rules.in +@@ -34,6 +34,8 @@ SUBSYSTEM=="sound", TAG+="uaccess", \ + SUBSYSTEM=="video4linux", TAG+="uaccess" + SUBSYSTEM=="dvb", TAG+="uaccess" + SUBSYSTEM=="media", TAG+="uaccess" ++# libcamera software ISP used with some cams requires udmabuf access ++KERNEL=="udmabuf", TAG+="uaccess" + + # industrial cameras, some webcams, camcorders, set-top boxes, TV sets, audio devices, and more + SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_MIDI}=="1", TAG+="uaccess" diff --git a/sources b/sources index 498b802..b8539b8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (systemd-255.5.tar.gz) = 9c0b39379e9ef2af983d885ec3cac0377c90435846341bb4e22abf33c00cc1c9f40abba1d6f598300ffac18e2b27bf917eea41885b1413f63cb9902d2efe9bcc +SHA512 (systemd-255.18.tar.gz) = 4550fa313a45b277dc32df74a13cfd06486ced724f40c1eebc61a9ba76f79b58dd4372da851710cb5d8bb13e98a5cfcb377fe22171ef5bee0209f4bf067c87ad diff --git a/systemd.spec b/systemd.spec index c2fae5c..ab76aff 100644 --- a/systemd.spec +++ b/systemd.spec @@ -32,12 +32,16 @@ # Build from git main %bcond upstream 0 +# Override %%autorelease. This is ugly, but rpmautospec doesn't implement +# autorelease correctly if the macro is conditionalized in the Release field. +%{?release_override:%global autorelease %{release_override}%{?dist}} + Name: systemd Url: https://systemd.io # Allow users to specify the version and release when building the rpm by # setting the %%version_override and %%release_override macros. -Version: %{?version_override}%{!?version_override:255.5} -Release: %{?release_override:%{release_override}%{?dist}}%{!?release_override:%autorelease} +Version: %{?version_override}%{!?version_override:255.18} +Release: %autorelease %global stable %(c="%version"; [ "$c" = "${c#*.*}" ]; echo $?) @@ -98,6 +102,8 @@ GIT_DIR=../../src/systemd/.git git diffab -M v233..master@{2017-06-15} -- hwdb/[ # applying upstream pull requests. %if %{without upstream} +# Requested in https://bugzilla.redhat.com/show_bug.cgi?id=2298422 +Patch0011: https://github.com/systemd/systemd/pull/33738.patch # Those are downstream-only patches, but we don't want them in packit builds: # https://bugzilla.redhat.com/show_bug.cgi?id=1738828 @@ -188,7 +194,7 @@ BuildRequires: python3dist(pillow) BuildRequires: python3dist(pytest-flakes) %endif BuildRequires: python3dist(pytest) -BuildRequires: python3dist(zstd) +BuildRequires: python3dist(zstandard) %if 0%{?want_bootloader} BuildRequires: python3dist(pyelftools) %endif @@ -233,7 +239,6 @@ Requires: %{name}-libs%{_isa} = %{version}-%{release} %{?fedora:Recommends: %{name}-resolved = %{version}-%{release}} Recommends: diffutils Requires: (util-linux-core or util-linux) -Recommends: libxkbcommon%{_isa} Provides: /bin/systemctl Provides: /sbin/shutdown Provides: syslog @@ -254,11 +259,11 @@ Conflicts: dracut < 060 Obsoletes: timedatex < 0.6-3 Provides: timedatex = 0.6-3 -Conflicts: %{name}-standalone-tmpfiles < %{version}-%{release}^ +Conflicts: %{name}-standalone-tmpfiles Provides: %{name}-tmpfiles = %{version}-%{release} -Conflicts: %{name}-standalone-sysusers < %{version}-%{release}^ +Conflicts: %{name}-standalone-sysusers Provides: %{name}-sysusers = %{version}-%{release} -Conflicts: %{name}-standalone-shutdown < %{version}-%{release}^ +Conflicts: %{name}-standalone-shutdown Provides: %{name}-shutdown = %{version}-%{release} %if "%{_sbindir}" == "%{_bindir}" @@ -275,6 +280,7 @@ Provides: /usr/sbin/telinit %endif # Recommends to replace normal Requires deps for stuff that is dlopen()ed +Recommends: libxkbcommon.so.0%{?elf_suffix} Recommends: libidn2.so.0%{?elf_suffix} Recommends: libidn2.so.0(IDN2_0.0.0)%{?elf_bits} Recommends: libpcre2-8.so.0%{?elf_suffix} @@ -424,7 +430,7 @@ Obsoletes: u2f-hidraw-policy < 1.0.2-40 # self-obsoletes to install both packages after split of systemd-boot Obsoletes: systemd-udev < 252.2^ -Conflicts: %{name}-standalone-repart < %{version}-%{release}^ +Conflicts: %{name}-standalone-repart Provides: %{name}-repart = %{version}-%{release} %if "%{_sbindir}" == "%{_bindir}" @@ -497,7 +503,11 @@ Requires: %{name}%{_isa} = %{version}-%{release} Requires(post): systemd%{_isa} = %{version}-%{release} Requires(preun): systemd%{_isa} = %{version}-%{release} Requires(postun): systemd%{_isa} = %{version}-%{release} -# obsolete parent package so that dnf will install new subpackage on upgrade (#1260394) +# For systemd-vmspawn which uses qemu: +Recommends: qemu-kvm-core +Recommends: qemu-device-display-virtio-gpu +Recommends: qemu-device-display-virtio-vga +# Obsolete parent package so that dnf will install new subpackage on upgrade (#1260394) Obsoletes: %{name} < 229-5 # Bias the system towards libcurl-minimal if nothing pulls in full libcurl (#1997040) Suggests: libcurl-minimal @@ -586,48 +596,56 @@ Requires: python3dist(psutil) License: LGPL-2.1-or-later %description tests -"Installed tests" that are usually run as part of the build system. They can be -useful to test systemd internals. +Systemd unit tests used to test the internal implementation after a build. +Different binaries test different parts of the codebase. %package standalone-repart Summary: Standalone systemd-repart binary for use on systems without systemd Provides: %{name}-repart = %{version}-%{release} +Conflicts: %{name}-udev +Suggests: coreutils-single RemovePathPostfixes: .standalone %description standalone-repart -Standalone systemd-repart binary with no dependencies on the systemd-shared library or -other libraries from systemd-libs. This package conflicts with the main systemd -package and is meant for use on systems without systemd. +Standalone systemd-repart binary with no dependencies on the systemd-shared +library or other libraries from systemd-libs. This package conflicts with the +main systemd package and is meant for use on systems without systemd. %package standalone-tmpfiles Summary: Standalone systemd-tmpfiles binary for use on systems without systemd Provides: %{name}-tmpfiles = %{version}-%{release} +Conflicts: %{name} +Suggests: coreutils-single RemovePathPostfixes: .standalone %description standalone-tmpfiles -Standalone systemd-tmpfiles binary with no dependencies on the systemd-shared library or -other libraries from systemd-libs. This package conflicts with the main systemd -package and is meant for use on systems without systemd. +Standalone systemd-tmpfiles binary with no dependencies on the systemd-shared +library or other libraries from systemd-libs. This package conflicts with the +main systemd package and is meant for use on systems without systemd. %package standalone-sysusers Summary: Standalone systemd-sysusers binary for use on systems without systemd Provides: %{name}-sysusers = %{version}-%{release} +Conflicts: %{name} +Suggests: coreutils-single RemovePathPostfixes: .standalone %description standalone-sysusers -Standalone systemd-sysusers binary with no dependencies on the systemd-shared library or -other libraries from systemd-libs. This package conflicts with the main systemd -package and is meant for use on systems without systemd. +Standalone systemd-sysusers binary with no dependencies on the systemd-shared +library or other libraries from systemd-libs. This package conflicts with the +main systemd package and is meant for use on systems without systemd. %package standalone-shutdown -Summary: Standalone systemd-shutdown binary for use on systems without systemd +Summary: Standalone systemd-shutdown binary for use in exitrds Provides: %{name}-shutdown = %{version}-%{release} +Conflicts: %{name} +Suggests: coreutils-single RemovePathPostfixes: .standalone %description standalone-shutdown -Standalone systemd-shutdown binary with no dependencies on the systemd-shared library or -other libraries from systemd-libs. This package conflicts with the main systemd -package and is meant for use in exitrds. +Standalone systemd-shutdown binary with no dependencies on the systemd-shared +library or other libraries from systemd-libs. This package conflicts with the +main systemd package and is meant for use in exitrds. %prep %autosetup -n %{?commit:%{name}%[%stable?"-stable":""]-%{commit}}%{!?commit:%{name}%[%stable?"-stable":""]-%{version_no_tilde}} -p1 @@ -701,6 +719,7 @@ CONFIGURE_OPTS=( -Dversion-tag=%{version}%[%{without upstream}?"-%{release}":""] # https://bugzilla.redhat.com/show_bug.cgi?id=1906010 -Dshared-lib-tag=%{version_no_tilde}%[%{without upstream}?"-%{release}":""] + -Dlink-executor-shared=false -Dfallback-hostname="localhost" -Ddefault-dnssec=no -Ddefault-dns-over-tls=no @@ -1103,10 +1122,8 @@ fi %systemd_post systemd-resolved.service %preun resolved +%systemd_preun systemd-resolved.service if [ $1 -eq 0 ] ; then - systemctl disable --quiet \ - systemd-resolved.service \ - >/dev/null || : if [ -L /etc/resolv.conf ] && \ realpath /etc/resolv.conf | grep ^/run/systemd/resolve/; then rm -f /etc/resolv.conf # no longer useful