[arch-commits] Commit in mkinitcpio/trunk (2 files)

Giancarlo Razzolini grazzolini at archlinux.org
Wed Nov 6 20:33:27 UTC 2019


    Date: Wednesday, November 6, 2019 @ 20:33:27
  Author: grazzolini
Revision: 366885

upgpkg: mkinitcpio 27-2

Added a hotfix for saving presets that were changed.

Added:
  mkinitcpio/trunk/0001-mkinitcpio-remove-preset-pacsave.patch
Modified:
  mkinitcpio/trunk/PKGBUILD

---------------------------------------------+
 0001-mkinitcpio-remove-preset-pacsave.patch |   59 ++++++++++++++++++++++++++
 PKGBUILD                                    |   18 +++++--
 2 files changed, 72 insertions(+), 5 deletions(-)

Added: 0001-mkinitcpio-remove-preset-pacsave.patch
===================================================================
--- 0001-mkinitcpio-remove-preset-pacsave.patch	                        (rev 0)
+++ 0001-mkinitcpio-remove-preset-pacsave.patch	2019-11-06 20:33:27 UTC (rev 366885)
@@ -0,0 +1,59 @@
+diff --git a/libalpm/scripts/mkinitcpio-remove b/libalpm/scripts/mkinitcpio-remove
+index 86838e4..17b4b31 100644
+--- a/libalpm/scripts/mkinitcpio-remove
++++ b/libalpm/scripts/mkinitcpio-remove
+@@ -2,6 +2,20 @@
+ 
+ package=0
+ 
++process_preset() {
++    if [[ -n "${pkgbase}" && -e $preset ]]; then
++        if ! cmp $preset > /dev/null 2>&1 <(sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset); then
++            if [[ ! -e $preset.pacsave ]]; then
++                # save the preset as pacsave
++                mv $preset $preset.pacsave && return 0
++            fi
++        else
++            # remove the preset
++            rm $preset && return 0
++        fi
++    fi
++}
++
+ while read -r line; do
+     if [[ $line != */vmlinuz ]]; then
+         # triggers when it's a change to usr/lib/initcpio/*
+@@ -23,17 +37,25 @@ while read -r line; do
+         # remove the installed kernel
+         rm $kernel
+     fi
+-    if [[ -e $preset ]]; then
+-        # remove the preset
+-        rm $preset
++
++    process_preset "${pkgbase}" $preset
++
++    if [[ -e $initramfs ]]; then
++        # remove the main image
++        rm $initramfs
+     fi
+-    if [[ -e $initramfs && -e $fallback_initramfs ]]; then
+-        # remove the images
+-        rm $initramfs $fallback_initramfs
++    if [[ -e $fallback_initramfs ]]; then
++        # remove the fallback image
++        rm $fallback_initramfs
+     fi
+ done
+ 
+ if (( package )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then
+-    # remove all presets
+-    rm /etc/mkinitcpio.d/*.preset
++    shopt -s nullglob
++    for preset in /etc/mkinitcpio.d/*.preset; do
++        pkgbase=${preset##*/}
++        pkgbase=${pkgbase%.preset}
++        process_preset "${pkgbase}" $preset
++    done
++    shopt -u nullglob
+ fi

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-11-06 19:53:37 UTC (rev 366884)
+++ PKGBUILD	2019-11-06 20:33:27 UTC (rev 366885)
@@ -4,13 +4,13 @@
 
 pkgname=mkinitcpio
 pkgver=27
-pkgrel=1
+pkgrel=2
 pkgdesc="Modular initramfs image creation utility"
 arch=('any')
 url="https://projects.archlinux.org/mkinitcpio.git/"
 license=('GPL')
-depends=('awk' 'mkinitcpio-busybox>=1.19.4-2' 'kmod' 'util-linux>=2.23' 'libarchive'
-         'coreutils' 'bash' 'findutils' 'grep' 'filesystem>=2011.10-1' 'gzip' 'systemd')
+depends=('awk' 'mkinitcpio-busybox>=1.19.4-2' 'kmod' 'util-linux>=2.23' 'libarchive' 'coreutils'
+         'bash' 'diffutils' 'findutils' 'grep' 'filesystem>=2011.10-1' 'gzip' 'systemd')
 optdepends=('xz: Use lzma or xz compression for the initramfs image'
             'bzip2: Use bzip2 compression for the initramfs image'
             'lzop: Use lzo compression for the initramfs image'
@@ -18,14 +18,22 @@
             'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
 provides=('initramfs')
 backup=('etc/mkinitcpio.conf')
-source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
+source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig}
+        "0001-mkinitcpio-remove-preset-pacsave.patch")
 install=mkinitcpio.install
 sha256sums=('e6bff1cb78b677538eb9aace900b715fd59de8fc210b74fb9d899dfaa32bc354'
-            'SKIP')
+            'SKIP'
+            '845569fa760f70c868ecb3dc8ae9667287970526dddaf403fdafcb716e8b3d51')
 validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53'   # Dave Reisner
               '86CFFCA918CF3AF47147588051E8B148A9999C34'   # Evangelos Foutras
               'ECCAC84C1BA08A6CC8E63FBBF22FB1D78A77AEAB')  # Giancarlo Razzolini
 
+prepare() {
+  cd $pkgname-$pkgver
+  # Apply 0001-mkinitcpio-remove-preset-pacsave.patch
+  patch -Np1 < $srcdir/0001-mkinitcpio-remove-preset-pacsave.patch
+}
+
 check() {
   make -C "$pkgname-$pkgver" check
 }



More information about the arch-commits mailing list