]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
naoki: Decompress already built packages.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 31 Oct 2009 18:37:51 +0000 (19:37 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 31 Oct 2009 18:37:51 +0000 (19:37 +0100)
make.sh
src/pakfire/decompressor
tools/common-package-functions
tools/naoki-functions

diff --git a/make.sh b/make.sh
index c55dd14b82af5abaed1a84006113f6d5533552d9..a145af75c4ce27721444c5e39001c949e689a0f0 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -57,9 +57,19 @@ function package() {
                find)
                        find_package $@
                        ;;
+               is_built)
+                       if package_is_built $(find_package $@); then
+                               echo "Package is built."
+                       else
+                               echo "Package is NOT built."
+                       fi
+                       ;;
                list)
                        package_list
                        ;;
+               packages)
+                       package_packages $(find_package $@)
+                       ;;
                profile|info)
                        package_profile $(find_package $@)
                        ;;
@@ -71,7 +81,7 @@ function package() {
 
 case "${action}" in
        package|pkg)
-               package $@e
+               package $@
                ;;
        toolchain)
                TOOLCHAIN=1
index b3ddf9e0113bae8448b24ea6b7f0a8847ce954bf..667d0c6d0c753ca1586b8ff17bed7e23fd9ef2e6 100755 (executable)
@@ -55,6 +55,6 @@ FILES=$(for i in $FILES; do echo $i; done | sort -u)
 
 for file in $FILES; do
        echo "Extracting $file..."
-       cpio --extract --quiet --to-stdout data.img < $file | \
+       cpio --extract --quiet -H newc --to-stdout data.img < $file | \
                tar --extract --xz -C ${ROOT}
 done
index 845eef4a788118985bed5b12cd402d2bdb366d01..c6bb4f89f9c2dfd66af1f4efc2c71795ef6729be 100644 (file)
@@ -189,7 +189,7 @@ function package_dependencies() {
 }
 
 function package_packages() {
-       package_get ${1} PKG_PACKAGES
+       package_get ${1} PKG_PACKAGES_FILES
 }
 
 function package_maintainer() {
@@ -218,8 +218,8 @@ function package_is_built() {
        local package=$(find_package ${1})
 
        local file
-       for file in package_packages ${package}; do
-               if [ ! -e "${file}" ]; then
+       for file in $(package_packages ${package}); do
+               if [ ! -e "${DIR_PACKAGES}/${file}" ]; then
                        return 1
                fi
        done
@@ -243,7 +243,11 @@ function dependencies_resolve() {
 
                ret="${ret} ${dependencies} $(dependencies_resolve ${dependencies})"
        done
-       echo ${ret}
+       
+       # Sort and unique the package list
+       for package in ${ret}; do
+               echo "${package}"
+       done | sort -u
 }
 
 function package_sort() {
@@ -364,3 +368,15 @@ function package_id() {
 
        echo ${hash:0:6}
 }
+
+function package_decompress() {
+       local file
+       local pkg
+       for pkg in $@; do
+               for file in $(package_packages ${pkg}); do
+                       PATH=${TOOLS_DIR}/sbin:${TOOLS_DIR}/bin:${PATH} \
+                               ${BASEDIR}/src/pakfire/decompressor --root=${BUILD_DIR} \
+                                       ${DIR_PACKAGES}/${file}
+               done
+       done
+}
index fd552b72a16c9acc6d0d36a5a6545d4b95cbd98c..91c72ddb64b7d7a71c4b963ae5fe648b4ee995bb 100644 (file)
@@ -60,15 +60,7 @@ function naoki_prepare() {
        local p=$(find_package ${1})
        shift
 
-       #local pkg_dependencies=$(dependencies_resolve ${p})
-       #msg "  Resolving dependencies: ${pkg_dependencies-None}"
-       #local dep
-       #for dep in ${pkg_dependencies}; do
-       #       if ! package_is_built ${dep}; then
-       #               msg "Dependencies for ${p} are missing. Cannot prepare."
-       #               exit 4
-       #       fi
-       #done
+
 
        msg "Preparing environment ${BUILD_DIR}..."
 
@@ -93,9 +85,23 @@ function naoki_prepare() {
                mount --bind /${i} ${BUILD_DIR}/${i}
        done
 
-       #naoki_make ${p} --without-chroot download
+       CHROOT=0 naoki_make ${p} --without-chroot download
 
        # Extract needed packages
+       local pkg_dependencies=$(dependencies_resolve ${p} | tr "\n" " ")
+       msg "  Resolving dependencies: ${pkg_dependencies-None}"
+       local dep
+       for dep in ${pkg_dependencies}; do
+               if ! package_is_built ${dep}; then
+                       msg "Dependencies for ${p} are missing. Cannot prepare."
+                       return 4
+               fi
+       done
+
+       for dep in ${pkg_dependencies}; do
+               msg "Decompressing ${dep}..."
+               package_decompress ${dep}
+       done
 
        for i in /bin/bash /bin/pwd /bin/sh; do
                if [ -e "${BUILD_DIR}${i}" ]; then
@@ -233,14 +239,6 @@ function naoki_build() {
 
        local ret
        msg "Going on to build package \"${p}\"."
-       
-       CHROOT=0 naoki_make ${p} --without-chroot download $@
-       ret=$?
-       
-       if [  "${ret}" != "0" ]; then
-               error "Download command failed."
-               exit ${ret}
-       fi
 
        naoki_prepare ${p} $@
        ret=$?