summaryrefslogtreecommitdiff
path: root/source/a/mkinitrd/setup.01.mkinitrd
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2019-03-03 22:03:39 +0000
committerEric Hameleers <alien@slackware.com>2019-03-04 08:59:47 +0100
commit3b234388a5f545f071422864e1a274ba45a696a0 (patch)
treef37b678ba513e480f69334f445c0fe35ec4bb925 /source/a/mkinitrd/setup.01.mkinitrd
parentd26b7f6e82486c7fe02690ce5706b0660867c70b (diff)
downloadcurrent-3b234388a5f545f071422864e1a274ba45a696a0.tar.gz
Sun Mar 3 22:03:39 UTC 201920190303220339
a/mkinitrd-1.4.11-x86_64-12.txz: Rebuilt. Updated to busybox-1.30.1. mkinitrd: allow a colon-delimited list of kernel versions with -k mkinitrd_command_generator.sh: allow a colon-delimited list of kernel versions with -k setup.01.mkinitrd: simplify script by using -k with a version list ap/pamixer-1.4-x86_64-1.txz: Upgraded. d/python-2.7.16-x86_64-1.txz: Upgraded. Updated to the latest 2.7.x release, which fixes a few security issues. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1752 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5010 (* Security fix *) d/vala-0.42.6-x86_64-1.txz: Upgraded. l/gegl-0.4.14-x86_64-1.txz: Upgraded. l/libsecret-0.18.8-x86_64-1.txz: Upgraded. l/xapian-core-1.4.11-x86_64-1.txz: Upgraded. x/mkfontscale-1.2.0-x86_64-1.txz: Upgraded. x/xditview-1.0.5-x86_64-1.txz: Upgraded. x/xdm-1.1.12-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/a/mkinitrd/setup.01.mkinitrd')
-rw-r--r--source/a/mkinitrd/setup.01.mkinitrd76
1 files changed, 22 insertions, 54 deletions
diff --git a/source/a/mkinitrd/setup.01.mkinitrd b/source/a/mkinitrd/setup.01.mkinitrd
index 8bddb5c5..31e87144 100644
--- a/source/a/mkinitrd/setup.01.mkinitrd
+++ b/source/a/mkinitrd/setup.01.mkinitrd
@@ -1,69 +1,37 @@
#!/bin/sh
#BLURB="Generate /boot/initrd.gz for the generic kernel"
-# First, clear the existing initrd-tree:
-if [ -f $(readlink -f boot/vmlinuz-generic) -o -f $(readlink -f boot/vmlinuz-generic-smp) ]; then
- rm -rf boot/initrd-tree
+# Start with the version for vmlinuz-generic-smp:
+KERNEL_SYMLINK="boot/vmlinuz-generic-smp"
+if [ -L $KERNEL_SYMLINK ]; then
+ KERNEL_VERSION_LIST=$(strings $KERNEL_SYMLINK | grep '([^ ]*@[^ ]*) #' | cut -f1 -d' ')
fi
-# Next, if boot/vmlinuz-generic is a symlink to a kernel, generate a ramdisk
-# using the modules for that kernel:
+# Next add the version for vmlinuz-generic:
KERNEL_SYMLINK="boot/vmlinuz-generic"
if [ -L $KERNEL_SYMLINK ]; then
- KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
- # Sanity check. Not sure how/why, but there are reports we can arrive here
- # without a $KERNEL_VERSION. The only way I see how is if the symlink were
- # pointing to file with a malformed name
- # (i.e. not ${KERNEL_SYMLINK}-${KERNEL_VERSION}).
- # If ${KERNEL_VERSION} is blank, we'll bail out here.
- # Any information on known cases that might cause this would be appreciated.
- if [ ! "$KERNEL_VERSION" = "" ]; then
- dialog --title "GENERATING INITIAL RAMDISK" --infobox \
- "Generating an initial ramdisk for use with the $KERNEL_VERSION generic \
-kernel. The initial ramdisk contains kernel modules needed to mount the \
-root partition, and must be regenerated whenever the kernel is updated. To \
-regenerate the initrd, select this setup script from within pkgtool, or run \
-'geninitrd' which will produce an initial ramdisk (/boot/initrd.gz) for the \
-kernel pointed to by the /$KERNEL_SYMLINK symlink." 9 68
- chroot . /usr/share/mkinitrd/mkinitrd_command_generator.sh -k $KERNEL_VERSION | sed "s/-c -k/-k/g" | chroot . bash 1> /dev/null 2> /dev/null
+ if [ -z $KERNEL_VERSION_LIST ]; then
+ KERNEL_VERSION_LIST=$(strings $KERNEL_SYMLINK | grep '([^ ]*@[^ ]*) #' | cut -f1 -d' ')
else
- dialog --title "INTERNAL ERROR" --msgbox \
- "An internal error was detected. Please report the following information: \n\
-KERNEL_SYMLINK = $KERNEL_SYMLINK \n\
-KERNEL_SYMLINK (points to) = $(readlink -f $KERNEL_SYMLINK) \n\
-KERNEL_VERSION (is blank) \n\
-ls -l \$KERNEL_SYMLINK: \n\
-$(ls -l $KERNEL_SYMLINK)" 0 0
+ KERNEL_VERSION_LIST="$KERNEL_VERSION_LIST:$(strings $KERNEL_SYMLINK | grep '([^ ]*@[^ ]*) #' | cut -f1 -d' ')"
fi
fi
-# If boot/vmlinuz-generic-smp is a symlink to a kernel, also include the
-# modules for that kernel:
-KERNEL_SYMLINK="boot/vmlinuz-generic-smp"
-if [ -L $KERNEL_SYMLINK ]; then
- KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
- # Sanity check. Not sure how/why, but there are reports we can arrive here
- # without a $KERNEL_VERSION. The only way I see how is if the symlink were
- # pointing to file with a malformed name
- # (i.e. not ${KERNEL_SYMLINK}-${KERNEL_VERSION}).
- # If ${KERNEL_VERSION} is blank, we'll bail out here.
- # Any information on known cases that might cause this would be appreciated.
- if [ ! "$KERNEL_VERSION" = "" ]; then
- dialog --title "GENERATING INITIAL RAMDISK" --infobox \
- "Generating an initial ramdisk for use with the $KERNEL_VERSION generic \
-kernel. The initial ramdisk contains kernel modules needed to mount the \
+# Proper plural(s):
+if echo $KERNEL_VERSION_LIST | grep -q : ; then
+ KERNEL=kernels
+else
+ KERNEL=kernel
+fi
+
+# Generate the initrd:
+if [ ! -z $KERNEL_VERSION_LIST ]; then
+ dialog --title "GENERATING INITIAL RAMDISK" --infobox \
+ "Generating an initial ramdisk for use with the $KERNEL_VERSION_LIST generic \
+${KERNEL}. The initial ramdisk contains kernel modules needed to mount the \
root partition, and must be regenerated whenever the kernel is updated. To \
regenerate the initrd, select this setup script from within pkgtool, or run \
'geninitrd' which will produce an initial ramdisk (/boot/initrd.gz) for the \
-kernel pointed to by the /$KERNEL_SYMLINK symlink." 9 68
- chroot . /usr/share/mkinitrd/mkinitrd_command_generator.sh -k $KERNEL_VERSION | sed "s/-c -k/-k/g" | chroot . bash 1> /dev/null 2> /dev/null
- else
- dialog --title "INTERNAL ERROR" --msgbox \
- "An internal error was detected. Please report the following information: \n\
-KERNEL_SYMLINK = $KERNEL_SYMLINK \n\
-KERNEL_SYMLINK (points to) = $(readlink -f $KERNEL_SYMLINK) \n\
-KERNEL_VERSION (is blank) \n\
-ls -l \$KERNEL_SYMLINK: \n\
-$(ls -l $KERNEL_SYMLINK)" 0 0
- fi
+installed generic ${KERNEL}." 9 68
+ chroot . /usr/share/mkinitrd/mkinitrd_command_generator.sh -k $KERNEL_VERSION_LIST | chroot . bash 1> /dev/null 2> /dev/null
fi