summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2020-10-30 10:29:18 -0400
committerAndrew Cady <d@cryptonomic.net>2020-10-30 10:29:18 -0400
commit5c0b9b1c605858867554bbc9a8e39926e6207f4f (patch)
treef1d4cead480eff380fe7619a7603b9297eee1e5e
parent0e9f78b9b371f3b42c7c8d59f514b66e082fd1a5 (diff)
mkinitramfs: fixes, also allow version specified without arch
-rwxr-xr-xsrc/mkinitramfs-samizdat34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/mkinitramfs-samizdat b/src/mkinitramfs-samizdat
index 4b46ce4..263504a 100755
--- a/src/mkinitramfs-samizdat
+++ b/src/mkinitramfs-samizdat
@@ -11,6 +11,11 @@ loudly()
11 "$@") 11 "$@")
12} 12}
13 13
14deb_arch()
15{
16 dpkg-architecture -q DEB_HOST_ARCH
17}
18
14up_to_date() 19up_to_date()
15{ 20{
16 local found system_initrd 21 local found system_initrd
@@ -23,14 +28,18 @@ up_to_date()
23 [ -z "$found" ] 28 [ -z "$found" ]
24} 29}
25 30
26f() 31build_image()
27{ 32{
28 OUTPUT=/boot/initrd.img-$1${OUTPUT_TAG} 33 OUTPUT=/boot/initrd.img-$1${OUTPUT_TAG}
29 ([ -z "$OUTPUT_TAG" ] || ! up_to_date "$OUTPUT") && 34 # Always regenerate when --system specified.
30 /usr/sbin/mkinitramfs \ 35 # Otherwise, only regenerate if it appears dependencies changed.
31 -d "$samizdat_initramfs_conf_dir" \ 36 if [ -z "$OUTPUT_TAG" ] || ! up_to_date "$OUTPUT"
32 -o "$OUTPUT" \ 37 then
33 -k "$1" || return 38 /usr/sbin/mkinitramfs \
39 -d "$samizdat_initramfs_conf_dir" \
40 -o "$OUTPUT" \
41 -k "$1" || return
42 fi
34 loudly ln -sf "${OUTPUT#/}" /initrd.img 43 loudly ln -sf "${OUTPUT#/}" /initrd.img
35} 44}
36 45
@@ -54,14 +63,19 @@ then
54 then 63 then
55 printf 'Error: No such file: %s\n' "$k" >&2 64 printf 'Error: No such file: %s\n' "$k" >&2
56 fi 65 fi
57 f "$1" || exit 66 build_image "$1" || exit
58 ln -sf "vmlinuz-$1" /vmlinuz 67 ln -sf "vmlinuz-$1" /vmlinuz
59elif [ -L /vmlinuz ] 68elif [ -L /vmlinuz ]
60then 69then
61 l=$(readlink /vmlinuz) 70 l=$(readlink /vmlinuz)
62 v=${l#boot/vmlinuz-} 71 mv=${l#boot/vmlinuz-}
63 [ -e "/boot/vmlinuz-$v" ] || exit 72 for v in "$mv" "$mv-$(deb_arch)"
64 f "$v" 73 do
74 [ -e "/boot/vmlinuz-$v" ] || continue
75 build_image "$v"
76 exit
77 done
78 exit 1
65else 79else
66 printf 'Error: Could not determine kernel version. Create /vmlinuz or specify a version.' >&2 80 printf 'Error: Could not determine kernel version. Create /vmlinuz or specify a version.' >&2
67 exit 1 81 exit 1