summaryrefslogtreecommitdiff
path: root/mkinitramfs-kpkg
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2006-02-17 21:43:38 +0100
committermaximilian attems <maks@debian.org>2006-02-17 21:43:38 +0100
commit0d19ff751ee9d9ceb2bf41de2b6fb0c0094a1aaa (patch)
tree6cb3d90482556685a6e96dfa6df9a6469d88113d /mkinitramfs-kpkg
parent785fb28847d8a620625a23aeafdc0fe85ef7adf9 (diff)
downloadinitramfs-tools-0d19ff751ee9d9ceb2bf41de2b6fb0c0094a1aaa.tar.gz
initramfs-tools-0d19ff751ee9d9ceb2bf41de2b6fb0c0094a1aaa.zip
add kernel-package compat stuff, behaves like mkinitramfs and adds
an sha1sum for update-initramfs. is meant for etch release, hope we get rid afterwards. will allow to clean up mkinitramfs from the longoption calls.
Diffstat (limited to 'mkinitramfs-kpkg')
-rw-r--r--mkinitramfs-kpkg94
1 files changed, 94 insertions, 0 deletions
diff --git a/mkinitramfs-kpkg b/mkinitramfs-kpkg
new file mode 100644
index 0000000..d36710a
--- /dev/null
+++ b/mkinitramfs-kpkg
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+STATEDIR=/var/lib/initramfs-tools
+
+usage()
+{
+ cat >&2 << EOF
+
+Usage: ${0} <-o outfile> [version]
+
+Please use update-initramfs(8):
+${0} exists for compatibility by kernel-package(5) calls.
+See ${0}(8) for further details.
+EOF
+ exit 1
+}
+
+OPTIONS=`getopt -o m:o: --long supported-host-version:,supported-target-version: -n "$0" -- "$@"`
+# Check for non-GNU getopt
+if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+
+eval set -- "$OPTIONS"
+
+while true; do
+ case "$1" in
+ -m)
+ # ignore
+ shift 2
+ ;;
+ -o)
+ touch $2
+ outfile="$(readlink -f "$2")"
+ shift 2
+ ;;
+ --supported-host-version)
+ supported_host_version="$2"
+ shift 2
+ ;;
+ --supported-target-version)
+ supported_target_version="$2"
+ shift 2
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ echo "Internal error!" >&2
+ exit 1
+ ;;
+ esac
+done
+
+if [ -n "$supported_host_version" ] || [ -n "$supported_target_version" ]; then
+ if [ -n "$supported_host_version" ]; then
+ host_upstream_version="${supported_host_version%%-*}"
+ fi
+ if [ -n "$supported_target_version" ]; then
+ target_upstream_version="${supported_target_version%%-*}"
+ if dpkg --compare-versions "$target_upstream_version" lt "2.6.12"; then
+ exit 2
+ fi
+ fi
+ exit 0
+fi
+
+
+if [ -z "${outfile}" ]; then
+ usage
+fi
+
+# And by "version" we really mean path to kernel modules
+# This is braindead, and exists to preserve the interface with mkinitrd
+version="${1}"
+
+case "${version}" in
+/lib/modules/*/[!/]*)
+ ;;
+/lib/modules/[!/]*)
+ version="${version#/lib/modules/}"
+ version="${version%%/*}"
+ ;;
+esac
+
+case "${version}" in
+*/*)
+ echo "$PROG: ${version} is not a valid kernel version" >&2
+ exit 1
+ ;;
+esac
+
+# linux-image installs latest version
+mkinitramfs -o ${outfile} ${version}
+sha1sum "${outfile}" | sed -e 's/\.new//' > "${STATEDIR}/${version}"