From 62a4691a018fe49389cac7f8f63b3d4864d68e80 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 9 Mar 2006 04:07:49 +0000 Subject: Split dyn_package from ebuild.sh to misc-functions.sh and add MISC_SH_BINARY support to spawnebuild. svn path=/main/trunk/; revision=2831 --- bin/ebuild.sh | 36 +++++------------------------------- bin/misc-functions.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 31 deletions(-) create mode 100644 bin/misc-functions.sh (limited to 'bin') diff --git a/bin/ebuild.sh b/bin/ebuild.sh index d92d5efc3..87d72f4f5 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -891,13 +891,6 @@ abort_unpack() { exit 1 } -abort_package() { - abort_handler "dyn_package" $1 - rm -f "${PORTAGE_BUILDDIR}/.packaged" - rm -f "${PKGDIR}"/All/${PF}.t* - exit 1 -} - abort_test() { abort_handler "dyn_test" $1 rm -f "${PORTAGE_BUILDDIR}/.tested" @@ -998,27 +991,6 @@ dyn_compile() { trap SIGINT SIGQUIT } -dyn_package() { - trap "abort_package" SIGINT SIGQUIT - cd "${PORTAGE_BUILDDIR}/image" - install_mask "${PORTAGE_BUILDDIR}/image" ${PKG_INSTALL_MASK} - tar cpvf - ./ | bzip2 -f > ../bin.tar.bz2 || die "Failed to create tarball" - cd .. - xpak build-info inf.xpak - tbz2tool join bin.tar.bz2 inf.xpak "${PF}.tbz2" - mv "${PF}.tbz2" "${PKGDIR}/All" || die "Failed to move tbz2 to ${PKGDIR}/All" - rm -f inf.xpak bin.tar.bz2 - if [ ! -d "${PKGDIR}/${CATEGORY}" ]; then - install -d "${PKGDIR}/${CATEGORY}" - fi - ln -sf "../All/${PF}.tbz2" "${PKGDIR}/${CATEGORY}/${PF}.tbz2" || die "Failed to create symlink in ${PKGDIR}/${CATEGORY}" - echo ">>> Done." - cd "${PORTAGE_BUILDDIR}" - touch .packaged || die "Failed to 'touch .packaged' in ${PORTAGE_BUILDDIR}" - trap SIGINT SIGQUIT -} - - dyn_test() { [ "$(type -t pre_src_test)" == "function" ] && pre_src_test if [ "${PORTAGE_BUILDDIR}/.tested" -nt "${WORKDIR}" ]; then @@ -2004,7 +1976,7 @@ for myarg in $*; do set +x fi ;; - package|rpm) + rpm) export SANDBOX_ON="0" if [ "$PORTAGE_DEBUG" != "1" ]; then dyn_${myarg} @@ -2069,7 +2041,8 @@ for myarg in $*; do #fi done -if [ "$myarg" != "clean" ]; then +# Save the env only for relevant phases. +if [ -n "$myarg" ] && [ "$myarg" != "clean" ]; then # Save current environment and touch a success file. (echo for success) umask 002 set | egrep -v "^SANDBOX_" > "${T}/environment" 2>/dev/null @@ -2077,4 +2050,5 @@ if [ "$myarg" != "clean" ]; then chmod g+w "${T}/environment" &>/dev/null fi -exit 0 +# Do not exit when ebuild.sh is sourced by other scripts. +true diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh new file mode 100644 index 000000000..0eb184b30 --- /dev/null +++ b/bin/misc-functions.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header$ +# +# Miscellaneous shell functions that make use of the ebuild env but don't need +# to be included directly in ebuild.sh. +# +# We're sourcing ebuild.sh here so that we inherit all of it's goodness, +# including bashrc trickery. This approach allows us to do our miscellaneous +# shell work withing the same env that ebuild.sh has, but without polluting +# ebuild.sh itself with unneeded logic and shell code. +# +# XXX hack: clear the args so ebuild.sh doesn't see them +MISC_FUNCTIONS_ARGS="$@" +shift $# +source /usr/lib/portage/bin/ebuild.sh + +dyn_package() { + cd "${PORTAGE_BUILDDIR}/image" + install_mask "${PORTAGE_BUILDDIR}/image" ${PKG_INSTALL_MASK} + tar cpvf - ./ | bzip2 -f > ../bin.tar.bz2 || die "Failed to create tarball" + cd .. + xpak build-info inf.xpak + tbz2tool join bin.tar.bz2 inf.xpak "${PF}.tbz2" + addwrite "${PKGDIR}" + mv "${PF}.tbz2" "${PKGDIR}/All" || die "Failed to move tbz2 to ${PKGDIR}/All" + rm -f inf.xpak bin.tar.bz2 + if [ ! -d "${PKGDIR}/${CATEGORY}" ]; then + install -d "${PKGDIR}/${CATEGORY}" + fi + ln -sf "../All/${PF}.tbz2" "${PKGDIR}/${CATEGORY}/${PF}.tbz2" || die "Failed to create symlink in ${PKGDIR}/${CATEGORY}" + echo ">>> Done." + cd "${PORTAGE_BUILDDIR}" + touch .packaged || die "Failed to 'touch .packaged' in ${PORTAGE_BUILDDIR}" +} + +if [ -n "${MISC_FUNCTIONS_ARGS}" ]; then + [ "$PORTAGE_DEBUG" == "1" ] && set -x + for x in ${MISC_FUNCTIONS_ARGS}; do + ${x} + done +fi + +true -- cgit v1.2.3-1-g7c22