]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
make.sh: Refactor building packages
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 9 Jul 2024 15:56:41 +0000 (15:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 9 Jul 2024 15:56:41 +0000 (15:56 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
lfs/Config
make.sh

index 4179eedff3d70b269aa862109199a113db07ceb0..ce1ea271f9294cf8d6937510e5c704bf1ef1e5d0 100644 (file)
@@ -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 0409dbf234e59a08b5caaa87dd7aa6fc6f89de3d..ae7404a001404aedfef07acdfeee1321cf937303 100755 (executable)
--- 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"