summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Wiesner2021-03-15 15:16:48 +0100
committerSebastian Wiesner2021-03-15 15:16:48 +0100
commit6171bb55441a9ce3d8b57bca5bd1c7c40ddb2f9c (patch)
tree0d960caadb9805e1651f86b4c6f69c401b0ceb87
downloadaur-6171bb55441a9ce3d8b57bca5bd1c7c40ddb2f9c.tar.gz
Rename to publish to AUR
-rw-r--r--.SRCINFO20
-rw-r--r--.gitignore7
-rw-r--r--60-dracut-remove.hook10
-rw-r--r--90-dracut-install.hook13
-rw-r--r--PKGBUILD31
-rwxr-xr-xdracut-install32
-rwxr-xr-xdracut-remove9
7 files changed, 122 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..7848d9e2d150
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,20 @@
+pkgbase = dracut-hook-uefi-systemd
+ pkgdesc = Install/remove hooks for dracut unified kernel images for systemd-boot
+ pkgver = 0.4.3
+ pkgrel = 1
+ url = https://dracut.wiki.kernel.org/index.php/Main_Page
+ arch = any
+ license = BSD
+ depends = dracut
+ conflicts = dracut-hook
+ source = dracut-install
+ source = dracut-remove
+ source = 90-dracut-install.hook
+ source = 60-dracut-remove.hook
+ sha256sums = e2412aa41712627869d67798a4acf586049d4dc2e921bd28637176f639e0d24d
+ sha256sums = 2be20c3d09c57fe9e453fd920aadf38677f6f6702fc0c6bd17f0f411c82575be
+ sha256sums = 492d51df1234b75a32e7dff63c86ee104a7d844a408070e1c4da5dc8ab53be6f
+ sha256sums = 054dac9f1d55029a922ff05c3064e54d25790c7a18d2b598edc58ef3d295cba1
+
+pkgname = dracut-hook-uefi-systemd
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..6748987a3d9d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+pkg
+src
+*.tar.gz
+*.zip
+*.tar.xz
+*.patch
+*.dat.bz2 \ No newline at end of file
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..3f93ebfd4159
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Sebastian Wiesner <sebastian@swsnr.de>
+# Maintainer: Franklyn Tackitt <franklyn@tackitt.net>
+# Maintainer: Kevin Del Castillo <quebin31@gmail.com>
+
+pkgname=dracut-hook-uefi-systemd
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="Install/remove hooks for dracut unified kernel images for systemd-boot"
+url=https://dracut.wiki.kernel.org/index.php/Main_Page
+arch=('any')
+license=('BSD')
+depends=('dracut')
+noextract=()
+conflicts=(dracut-hook)
+source=(
+ "dracut-install"
+ "dracut-remove"
+ "90-dracut-install.hook"
+ "60-dracut-remove.hook"
+)
+sha256sums=('e2412aa41712627869d67798a4acf586049d4dc2e921bd28637176f639e0d24d'
+ '2be20c3d09c57fe9e453fd920aadf38677f6f6702fc0c6bd17f0f411c82575be'
+ '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 100755
index 000000000000..6f5e4e4c70e3
--- /dev/null
+++ b/dracut-install
@@ -0,0 +1,32 @@
+#!/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"
+
+ echo ":: Building unified kernel image for $kernel-$version"
+ dracut -f --uefi --kver "${version}"
+done
diff --git a/dracut-remove b/dracut-remove
new file mode 100755
index 000000000000..8944d1c040d0
--- /dev/null
+++ b/dracut-remove
@@ -0,0 +1,9 @@
+#!/bin/bash -e
+
+efi="$(bootctl -p)"
+while read -r line; do
+ if [[ "$line" == 'usr/lib/modules/'+([^/])'/pkgbase' ]]; then
+ kver="$(basename "$(dirname "${line}")")"
+ rm -v "$efi/EFI/Linux/linux-${kver}-$(cat /etc/machine-id)"-*.efi
+ fi
+done