summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Shatunov2023-02-14 01:10:10 +0800
committerSergey Shatunov2023-02-14 01:10:10 +0800
commitffdd8eb62b94aebb49fe824533e6a8283db6f949 (patch)
tree1b614572b8089a35becac0a38cab33900e12293f
parentd92e148c127ed7c44e5fe7b1b2313fd8afc782d5 (diff)
downloadaur-dracut-uefi-hook.tar.gz
Ensure ESP is mounted before upgrade
-rw-r--r--.SRCINFO6
-rw-r--r--10-dracut-uefi-pre-install.hook16
-rw-r--r--PKGBUILD14
-rwxr-xr-x[-rw-r--r--]dracut-uefi-install0
-rwxr-xr-xdracut-uefi-pre-install7
-rwxr-xr-x[-rw-r--r--]dracut-uefi-remove0
6 files changed, 38 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a3e6fbac03d2..70a1f51d74d7 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = dracut-uefi-hook
pkgdesc = Install/update/removal hooks for dracut unifed uefi image generation
- pkgver = 6
+ pkgver = 7
pkgrel = 1
url = https://aur.archlinux.org/packages/dracut-uefi-hook/
arch = any
@@ -12,13 +12,17 @@ pkgbase = dracut-uefi-hook
provides = dracut-hook
conflicts = dracut-hook-uefi
backup = etc/dracut-uefi-hook.conf
+ source = 10-dracut-uefi-pre-install.hook
source = 90-dracut-uefi-install.hook
source = 60-dracut-uefi-remove.hook
+ source = dracut-uefi-pre-install
source = dracut-uefi-install
source = dracut-uefi-remove
source = dracut-uefi-hook.conf
+ sha256sums = 757c1df6fae821ce9efb3fcc6f710951486042d9b1d993eccdfd9cf6cb491bf3
sha256sums = 7c6aae6a733582fd16852e949565493bb6af1a555ab755f1bf86b136df74244c
sha256sums = e2a04362ed1b0d462a33444921c5e15e4a82ed34f9848b4fbad554e51fd10207
+ sha256sums = 0d22ae4428965a65b2d392d8b71486ad591c81f760c929ce15e7f2c908afe875
sha256sums = eaafe8afd0727b24861d4f98702294d9ab8c0658f5d62c24aa3858b4b7e892dd
sha256sums = 8af469ab5647cd15c9370b4c44af422df99887105aca30531c0d4c7b92889f9d
sha256sums = 86a65fe822bff87a51e7fece85159a62a77a8f71f015d6400f6693d44dba9464
diff --git a/10-dracut-uefi-pre-install.hook b/10-dracut-uefi-pre-install.hook
new file mode 100644
index 000000000000..7e6f75e0a4c3
--- /dev/null
+++ b/10-dracut-uefi-pre-install.hook
@@ -0,0 +1,16 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Target = usr/lib/modules/*/pkgbase
+Target = usr/lib/dracut/*
+Target = usr/lib/systemd/systemd
+Target = usr/lib/systemd/boot/efi/*.efi.stub
+Target = usr/share/libalpm/hooks/90-dracut-uefi-install.hook
+Target = usr/share/libalpm/scripts/dracut-uefi-install
+Target = usr/src/*/dkms.conf
+
+[Action]
+Description = Ensure ESP is mounted...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/dracut-uefi-pre-install
diff --git a/PKGBUILD b/PKGBUILD
index f9f5b642da13..cd8cee2d73fa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,20 +1,24 @@
# Maintainer: Sergey Shatunov <me@prok.pw>
pkgname=dracut-uefi-hook
-pkgver=6
+pkgver=7
pkgrel=1
pkgdesc="Install/update/removal hooks for dracut unifed uefi image generation"
url="https://aur.archlinux.org/packages/dracut-uefi-hook/"
arch=(any)
license=('MIT')
depends=(dracut systemd binutils util-linux)
-source=('90-dracut-uefi-install.hook'
+source=('10-dracut-uefi-pre-install.hook'
+ '90-dracut-uefi-install.hook'
'60-dracut-uefi-remove.hook'
+ 'dracut-uefi-pre-install'
'dracut-uefi-install'
'dracut-uefi-remove'
'dracut-uefi-hook.conf')
-sha256sums=('7c6aae6a733582fd16852e949565493bb6af1a555ab755f1bf86b136df74244c'
+sha256sums=('757c1df6fae821ce9efb3fcc6f710951486042d9b1d993eccdfd9cf6cb491bf3'
+ '7c6aae6a733582fd16852e949565493bb6af1a555ab755f1bf86b136df74244c'
'e2a04362ed1b0d462a33444921c5e15e4a82ed34f9848b4fbad554e51fd10207'
+ '0d22ae4428965a65b2d392d8b71486ad591c81f760c929ce15e7f2c908afe875'
'eaafe8afd0727b24861d4f98702294d9ab8c0658f5d62c24aa3858b4b7e892dd'
'8af469ab5647cd15c9370b4c44af422df99887105aca30531c0d4c7b92889f9d'
'86a65fe822bff87a51e7fece85159a62a77a8f71f015d6400f6693d44dba9464')
@@ -23,9 +27,11 @@ provides=(dracut-hook)
conflicts=(dracut-hook-uefi)
package() {
- install -Dm644 "${srcdir}/90-dracut-uefi-install.hook" "${pkgdir}/usr/share/libalpm/hooks/90-dracut-uefi-install.hook"
+ install -Dm644 "${srcdir}/10-dracut-uefi-pre-install.hook" "${pkgdir}/usr/share/libalpm/hooks/10-dracut-uefi-pre-install.hook"
install -Dm644 "${srcdir}/60-dracut-uefi-remove.hook" "${pkgdir}/usr/share/libalpm/hooks/60-dracut-uefi-remove.hook"
+ install -Dm644 "${srcdir}/90-dracut-uefi-install.hook" "${pkgdir}/usr/share/libalpm/hooks/90-dracut-uefi-install.hook"
install -Dm755 "${srcdir}/dracut-uefi-install" "${pkgdir}/usr/share/libalpm/scripts/dracut-uefi-install"
install -Dm755 "${srcdir}/dracut-uefi-remove" "${pkgdir}/usr/share/libalpm/scripts/dracut-uefi-remove"
+ install -Dm755 "${srcdir}/dracut-uefi-pre-install" "${pkgdir}/usr/share/libalpm/scripts/dracut-uefi-pre-install"
install -Dm644 "${srcdir}/dracut-uefi-hook.conf" "${pkgdir}/etc/dracut-uefi-hook.conf"
}
diff --git a/dracut-uefi-install b/dracut-uefi-install
index f1f2429e1983..f1f2429e1983 100644..100755
--- a/dracut-uefi-install
+++ b/dracut-uefi-install
diff --git a/dracut-uefi-pre-install b/dracut-uefi-pre-install
new file mode 100755
index 000000000000..d097b839b868
--- /dev/null
+++ b/dracut-uefi-pre-install
@@ -0,0 +1,7 @@
+#!/bin/bash -e
+
+ESP_PATH=$(bootctl --print-esp-path)
+
+# Trigger some IO on ESP path to be sure it's mounted by autofs if it's the case
+# Otherwise upgrading systemd may cause ESP partition not mounted at the time dracut attempt to write new image
+stat "$ESP_PATH" >/dev/null
diff --git a/dracut-uefi-remove b/dracut-uefi-remove
index def8722bb0e6..def8722bb0e6 100644..100755
--- a/dracut-uefi-remove
+++ b/dracut-uefi-remove