logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 39216603960095ab8c9fbd99fe656e28edb83108
parent a74f3166f31f0676812135840a898f6ed7dec03f
Author: Dor Askayo <dor.askayo@gmail.com>
Date:   Fri, 16 Sep 2022 10:34:07 +0300

Avoid exporting variables in build scripts

Environment variables "pollute" the build environment of packages and
can affect their output.

This change results in the removal of some files from packages that
were not meant to be packaged. It also removes the need for a
workaround in automake 1.10.3 to manually remove such files.

Variables are now saved in an .env file for each system and included
in scripts that need them using the dot operation.

Diffstat:

Msysa/SHA256SUMS.pkgs2+-
Msysa/automake-1.10.3/automake-1.10.3.sh3---
Msysa/run.sh10+++++-----
Msysb/init16+++++++++++-----
Msysb/run.sh5+++--
Msysc/after.sh2++
Msysc/init21+++++++++++++++------
Msysc/run.sh5++++-
Msysc/run2.sh5++++-
9 files changed, 45 insertions(+), 24 deletions(-)

diff --git a/sysa/SHA256SUMS.pkgs b/sysa/SHA256SUMS.pkgs @@ -53,7 +53,7 @@ f55c11b091361536774b436abe86b17f759cd7a66522cd20c7a2190da92db67a findutils-4.2. 07715a0c8bc13b80fc10ede20573f92e933b8d3dc6a5c8700f4289965ea8ec74 gcc-4.0.4_0.tar.bz2 e7c678c71c51cd6e8ce6eae029503a661169e6994ba0f988ac15634254d1fadb gcc-4.0.4_1.tar.bz2 b90cf37e7d0391dba6b1943c7527b0d5f5f9c7e399070828af6f1c39a1323883 gcc-4.7.4_0.tar.bz2 -9a299c3669367165bf1c661486bdb42297e0c4c1fc572d346b6c9e6ae186390c gettext-0.21_0.tar.bz2 +6e468a87e3bb80b4756bc6925127c230ab0c526c6d353c4fbf123244fa93435e gettext-0.21_0.tar.bz2 fe16fb6021f1f4650c98f77261145f37732be0aee06e957b0bdb3b01beb593a8 gmp-6.2.1_0.tar.bz2 3fd7b8e71183060864420479bd36a6853119c4eae5568672838cae23b7dc1050 gperf-3.1_0.tar.bz2 390840f2bc9c2a3196c28e06f8650f408e33b5d4ffe5539e174682ed13960bc9 grep-2.4_0.tar.bz2 diff --git a/sysa/automake-1.10.3/automake-1.10.3.sh b/sysa/automake-1.10.3/automake-1.10.3.sh @@ -24,7 +24,4 @@ src_install() { make install MAKEINFO=true DESTDIR="${DESTDIR}" rm "${DESTDIR}${PREFIX}/share/doc/automake/amhello-1.0.tar.gz" rm "${DESTDIR}/usr/bin/automake" "${DESTDIR}/usr/bin/aclocal" - - # Delete some stray directories - rm -r "${DESTDIR}${SOURCES}" } diff --git a/sysa/run.sh b/sysa/run.sh @@ -9,13 +9,13 @@ set -e # shellcheck disable=SC2154 -export PREFIX="${prefix}" +PREFIX="${prefix}" # shellcheck disable=SC2154 -export SOURCES="${sysa}" -export DISTFILES="${sysa}/distfiles" -export DESTDIR=/tmp/destdir +SOURCES="${sysa}" +DISTFILES="${sysa}/distfiles" +DESTDIR=/tmp/destdir # shellcheck disable=SC2154 -export SRCDIR="${srcdir}" +SRCDIR="${srcdir}" # shellcheck source=sysa/helpers.sh . helpers.sh diff --git a/sysb/init b/sysb/init @@ -7,9 +7,10 @@ set -e -export PATH=/usr/bin -export PREFIX=/usr -export SOURCES=/usr/src +PREFIX=/usr +SOURCES="${PREFIX}/src" + +export PATH="${PREFIX}/bin" # shellcheck source=sysa/helpers.sh . /usr/src/helpers.sh @@ -34,5 +35,10 @@ install_tar kexec-tools-2.0.22 0 install_tar util-linux-2.19.1 0 # Begin sysb bootstrapping process -cd /usr/src -./run.sh +cd "${SOURCES}" + +# shellcheck disable=SC2129 +echo "PREFIX=${PREFIX}" >> .env +echo "SOURCES=${SOURCES}" >> .env + +exec ./run.sh diff --git a/sysb/run.sh b/sysb/run.sh @@ -6,6 +6,9 @@ set -e +# shellcheck source=/dev/null +. .env + # shellcheck source=sysa/helpers.sh . helpers.sh @@ -74,8 +77,6 @@ if [ $(($(ls -l "/dev/${DISK}" | sed "s/.*, *//" | sed "s/ .*//") % 8)) -eq 0 ]; fi echo "export DISK=${DISK}" >> /usr/src/bootstrap.cfg -PREFIX=/usr -SOURCES="${PREFIX}/src" SYSC=/sysc # Otherwise, add stuff from sysa to sysb diff --git a/sysc/after.sh b/sysc/after.sh @@ -5,4 +5,6 @@ # Replace this hook if you wish to do more +. /usr/src/.env + exec env - PATH="${PREFIX}/bin" PS1="\w # " bash -i diff --git a/sysc/init b/sysc/init @@ -7,12 +7,13 @@ set -e -export PATH=/usr/bin:/usr/sbin -export PREFIX=/usr -export SOURCES=/usr/src -export DESTDIR=/tmp/destdir -export DISTFILES=/distfiles -export SRCDIR="${SOURCES}" +PREFIX=/usr +SOURCES="${PREFIX}/src" +DESTDIR=/tmp/destdir +DISTFILES=/distfiles +SRCDIR="${SOURCES}" + +export PATH="${PREFIX}/bin:${PREFIX}/sbin" export HOME=/tmp export SOURCE_DATE_EPOCH=0 @@ -61,4 +62,12 @@ ln -s /usr/bin/bash /usr/bin/sh # Begin sysc bootstrapping process cd "${SOURCES}" + +# shellcheck disable=SC2129 +echo "PREFIX=${PREFIX}" >> .env +echo "SOURCES=${SOURCES}" >> .env +echo "DESTDIR=${DESTDIR}" >> .env +echo "DISTFILES=${DISTFILES}" >> .env +echo "SRCDIR=${SRCDIR}" >> .env + exec ./run.sh diff --git a/sysc/run.sh b/sysc/run.sh @@ -8,6 +8,9 @@ set -e +# shellcheck source=/dev/null +. .env + # shellcheck source=sysa/helpers.sh . helpers.sh @@ -55,4 +58,4 @@ fi build bash-5.1 -exec env -i PATH="${PATH}" PREFIX="${PREFIX}" SOURCES="${SOURCES}" DESTDIR="${DESTDIR}" DISTFILES="${DISTFILES}" SRCDIR="${SRCDIR}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash run2.sh +exec env -i PATH="${PATH}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash run2.sh diff --git a/sysc/run2.sh b/sysc/run2.sh @@ -9,6 +9,9 @@ set -e +# shellcheck source=/dev/null +. .env + # shellcheck disable=SC2153 trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT @@ -140,4 +143,4 @@ fi echo "Bootstrapping completed." cd "/" -exec env -i PATH="${PATH}" PREFIX="${PREFIX}" SOURCES="${SOURCES}" DESTDIR="${DESTDIR}" DISTFILES="${DISTFILES}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash "${SOURCES}/after.sh" +exec env -i PATH="${PATH}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash "${SOURCES}/after.sh"