6e13dcbaff
XBPS_STATEDIR is created in XBPS_BUILDDIR/.xbps-${sourcepkg}-${version} and contains logs and state files for all phases, as well as wrappers. We can now inspect the output from all hooks.
101 lines
2.8 KiB
Bash
Executable File
101 lines
2.8 KiB
Bash
Executable File
#!//bin/bash
|
|
#
|
|
# vim: set ts=4 sw=4 et:
|
|
#
|
|
# Passed arguments:
|
|
# $1 - pkgname [REQUIRED]
|
|
# $2 - cross target [OPTIONAL]
|
|
|
|
if [ $# -lt 1 -o $# -gt 2 ]; then
|
|
echo "$(basename $0): invalid number of arguments: pkgname [cross-target]"
|
|
exit 1
|
|
fi
|
|
|
|
PKGNAME="$1"
|
|
XBPS_CROSS_BUILD="$2"
|
|
|
|
for f in $XBPS_SHUTILSDIR/*.sh; do
|
|
. $f
|
|
done
|
|
|
|
setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD
|
|
|
|
for f in $XBPS_COMMONDIR/environment/install/*.sh; do
|
|
source_file "$f"
|
|
done
|
|
|
|
XBPS_INSTALL_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_install_done"
|
|
XBPS_PRE_INSTALL_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_pre_install_done"
|
|
XBPS_POST_INSTALL_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_post_install_done"
|
|
|
|
cd $wrksrc || msg_error "$pkgver: cannot access to wrksrc [$wrksrc]\n"
|
|
if [ -n "$build_wrksrc" ]; then
|
|
cd $build_wrksrc || msg_error "$pkgver: cannot access to build_wrksrc [$build_wrksrc]\n"
|
|
fi
|
|
|
|
if [ ! -f $XBPS_INSTALL_DONE ]; then
|
|
mkdir -p $XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/$pkgname-$version
|
|
|
|
run_pkg_hooks pre-install
|
|
|
|
# Run pre_install()
|
|
if [ ! -f $XBPS_PRE_INSTALL_DONE ]; then
|
|
if declare -f pre_install >/dev/null; then
|
|
run_func pre_install
|
|
touch -f $XBPS_PRE_INSTALL_DONE
|
|
fi
|
|
fi
|
|
|
|
# Run do_install()
|
|
if [ ! -f $XBPS_INSTALL_DONE ]; then
|
|
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
|
|
touch -f $XBPS_INSTALL_DONE
|
|
fi
|
|
|
|
# Run post_install()
|
|
if [ ! -f $XBPS_POST_INSTALL_DONE ]; then
|
|
cd $wrksrc
|
|
[ -n "$build_wrksrc" ] && cd $build_wrksrc
|
|
if declare -f post_install >/dev/null; then
|
|
run_func post_install
|
|
touch -f $XBPS_POST_INSTALL_DONE
|
|
fi
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
XBPS_SUBPKG_INSTALL_DONE="${XBPS_STATEDIR}/${PKGNAME}_${XBPS_CROSS_BUILD}_subpkg_install_done"
|
|
|
|
# If it's a subpkg execute the pkg_install() function.
|
|
if [ ! -f $XBPS_SUBPKG_INSTALL_DONE ]; then
|
|
if [ "$sourcepkg" != "$PKGNAME" ]; then
|
|
# Source all subpkg environment setup snippets.
|
|
for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do
|
|
source_file "$f"
|
|
done
|
|
${PKGNAME}_package
|
|
pkgname=$PKGNAME
|
|
|
|
install -d $PKGDESTDIR
|
|
if declare -f pkg_install >/dev/null; then
|
|
export XBPS_PKGDESTDIR=1
|
|
run_func pkg_install
|
|
fi
|
|
fi
|
|
setup_pkg_depends ${pkgname:=$PKGNAME}
|
|
run_pkg_hooks post-install
|
|
touch -f $XBPS_SUBPKG_INSTALL_DONE
|
|
fi
|
|
|
|
exit 0
|