From 47964291693dfba44143431da5eefd00717e005b Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Sat, 7 Dec 2019 00:22:04 +0000 Subject: Sat Dec 7 00:22:04 UTC 2019 a/aaa_terminfo-6.1_20191130-x86_64-1.txz: Upgraded. a/shadow-4.8-x86_64-1.txz: Upgraded. d/mercurial-5.2.1-x86_64-1.txz: Upgraded. l/mozilla-nss-3.48-x86_64-1.txz: Upgraded. Upgraded to nss-3.48 and nspr-4.24. l/ncurses-6.1_20191130-x86_64-1.txz: Upgraded. x/libglvnd-1.3.0-x86_64-1.txz: Upgraded. xap/xlockmore-5.60-x86_64-1.txz: Upgraded. extra/bash-completion/bash-completion-2.10-noarch-1.txz: Upgraded. --- source/installer/ChangeLog.txt | 6 ++ source/installer/build_installer.sh | 2 +- source/installer/repack_installer.SlackBuild | 136 +++++++++++++++++++++++++++ 3 files changed, 143 insertions(+), 1 deletion(-) create mode 100755 source/installer/repack_installer.SlackBuild (limited to 'source/installer') diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt index 7e28004c..db57f3ef 100644 --- a/source/installer/ChangeLog.txt +++ b/source/installer/ChangeLog.txt @@ -1,3 +1,9 @@ +Fri Dec 6 20:16:45 UTC 2019 + repack_installer.SlackBuild: Added. + This repacks the installer from the tree found under + $TMP/build-slackware-installer, allowing changes to be made and tested. + build_installer.sh: Trivial typo fix - add a space in a comment. ++--------------------------+ Sat Nov 30 21:01:01 UTC 2019 Use $NUMJOBS with busybox make install. +--------------------------+ diff --git a/source/installer/build_installer.sh b/source/installer/build_installer.sh index 30c289b8..e980207a 100755 --- a/source/installer/build_installer.sh +++ b/source/installer/build_installer.sh @@ -1911,7 +1911,7 @@ sync umount ${CWD}/usbmount syslinux ${CWD}/usbboot.img -#Clean up: +# Clean up: rm -rf ${CWD}/usbmount } diff --git a/source/installer/repack_installer.SlackBuild b/source/installer/repack_installer.SlackBuild new file mode 100755 index 00000000..b8b2af91 --- /dev/null +++ b/source/installer/repack_installer.SlackBuild @@ -0,0 +1,136 @@ +#!/bin/sh + +# 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. + +cd $(dirname $0) ; CWD=$(pwd) + +# This script repacks initrd.gz and usbboot.img from an existing tree in +# $TMP/build-slackware-installer/package-slackware-installer/*-installer-filesystem +# to allow making some changes to the installer files and then testing them. + +INSTALLERVERSION=${INSTALLERVERSION:-"15.0"} +EFIBOOT=${EFIBOOT:-1} +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i586 + SLACKROOT=${SLACKROOT:-/root/slackware-current} + OUTPUT=${OUTPUT:-$TMP/output-ia32-$(basename $(uname -r) -smp)} + ;; + x86_64) ARCH=x86_64 + SLACKROOT=${SLACKROOT:-/root/slackware64-current} + OUTPUT=${OUTPUT:-$TMP/output-x86_64-$(uname -r)} + ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl + SLACKROOT=${SLACKROOT:-/root/slackware-current} + OUTPUT=${OUTPUT:-$TMP/output-arm-$(uname -r)} + ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) + SLACKROOT=${SLACKROOT:-/root/slackware-current} + OUTPUT=${OUTPUT:-$TMP/output-$(uname -m)-$(uname -r)} + ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +mkdir -p $OUTPUT +( cd $TMP/build-slackware-installer/package-slackware-installer/*-installer-filesystem + # CREATE INITRD.GZ: + # Determine the size of the installer: + echo " Installer size (uncompressed): $( du -sh . )" + find . | cpio -o -H newc | xz -9fv -C crc32 > $OUTPUT/initrd.img + echo " New installer image is ${OUTPUT}/initrd.img" + + # CREATE USBBOOT.IMG: + # Like initrd.img, the usbboot.img will be created in the current directory + echo "--- Creating an image for the USB boot disk ---" + + # Calculate sizes: + let USBIMG=$( LC_ALL=C du -ck ${OUTPUT}/initrd*.img | grep total | cut -f1 ) + for KERN in ${SLACKROOT}/kernels/*.?/*zImage ; do + let USBIMG=USBIMG+$( LC_ALL=C du -sk $KERN | cut -f1 ) + done + let USBIMG=USBIMG+777 # Add just that little extra... + + if [ $EFIBOOT -eq 1 ]; then + # A bit more extra space since elilo will be added... + let USBIMG=USBIMG+256 + fi + + # Generate a pxelinux.cfg/default file (used for usbboot.img too) + cat ${SLACKROOT}/isolinux/isolinux.cfg \ + | sed -e "s#/kernels/#kernels/#" > ${OUTPUT}/pxelinux.cfg_default + + # Create a DOS formatted image file + if $(which mkfs.msdos 1>/dev/null 2>&1) ; then + MKDOS=mkfs.msdos + else + MKDOS=mkdosfs + fi + rm -f ${OUTPUT}/usbboot.img + ${MKDOS} -n USBSLACK -F 16 -C ${OUTPUT}/usbboot.img $USBIMG || exit 1 + file ${OUTPUT}/usbboot.img + + # Copy all relevant files into the image. + rm -rf ${OUTPUT}/usbmount + mkdir -p -m700 ${OUTPUT}/usbmount + mount -o loop,rw ${OUTPUT}/usbboot.img ${OUTPUT}/usbmount + echo "--- Copying data to the USB boot disk image: ---" + cp $SLACKROOT/isolinux/setpkg ${OUTPUT}/usbmount/ + cp $SLACKROOT/isolinux/{f*.txt,message.txt} ${OUTPUT}/usbmount/ + cp ${OUTPUT}/initrd*.img ${OUTPUT}/usbmount/ + cat ${OUTPUT}/pxelinux.cfg_default |sed -e 's# kernels/# #g' -e 's#/.zImage##' \ + -e 's#/memtest##' \ + > ${OUTPUT}/usbmount/syslinux.cfg + + # Add EFI support: + if [ $EFIBOOT -eq 1 ]; then + cp -a ${SLACKROOT}/source/installer/sources/efi.${ARCH}/* ${OUTPUT}/usbmount + # Make sure the Slackware and kernel version in message.txt are up to date: + cat ${SLACKROOT}/source/installer/sources/efi.${ARCH}/EFI/BOOT/message.txt | sed "s/version.*/version ${INSTALLERVERSION} \(Linux kernel $(uname -r | cut -f 1 -d -)\)\!/g" > ${OUTPUT}/usbmount/EFI/BOOT/message.txt + fi + + # Older syslinux can not cope with subdirectories - let's just be safe: + echo "--- Making the usbboot image bootable: ---" + ( + cd $SLACKROOT/kernels/ + for dir in `find -type d -name "*.?" -maxdepth 1` ; do + cp $dir/*zImage ${OUTPUT}/usbmount/$dir + done + cp $SLACKROOT/kernels/memtest/memtest ${OUTPUT}/usbmount/memtest + ) + sync + + # Stamp the file with the syslinux bootloader: + # > Do "vi ~/.mtoolsrc" to add "mtools_skip_check=1", + # > if the next command gives an error: + umount ${OUTPUT}/usbmount + syslinux ${OUTPUT}/usbboot.img + + # Clean up: + rm -rf ${OUTPUT}/usbmount + +) -- cgit v1.2.3