summaryrefslogtreecommitdiff
path: root/source/a/mkinitrd
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2019-01-23 22:02:34 +0000
committerEric Hameleers <alien@slackware.com>2019-01-24 08:59:49 +0100
commit7ad185bd2d8fe579a2a8f288a911298e9b022c39 (patch)
treea8cbf78fcc324729395ad16b52022366dfcde01c /source/a/mkinitrd
parentf4a16dfaa3822cd84790612cfb5f6794e7397ea1 (diff)
downloadcurrent-7ad185bd2d8fe579a2a8f288a911298e9b022c39.tar.gz
Wed Jan 23 22:02:34 UTC 201920190123220234
a/bash-5.0.002-x86_64-2.txz: Rebuilt. Rebuilt with --libdir=/usr/lib${LIBDIRSUFFIX}. Thanks to RandomTroll. a/btrfs-progs-4.20.1-x86_64-1.txz: Upgraded. a/mkinitrd-1.4.11-x86_64-9.txz: Rebuilt. Automatically generate an initial ramdisk from the installer. Added 'geninitrd' script to generate an initial ramdisk for the kernel that /boot/vmlinuz-generic (and/or /boot/vmlinuz-generic-smp) points to. ap/man-db-2.8.5-x86_64-2.txz: Rebuilt. Comment out all the options in /etc/profile.d/man-db.{csh,sh} and let the user decide whether or not to choose anything. d/python-pip-19.0.1-x86_64-1.txz: Upgraded. l/mozilla-nss-3.41.1-x86_64-1.txz: Upgraded. n/dhcpcd-7.1.0-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/a/mkinitrd')
-rw-r--r--source/a/mkinitrd/geninitrd33
-rw-r--r--[-rwxr-xr-x]source/a/mkinitrd/init0
-rwxr-xr-xsource/a/mkinitrd/mkinitrd.SlackBuild12
-rw-r--r--source/a/mkinitrd/setup.01.mkinitrd38
4 files changed, 82 insertions, 1 deletions
diff --git a/source/a/mkinitrd/geninitrd b/source/a/mkinitrd/geninitrd
new file mode 100644
index 00000000..db7995ab
--- /dev/null
+++ b/source/a/mkinitrd/geninitrd
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This is a simple script to regenerate the initial ramdisk when a new
+# kernel is installed. It will generate /boot/initrd.gz which will be
+# suitable for *most* uses for whatever kernel is linked to the
+# /boot/vmlinuz-generic (or /boot/vmlinuz-generic-smp) symlink. The
+# linked kernel must be named properly with the kernel version in the
+# filename (the same naming scheme as the kernels shipped in Slackware).
+#
+# If you use an encrypted root, you'll need to make your initrd manually.
+
+cd $(dirname $0)/../..
+chroot . /var/lib/pkgtools/setup/setup.01.mkinitrd
diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init
index 7e238ac6..7e238ac6 100755..100644
--- a/source/a/mkinitrd/init
+++ b/source/a/mkinitrd/init
diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild
index 7538dbd1..38ea9485 100755
--- a/source/a/mkinitrd/mkinitrd.SlackBuild
+++ b/source/a/mkinitrd/mkinitrd.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mkinitrd
VERSION=${VERSION:-1.4.11}
BB=1.28.3
-BUILD=${BUILD:-8}
+BUILD=${BUILD:-9}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -120,6 +120,16 @@ cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz
cat $CWD/mkinitrd.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd.8.gz
cat $CWD/mkinitrd_command_generator.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd_command_generator.8.gz
+mkdir -p $PKG/var/lib/pkgtools/setup
+cp -a $CWD/setup.01.mkinitrd $PKG/var/lib/pkgtools/setup
+chown root:root $PKG/var/lib/pkgtools/setup/setup.01.mkinitrd
+chmod 755 $PKG/var/lib/pkgtools/setup/setup.01.mkinitrd
+
+mkdir -p $PKG/usr/sbin
+cp -a $CWD/geninitrd $PKG/usr/sbin
+chown root:root $PKG/usr/sbin/geninitrd
+chmod 755 $PKG/usr/sbin/geninitrd
+
mkdir -p $PKG/etc
cp -a $CWD/mkinitrd.conf.sample $PKG/etc/mkinitrd.conf.sample
# ARM systems often need more time to find devices:
diff --git a/source/a/mkinitrd/setup.01.mkinitrd b/source/a/mkinitrd/setup.01.mkinitrd
new file mode 100644
index 00000000..b8004470
--- /dev/null
+++ b/source/a/mkinitrd/setup.01.mkinitrd
@@ -0,0 +1,38 @@
+#!/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
+fi
+
+# Next, if boot/vmlinuz-generic is a symlink to a kernel, generate a ramdisk
+# using the modules for that kernel:
+if [ -f $(readlink -f boot/vmlinuz-generic) ]; then
+ KERNEL_SYMLINK="boot/vmlinuz-generic"
+ KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
+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
+fi
+
+# If boot/vmlinuz-generic-smp is a symlink to a kernel, also include the
+# modules for that kernel:
+if [ -f $(readlink -f boot/vmlinuz-generic-smp) ]; then
+ KERNEL_SYMLINK="boot/vmlinuz-generic-smp"
+ KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
+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
+fi
+