diff options
author | Andrew Cady <d@cryptonomic.net> | 2020-10-30 10:29:18 -0400 |
---|---|---|
committer | Andrew Cady <d@cryptonomic.net> | 2020-10-30 10:29:18 -0400 |
commit | 5c0b9b1c605858867554bbc9a8e39926e6207f4f (patch) | |
tree | f1d4cead480eff380fe7619a7603b9297eee1e5e /src/mkinitramfs-samizdat | |
parent | 0e9f78b9b371f3b42c7c8d59f514b66e082fd1a5 (diff) |
mkinitramfs: fixes, also allow version specified without arch
Diffstat (limited to 'src/mkinitramfs-samizdat')
-rwxr-xr-x | src/mkinitramfs-samizdat | 34 |
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 | ||
14 | deb_arch() | ||
15 | { | ||
16 | dpkg-architecture -q DEB_HOST_ARCH | ||
17 | } | ||
18 | |||
14 | up_to_date() | 19 | up_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 | ||
26 | f() | 31 | build_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 |
59 | elif [ -L /vmlinuz ] | 68 | elif [ -L /vmlinuz ] |
60 | then | 69 | then |
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 | ||
65 | else | 79 | else |
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 |