aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Khimov <khimov@altell.ru>2009-06-17 09:41:59 +0000
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-01-28 14:19:55 +0100
commit60c4dfdf5688d2fcd3cb13c32433e0679b2c2ba9 (patch)
tree3c7241a19a023ff6b387cf0894ca0c956d5eea61
parent44d263d7bf5d07a3c992ea44a4cbb39f73f3a5c5 (diff)
downloadopenembedded-60c4dfdf5688d2fcd3cb13c32433e0679b2c2ba9.tar.gz
package_ipk: optimize do_package_update_index_ipk
If there are no package updates since last index update, don't re-create indexes. Really helps when building something like 10 images. Remove code duplication along the way. Acked-by: Tom Rini <trini@embeddedalley.com>
-rw-r--r--classes/package_ipk.bbclass19
1 files changed, 7 insertions, 12 deletions
diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass
index 420c892f10..9befd04ef5 100644
--- a/classes/package_ipk.bbclass
+++ b/classes/package_ipk.bbclass
@@ -90,18 +90,13 @@ do_package_update_index_ipk () {
ipkg-make-index -r ${DEPLOY_DIR_IPK}/Packages -p ${DEPLOY_DIR_IPK}/Packages -l ${DEPLOY_DIR_IPK}/Packages.filelist -m ${DEPLOY_DIR_IPK}
for arch in $ipkgarchs; do
- if [ -e ${DEPLOY_DIR_IPK}/$arch/ ] ; then
- touch ${DEPLOY_DIR_IPK}/$arch/Packages
- ipkg-make-index -r ${DEPLOY_DIR_IPK}/$arch/Packages -p ${DEPLOY_DIR_IPK}/$arch/Packages -l ${DEPLOY_DIR_IPK}/$arch/Packages.filelist -m ${DEPLOY_DIR_IPK}/$arch/
- fi
- if [ -e ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/ ] ; then
- touch ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/Packages
- ipkg-make-index -r ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/Packages -p ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/Packages -l ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/Packages.filelist -m ${DEPLOY_DIR_IPK}/${BUILD_ARCH}-$arch-sdk/
- fi
- if [ -e ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/ ] ; then
- touch ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/Packages
- ipkg-make-index -r ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/Packages -p ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/Packages -l ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/Packages.filelist -m ${DEPLOY_DIR_IPK}/${SDK_SYS}-sdk-$arch/
- fi
+ for ipk_path in $arch ${BUILD_ARCH}-$arch-sdk ${SDK_SYS}-sdk-$arch; do
+ PACK_COUNT=`ls -t ${DEPLOY_DIR_IPK}/$ipk_path/ | head -n 4 | grep Packages | wc -l`
+ if [ -e ${DEPLOY_DIR_IPK}/$ipk_path/ -a "$PACK_COUNT" != "4" ] ; then
+ touch ${DEPLOY_DIR_IPK}/$ipk_path/Packages
+ ipkg-make-index -r ${DEPLOY_DIR_IPK}/$ipk_path/Packages -p ${DEPLOY_DIR_IPK}/$ipk_path/Packages -l ${DEPLOY_DIR_IPK}/$ipk_path/Packages.filelist -m ${DEPLOY_DIR_IPK}/$ipk_path/
+ fi
+ done
done
}