common/libexec: remove redundant pre/do/post preparation code
This pullrequest removes redundant codepaths in xbps-src-do{build,configure,install}.sh and joins the code in the run_step function. This causes slightly different behavior to do_install: Do install will chdir to wrksrc only _before_ the first step. The current behavior is that pre_install will run without a chdir, do_ and post_ is runned with a chdir. This is a subtle but breaking change and may cause some templates to break at install phase.
This commit is contained in:
parent
ac0ca9945a
commit
ba84655a13
4 changed files with 51 additions and 95 deletions
|
@ -31,41 +31,7 @@ for f in $XBPS_COMMONDIR/environment/build/*.sh; do
|
|||
source_file "$f"
|
||||
done
|
||||
|
||||
cd "$wrksrc" || msg_error "$pkgver: cannot access wrksrc directory [$wrksrc]\n"
|
||||
if [ -n "$build_wrksrc" ]; then
|
||||
cd $build_wrksrc || \
|
||||
msg_error "$pkgver: cannot access build_wrksrc directory [$build_wrksrc]\n"
|
||||
fi
|
||||
|
||||
run_pkg_hooks pre-build
|
||||
|
||||
# Run pre_build()
|
||||
if declare -f pre_build >/dev/null; then
|
||||
run_func pre_build
|
||||
fi
|
||||
|
||||
# Run do_build()
|
||||
if declare -f do_build >/dev/null; then
|
||||
run_func do_build
|
||||
else
|
||||
if [ -n "$build_style" ]; then
|
||||
if [ ! -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then
|
||||
msg_error "$pkgver: cannot find build helper $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n"
|
||||
fi
|
||||
. $XBPS_BUILDSTYLEDIR/${build_style}.sh
|
||||
if declare -f do_build >/dev/null; then
|
||||
run_func do_build
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Run post_build()
|
||||
if declare -f post_build >/dev/null; then
|
||||
run_func post_build
|
||||
fi
|
||||
|
||||
run_pkg_hooks post-build
|
||||
run_step build
|
||||
|
||||
touch -f $XBPS_BUILD_DONE
|
||||
|
||||
|
|
|
@ -31,40 +31,7 @@ for f in $XBPS_COMMONDIR/environment/configure/*.sh; do
|
|||
source_file "$f"
|
||||
done
|
||||
|
||||
cd "$wrksrc" || msg_error "$pkgver: cannot access wrksrc directory [$wrksrc].\n"
|
||||
if [ -n "$build_wrksrc" ]; then
|
||||
cd $build_wrksrc || \
|
||||
msg_error "$pkgver: cannot access build_wrksrc directory [$build_wrksrc].\n"
|
||||
fi
|
||||
|
||||
run_pkg_hooks pre-configure
|
||||
|
||||
# Run pre_configure()
|
||||
if declare -f pre_configure >/dev/null; then
|
||||
run_func pre_configure
|
||||
fi
|
||||
|
||||
# Run do_configure()
|
||||
if declare -f do_configure >/dev/null; then
|
||||
run_func do_configure
|
||||
else
|
||||
if [ -n "$build_style" ]; then
|
||||
if [ ! -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then
|
||||
msg_error "$pkgver: cannot find build helper $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n"
|
||||
fi
|
||||
. $XBPS_BUILDSTYLEDIR/${build_style}.sh
|
||||
if declare -f do_configure >/dev/null; then
|
||||
run_func do_configure
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Run post_configure()
|
||||
if declare -f post_configure >/dev/null; then
|
||||
run_func post_configure
|
||||
fi
|
||||
|
||||
run_pkg_hooks post-configure
|
||||
run_step configure optional
|
||||
|
||||
touch -f $XBPS_CONFIGURE_DONE
|
||||
|
||||
|
|
|
@ -37,32 +37,7 @@ if [ "$SUBPKG_MODE" = "no" ]; then
|
|||
if [ ! -f $XBPS_INSTALL_DONE ] || [ -f $XBPS_INSTALL_DONE -a -n "$XBPS_BUILD_FORCEMODE" ]; then
|
||||
mkdir -p $XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/$pkgname-$version
|
||||
|
||||
# Run pre-install hooks
|
||||
run_pkg_hooks pre-install
|
||||
|
||||
# Run pre_install()
|
||||
if declare -f pre_install >/dev/null; then
|
||||
run_func pre_install
|
||||
fi
|
||||
|
||||
# Run do_install()
|
||||
cd "$wrksrc"
|
||||
[ -n "$build_wrksrc" ] && cd $build_wrksrc
|
||||
if declare -f do_install >/dev/null; then
|
||||
run_func do_install
|
||||
else
|
||||
if [ ! -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then
|
||||
msg_error "$pkgver: cannot find build helper $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n"
|
||||
fi
|
||||
. $XBPS_BUILDSTYLEDIR/${build_style}.sh
|
||||
run_func do_install
|
||||
fi
|
||||
# Run post_install()
|
||||
cd "$wrksrc"
|
||||
[ -n "$build_wrksrc" ] && cd $build_wrksrc
|
||||
if declare -f post_install >/dev/null; then
|
||||
run_func post_install
|
||||
fi
|
||||
run_step install "" skip
|
||||
|
||||
touch -f $XBPS_INSTALL_DONE
|
||||
fi
|
||||
|
|
|
@ -27,6 +27,54 @@ run_func() {
|
|||
set +E
|
||||
}
|
||||
|
||||
ch_wrksrc() {
|
||||
cd "$wrksrc" || msg_error "$pkgver: cannot access wrksrc directory [$wrksrc]\n"
|
||||
if [ -n "$build_wrksrc" ]; then
|
||||
cd $build_wrksrc || \
|
||||
msg_error "$pkgver: cannot access build_wrksrc directory [$build_wrksrc]\n"
|
||||
fi
|
||||
}
|
||||
|
||||
# runs {pre,do,post}_X tripplets
|
||||
run_step() {
|
||||
local step_name="$1" optional_step="$2" skip_post_hook="$3"
|
||||
|
||||
run_pkg_hooks "pre-$step_name"
|
||||
|
||||
ch_wrksrc
|
||||
# Run pre_* Phase
|
||||
if declare -f "pre_$step_name" >/dev/null; then
|
||||
run_func "pre_$step_name"
|
||||
fi
|
||||
|
||||
# Run do_* Phase
|
||||
if declare -f "do_$step_name" >/dev/null; then
|
||||
run_func "do_$step_name"
|
||||
elif [ -n "$build_style" ]; then
|
||||
if [ -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then
|
||||
. $XBPS_BUILDSTYLEDIR/${build_style}.sh
|
||||
if declare -f "do_$step_name" >/dev/null; then
|
||||
run_func "do_$step_name"
|
||||
elif [ ! "$optional_step" ]; then
|
||||
msg_error "$pkgver: cannot find do_$step_name() in $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n"
|
||||
fi
|
||||
else
|
||||
msg_error "$pkgver: cannot find build helper $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n"
|
||||
fi
|
||||
elif [ ! "$optional_step" ]; then
|
||||
msg_error "$pkgver: cannot find do_$step_name()!\n"
|
||||
fi
|
||||
|
||||
# Run post_* Phase
|
||||
if declare -f "post_$step_name" >/dev/null; then
|
||||
run_func "post_$step_name"
|
||||
fi
|
||||
|
||||
if ! [ "$skip_post_hook" ]; then
|
||||
run_pkg_hooks "post-$step_name"
|
||||
fi
|
||||
}
|
||||
|
||||
error_func() {
|
||||
if [ -n "$1" -a -n "$2" ]; then
|
||||
msg_red "$pkgver: failed to run $1() at line $2.\n"
|
||||
|
|
Loading…
Reference in a new issue