summarylogtreecommitdiffstats
path: root/initcpio-install-systemd
diff options
context:
space:
mode:
authorNicolas Iooss2024-03-06 21:32:14 +0100
committerNicolas Iooss2024-03-06 21:32:14 +0100
commit4d700079c4d9cbb75d0a9df2365df09ea5588455 (patch)
treec2223d1be2bcfb74d62401ad76525791df8e674e /initcpio-install-systemd
parent7c78ae3da31d87175470983ac600cab9c0e70f68 (diff)
downloadaur-systemd-selinux.tar.gz
systemd-selinux 255.4-2 update
Diffstat (limited to 'initcpio-install-systemd')
-rw-r--r--initcpio-install-systemd173
1 files changed, 0 insertions, 173 deletions
diff --git a/initcpio-install-systemd b/initcpio-install-systemd
deleted file mode 100644
index e2790c80f300..000000000000
--- a/initcpio-install-systemd
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/bin/bash
-
-add_systemd_unit() {
- # Add a systemd unit file to the initcpio image. Hard dependencies on binaries
- # and other unit files will be discovered and added.
- # $1: path to rules file (or name of rules file)
-
- local unit= rule= entry= key= value= binary= dep=
-
- unit=$(PATH=/usr/lib/systemd/system:/lib/systemd/system type -P "$1")
- if [[ -z $unit ]]; then
- # complain about not found unit file
- return 1
- fi
-
- add_file "$unit"
-
- while IFS='=' read -r key values; do
- read -ra values <<< "$values"
-
- case $key in
- Requires|OnFailure)
- # only add hard dependencies (not Wants)
- map add_systemd_unit "${values[@]}"
- ;;
- Exec*)
- # do not add binaries unless they are required,
- # strip special executable prefixes
- case ${values[0]} in
- -*) ;;
- !!*) add_binary "${values[0]#!!}" ;;
- *) add_binary "${values[0]#[@!:+]}" ;;
- esac
- ;;
- esac
-
- done <"$unit"
-
- # preserve reverse soft dependency
- for dep in {/usr,}/lib/systemd/system/*.wants/${unit##*/}; do
- if [[ -L $dep ]]; then
- add_symlink "$dep"
- fi
- done
-
- # add hard dependencies
- if [[ -d $unit.requires ]]; then
- for dep in "$unit".requires/*; do
- add_systemd_unit ${dep##*/}
- done
- fi
-}
-
-add_systemd_drop_in() {
- local unit=$1 dropin_name=$2
-
- mkdir -p "$BUILDROOT/etc/systemd/system/$unit.d"
- cat >"$BUILDROOT/etc/systemd/system/$unit.d/$2.conf"
-}
-
-build() {
- local rules unit
-
- add_binary /usr/bin/kmod /usr/bin/modprobe
- add_binary /usr/bin/mount
- add_binary /usr/bin/sulogin
- add_binary /usr/bin/umount
- add_binary /usr/lib/systemd/systemd /init
-
- map add_binary \
- /usr/bin/journalctl \
- /usr/bin/systemd-tmpfiles \
- /usr/lib/systemd/systemd-executor \
- /usr/lib/systemd/systemd-hibernate-resume \
- /usr/lib/systemd/systemd-shutdown \
- /usr/lib/systemd/systemd-sulogin-shell \
- /usr/lib/systemd/system-generators/systemd-fstab-generator \
- /usr/lib/systemd/system-generators/systemd-gpt-auto-generator \
- /usr/lib/systemd/system-generators/systemd-hibernate-resume-generator
-
- # udev rules
- map add_udev_rule "$rules" \
- 50-udev-default.rules \
- 60-persistent-storage.rules \
- 64-btrfs.rules \
- 80-drivers.rules \
- 99-systemd.rules
-
- # systemd units
- map add_systemd_unit \
- initrd-cleanup.service \
- initrd-fs.target \
- initrd-parse-etc.service \
- initrd-root-fs.target \
- initrd-root-device.target \
- initrd-switch-root.service \
- initrd-switch-root.target \
- initrd-udevadm-cleanup-db.service \
- initrd.target \
- kmod-static-nodes.service \
- local-fs.target \
- local-fs-pre.target \
- paths.target \
- reboot.target \
- slices.target \
- sockets.target \
- swap.target \
- systemd-battery-check.service \
- systemd-bsod.service \
- systemd-fsck@.service \
- systemd-hibernate-resume.service \
- systemd-journald-audit.socket \
- systemd-journald-dev-log.socket \
- systemd-journald.service \
- systemd-modules-load.service \
- systemd-pcrphase-initrd.service \
- systemd-tmpfiles-setup-dev.service \
- systemd-udevd-control.socket \
- systemd-udevd-kernel.socket \
- systemd-udevd.service \
- systemd-udev-trigger.service \
- systemd-vconsole-setup.service \
- timers.target \
- rescue.target \
- emergency.target
-
- # add libraries dlopen()ed (hard and optional dependencies):
- # kmod -> systemd-shared
- # qrencode -> bsod
- # tss2-* -> tpm2-util
- for LIB in kmod qrencode tss2-{esys,rc,mu,tcti-'*'}; do
- for FILE in $(find /usr/lib/ -maxdepth 1 -name "lib${LIB}.so*"); do
- if [[ -L "${FILE}" ]]; then
- add_symlink "${FILE}"
- else
- add_binary "${FILE}"
- fi
- done
- done
-
- add_symlink "/usr/lib/systemd/system/default.target" "initrd.target"
- add_symlink "/usr/lib/systemd/system/ctrl-alt-del.target" "reboot.target"
-
- printf '%s\n' >"$BUILDROOT/etc/nsswitch.conf" \
- 'passwd: files' \
- 'group: files' \
- 'shadow: files'
-
- echo "root:x:0:0:root:/root:/bin/sh" >"$BUILDROOT/etc/passwd"
- echo 'root:*:::::::' >"$BUILDROOT/etc/shadow"
- getent group root audio disk input kmem kvm lp optical render sgx storage tty uucp video | awk -F: ' { print $1 ":x:" $3 ":" }' >"$BUILDROOT/etc/group"
-
- add_dir "/etc/modules-load.d"
- (
- . "$_f_config"
- set -f
- printf '%s\n' ${MODULES[@]} >"$BUILDROOT/etc/modules-load.d/MODULES.conf"
- )
-
- [[ -f /etc/fstab.initramfs ]] && add_file "/etc/fstab.initramfs" "/etc/fstab"
-}
-
-help() {
- cat <<HELPEOF
-This will install a basic systemd setup in your initramfs, and is meant to
-replace the 'base', 'usr', 'udev' and 'resume' hooks. Other hooks with runtime
-components will need to be ported, and will not work as intended. You also may
-wish to still include the 'base' hook (before this hook) to ensure that a
-rescue shell exists on your initramfs.
-HELPEOF
-}
-
-# vim: set ft=sh ts=4 sw=4 et: