clfs-bootstrap

clfs-bootstrap.git
git clone git://git.lenczewski.org/clfs-bootstrap.git
Log | Files | Refs | README | LICENSE

commit 3427f812294bf21d04e05f6e48fbbea7b988735e
parent d5ba5c95d8f0bc148f30b548c8a635a201ea689f
Author: w79958ml <mikolaj.lenczewski@student.manchester.ac.uk>
Date:   Sat, 10 Oct 2020 17:42:07 +0100

Mostly /bin/sh compliant (uses 'local'). More cleanup

Diffstat:
Mbuild-clfs | 150++++++++++++++++++++++++++++++++++++++++++-------------------------------------
Mmd5sums.src | 1+
Mscripts/build-extra-packages.sh | 2++
Mwget-list.src | 1+
4 files changed, 83 insertions(+), 71 deletions(-)

diff --git a/build-clfs b/build-clfs @@ -1,4 +1,14 @@ #!/bin/sh +## NOTE: not strictly posix-shell compatible, as 'local' is used in some funcs + + +CONFIRM () { + read -p "Press enter to continue..." _ +} + + +echo "Please run this script as the root user!" +CONFIRM ################################################################################ @@ -41,19 +51,18 @@ mkdir -pv ${CLFS_BUILD} ${CLFS_CONFIGS} ${CLFS_LOGS} ${CLFS_SCRIPTS} ${CLFS_SOUR chmod -v a+wt ${CLFS_BUILD} ${CLFS_CONFIGS} ${CLFS_LOGS} ${CLFS_SCRIPTS} ${CLFS_SOURCES} -fetch_packages () { - rm -rf ${CLFS_SOURCES}/{md5sums,wget-list} +FETCH_PKGS () { + rm -rf ${CLFS_SOURCES}/{md5sums,wget-list} - tr -d '\r' < wget-list.src > ${CLFS_SOURCES}/wget-list - tr -d '\r' < md5sums.src > ${CLFS_SOURCES}/md5sums + tr -d '\r' < wget-list.src > ${CLFS_SOURCES}/wget-list + tr -d '\r' < md5sums.src > ${CLFS_SOURCES}/md5sums - pushd ${CLFS_SOURCES} > /dev/null - wget --input-file=wget-list --continue - md5sum -c md5sums - popd > /dev/null + pushd ${CLFS_SOURCES} > /dev/null + wget --input-file=wget-list --continue + md5sum -c md5sums + popd > /dev/null } - -fetch_packages +FETCH_PKGS ## Copying over scripts and additional config files @@ -64,8 +73,7 @@ chmod +x ${CLFS_SCRIPTS}/* ${CLFS_SCRIPTS}/host-check.sh -echo "Press enter to continue..." -read _ +CONFIRM ## Creating the CLFS build user @@ -90,42 +98,43 @@ umask 022 ## Extracts a package source archive, and runs the given callback function. ## $1 : Package definition variable group name (i.e. GCC, LINUX, ZLIB) ## $2 : Processing callback function, run in source directory after unzipping -## $3 : Vanity package name. +## $3 : Vanity package name EXTRACT () { - local PKG_VAR_GROUP_NAME=$1 - local PROCESS_FUNC=$2 - local PKG_VANITY_NAME=${3:-${PKG_VAR_GROUP_NAME}} + local PKG_VAR_GROUP_NAME=$1 + local PROCESS_FUNC=$2 + local PKG_VANITY_NAME=${3:-${PKG_VAR_GROUP_NAME}} - local PKG_VER=${PKG_VAR_GROUP_NAME}_VER - local PKG_VER=${!PKG_VER} - local PKG_DIR=${PKG_VAR_GROUP_NAME}_DIR - local PKG_DIR=${!PKG_DIR} - local PKG_ARCHIVE=${PKG_VAR_GROUP_NAME}_ARCHIVE - local PKG_ARCHIVE=${!PKG_ARCHIVE} + local PKG_VER=${PKG_VAR_GROUP_NAME}_VER + local PKG_VER=${!PKG_VER} + local PKG_DIR=${PKG_VAR_GROUP_NAME}_DIR + local PKG_DIR=${!PKG_DIR} + local PKG_ARCHIVE=${PKG_VAR_GROUP_NAME}_ARCHIVE + local PKG_ARCHIVE=${!PKG_ARCHIVE} - echo "Extracting package ${PKG_VANITY_NAME} (ver. ${PKG_VER}) source: '${PKG_ARCHIVE}' -> '${PKG_DIR}'" - pushd ${CLFS_SOURCES} > /dev/null + echo "Extracting package ${PKG_VANITY_NAME} (ver. ${PKG_VER}) source: '${PKG_ARCHIVE}' -> '${PKG_DIR}'" + pushd ${CLFS_SOURCES} > /dev/null - local STDOUT_LOG="${PKG_VANITY_NAME}.stdout.log" - local STDERR_LOG="${PKG_VANITY_NAME}.stderr.log" + local STDOUT_LOG="${PKG_VANITY_NAME}.stdout.log" + local STDERR_LOG="${PKG_VANITY_NAME}.stderr.log" - echo " stdout will be logged to '${STDOUT_LOG}'; stderr will be logged to '${STDERR_LOG}'" + echo " stdout will be logged to '${STDOUT_LOG}'; stderr will be logged to '${STDERR_LOG}'" - local TMP_OUT="${TMPDIR:-/tmp}/out.$$" TMP_ERR="${TMPDIR:-/tmp}/err.$$" - mkfifo "${TMP_OUT}" "${TMP_ERR}" + local TMP_OUT="${TMPDIR:-/tmp}/out.$$" + local TMP_ERR="${TMPDIR:-/tmp}/err.$$" + mkfifo "${TMP_OUT}" "${TMP_ERR}" - tar xf ${PKG_ARCHIVE} && cd ${PKG_DIR} && \ - $PROCESS_FUNC >"${TMP_OUT}" 2>"${TMP_ERR}" & \ - tee "${CLFS_LOGS}/${STDOUT_LOG}" < "${TMP_OUT}" & \ - tee "${CLFS_LOGS}/${STDERR_LOG}" < "${TMP_ERR}" && \ - echo "Successfully extracted and processed package ${PKG_VANITY_NAME}!" || \ - echo "Failed to extract or process package ${PKG_VANITY_NAME}!" + tar xf ${PKG_ARCHIVE} && cd ${PKG_DIR} && \ + $PROCESS_FUNC >"${TMP_OUT}" 2>"${TMP_ERR}" & \ + tee "${CLFS_LOGS}/${STDOUT_LOG}" < "${TMP_OUT}" & \ + tee "${CLFS_LOGS}/${STDERR_LOG}" < "${TMP_ERR}" && \ + echo "Successfully extracted and processed package ${PKG_VANITY_NAME}!" || \ + echo "Failed to extract or process package ${PKG_VANITY_NAME}!" - cd ${CLFS_SOURCES} - rm -rf ${PKG_DIR} + cd ${CLFS_SOURCES} + rm -rf ${PKG_DIR} - rm "${TMP_OUT}" "${TMP_ERR}" > /dev/null - popd > /dev/null + rm "${TMP_OUT}" "${TMP_ERR}" > /dev/null + popd > /dev/null } EOF @@ -188,45 +197,43 @@ source ~/.bashrc ## $1 : The name of the package variable group (e.g. MUSL, LINUX, GCC) ## $2 : The package source version ## $3 : The package source archive compression (e.g. gz, bz2, xz) -## $4 : The package source directory prefix -## $5 : The package source archive prefix. Overrides the PKG_DIR_PREFIX if defined +## $4 : The package source archive prefix +## $5 : The package source directory prefix DEFINE () { - local PKG_NAME=$1 - local PKG_VER=$2 - local PKG_COMPRESSION=$3 - local PKG_DIR_PREFIX=$4 - local PKG_ARCHIVE_PREFIX=$5 + local PKG_NAME=$1 + local PKG_VER=$2 + local PKG_COMPRESSION=$3 + local PKG_ARCHIVE_PREFIX=$4 + local PKG_DIR_PREFIX=$5 - local PKG_DIR=${PKG_DIR_PREFIX}${PKG_VER} - local PKG_ARCHIVE=${PKG_ARCHIVE_PREFIX}${PKG_VER}.tar.${PKG_COMPRESSION} + local PKG_DIR=${PKG_DIR_PREFIX}${PKG_VER} + local PKG_ARCHIVE=${PKG_ARCHIVE_PREFIX}${PKG_VER}.tar.${PKG_COMPRESSION} - [ -n "${PKG_VER}" ] && printf -v ${PKG_NAME}_VER ${PKG_VER} - printf -v ${PKG_NAME}_DIR ${PKG_DIR} - printf -v ${PKG_NAME}_ARCHIVE ${PKG_ARCHIVE} + [ -n "${PKG_VER}" ] && printf -v ${PKG_NAME}_VER ${PKG_VER} + printf -v ${PKG_NAME}_DIR ${PKG_DIR} + printf -v ${PKG_NAME}_ARCHIVE ${PKG_ARCHIVE} - export "${PKG_NAME}_VER" "${PKG_NAME}_DIR" "${PKG_NAME}_ARCHIVE" + export "${PKG_NAME}_VER" "${PKG_NAME}_DIR" "${PKG_NAME}_ARCHIVE" } -###### "VAR_GROUP_NAME" "VERSION" "COMPRESSION" "DIR_PREFIX" "ARCHIVE_PREFIX" + +###### "NAME" "VERSION" "COMP" "ARCHIVE_PREFIX" "DIRECTORY_PREFIX" #################################################################################################### -DEFINE "BINUTILS" "2.35" "xz" "binutils-" "binutils-" -DEFINE "BOOTSCRIPTS" "" "gz" "bootscripts-embedded-master" "master" -DEFINE "BUSYBOX" "1.32.0" "bz2" "busybox-" "busybox-" -DEFINE "BZIP2" "1.0.8" "gz" "bzip2-" "bzip2-" -DEFINE "DROPBEAR" "2020.80" "bz2" "dropbear-" "dropbear-" -DEFINE "GCC" "10.2.0" "xz" "gcc-" "gcc-" -DEFINE "GMP" "6.2.0" "xz" "gmp-" "gmp-" -DEFINE "IANA_ETC" "20200910" "gz" "iana-etc-" "iana-etc-" -DEFINE "LINUX" "5.8.9" "xz" "linux-" "linux-" -DEFINE "MPC" "1.2.0" "gz" "mpc-" "mpc-" -DEFINE "MPFR" "4.1.0" "xz" "mpfr-" "mpfr-" -DEFINE "MUSL" "1.2.1" "gz" "musl-" "musl-" -DEFINE "NETPLUG" "1.2.9.2" "bz2" "netplug-" "netplug-" -DEFINE "UBOOT" "2020.07" "bz2" "u-boot-" "u-boot-" -DEFINE "WIRELESS_TOOLS" "29" "gz" "wireless_tools." "wireless_tools." -DEFINE "XZ" "5.2.5" "xz" "xz-" "xz-" -DEFINE "ZLIB" "1.2.11" "xz" "zlib-" "zlib-" -DEFINE "ZSTD" "1.4.5" "gz" "zstd-" "zstd-" +DEFINE "BINUTILS" "2.35" "xz" "binutils-" "binutils-" +DEFINE "BOOTSCRIPTS" "" "gz" "master" "bootscripts-embedded-master" +DEFINE "BUSYBOX" "1.32.0" "bz2" "busybox-" "busybox-" +DEFINE "DROPBEAR" "2020.80" "bz2" "dropbear-" "dropbear-" +DEFINE "GCC" "10.2.0" "xz" "gcc-" "gcc-" +DEFINE "GMP" "6.2.0" "xz" "gmp-" "gmp-" +DEFINE "IANA_ETC" "20200910" "gz" "iana-etc-" "iana-etc-" +DEFINE "LINUX" "5.8.9" "xz" "linux-" "linux-" +DEFINE "MPC" "1.2.0" "gz" "mpc-" "mpc-" +DEFINE "MPFR" "4.1.0" "xz" "mpfr-" "mpfr-" +DEFINE "MUSL" "1.2.1" "gz" "musl-" "musl-" +DEFINE "NETPLUG" "1.2.9.2" "bz2" "netplug-" "netplug-" +DEFINE "UBOOT" "2020.07" "bz2" "u-boot-" "u-boot-" +DEFINE "WIRELESS_TOOLS" "29" "gz" "wireless_tools." "wireless_tools." +DEFINE "ZLIB" "1.2.11" "xz" "zlib-" "zlib-" ################################################################################ @@ -327,3 +334,4 @@ tar cfj ${CLFS_BUILD}/clfs-bootfs.tar.xz * echo "Packaged CLFS bootfs: use 'tar pxf ${CLFS_BUILD}/clfs-bootfs.tar.xz -C targetdir' to unpack into a target directory" echo "Finished and packaged CLFS system!" + diff --git a/md5sums.src b/md5sums.src @@ -10,4 +10,5 @@ bdd3d5efba9c17da8d83a35ec552baef mpfr-4.1.0.tar.xz 2720bdbed739e94c4d7acdc91c0cd9d6 musl-1.2.1.tar.gz 1d6db99536bdf875ce441f2c0e45ebf2 netplug-1.2.9.2.tar.bz2 86e51eeccd15e658ad1df943a0edf622 u-boot-2020.07.tar.bz2 +e06c222e186f7cc013fd272d023710cb wireless_tools.29.tar.gz 85adef240c5f370b308da8c938951a68 zlib-1.2.11.tar.xz diff --git a/scripts/build-extra-packages.sh b/scripts/build-extra-packages.sh @@ -38,6 +38,8 @@ EXTRACT "WIRELESS_TOOLS" WIRELESS_TOOLS "extra-pkg-wireless-tools" DROPBEAR () { + sed -i 's/.*mandir.*//g' Makefile.in + ./configure \ --prefix=/usr \ --build=${CLFS_HOST} \ diff --git a/wget-list.src b/wget-list.src @@ -12,4 +12,5 @@ http://www.musl-libc.org/releases/musl-1.2.1.tar.gz http://www.red-bean.com/~bos/netplug/netplug-1.2.9.2.tar.bz2 http://patches.clfs.org/embedded-dev/netplug-1.2.9.2-fixes-1.patch https://ftp.denx.de/pub/u-boot/u-boot-2020.07.tar.bz2 +https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz http://downloads.sourceforge.net/libpng/zlib-1.2.11.tar.xz