summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authordaerich2021-01-24 22:33:52 +0100
committerdaerich2021-01-24 22:33:52 +0100
commit2bbb97f5459d5687cadcb6a54d44b01efa60f9fa (patch)
treecbe92622735558008d1a95c7ceef1f10c62c36e1
downloadaur-2bbb97f5459d5687cadcb6a54d44b01efa60f9fa.tar.gz
Intial Release
-rw-r--r--.SRCINFO19
-rw-r--r--60-dracut-remove.hook10
-rw-r--r--90-dracut-install.hook13
-rw-r--r--PKGBUILD30
-rw-r--r--dracut-install36
-rw-r--r--dracut-remove8
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