diff options
author | daerich | 2021-01-24 22:33:52 +0100 |
---|---|---|
committer | daerich | 2021-01-24 22:33:52 +0100 |
commit | 2bbb97f5459d5687cadcb6a54d44b01efa60f9fa (patch) | |
tree | cbe92622735558008d1a95c7ceef1f10c62c36e1 | |
download | aur-2bbb97f5459d5687cadcb6a54d44b01efa60f9fa.tar.gz |
Intial Release
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | 60-dracut-remove.hook | 10 | ||||
-rw-r--r-- | 90-dracut-install.hook | 13 | ||||
-rw-r--r-- | PKGBUILD | 30 | ||||
-rw-r--r-- | dracut-install | 36 | ||||
-rw-r--r-- | dracut-remove | 8 |
6 files changed, 116 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..48f0b15cee84 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = dracut-hook-no-microcode + pkgdesc = Install/remove hooks for dracut - no microcode convenience package + pkgver = 0.4.2 + pkgrel = 1 + url = https://dracut.wiki.kernel.org/index.php/Main_Page + arch = any + license = BSD + depends = dracut + source = dracut-install + source = dracut-remove + source = 90-dracut-install.hook + source = 60-dracut-remove.hook + sha256sums = 67d621885648f8cd4f752fe48ede33564dc9acfa373adeeeacaba2b79c07514b + sha256sums = 25409770cdf9607eb05addcbc0f89f45a91385c25b8a307425d4b3f4b7c2a9ef + sha256sums = 492d51df1234b75a32e7dff63c86ee104a7d844a408070e1c4da5dc8ab53be6f + sha256sums = 054dac9f1d55029a922ff05c3064e54d25790c7a18d2b598edc58ef3d295cba1 + +pkgname = dracut-hook-no-microcode + diff --git a/60-dracut-remove.hook b/60-dracut-remove.hook new file mode 100644 index 000000000000..80a9c1e4985e --- /dev/null +++ b/60-dracut-remove.hook @@ -0,0 +1,10 @@ +[Trigger] +Type = Path +Operation = Remove +Target = usr/lib/modules/*/pkgbase + +[Action] +Description = Removing linux initcpios... +When = PreTransaction +Exec = /usr/share/libalpm/scripts/dracut-remove +NeedsTargets diff --git a/90-dracut-install.hook b/90-dracut-install.hook new file mode 100644 index 000000000000..d00ed2fdb4b5 --- /dev/null +++ b/90-dracut-install.hook @@ -0,0 +1,13 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Target = usr/lib/modules/*/pkgbase +Target = usr/lib/dracut/* +Target = usr/lib/systemd/systemd + +[Action] +Description = Updating linux initcpios... +When = PostTransaction +Exec = /usr/share/libalpm/scripts/dracut-install +NeedsTargets diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6f87a6015c11 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,30 @@ +# Maintainer: daerich <daerich.users.sourceforge.net> +# Contributor: Franklyn Tackitt <franklyn@tackitt.net> +# Contributor: Kevin Del Castillo <quebin31@gmail.com> + +pkgname=dracut-hook-no-microcode +pkgver=0.4.2 +pkgrel=1 +pkgdesc="Install/remove hooks for dracut - no microcode convenience package" +url=https://dracut.wiki.kernel.org/index.php/Main_Page +arch=('any') +license=('BSD') +depends=('dracut') +noextract=() +source=( + "dracut-install" + "dracut-remove" + "90-dracut-install.hook" + "60-dracut-remove.hook" +) +sha256sums=('67d621885648f8cd4f752fe48ede33564dc9acfa373adeeeacaba2b79c07514b' + '25409770cdf9607eb05addcbc0f89f45a91385c25b8a307425d4b3f4b7c2a9ef' + '492d51df1234b75a32e7dff63c86ee104a7d844a408070e1c4da5dc8ab53be6f' + '054dac9f1d55029a922ff05c3064e54d25790c7a18d2b598edc58ef3d295cba1') + +package() { + install -Dm644 "${srcdir}/90-dracut-install.hook" "${pkgdir}/usr/share/libalpm/hooks/90-dracut-install.hook" + install -Dm644 "${srcdir}/60-dracut-remove.hook" "${pkgdir}/usr/share/libalpm/hooks/60-dracut-remove.hook" + install -Dm755 "${srcdir}/dracut-install" "${pkgdir}/usr/share/libalpm/scripts/dracut-install" + install -Dm755 "${srcdir}/dracut-remove" "${pkgdir}/usr/share/libalpm/scripts/dracut-remove" +} diff --git a/dracut-install b/dracut-install new file mode 100644 index 000000000000..01fd09217754 --- /dev/null +++ b/dracut-install @@ -0,0 +1,36 @@ +#!/bin/bash -e + +kernels=() +dracut_update=0 + +while read -r line; do + if [[ $line != 'usr/lib/modules/'+([^/])'/pkgbase' ]]; then + dracut_update=1 # Dracut files have been updated + continue + fi + + read -r pkgbase < "/${line}" + kernels+=("${pkgbase}") +done + +if (( dracut_update )); then + kernels=() + for file in /lib/modules/*/pkgbase; do + if read -r pkgbase &> /dev/null < "$file"; then + kernels+=("${pkgbase}") + fi + done +fi + +for kernel in "${kernels[@]}"; do + path="$(grep -lE "^${kernel}\$" /usr/lib/modules/*/pkgbase)" + version=$(basename "${path%/pkgbase}") + read -r pkgbase < "$path" + + install -Dm0644 "/${path%'/pkgbase'}/vmlinuz" "/boot/vmlinuz-${pkgbase}" + + echo ":: Building initramfs for $kernel-$version" + dracut -f --hostonly --no-early-microcode --no-hostonly-cmdline "/boot/initramfs-${kernel}.img" --kver "${version}" #Exclude microcode added explicit flag + echo ":: Building fallback initramfs for $kernel-$version" + dracut -f --no-hostonly --no-early-microcode "/boot/initramfs-${kernel}-fallback.img" --kver "${version}" #Exclude microcode +done diff --git a/dracut-remove b/dracut-remove new file mode 100644 index 000000000000..af350c7f6df6 --- /dev/null +++ b/dracut-remove @@ -0,0 +1,8 @@ +#!/bin/bash -e + +while read -r line; do + if [[ "$line" == 'usr/lib/modules/'+([^/])'/pkgbase' ]]; then + read -r pkgbase < "/${line}" + rm -f "/boot/vmlinuz-${pkgbase}" "/boot/initramfs-${pkgbase}.img" "/boot/initramfs-${pkgbase}-fallback.img" + fi +done |