Files
2026-05-14 23:09:30 +03:00

489 lines
16 KiB
Diff

From 1f0f3a593616e8d12bdb2d81975f982b895afa8a Mon Sep 17 00:00:00 2001
From: artoo <artoo@artixlinux.org>
Date: Wed, 6 May 2026 19:39:47 +0200
Subject: [PATCH 1/1] no systemd
---
hooks/resume | 7 ---
init_functions | 11 ----
install/lvm2 | 6 +-
install/mdadm_udev | 6 --
install/resume | 7 ---
install/sd-encrypt | 67 --------------------
install/sd-encrypt-opensc | 59 ------------------
install/sd-shutdown | 21 -------
install/sd-vconsole | 124 --------------------------------------
install/sd-verity | 38 ------------
install/sd-volatile | 22 -------
11 files changed, 1 insertion(+), 367 deletions(-)
delete mode 100644 install/sd-encrypt
delete mode 100644 install/sd-encrypt-opensc
delete mode 100644 install/sd-shutdown
delete mode 100644 install/sd-vconsole
delete mode 100644 install/sd-verity
delete mode 100644 install/sd-volatile
diff --git a/hooks/resume b/hooks/resume
index 2a58c4f..6a63a96 100644
--- a/hooks/resume
+++ b/hooks/resume
@@ -9,13 +9,6 @@ run_hook() {
return 0
fi
- # systemd-hibernate-resume supports resuming from 'HibernateLocation'
- # EFI variable. $resume can be empty in this case.
- if [ -x /usr/lib/systemd/systemd-hibernate-resume ]; then
- /usr/lib/systemd/systemd-hibernate-resume
- return
- fi
-
resume="$(getarg resume)"
if [ -z "$resume" ]; then
err 'resume: no device specified for hibernation'
diff --git a/init_functions b/init_functions
index 1260f84..2d80426 100644
--- a/init_functions
+++ b/init_functions
@@ -350,17 +350,6 @@ fsck_root() {
elif bitfield_has_bit "$fsckret" 128; then
err "fatal error invoking fsck"
fi
-
- # ensure that root is going to be mounted rw. Otherwise, systemd
- # might fsck the device again. Annoy the user so that they fix this.
- if [ "${rwopt:-ro}" != 'rw' ]; then
- echo "********************** WARNING **********************"
- echo "* *"
- echo "* The root device is not configured to be mounted *"
- echo "* read-write! It may be fsck'd again later. *"
- echo "* *"
- echo "*****************************************************"
- fi
fi
}
diff --git a/install/lvm2 b/install/lvm2
index 0c2e456..90d7ceb 100644
--- a/install/lvm2
+++ b/install/lvm2
@@ -34,11 +34,7 @@ build() {
'95-dm-notify.rules'
# this udev rule is specific for systemd and non-systemd systems
- if declare -F add_systemd_unit &>/dev/null; then
- add_udev_rule '69-dm-lvm.rules'
- else
- add_udev_rule '/usr/lib/initcpio/udev/69-dm-lvm.rules'
- fi
+ add_udev_rule '/usr/lib/initcpio/udev/69-dm-lvm.rules'
# config file
sed -e 's/^[[:space:]#]*monitoring = [[:digit:]]\+\s*$/\tmonitoring = 0/' \
diff --git a/install/mdadm_udev b/install/mdadm_udev
index dad7f7b..7c2b1a8 100644
--- a/install/mdadm_udev
+++ b/install/mdadm_udev
@@ -15,12 +15,6 @@ build() {
# For external metadata arrays (e.g. IMSM)
add_binary mdmon
- if declare -F add_systemd_unit &>/dev/null; then
- add_systemd_unit 'mdmon@.service'
- # support activation of degraded arrays
- add_systemd_unit 'mdadm-last-resort@.service'
- add_systemd_unit 'mdadm-last-resort@.timer'
- fi
}
help() {
diff --git a/install/resume b/install/resume
index 4d9622e..97fb9ec 100644
--- a/install/resume
+++ b/install/resume
@@ -6,13 +6,6 @@ build() {
map add_module 'crypto-lzo' 'crypto-lz4'
- if command -v systemctl &>/dev/null; then
- IFS=' .-~^' read -r _ systemd_ver _ < <(SYSTEMD_COLORS=0 systemctl --version)
- if (( systemd_ver >= 255 )); then
- add_binary /usr/lib/systemd/systemd-hibernate-resume
- fi
- fi
-
add_runscript
}
diff --git a/install/sd-encrypt b/install/sd-encrypt
deleted file mode 100644
index 856f640..0000000
--- a/install/sd-encrypt
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-
-build() {
- local mod
-
- map add_module 'dm-crypt' 'dm-integrity' 'hid-generic?'
- if [[ -n "$CRYPTO_MODULES" ]]; then
- for mod in $CRYPTO_MODULES; do
- add_module "$mod"
- done
- else
- add_all_modules '/crypto/'
- fi
- add_checked_modules '/drivers/char/tpm/'
-
- map add_udev_rule \
- '10-dm.rules' \
- '13-dm-disk.rules' \
- '60-fido-id.rules' \
- '95-dm-notify.rules'
-
- map add_systemd_unit 'cryptsetup.target' \
- 'systemd-ask-password-console.path' \
- 'systemd-ask-password-console.service'
- map add_binary \
- '/usr/lib/systemd/system-generators/systemd-cryptsetup-generator' \
- '/usr/lib/systemd/systemd-cryptsetup' \
- '/usr/lib/systemd/systemd-makefs' \
- '/usr/lib/cryptsetup/libcryptsetup-token-systemd-fido2.so' \
- '/usr/lib/cryptsetup/libcryptsetup-token-systemd-tpm2.so'
-
- # cryptsetup calls pthread_create(), which dlopen()s libgcc_s.so.1
- add_binary '/usr/lib/libgcc_s.so.1'
-
- # cryptsetup loads the legacy provider which is required for whirlpool
- add_binary '/usr/lib/ossl-modules/legacy.so'
-
- # add libraries dlopen()ed by systemd-cryptsetup
- LC_ALL=C.UTF-8 find /usr/lib/ -maxdepth 1 -name "libfido2.so*" | while read -r FILE; do
- if [[ -L "${FILE}" ]]; then
- add_symlink "${FILE}"
- else
- add_binary "${FILE}"
- fi
- done
-
- # add mkswap for creating swap space on the fly (see 'swap' in crypttab(5))
- add_binary 'mkswap'
-
- # add NVPCR definition files
- map add_file /usr/lib/nvpcr/*.nvpcr
-
- [[ -f /etc/crypttab.initramfs ]] && add_file '/etc/crypttab.initramfs' '/etc/crypttab'
-}
-
-help() {
- cat <<HELPEOF
-This hook allows systemd to unlock encrypted LUKS1 volumes with a password, and encrypted LUKS2 volumes with a password, FIDO2 token or TPM2 key. Unlocking of LUKS2 volumes with a PKCS#11 token is supported for some tokens by additional 'sd-encrypt-opensc' hook.
-
-See the manpage of systemd-cryptsetup-generator(8) for available kernel
-command line options. Alternatively, if the file /etc/crypttab.initramfs
-exists, it will be added to the initramfs as /etc/crypttab. See the
-crypttab(5) manpage for more information on crypttab syntax.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
diff --git a/install/sd-encrypt-opensc b/install/sd-encrypt-opensc
deleted file mode 100644
index 08c1be9..0000000
--- a/install/sd-encrypt-opensc
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/bash
-
-build() {
- add_binary '/usr/lib/cryptsetup/libcryptsetup-token-systemd-pkcs11.so'
-
- for FILE in /usr/lib/libp11-kit.so* /usr/lib/libpcsclite.so* /usr/lib/libpcsclite_real.so*; do
- if [[ -L "${FILE}" ]]; then
- add_symlink "${FILE}"
- else
- add_binary "${FILE}"
- fi
- done
-
- printf 'module: opensc-pkcs11.so\n' | add_file - '/usr/share/p11-kit/modules/opensc.module' 644
-
- add_binary '/usr/lib/pkcs11/opensc-pkcs11.so'
-
- printf '%s\n' \
- '[Unit]' \
- 'Description=PC/SC Smart Card Daemon' \
- 'DefaultDependencies=no' \
- 'Requires=pcscd.socket' \
- '[Service]' \
- 'ExecStart=/usr/bin/pcscd --foreground --disable-polkit' \
- 'ExecReload=/usr/bin/pcscd --hotplug' \
- 'RuntimeDirectory=pcscd' \
- 'RuntimeDirectoryPreserve=true' \
- 'PIDFile=/run/pcscd/pcscd.pid' \
- | add_file - '/usr/lib/systemd/system/pcscd.service' 644
-
- add_binary '/usr/bin/pcscd'
-
- printf '%s\n' \
- '[Unit]' \
- 'Description=PC/SC Smart Card Daemon Activation Socket' \
- 'DefaultDependencies=no' \
- '[Socket]' \
- 'ListenStream=/run/pcscd/pcscd.comm' \
- | add_file - '/usr/lib/systemd/system/pcscd.socket' 644
-
- # pcscd.socket -> cryptsetup-pre.target -> systemd-cryptsetup@.service -> cryptsetup.target
- add_systemd_unit 'cryptsetup-pre.target'
- add_symlink '/usr/lib/systemd/system/cryptsetup-pre.target.wants/pcscd.socket' '/usr/lib/systemd/system/pcscd.socket'
- add_symlink '/usr/lib/systemd/system/cryptsetup.target.wants/cryptsetup-pre.target' '/usr/lib/systemd/system/cryptsetup-pre.target'
-
- add_file '/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist'
- add_binary '/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so'
-}
-
-help() {
- cat <<HELPEOF
-This hook allows systemd to unlock LUKS2 volumes with the OpenSC PKCS#11 module and CCID driver.
-
-The full list of supported devices is available on [1], but be aware that the device may require a different PC/SC driver. Information about some drivers is available on [2].
-
-[1] https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29
-[2] https://github.com/OpenSC/OpenSC/wiki/Smart-card-readers-%28Linux-and-Mac-OS-X%29
-HELPEOF
-}
diff --git a/install/sd-shutdown b/install/sd-shutdown
deleted file mode 100644
index 238a946..0000000
--- a/install/sd-shutdown
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: GPL-2.0-only
-
-build() {
- # TODO: should be pulled inn by .notes.dlopen in the future
- add_binary /usr/lib/libmount.so
- add_binary /usr/lib/systemd/systemd-shutdown /shutdown
-
- if type -P kexec >/dev/null; then
- add_binary kexec
- fi
-}
-
-help() {
- cat <<HELPEOF
-This hook adds systemd-shutdown to the initramfs. This is only
-if the image is extracted to /run/initramfs before shutdown.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
diff --git a/install/sd-vconsole b/install/sd-vconsole
deleted file mode 100644
index c6ed1e0..0000000
--- a/install/sd-vconsole
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: GPL-2.0-only
-
-build() {
- # prevent conflicting variables from affecting vconsole.conf values
- # shellcheck disable=SC2034
- local KEYMAP KEYMAP_TOGGLE FONT FONT_MAP FONT_UNIMAP XKBLAYOUT XKBMODEL XKBVARIANT XKBOPTIONS
-
- add_systemd_unit systemd-vconsole-setup.service
- add_binary /usr/lib/systemd/systemd-vconsole-setup
- add_binary loadkeys
- add_binary setfont
- if [[ -s /etc/vconsole.conf ]]; then
- add_file /etc/vconsole.conf
- else
- warning 'sd-vconsole: "/etc/vconsole.conf" not found, will use default values'
- fi
-
- add_udev_rule 90-vconsole.rules
-
- # subshell to avoid namespace pollution
- (
- shopt -s extglob nullglob
-
- get_decompressor() {
- case "$1" in
- *.gz)
- cat='zcat'
- of="${1%.gz}"
- ;;
- *.bz2)
- cat='bzcat'
- of="${1%.bz2}"
- ;;
- *.zst)
- cat='zstdcat'
- of="${1%.zst}"
- ;;
- *)
- cat='cat'
- of="$1"
- ;;
- esac
- }
-
- add_keymap_file() {
- local cat cmd rest f of
-
- while read -r f; do
- get_decompressor "$f"
- while read -r cmd rest; do
- if [[ "$cmd" == 'include' ]]; then
- eval set "$rest"
- add_keymap_file "$1"
- fi
- done < <("$cat" "$f")
- add_dir "${of%/*}"
- "$cat" "$f" | add_file - "$of" 644
- done < <(LC_ALL=C.UTF-8 find /usr/share/kbd/keymaps/ -type f -regex ".*/$1\(\.inc\)?\(\.gz\|\.bz2|\.zst\)?")
- }
-
- add_font_file() {
- local cat file filename fontfile="$1"
- get_decompressor "$fontfile"
- add_dir "${of%/*}"
- "$cat" "$fontfile" | add_file - "$of" 644
- if [[ "$("$cat" "$fontfile" | head -c 23 | tr -d '\0')" == '# combine partial fonts' ]]; then
- while read -r filename; do
- for file in "/usr/share/kbd/consolefonts/partialfonts/$filename"?('.gz'|'.bz2'|'.zst'); do
- add_font_file "$file"
- done
- done < <("$cat" "$fontfile" | sed '/^#/d')
- fi
- }
-
- # shellcheck disable=SC1091
- [[ -s /etc/vconsole.conf ]] && . /etc/vconsole.conf
-
- [[ "$KEYMAP" != '@kernel' ]] && add_keymap_file "${KEYMAP:-us}.map"
- [[ -n "$KEYMAP_TOGGLE" ]] && add_keymap_file "${KEYMAP_TOGGLE}.map"
-
- if [[ -n "$FONT_MAP" ]]; then
- FONT_MAP="${FONT_MAP%.trans}"
- if [[ -f "/usr/share/kbd/consoletrans/$FONT_MAP" ]]; then
- add_file "/usr/share/kbd/consoletrans/$FONT_MAP"
- elif [[ -f "/usr/share/kbd/consoletrans/$FONT_MAP.trans" ]]; then
- add_file "/usr/share/kbd/consoletrans/$FONT_MAP.trans"
- elif [[ -f "/usr/share/kbd/consoletrans/${FONT_MAP}_to_uni.trans" ]]; then
- add_file "/usr/share/kbd/consoletrans/${FONT_MAP}_to_uni.trans"
- else
- error "sd-vconsole: requested font map not found: '%s'" "$FONT_MAP"
- return 1
- fi
- fi
-
- if [[ -n "$FONT_UNIMAP" ]]; then
- FONT_UNIMAP="${FONT_UNIMAP%.uni}"
- if [[ -f "/usr/share/kbd/unimaps/$FONT_UNIMAP.uni" ]]; then
- add_file "/usr/share/kbd/unimaps/$FONT_UNIMAP.uni"
- else
- error "sd-vconsole: requested font unimap not found: '%s'" "$FONT_UNIMAP"
- return 1
- fi
- fi
-
- if [[ -n "$FONT" ]]; then
- for file in "/usr/share/kbd/consolefonts/$FONT"?('.psfu'|'.psf'|'.cp'|'.fnt')?('.gz'|'.bz2'|'.zst'); do
- add_font_file "$file"
- return
- done
- error "sd-vconsole: requested font not found: '%s'" "$FONT"
- return 1
- fi
- )
-}
-
-help() {
- cat <<HELPEOF
-This hook adds the keymap(s) and font specified in vconsole.conf to the image and
-loads them during early userspace.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
diff --git a/install/sd-verity b/install/sd-verity
deleted file mode 100644
index e944137..0000000
--- a/install/sd-verity
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-build() {
- local mod
-
- map add_module 'dm-verity' 'sha256' 'sha512'
-
- map add_udev_rule \
- '10-dm.rules' \
- '13-dm-disk.rules' \
- '95-dm-notify.rules'
-
- map add_systemd_unit 'veritysetup-pre.target' \
- 'veritysetup.target' \
- 'systemd-veritysetup@.service'
-
- # Add systemd verity-related binaries
- map add_binary '/usr/lib/systemd/system-generators/systemd-veritysetup-generator' \
- '/usr/lib/systemd/systemd-veritysetup'
-
- # Add veritysetup binary from cryptsetup package
- add_binary '/usr/bin/veritysetup'
-
- # Add veritytab if present
- [[ -f /etc/veritytab.initramfs ]] && add_file '/etc/veritytab.initramfs' '/etc/veritytab'
-}
-
-help() {
- cat <<HELPEOF
-This hook sets up dm-verity in the initramfs environment.
-
-Ensure your kernel command line contains valid parameters for dm-verity.
-If /etc/veritytab.initramfs exists, it will be included in the initramfs as
-/etc/veritytab. See veritytab(5) for details.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
diff --git a/install/sd-volatile b/install/sd-volatile
deleted file mode 100644
index 134443e..0000000
--- a/install/sd-volatile
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-build() {
- local mod
-
- map add_module 'overlay'
-
- map add_systemd_unit 'systemd-volatile-root.service'
-
- # Add systemd volatile binary
- map add_binary '/usr/lib/systemd/systemd-volatile-root'
-}
-
-help() {
- cat <<HELPEOF
-This hook sets up systemd-volatile in the initramfs environment.
-
-Ensure your kernel command line contains valid parameters for it.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et:
--
2.54.0