From: Michael Tremer Date: Tue, 9 Jul 2024 15:56:41 +0000 (+0000) Subject: make.sh: Refactor building packages X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=060379d0c8c0fb19c5433c66a0e7df88a3d2688c;p=people%2Fms%2Fipfire-2.x.git make.sh: Refactor building packages Signed-off-by: Michael Tremer --- diff --git a/lfs/Config b/lfs/Config index 4179eedff..ce1ea271f 100644 --- a/lfs/Config +++ b/lfs/Config @@ -377,7 +377,7 @@ define PAK sed -i $(DIR_TMP_PAK)/ROOTFILES -e "/^#/d" # Make package - cd $(DIR_TMP_PAK) && tar cf /install/packages/$(PROG)-$(VER)-$(PAK_VER).ipfire * + cd $(DIR_TMP_PAK) && tar cf $(PACKAGES_DIR)/$(PROG)-$(VER)-$(PAK_VER).ipfire * # Cleanup rm -rf $(DIR_TMP_PAK) @@ -390,9 +390,9 @@ define PAK -e "s/VER/$(VER)/g" \ -e "s/RELEASE/$(PAK_VER)/g" \ -e "s/DEPS/$(DEPS)/g" \ - -e "s/SIZE/$$(stat --format=%s /install/packages/$(PROG)-$(VER)-$(PAK_VER).ipfire)/g" \ + -e "s/SIZE/$$(stat --format=%s $(PACKAGES_DIR)/$(PROG)-$(VER)-$(PAK_VER).ipfire)/g" \ -e "s/SERVICES/$(SERVICES)/g" \ - < /usr/src/src/pakfire/meta > /install/packages/meta-$(PROG) + < /usr/src/src/pakfire/meta > $(PACKAGES_DIR)/meta-$(PROG) endef define INSTALL_INITSCRIPT diff --git a/make.sh b/make.sh index 0409dbf23..ae7404a00 100755 --- a/make.sh +++ b/make.sh @@ -365,6 +365,7 @@ prepareenv() { # Make some extra directories mkdir -p "${CCACHE_DIR}" mkdir -p "${IMAGES_DIR}" + mkdir -pv "${PACKAGES_DIR}" mkdir -p "${BUILD_DIR}/${TOOLS_DIR}" mkdir -p "${BUILD_DIR}/cache" mkdir -p "${BUILD_DIR}/dev" @@ -594,6 +595,7 @@ execute() { # Paths [LFS_BASEDIR]="${BASEDIR}" [IMAGES_DIR]="${IMAGES_DIR}" + [PACKAGES_DIR]="${PACKAGES_DIR}" [TOOLS_DIR]="${TOOLS_DIR}" ) @@ -641,6 +643,7 @@ execute() { # Paths [LFS_BASEDIR]="/usr/src" [IMAGES_DIR]="/usr/src/images" + [PACKAGES_DIR]="/usr/src/images/packages" # Compiler Cache [CCACHE_DIR]="/usr/src/ccache" @@ -2018,40 +2021,27 @@ build_system() { lfsmake2 flash-images } -buildpackages() { - local LOGFILE="${LOG_DIR}/_build.packages.log" +build_packages() { + local LOGFILE="${LOG_DIR}/_build.packages.log" - ipfirepackages - - cd $BASEDIR - - for i in $(ls *.bz2 *.img.xz *.iso 2>/dev/null); do - b2sum $i > $i.b2 - done - cd $PWD - - # Cleanup - rm -rf $BASEDIR/build/tmp/* + # Build packages + print_build_stage "Building Packages" - cd $PWD -} + local path + local -A pkgs=() + local pkg -ipfirepackages() { - lfsmake2 core-updates + # Collect all packages + for path in \ + "${BASEDIR}/config/rootfiles/packages/"* \ + "${BASEDIR}/config/rootfiles/packages/${BUILD_ARCH}"/*; do + pkgs["${path##*/}"]="${path}" + done - local i - for i in $(find $BASEDIR/config/rootfiles/packages{/${BUILD_ARCH},} -maxdepth 1 -type f); do - i=$(basename ${i}) - if [ -e $BASEDIR/lfs/$i ]; then - ipfiredist $i - else - echo -n $i - print_status SKIP - fi + # Package them all + for pkg in ${!pkgs[@]}; do + ipfiredist "${pkg}" done - test -d $BASEDIR/packages || mkdir $BASEDIR/packages - mv -f ${BUILD_DIR}/install/packages/* $BASEDIR/packages >> $LOGFILE 2>&1 - rm -rf $BASEDIR/build/install/packages/* } # This function will re-execute a command in a new namespace @@ -2217,6 +2207,7 @@ readonly CCACHE_DIR="${BASEDIR}/ccache/${BUILD_ARCH}/${TOOLCHAINVER}" readonly BUILD_DIR="${BASEDIR}/build_${BUILD_ARCH}" readonly IMAGES_DIR="${BASEDIR}/images_${BUILD_ARCH}" readonly LOG_DIR="${BASEDIR}/log_${BUILD_ARCH}" +readonly PACKAGES_DIR="${IMAGES_DIR}/packages" readonly TOOLS_DIR="/tools_${BUILD_ARCH}" # Set URLs @@ -2264,8 +2255,8 @@ build) print_build_stage "Building ${NAME}" build_system - print_build_stage "Building Packages" - buildpackages + # Build all packages + build_packages print_build_stage "Checking Logfiles for new Files"