diff options
author | Merlin Jehli | 2024-06-19 13:05:18 +0200 |
---|---|---|
committer | Merlin Jehli | 2024-06-19 13:05:18 +0200 |
commit | a568bdeead25ba35fbbc99aeb80630f754544994 (patch) | |
tree | ec108cb25ea378fc5d1893d39ba300a776973c83 | |
parent | 568accc920566ac3dfe5234c57beb0cfaf2f2ef2 (diff) | |
download | aur-a568bdeead25ba35fbbc99aeb80630f754544994.tar.gz |
update to 256.1
-rw-r--r-- | .SRCINFO | 33 | ||||
-rw-r--r-- | 0002_added_machine_id_firmware_option.patch | 276 | ||||
-rw-r--r-- | PKGBUILD | 47 | ||||
-rw-r--r-- | systemd.install | 17 |
4 files changed, 201 insertions, 172 deletions
@@ -1,6 +1,6 @@ pkgbase = systemd-fml - pkgdesc = systemd-stable with machine id from hw patch: https://github.com/systemd/systemd/pull/32086 - pkgver = 255.7 + pkgdesc = systemd with machine id from hw patch: https://github.com/systemd/systemd/pull/32086 + pkgver = 256.1 pkgrel = 1 url = https://www.github.com/systemd/systemd arch = x86_64 @@ -53,7 +53,7 @@ pkgbase = systemd-fml makedepends = lib32-gcc-libs makedepends = python-pefile conflicts = mkinitcpio<38-1 - source = systemd-fml-stable::git+https://github.com/systemd/systemd-stable#tag=v255.7 + source = git+https://github.com/systemd/systemd#tag=v256.1?signed source = 0001-Use-Arch-Linux-device-access-groups.patch source = 0002_added_machine_id_firmware_option.patch source = arch.conf @@ -75,9 +75,9 @@ pkgbase = systemd-fml validpgpkeys = A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E validpgpkeys = 9A774DB5DB996C154EBBFBFDA0099A18E29326E1 validpgpkeys = 5C251B5FC54EB2F80F407AAAC54CA336CFEB557E - sha512sums = 224648e176fe48d0cb96ac740b4f239e7ddbbb6aed6299976f1df2d5825757021c7be243d187446c274715214c8175bf925ebb27eece18a02ce1884bac2c1f20 + sha512sums = 1ba38dd45cd910c7a2b4c7f23f982c5b0e5b13cd5874571ebc9b609ff85c058cecdb61019141ef2010fd4882c3ffc5a13a2b0d6370db4067ad90c28b83de6760 sha512sums = 3ccf783c28f7a1c857120abac4002ca91ae1f92205dcd5a84aff515d57e706a3f9240d75a0a67cff5085716885e06e62597baa86897f298662ec36a940cf410e - sha512sums = d2535a89e9b2326cd82e18ed4cc0e3acfb2dbac2431f64f4b9e1a4eb2fc54b4572a3ce6e480952bf5e920bb485e174eccb365667d4e433d235e5ef0649438d1c + sha512sums = fdebd3f46e3eb9821c78c29d176ff6f91ed383e948a8f06122fda41a9fb0e194374d27bb5b3cbc0e657460e4b9e614dc4937f074094893de2525265173afa364 sha512sums = 61032d29241b74a0f28446f8cf1be0e8ec46d0847a61dadb2a4f096e8686d5f57fe5c72bcf386003f6520bc4b5856c32d63bf3efe7eb0bc0deefc9f68159e648 sha512sums = c416e2121df83067376bcaacb58c05b01990f4614ad9de657d74b6da3efa441af251d13bf21e3f0f71ddcb4c9ea658b81da3d915667dc5c309c87ec32a1cb5a5 sha512sums = 5a1d78b5170da5abe3d18fdf9f2c3a4d78f15ba7d1ee9ec2708c4c9c2e28973469bc19386f70b3cf32ffafbe4fcc4303e5ebbd6d5187a1df3314ae0965b25e75 @@ -101,6 +101,7 @@ pkgname = systemd-fml license = CC0-1.0 license = GPL-2.0-or-later license = MIT-0 + depends = systemd-libs=256.1 depends = acl depends = libacl.so depends = bash @@ -110,14 +111,12 @@ pkgname = systemd-fml depends = dbus-units depends = kbd depends = kmod - depends = libkmod.so depends = hwdata depends = libcap depends = libcap.so depends = libgcrypt depends = libxcrypt depends = libcrypt.so - depends = systemd-libs depends = libidn2 depends = lz4 depends = pam @@ -149,9 +148,9 @@ pkgname = systemd-fml optdepends = libp11-kit: support PKCS#11 optdepends = tpm2-tss: unlocking LUKS2 volumes with TPM2 provides = nss-myhostname - provides = systemd-tools=255.7 - provides = udev=255.7 - provides = systemd=255.7 + provides = systemd-tools=256.1 + provides = udev=256.1 + provides = systemd=256.1 conflicts = nss-myhostname conflicts = systemd-tools conflicts = udev @@ -192,35 +191,35 @@ pkgname = systemd-libs-fml provides = libsystemd provides = libsystemd.so provides = libudev.so - provides = systemd-libs=255.7 + provides = systemd-libs=256.1 conflicts = libsystemd conflicts = systemd-libs replaces = libsystemd pkgname = systemd-resolvconf-fml pkgdesc = systemd resolvconf replacement (for use with systemd-resolved) - depends = systemd + depends = systemd=256.1 provides = openresolv provides = resolvconf - provides = systemd-resolvconf=255.7 + provides = systemd-resolvconf=256.1 conflicts = resolvconf conflicts = systemd-resolvconf pkgname = systemd-sysvcompat-fml pkgdesc = sysvinit compat for systemd - depends = systemd - provides = systemd-sysvcompat=255.7 + depends = systemd=256.1 + provides = systemd-sysvcompat=256.1 conflicts = sysvinit conflicts = systemd-sysvcompat pkgname = systemd-ukify-fml pkgdesc = Combine kernel and initrd into a signed Unified Kernel Image + depends = systemd=256.1 depends = binutils depends = python-cryptography depends = python-pefile - depends = systemd optdepends = python-pillow: Show the size of splash image optdepends = sbsigntools: Sign the embedded kernel provides = ukify - provides = systemd-ukify=255.7 + provides = systemd-ukify=256.1 conflicts = systemd-ukify diff --git a/0002_added_machine_id_firmware_option.patch b/0002_added_machine_id_firmware_option.patch index d389ebc1de41..575ae23268f0 100644 --- a/0002_added_machine_id_firmware_option.patch +++ b/0002_added_machine_id_firmware_option.patch @@ -1,218 +1,218 @@ +Subject: [PATCH] added systemd.machine_id=firmware option +--- +Index: man/machine-id.xml +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/man/machine-id.xml b/man/machine-id.xml +--- a/man/machine-id.xml (revision 051d462b42fe6c27824046c15cd3c84fa5afe05b) ++++ b/man/machine-id.xml (revision 21004b30bf831859d1743658915bce0fbd500e74) +@@ -102,7 +102,8 @@ + value of the kernel command line option <varname>container_uuid</varname>, the KVM DMI + <filename>product_uuid</filename> or the devicetree <filename>vm,uuid</filename> + (on KVM systems), the Xen hypervisor <filename>uuid</filename>, and finally a randomly +- generated UUID.</para> ++ generated UUID. <varname>systemd.machine_id=firmware</varname> can be set to generate the machine id ++ from the firmware.</para> + + <para>After the machine ID is established, + <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> +Index: src/core/main.c +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/src/core/main.c b/src/core/main.c +--- a/src/core/main.c (revision 051d462b42fe6c27824046c15cd3c84fa5afe05b) ++++ b/src/core/main.c (revision 21004b30bf831859d1743658915bce0fbd500e74) +@@ -148,6 +148,7 @@ + static Set* arg_syscall_archs; + static FILE* arg_serialization; + static sd_id128_t arg_machine_id; ++static bool arg_machine_id_from_firmware = false; + static EmergencyAction arg_cad_burst_action; + static CPUSet arg_cpu_affinity; + static NUMAPolicy arg_numa_policy; +@@ -381,10 +382,15 @@ + if (proc_cmdline_value_missing(key, value)) + return 0; + +- r = id128_from_string_nonzero(value, &arg_machine_id); +- if (r < 0) +- log_warning_errno(r, "MachineID '%s' is not valid, ignoring: %m", value); +- ++ if (streq(value, "firmware")) ++ arg_machine_id_from_firmware = true; ++ else { ++ r = id128_from_string_nonzero(value, &arg_machine_id); ++ if (r < 0) ++ log_warning_errno(r, "MachineID '%s' is not valid, ignoring: %m", value); ++ else ++ arg_machine_id_from_firmware = false; ++ } + } else if (proc_cmdline_key_streq(key, "systemd.default_timeout_start_sec")) { + + if (proc_cmdline_value_missing(key, value)) +@@ -2366,8 +2372,9 @@ + + (void) os_release_status(); + (void) hostname_setup(true); +- /* Force transient machine-id on first boot. */ +- machine_id_setup(/* root= */ NULL, /* force_transient= */ first_boot, arg_machine_id, /* ret_machine_id */ NULL); ++ ++ machine_id_setup(/* root= */ NULL, arg_machine_id, (first_boot ? MACHINE_ID_SETUP_FORCE_TRANSIENT : 0) | ++ (arg_machine_id_from_firmware ? MACHINE_ID_SETUP_FORCE_FIRMWARE : 0), /* ret_machine_id */ NULL); + (void) loopback_setup(); + bump_unix_max_dgram_qlen(); + bump_file_max_and_nr_open(); +Index: src/machine-id-setup/machine-id-setup-main.c +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/src/machine-id-setup/machine-id-setup-main.c b/src/machine-id-setup/machine-id-setup-main.c +--- a/src/machine-id-setup/machine-id-setup-main.c (revision 051d462b42fe6c27824046c15cd3c84fa5afe05b) ++++ b/src/machine-id-setup/machine-id-setup-main.c (revision 21004b30bf831859d1743658915bce0fbd500e74) +@@ -188,7 +188,7 @@ + } else { + sd_id128_t id; + +- r = machine_id_setup(arg_root, false, SD_ID128_NULL, &id); ++ r = machine_id_setup(arg_root, SD_ID128_NULL, /* flags = */ 0, &id); + if (r < 0) + return r; + Index: src/shared/machine-id-setup.c IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/src/shared/machine-id-setup.c b/src/shared/machine-id-setup.c ---- a/src/shared/machine-id-setup.c (revision 8f4dab049074d31c31af2bb9eb76f9f4f08e3711) -+++ b/src/shared/machine-id-setup.c (date 1714255351696) -@@ -28,7 +28,8 @@ +--- a/src/shared/machine-id-setup.c (revision 051d462b42fe6c27824046c15cd3c84fa5afe05b) ++++ b/src/shared/machine-id-setup.c (revision 21004b30bf831859d1743658915bce0fbd500e74) +@@ -30,7 +30,8 @@ #include "umask-util.h" #include "virt.h" - + -static int acquire_machine_id_from_credential(sd_id128_t *ret) { +static int acquire_machine_id_from_credential(sd_id128_t *ret_machine_id, bool *ret_machine_id_from_firmware) { + _cleanup_free_ char *buf = NULL; int r; - -@@ -38,7 +39,12 @@ + +@@ -40,15 +41,22 @@ if (r == 0) /* not found */ return -ENXIO; - + - r = sd_id128_from_string(buf, ret); + if (streq(buf, "firmware")) { + *ret_machine_id_from_firmware = true; ++ *ret_machine_id = SD_ID128_NULL; + return 0; + } + + r = sd_id128_from_string(buf, ret_machine_id); if (r < 0) ++ *ret_machine_id_from_firmware = false; return log_warning_errno(r, "Failed to parse system.machine_id credential, ignoring: %m"); - -@@ -46,7 +52,7 @@ + + log_info("Initializing machine ID from credential."); return 0; } - --static int generate_machine_id(const char *root, sd_id128_t *ret) { -+static int generate_machine_id(const char *root, sd_id128_t *ret, bool machine_id_from_firmware) { + +-static int acquire_machine_id(const char *root, sd_id128_t *ret) { ++static int acquire_machine_id(const char *root, sd_id128_t *ret, const bool machine_id_from_firmware) { _cleanup_close_ int fd = -EBADF; int r; - -@@ -61,7 +67,7 @@ - + +@@ -71,8 +79,9 @@ + } + if (isempty(root) && running_in_chroot() <= 0) { ++ bool machine_id_from_firmware_credentials; /* Let's use a system credential for the machine ID if we can */ -- r = acquire_machine_id_from_credential(ret); -+ r = acquire_machine_id_from_credential(ret, &machine_id_from_firmware); - if (r >= 0) - return r; - -@@ -78,14 +84,14 @@ +- if (acquire_machine_id_from_credential(ret) >= 0) ++ if (acquire_machine_id_from_credential(ret, &machine_id_from_firmware_credentials) >= 0) + return 0; + + /* If that didn't work, see if we are running in a container, +@@ -88,14 +97,14 @@ return 0; } - + - } else if (IN_SET(detect_vm(), VIRTUALIZATION_KVM, VIRTUALIZATION_AMAZON, VIRTUALIZATION_QEMU, VIRTUALIZATION_XEN)) { -+ } else if (IN_SET(detect_vm(), VIRTUALIZATION_KVM, VIRTUALIZATION_AMAZON, VIRTUALIZATION_QEMU, VIRTUALIZATION_XEN) || machine_id_from_firmware) { - ++ } else if (IN_SET(detect_vm(), VIRTUALIZATION_KVM, VIRTUALIZATION_AMAZON, VIRTUALIZATION_QEMU, VIRTUALIZATION_XEN) || machine_id_from_firmware || machine_id_from_firmware_credentials) { + /* If we are not running in a container, see if we are running in a VM that provides * a system UUID via the SMBIOS/DMI interfaces. Such environments include QEMU/KVM * with the -uuid on the qemu command line or the Amazon EC2 Nitro hypervisor. */ - + if (id128_get_product(ret) >= 0) { - log_info("Initializing machine ID from VM UUID."); + log_info("Initializing machine ID from SMBIOS/DMI UUID."); return 0; } } -@@ -100,12 +106,16 @@ +@@ -110,12 +119,14 @@ return 0; } - + -int machine_id_setup(const char *root, bool force_transient, sd_id128_t machine_id, sd_id128_t *ret) { +int machine_id_setup(const char *root, sd_id128_t machine_id, MachineIdSetupFlags flags, sd_id128_t *ret) { const char *etc_machine_id, *run_machine_id; _cleanup_close_ int fd = -EBADF; - bool writable; -+ bool machine_id_from_firmware = false; + bool writable, write_run_machine_id = true; int r; - -+ if (flags & MACHINE_ID_SETUP_FORCE_FIRMWARE) -+ machine_id_from_firmware = true; + ++ bool machine_id_from_firmware = FLAGS_SET(flags, MACHINE_ID_SETUP_FORCE_FIRMWARE); + etc_machine_id = prefix_roota(root, "/etc/machine-id"); - + WITH_UMASK(0000) { -@@ -138,14 +148,14 @@ +@@ -148,14 +159,14 @@ } - + /* A we got a valid machine ID argument, that's what counts */ - if (sd_id128_is_null(machine_id)) { + if (sd_id128_is_null(machine_id) || machine_id_from_firmware) { - + /* Try to read any existing machine ID */ - if (id128_read_fd(fd, ID128_FORMAT_PLAIN, ret) >= 0) - return 0; - - /* Hmm, so, the id currently stored is not useful, then let's generate one */ -- r = generate_machine_id(root, &machine_id); -+ r = generate_machine_id(root, &machine_id, machine_id_from_firmware); + if (id128_read_fd(fd, ID128_FORMAT_PLAIN, &machine_id) >= 0) + goto finish; + + /* Hmm, so, the id currently stored is not useful, then let's acquire one. */ +- r = acquire_machine_id(root, &machine_id); ++ r = acquire_machine_id(root, &machine_id, machine_id_from_firmware); if (r < 0) return r; - } -@@ -161,7 +171,7 @@ + write_run_machine_id = !r; +@@ -172,7 +183,7 @@ * disk and overmount it with a transient file. * * Otherwise write the machine-id directly to disk. */ - if (force_transient) { -+ if (flags & MACHINE_ID_SETUP_FORCE_TRANSIENT) { ++ if (FLAGS_SET(flags, MACHINE_ID_SETUP_FORCE_TRANSIENT)) { r = loop_write(fd, "uninitialized\n", SIZE_MAX); if (r < 0) return log_error_errno(r, "Failed to write uninitialized %s: %m", etc_machine_id); -@@ -199,7 +209,7 @@ +@@ -212,7 +223,7 @@ return r; } - + - log_full(force_transient ? LOG_DEBUG : LOG_INFO, "Installed transient %s file.", etc_machine_id); -+ log_full(flags & MACHINE_ID_SETUP_FORCE_TRANSIENT ? LOG_DEBUG : LOG_INFO, "Installed transient %s file.", etc_machine_id); - ++ log_full(FLAGS_SET(flags, MACHINE_ID_SETUP_FORCE_TRANSIENT) ? LOG_DEBUG : LOG_INFO, "Installed transient %s file.", etc_machine_id); + /* Mark the mount read-only */ r = mount_follow_verbose(LOG_WARNING, NULL, etc_machine_id, NULL, MS_BIND|MS_RDONLY|MS_REMOUNT, NULL); -Index: src/core/main.c -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/src/core/main.c b/src/core/main.c ---- a/src/core/main.c (revision 8f4dab049074d31c31af2bb9eb76f9f4f08e3711) -+++ b/src/core/main.c (date 1714255351649) -@@ -144,6 +144,7 @@ - static Set* arg_syscall_archs; - static FILE* arg_serialization; - static sd_id128_t arg_machine_id; -+static bool arg_machine_id_from_firmware = false; - static EmergencyAction arg_cad_burst_action; - static CPUSet arg_cpu_affinity; - static NUMAPolicy arg_numa_policy; -@@ -352,10 +353,15 @@ - if (proc_cmdline_value_missing(key, value)) - return 0; - -- r = id128_from_string_nonzero(value, &arg_machine_id); -- if (r < 0) -- log_warning_errno(r, "MachineID '%s' is not valid, ignoring: %m", value); -- -+ if (streq(value, "firmware")) -+ arg_machine_id_from_firmware = true; -+ else { -+ r = id128_from_string_nonzero(value, &arg_machine_id); -+ if (r < 0) -+ log_warning_errno(r, "MachineID '%s' is not valid, ignoring: %m", value); -+ else -+ arg_machine_id_from_firmware = false; -+ } - } else if (proc_cmdline_key_streq(key, "systemd.default_timeout_start_sec")) { - - if (proc_cmdline_value_missing(key, value)) -@@ -2234,8 +2240,13 @@ - - (void) os_release_status(); - (void) hostname_setup(true); -- /* Force transient machine-id on first boot. */ -- machine_id_setup(/* root= */ NULL, /* force_transient= */ first_boot, arg_machine_id, /* ret_machine_id */ NULL); -+ -+ /* Set up the machine ID flags */ -+ MachineIdSetupFlags machine_id_setup_flags = 0; -+ machine_id_setup_flags = (first_boot ? MACHINE_ID_SETUP_FORCE_TRANSIENT : 0) | -+ (arg_machine_id_from_firmware ? MACHINE_ID_SETUP_FORCE_FIRMWARE : 0); -+ -+ machine_id_setup(/* root= */ NULL, arg_machine_id, machine_id_setup_flags, /* ret_machine_id */ NULL); - (void) loopback_setup(); - bump_unix_max_dgram_qlen(); - bump_file_max_and_nr_open(); -Index: man/machine-id.xml -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/man/machine-id.xml b/man/machine-id.xml ---- a/man/machine-id.xml (revision 8f4dab049074d31c31af2bb9eb76f9f4f08e3711) -+++ b/man/machine-id.xml (date 1714255351569) -@@ -102,7 +102,8 @@ - value of the kernel command line option <varname>container_uuid</varname>, the KVM DMI - <filename>product_uuid</filename> or the devicetree <filename>vm,uuid</filename> - (on KVM systems), the Xen hypervisor <filename>uuid</filename>, and finally a randomly -- generated UUID.</para> -+ generated UUID. <varname>systemd.machine_id=firmware</varname> can be set to generate the machine id -+ from the firmware.</para> - - <para>After the machine ID is established, - <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> -Index: src/machine-id-setup/machine-id-setup-main.c -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/src/machine-id-setup/machine-id-setup-main.c b/src/machine-id-setup/machine-id-setup-main.c ---- a/src/machine-id-setup/machine-id-setup-main.c (revision 8f4dab049074d31c31af2bb9eb76f9f4f08e3711) -+++ b/src/machine-id-setup/machine-id-setup-main.c (date 1714255351673) -@@ -188,7 +188,7 @@ - } else { - sd_id128_t id; - -- r = machine_id_setup(arg_root, false, SD_ID128_NULL, &id); -+ r = machine_id_setup(arg_root, SD_ID128_NULL, 0, &id); - if (r < 0) - return r; - Index: src/shared/machine-id-setup.h IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/src/shared/machine-id-setup.h b/src/shared/machine-id-setup.h ---- a/src/shared/machine-id-setup.h (revision 8f4dab049074d31c31af2bb9eb76f9f4f08e3711) -+++ b/src/shared/machine-id-setup.h (date 1714255351713) +--- a/src/shared/machine-id-setup.h (revision 051d462b42fe6c27824046c15cd3c84fa5afe05b) ++++ b/src/shared/machine-id-setup.h (revision 21004b30bf831859d1743658915bce0fbd500e74) @@ -3,5 +3,10 @@ #include <stdbool.h> @@ -6,8 +6,8 @@ pkgname=('systemd-fml' 'systemd-resolvconf-fml' 'systemd-sysvcompat-fml' 'systemd-ukify-fml') -pkgdesc='systemd-stable with machine id from hw patch: https://github.com/systemd/systemd/pull/32086' -_tag='255.7' +pkgdesc='systemd with machine id from hw patch: https://github.com/systemd/systemd/pull/32086' +_tag='256.1' # Upstream versioning is incompatible with pacman's version comparisons so we # replace tildes with the empty string to make sure pacman's version comparing # does the right thing for rc versions: @@ -15,7 +15,7 @@ _tag='255.7' # 1 # ➜ vercmp 255rc1 255 # -1 -pkgver="${_tag/~/}" +pkgver="${_tag/[-~]/}" pkgrel=1 arch=('x86_64') license=('LGPL-2.1-or-later') @@ -33,7 +33,7 @@ validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering < 'A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E' # Luca Boccassi <luca.boccassi@gmail.com> '9A774DB5DB996C154EBBFBFDA0099A18E29326E1' # Yu Watanabe <watanabe.yu+github@gmail.com> '5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> -source=("$pkgbase-stable::git+https://github.com/systemd/systemd-stable#tag=v${_tag}" +source=("$pkgbase::git+https://github.com/systemd/systemd#tag=v${_tag}" '0001-Use-Arch-Linux-device-access-groups.patch' '0002_added_machine_id_firmware_option.patch' # bootloader files @@ -55,9 +55,9 @@ source=("$pkgbase-stable::git+https://github.com/systemd/systemd-stable#tag=v${_ '30-systemd-udev-reload.hook' '30-systemd-update.hook') -sha512sums=('224648e176fe48d0cb96ac740b4f239e7ddbbb6aed6299976f1df2d5825757021c7be243d187446c274715214c8175bf925ebb27eece18a02ce1884bac2c1f20' +sha512sums=('1ba38dd45cd910c7a2b4c7f23f982c5b0e5b13cd5874571ebc9b609ff85c058cecdb61019141ef2010fd4882c3ffc5a13a2b0d6370db4067ad90c28b83de6760' '3ccf783c28f7a1c857120abac4002ca91ae1f92205dcd5a84aff515d57e706a3f9240d75a0a67cff5085716885e06e62597baa86897f298662ec36a940cf410e' - 'd2535a89e9b2326cd82e18ed4cc0e3acfb2dbac2431f64f4b9e1a4eb2fc54b4572a3ce6e480952bf5e920bb485e174eccb365667d4e433d235e5ef0649438d1c' + 'fdebd3f46e3eb9821c78c29d176ff6f91ed383e948a8f06122fda41a9fb0e194374d27bb5b3cbc0e657460e4b9e614dc4937f074094893de2525265173afa364' '61032d29241b74a0f28446f8cf1be0e8ec46d0847a61dadb2a4f096e8686d5f57fe5c72bcf386003f6520bc4b5856c32d63bf3efe7eb0bc0deefc9f68159e648' 'c416e2121df83067376bcaacb58c05b01990f4614ad9de657d74b6da3efa441af251d13bf21e3f0f71ddcb4c9ea658b81da3d915667dc5c309c87ec32a1cb5a5' '5a1d78b5170da5abe3d18fdf9f2c3a4d78f15ba7d1ee9ec2708c4c9c2e28973469bc19386f70b3cf32ffafbe4fcc4303e5ebbd6d5187a1df3314ae0965b25e75' @@ -86,7 +86,20 @@ _reverts=( ) prepare() { - cd "$pkgbase-stable" + cd "$pkgbase" + + local _c _l + for _c in "${_backports[@]}"; do + if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi + git log --oneline "${_l}" "${_c}" + git cherry-pick --mainline 1 --no-commit "${_c}" + done + for _c in "${_reverts[@]}"; do + if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi + git log --oneline "${_l}" "${_c}" + git revert --mainline 1 --no-commit "${_c}" + done + # Replace cdrom/dialout/tape groups with optical/uucp/storage patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch @@ -112,9 +125,7 @@ build() { local _meson_options=( -Dversion-tag="${_meson_version}-arch" - # We use the version without tildes as the shared library tag because - # pacman looks at the shared library version. - -Dshared-lib-tag="${_meson_version/~/}" + -Dshared-lib-tag="${_meson_version}" -Dmode="${_meson_mode}" -Dapparmor=disabled @@ -133,6 +144,7 @@ build() { -Ddbuspolicydir=/usr/share/dbus-1/system.d -Ddefault-dnssec=no + -Ddefault-hierarchy=unified -Ddefault-kill-user-processes=false -Ddefault-locale='C.UTF-8' -Dlocalegen-path=/usr/bin/locale-gen @@ -152,7 +164,7 @@ build() { -Dsbat-distro-url="https://aur.archlinux.org/pkgbase/${pkgname}" ) - arch-meson "$pkgbase-stable" build "${_meson_options[@]}" $MESON_EXTRA_CONFIGURE_OPTIONS + arch-meson "${pkgbase}" build "${_meson_options[@]}" $MESON_EXTRA_CONFIGURE_OPTIONS meson compile -C build "${_meson_compile[@]}" } @@ -168,9 +180,10 @@ package_systemd-fml() { 'GPL-2.0-or-later' # udev 'MIT-0' # documentation and config files ) - depends=('acl' 'libacl.so' 'bash' 'cryptsetup' 'libcryptsetup.so' 'dbus' - 'dbus-units' 'kbd' 'kmod' 'libkmod.so' 'hwdata' 'libcap' 'libcap.so' - 'libgcrypt' 'libxcrypt' 'libcrypt.so' 'systemd-libs' 'libidn2' 'lz4' 'pam' + depends=("systemd-libs=${pkgver}" + 'acl' 'libacl.so' 'bash' 'cryptsetup' 'libcryptsetup.so' 'dbus' + 'dbus-units' 'kbd' 'kmod' 'hwdata' 'libcap' 'libcap.so' + 'libgcrypt' 'libxcrypt' 'libcrypt.so' 'libidn2' 'lz4' 'pam' 'libelf' 'libseccomp' 'libseccomp.so' 'util-linux' 'libblkid.so' 'libmount.so' 'xz' 'pcre2' 'audit' 'libaudit.so' 'openssl' 'libcrypto.so' 'libssl.so') @@ -290,7 +303,7 @@ package_systemd-libs-fml() { package_systemd-resolvconf-fml() { pkgdesc='systemd resolvconf replacement (for use with systemd-resolved)' - depends=('systemd') + depends=("systemd=${pkgver}") provides=('openresolv' 'resolvconf') provides+=("systemd-resolvconf=$pkgver") conflicts=('resolvconf') @@ -308,7 +321,7 @@ package_systemd-sysvcompat-fml() { provides=("systemd-sysvcompat=$pkgver") conflicts=('sysvinit') conflicts+=('systemd-sysvcompat') - depends=('systemd') + depends=("systemd=${pkgver}") install -D -m0644 -t "$pkgdir"/usr/share/man/man8 \ build/man/{halt,poweroff,reboot,shutdown}.8 @@ -325,7 +338,7 @@ package_systemd-ukify-fml() { provides=('ukify') provides+=("systemd-ukify=$pkgver") conflicts=('systemd-ukify') - depends=('binutils' 'python-cryptography' 'python-pefile' 'systemd') + depends=("systemd=${pkgver}" 'binutils' 'python-cryptography' 'python-pefile') optdepends=('python-pillow: Show the size of splash image' 'sbsigntools: Sign the embedded kernel') diff --git a/systemd.install b/systemd.install index d5f0a68ff66e..1b9c6e259e10 100644 --- a/systemd.install +++ b/systemd.install @@ -13,6 +13,10 @@ add_journal_acls() { post_common() { systemd-sysusers journalctl --update-catalog + + if ! grep -qe '^/usr/bin/systemd-home-fallback-shell$' etc/shells; then + echo '/usr/bin/systemd-home-fallback-shell' >> etc/shells + fi } post_install() { @@ -41,6 +45,15 @@ post_upgrade() { systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' fi + # show for feature release: 255 -> 256 -> 257 -> ... + if [ $(vercmp "${1%%[!0-9]*}" "${2%%[!0-9]*}") -ne 0 ]; then + cat <<-EOM + :: This is a systemd feature update. You may want to have a look at + NEWS for what changed, or if you observe unexpected behavior: + /usr/share/doc/systemd/NEWS + EOM + fi + local v upgrades=( ) @@ -51,4 +64,8 @@ post_upgrade() { done } +post_remove() { + sed -i -r '/^\/usr\/bin\/systemd-home-fallback-shell$/d' etc/shells +} + # vim:set ts=2 sw=2 et: |