Merge pull request #2414 from erturkbfe/master

mkinitcpio update
This commit is contained in:
Rmys
2026-05-14 23:14:59 +03:00
committed by GitHub
7 changed files with 837 additions and 32 deletions
+9 -5
View File
@@ -7,16 +7,20 @@
from pisi.actionsapi import autotools
from pisi.actionsapi import get
from pisi.actionsapi import pisitools
from pisi.actionsapi import mesontools
def setup():
mesontools.configure("-Dsystemd=disabled")
def build():
autotools.make()
mesontools.build()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
mesontools.install()
pisitools.removeDir("/usr/lib/kernel")
pisitools.removeDir("/etc/mkinitcpio.d")
pisitools.remove("/usr/lib/initcpio/install/sd-*")
pisitools.removeDir("/usr/share/libalpm")
pisitools.dodoc("LICENSE", "README")
pisitools.dodoc("LICENSE", "README.*")
+14 -17
View File
@@ -3,29 +3,26 @@
import os
import piksemel
import subprocess
import os
def updateInitrd(filepath):
patterns = ("/lib/modules", "/usr/lib/initcpio", "/boot/kernel", "/bin/busybox")
parse = piksemel.parse(filepath)
for xmlfile in parse.tags("File"):
path = xmlfile.getTagData("Path")
if not path.startswith("/"):
path = "/%s" % path
if path.startswith(patterns):
version = path.split("/")[3]
os.environ['PATH'] = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin'
subprocess.call(["mkinitcpio","-k","%s"% version ,"-g","/boot/initramfs-%s-fallback.img"% version,"-S","autodetect"])
subprocess.call(["mkinitcpio","-k","%s"% version ,"-c","/etc/mkinitcpio.conf","-g","/boot/initramfs-%s.img"% version])
if os.path.exists("/proc/cmdline"):
os.system("/usr/bin/update-grub")
break
def generateinitrd(filepath):
doc = piksemel.parse(filepath)
for item in doc.tags("File"):
path = item.getTagData("Path")
if path.startswith("lib/modules/"):
kver = path.split("/")[2]
subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-g","/boot/initramfs-%s-fallback.img"% kver,"-S","autodetect"])
subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-c","/etc/mkinitcpio.conf","-g","/boot/initramfs-%s.img"% kver])
return
def setupPackage(metapath, filepath):
updateInitrd(filepath)
generateinitrd(filepath)
def cleanupPackage(metapath, filepath):
pass
def postCleanupPackage(metapath, filepath):
pass
@@ -0,0 +1,488 @@
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
@@ -0,0 +1,49 @@
From 4d7fef2176fdd66457e007486bddc24d7ac0f610 Mon Sep 17 00:00:00 2001
From: artoo <artoo@artixlinux.org>
Date: Wed, 6 May 2026 19:45:32 +0200
Subject: [PATCH 1/1] no systemd meson
---
meson.build | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/meson.build b/meson.build
index 46ae333..21172bd 100644
--- a/meson.build
+++ b/meson.build
@@ -66,7 +66,7 @@ else
endif
udevd = find_program('systemd-udevd', 'udevd', dirs: udevd_dirs, required: true)
-tmpfiles = find_program('systemd-tmpfiles', required: want_systemd)
+tmpfiles = find_program('etmpfiles', required: false)
shellcheck = find_program('shellcheck', required: false)
conf_data.set('UDEVD_PATH', udevd.full_path())
@@ -166,14 +166,9 @@ shellcheck_files = [
'install/microcode',
'install/modconf',
'install/resume',
- 'install/sd-encrypt',
- 'install/sd-encrypt-opensc',
- 'install/sd-shutdown',
- 'install/sd-vconsole',
'install/shutdown',
'install/sleep',
'install/strip',
- 'install/systemd',
'install/udev',
'install/usr',
'lsinitcpio',
@@ -222,7 +217,6 @@ subdir('libalpm')
subdir('man')
subdir('mkinitcpio.d')
subdir('shell')
-subdir('systemd')
subdir('test')
subdir('tmpfiles')
subdir('udev')
--
2.54.0
@@ -0,0 +1,39 @@
diff --git a/install/systemd b/install/systemd
index c40f0a02807b..e85a5f6a5e74 100644
--- a/install/systemd
+++ b/install/systemd
@@ -193,9 +193,11 @@ build() {
add_file "/usr/lib/tmpfiles.d/20-systemd-stub.conf"
# add hwdb binaries to the initramfs
- map add_file \
- /usr/lib/udev/hwdb.bin \
- /etc/udev/hwdb.bin
+ for f in /usr/lib/udev/hwdb.bin /etc/udev/hwdb.bin; do
+ if [[ -f "$f" ]]; then
+ add_file "$f"
+ fi
+ done
# Include nvpcr files
for nvpcr in /usr/lib/nvpcr/*.nvpcr; do
diff --git a/install/udev b/install/udev
index 33ed07be7bc9..9e1fb74e7140 100644
--- a/install/udev
+++ b/install/udev
@@ -21,9 +21,11 @@ build() {
'80-drivers.rules'
# add hwdb binaries to the initramfs
- map add_file \
- /usr/lib/udev/hwdb.bin \
- /etc/udev/hwdb.bin
+ for f in /usr/lib/udev/hwdb.bin /etc/udev/hwdb.bin; do
+ if [[ -f "$f" ]]; then
+ add_file "$f"
+ fi
+ done
add_runscript
}
@@ -0,0 +1,221 @@
diff -Nuar mkinitcpio-v41.orig/hooks/meson.build mkinitcpio-v41/hooks/meson.build
--- mkinitcpio-v41.orig/hooks/meson.build 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/hooks/meson.build 2026-05-14 22:53:55.935962384 +0300
@@ -10,6 +10,7 @@
'sleep',
'udev',
'usr',
+ 'plymouth',
]
foreach hook: hooks
diff -Nuar mkinitcpio-v41.orig/hooks/plymouth mkinitcpio-v41/hooks/plymouth
--- mkinitcpio-v41.orig/hooks/plymouth 1970-01-01 02:00:00.000000000 +0200
+++ mkinitcpio-v41/hooks/plymouth 2026-05-14 22:32:24.104992307 +0300
@@ -0,0 +1,22 @@
+run_earlyhook(){
+ # first trigger graphics subsystem
+ udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
+ # first trigger graphics and tty subsystem
+ udevadm trigger --action=add --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
+
+ udevadm settle --timeout=30 2>&1
+
+ /bin/mknod /dev/fb c 29 &>/dev/null
+ /bin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
+}
+
+run_hook() {
+ /bin/plymouth --show-splash
+}
+
+run_latehook(){
+ /bin/plymouth update-root-fs --new-root-dir=/new_root
+}
+
+# vim: set ft=sh:
+
diff -Nuar mkinitcpio-v41.orig/init_functions mkinitcpio-v41/init_functions
--- mkinitcpio-v41.orig/init_functions 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/init_functions 2026-05-14 20:47:27.520167347 +0300
@@ -536,6 +536,8 @@
mount -t sysfs sys /sys -o nosuid,noexec,nodev
mount -t devtmpfs dev /dev -o mode=0755,nosuid
mount -t tmpfs run /run -o nosuid,nodev,mode=0755
+ mkdir -m 0755 /dev/pts
+ mount -t devpts -o gid=5,mode=620 devpts /dev/pts
mkdir -m755 /run/initramfs
if [ -e /sys/firmware/efi ]; then
diff -Nuar mkinitcpio-v41.orig/install/base mkinitcpio-v41/install/base
--- mkinitcpio-v41.orig/install/base 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/base 2026-05-14 22:01:27.047961678 +0300
@@ -16,9 +16,9 @@
add_symlink "/usr/bin/$applet" kmod
done
- add_binary blkid
+ add_binary /sbin/blkid
map add_binary mount umount
- add_binary switch_root
+ add_binary /sbin/switch_root
add_initcpio_binary "init_functions" "/init_functions"
add_initcpio_binary "init" "/init" 755
diff -Nuar mkinitcpio-v41.orig/install/fsck mkinitcpio-v41/install/fsck
--- mkinitcpio-v41.orig/install/fsck 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/fsck 2026-05-14 22:01:55.887960342 +0300
@@ -7,7 +7,7 @@
add_fsck() {
case "$1" in
ext[234])
- add_binary e2fsck
+ add_binary /sbin/e2fsck
add_symlink /usr/bin/fsck.ext2 e2fsck
add_symlink /usr/bin/fsck.ext3 e2fsck
add_symlink /usr/bin/fsck.ext4 e2fsck
@@ -49,7 +49,7 @@
return
fi
- add_binary fsck
+ add_binary /sbin/fsck
}
help() {
diff -Nuar mkinitcpio-v41.orig/install/meson.build mkinitcpio-v41/install/meson.build
--- mkinitcpio-v41.orig/install/meson.build 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/meson.build 2026-05-14 22:54:12.156962008 +0300
@@ -24,6 +24,7 @@
'strip',
'udev',
'usr',
+ 'plymouth',
]
systemd_hooks = [
diff -Nuar mkinitcpio-v41.orig/install/plymouth mkinitcpio-v41/install/plymouth
--- mkinitcpio-v41.orig/install/plymouth 1970-01-01 02:00:00.000000000 +0200
+++ mkinitcpio-v41/install/plymouth 2026-05-14 22:42:32.523978214 +0300
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: GPL-2.0-only
+
+
+build() {
+ add_dir /dev/pts
+ add_dir /usr/share/plymouth/themes
+ add_dir /var/run/plymouth
+
+ DATADIR="/usr/share"
+ PLYMOUTH_LOGO_FILE="${DATADIR}/pixmaps/plymouth-pisilinux.png"
+ PLYMOUTH_THEME_NAME="$(/usr/sbin/plymouth-set-default-theme)"
+ PLYMOUTH_MODULE_NAME="$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')"
+ PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
+
+ add_binary /sbin/plymouthd
+ add_binary /bin/plymouth
+
+ add_file ${DATADIR}/plymouth/themes/text/text.plymouth
+ add_binary ${PLYMOUTH_PLUGIN_PATH}/text.so
+ add_file ${DATADIR}/plymouth/themes/details/details.plymouth
+ add_binary ${PLYMOUTH_PLUGIN_PATH}/details.so
+
+ add_file "${PLYMOUTH_LOGO_FILE}"
+ add_file /etc/pisilinux-release
+ add_file /etc/plymouth/plymouthd.conf
+ add_file ${DATADIR}/plymouth/plymouthd.defaults
+
+ if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
+ echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
+ exit 1
+ fi
+
+ add_binary ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so
+
+ add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so
+ add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so
+
+ if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
+ for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
+ [ ! -f "$x" ] && break
+ add_file $x
+ done
+ fi
+
+
+ # suppress a warning in glib (which the label control uses)
+ # about uid 0 by building a dummy NSS stack (LP #649917)
+ add_file /etc/passwd
+ add_file /etc/nsswitch.conf
+ add_binary "$(readlink -e /lib/libnss_files.so.2)"
+ add_file /lib/libnss_files.so.2
+
+ add_runscript
+}
+
+help() {
+ echo "This hook includes plymouth in the initramfs image."
+}
+
+# vim: set ft=sh:
+#EOF
+
diff -Nuar mkinitcpio-v41.orig/install/udev mkinitcpio-v41/install/udev
--- mkinitcpio-v41.orig/install/udev 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/udev 2026-05-14 22:02:22.933959089 +0300
@@ -1,18 +1,12 @@
#!/bin/bash
build() {
- map add_binary \
- '@UDEVD_PATH@' \
- '/usr/bin/udevadm' \
- '/usr/lib/udev/ata_id' \
- '/usr/lib/udev/scsi_id' \
- '/usr/lib/libkmod.so.2'
+ add_binary /bin/udevadm
+ add_binary /sbin/udevd
+ add_file /lib/udev/ata_id
+ add_file /lib/udev/scsi_id
+ add_file /lib/libkmod.so.2
- # meson-templated path
- # shellcheck disable=SC2157
- if [[ -n '@TMPFILES_PATH@' ]]; then
- add_binary '@TMPFILES_PATH@'
- fi
map add_udev_rule \
'50-udev-default.rules' \
@@ -20,11 +14,6 @@
'64-btrfs.rules' \
'80-drivers.rules'
- # add hwdb binaries to the initramfs
- map add_file \
- /usr/lib/udev/hwdb.bin \
- /etc/udev/hwdb.bin
-
add_runscript
}
diff -Nuar mkinitcpio-v41.orig/meson.build mkinitcpio-v41/meson.build
--- mkinitcpio-v41.orig/meson.build 2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/meson.build 2026-05-14 22:53:03.882963590 +0300
@@ -146,6 +146,7 @@
'hooks/sleep',
'hooks/udev',
'hooks/usr',
+ 'hooks/plymouth',
'init',
'init_functions',
'install/acpi_override',
@@ -175,6 +176,7 @@
'install/strip',
'install/systemd',
'install/udev',
+ 'install/plymouth',
'install/usr',
'lsinitcpio',
'mkinitcpio',
+17 -10
View File
@@ -11,16 +11,16 @@
<License>GPLv2</License>
<Summary>Modular initramfs image creation utility</Summary>
<Description>mkinitcpio is a generic, modular, cross-distribution initramfs generation tool.</Description>
<Archive sha1sum="a1c8794c29b1da0811b5038dbcdb4a0b5d1e05cd" type="targz">https://github.com/archlinux/mkinitcpio/archive/refs/tags/v30.tar.gz</Archive>
<Archive sha1sum="beecaac3b5b5d6fb24cba1dff578c21b06087723" type="tarbz2">https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/archive/v41/mkinitcpio-v41.tar.bz2</Archive>
<BuildDependencies>
<Dependency>asciidoc</Dependency>
<Dependency>libxslt-devel</Dependency>
<Dependency>libarchive-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">nosystemd.patch</Patch>
<Patch level="1">gzip-default.patch</Patch>
<Patch level="1">mount-dev-pts.patch</Patch>
<Patch level="1">v41_pisi.patch</Patch>
<Patch level="1">artix/0001-no-systemd.patch</Patch>
<Patch level="1">artix/0002-no-systemd-meson.patch</Patch>
</Patches>
</Source>
@@ -31,12 +31,12 @@
<Dependency>libarchive</Dependency>
<Dependency>busybox-mkinitcpio</Dependency>
</RuntimeDependencies>
<Conflicts>
<!--Conflicts>
<Package>mkinitramfs</Package>
<Package>initrd</Package>
</Conflicts>
</Conflicts-->
<Files>
<Path fileType="data">/etc/initcpio</Path>
<Path fileType="data">/etc</Path>
<Path fileType="config">/etc/mkinitcpio.conf</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib/initcpio</Path>
@@ -48,7 +48,7 @@
<Path fileType="data">/usr/share/zsh</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/hooks/udev">udev_hook</AdditionalFile>
<!--AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/hooks/udev">udev_hook</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/install/udev">udev_install</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/hooks/lvm2">lvm2_hook</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/install/lvm2">lvm2_install</AdditionalFile>
@@ -63,15 +63,22 @@
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/install/live">live_install</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/udev/11-dm-initramfs.rules">11-dm-initramfs.rules</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/initcpio/udev/69-dm-lvm-metad.rules">69-dm-lvm-metad.rules</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/mkinitcpio.conf">mkinitcpio.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/mkinitcpio.conf">mkinitcpio.conf</AdditionalFile-->
</AdditionalFiles>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
<!--COMAR script="package.py">System.Package</COMAR-->
<COMAR script="pakhandler.py">System.PackageHandler</COMAR>
</Provides>
</Package>
<History>
<Update release="14">
<Date>2026-05-14</Date>
<Version>41</Version>
<Comment>Versio Bump</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnslp@gmail.com</Email>
</Update>
<Update release="13">
<Date>2026-05-14</Date>
<Version>30</Version>