From ee8cf8dd64339a7bc992a3b4613e9e6df1c24e2b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michael=20Schr=C3=B6der?= Date: Mon, 8 Sep 2008 15:26:26 +0000 Subject: [PATCH] - add --incarnation - add --create-build-binaries --- build | 17 ++++++++++++++++- init_buildsystem | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/build b/build index d1dcbef..28be399 100755 --- a/build +++ b/build @@ -59,6 +59,7 @@ KILL= CHANGELOG= BUILD_DEBUG= PERSONALITY_SYSCALL= +INCARNATION= export PATH=$BUILD_DIR:$PATH @@ -646,6 +647,10 @@ while test -n "$1"; do --debug) BUILD_DEBUG=1 ;; + --incarnation) + INCARNATION=$ARG + shift + ;; ----noarg) echo "$ARG does not take an argument" cleanup_and_exit @@ -944,6 +949,7 @@ for SPECFILE in "${SPECFILES[@]}" ; do echo "CREATE_BASELIBS='$CREATE_BASELIBS'" >> $BUILD_ROOT/.build/build.data echo "REASON='${REASON//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data echo "CHANGELOG='${CHANGELOG//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data + echo "INCARNATION='${INCARNATION//"'"/$Q}'" >> $BUILD_ROOT/.build/build.data # FIXME: this depends on the kernel and vm. # could be hda2, sda2 for xen or hdb/sdb for qemu test -n "$VM_SWAP" && echo "VM_SWAP='${VM_SWAPDEV:-/dev/hda2}'" >> $BUILD_ROOT/.build/build.data @@ -1036,7 +1042,9 @@ for SPECFILE in "${SPECFILES[@]}" ; do fi if test "$DO_INIT" = true ; then - set -- init_buildsystem "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $RPMLIST "$MYSRCDIR/$SPECFILE" $ADDITIONAL_PACKS + CREATE_BUILD_BINARIES= + egrep '^#[ ]*needsbinariesforbuild[ ]*$' >/dev/null <$MYSRCDIR/$SPECFILE && CREATE_BUILD_BINARIES=--create-build-binaries + set -- init_buildsystem "${definesnstuff[@]}" "${repos[@]}" $CLEAN_BUILD $USEUSEDFORBUILD $CREATE_BUILD_BINARIES $RPMLIST "$MYSRCDIR/$SPECFILE" $ADDITIONAL_PACKS echo "$* ..." "$@" || cleanup_and_exit 1 mount -n -tproc none $BUILD_ROOT/proc || true @@ -1105,9 +1113,16 @@ for SPECFILE in "${SPECFILES[@]}" ; do setupccache # nasty hack to prevent rpath on known paths + # FIXME: do this only for suse echo "export SUSE_IGNORED_RPATHS=/etc/ld.so.conf" > "$BUILD_ROOT"/etc/profile.d/buildsystem.sh # + # create legacy .buildenv file + # + test -z "$INCARNATION" && INCARNATION=0 + echo "BUILD_INCARNATION=$INCARNATION" > $BUILD_ROOT/.buildenv + + # # now clean up RPM building directories # rm -rf $BUILD_ROOT$TOPDIR diff --git a/init_buildsystem b/init_buildsystem index b0e83ce..b5b7c17 100755 --- a/init_buildsystem +++ b/init_buildsystem @@ -36,6 +36,7 @@ USEUSEDFORBUILD= LIST_STATE= RPMLIST= CLEAN_BUILD= +CREATE_BUILD_BINARIES= while test -n "$1" ; do case "$1" in @@ -43,6 +44,10 @@ while test -n "$1" ; do shift PREPARE_XEN=true ;; + --create-build-binaries) + shift + CREATE_BUILD_BINARIES=true + ;; --useusedforbuild) shift USEUSEDFORBUILD=--useusedforbuild @@ -481,6 +486,22 @@ mount -n -tproc none $BUILD_ROOT/proc 2>/dev/null || true mount -n -tdevpts none $BUILD_ROOT/dev/pts 2>/dev/null || true # +# create .build.binaries directory if requested +# +rm -rf $BUILD_ROOT/.build.binaries +if test -n "$CREATE_BUILD_BINARIES" ; then + echo "creating .build.binaries directory..." + mkdir -p "$BUILD_ROOT/.build.binaries" + for PKG in $PACKAGES_TO_INSTALL ; do + test -L "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF" || continue + LPKG=`readlink -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.$PSUF"` + ln "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" 2>/dev/null + test -f "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" && continue + cp "$LPKG" "$BUILD_ROOT/.build.binaries/$PKG.$PSUF" + done +fi + +# # get list and ids of already installed rpms # mkdir -p $BUILD_ROOT/.init_b_cache/alreadyinstalled -- 2.7.4