xbps-src: make sure to not propagate <subpkg>_package() funcs.

Unset all them before processing a new template. Close #1023
This commit is contained in:
Juan RP 2015-02-25 18:54:00 +01:00
parent 2d1a45ccb1
commit a4ff74aeb6

View file

@ -165,7 +165,7 @@ source_file() {
} }
run_pkg_hooks() { run_pkg_hooks() {
local phase="$1" hookn local phase="$1" hookn f
eval unset -f hook eval unset -f hook
for f in ${XBPS_COMMONDIR}/hooks/${phase}/*.sh; do for f in ${XBPS_COMMONDIR}/hooks/${phase}/*.sh; do
@ -177,6 +177,14 @@ run_pkg_hooks() {
done done
} }
unset_package_funcs() {
local f
for f in $(typeset -F|grep -E '_package$'); do
eval unset -f $f
done
}
get_subpkgs() { get_subpkgs() {
local args list local args list
@ -192,23 +200,21 @@ get_subpkgs() {
setup_pkg() { setup_pkg() {
local pkg="$1" cross="$2" local pkg="$1" cross="$2"
local val _vars f local val _vars f dbgflags
[ -z "$pkg" ] && return 1 [ -z "$pkg" ] && return 1
# Start with a sane environment # Start with a sane environment
unset -v PKG_BUILD_OPTIONS XBPS_CROSS_CFLAGS XBPS_CROSS_CXXFLAGS XBPS_CROSS_CPPFLAGS XBPS_CROSS_LDFLAGS unset -v PKG_BUILD_OPTIONS XBPS_CROSS_CFLAGS XBPS_CROSS_CXXFLAGS XBPS_CROSS_CPPFLAGS XBPS_CROSS_LDFLAGS
unset -v run_depends build_depends host_build_depends unset -v subpackages run_depends build_depends host_build_depends
for f in ${subpackages}; do unset_package_funcs
eval unset -f ${f}_package
done
if [ -n "$cross" ]; then if [ -n "$cross" ]; then
source_file $XBPS_CROSSPFDIR/${cross}.sh source_file $XBPS_CROSSPFDIR/${cross}.sh
REQ_VARS="TARGET_ARCH CROSS_TRIPLET CROSS_CFLAGS CROSS_CXXFLAGS" _vars="TARGET_ARCH CROSS_TRIPLET CROSS_CFLAGS CROSS_CXXFLAGS"
for f in ${REQ_VARS}; do for f in ${_vars}; do
eval val="\$XBPS_$f" eval val="\$XBPS_$f"
if [ -z "$val" ]; then if [ -z "$val" ]; then
echo "ERROR: XBPS_$f is not defined!" echo "ERROR: XBPS_$f is not defined!"
@ -244,13 +250,13 @@ setup_pkg() {
XBPS_REMOVE_XCMD XBPS_RINDEX_XCMD XBPS_UHELPER_XCMD XBPS_REMOVE_XCMD XBPS_RINDEX_XCMD XBPS_UHELPER_XCMD
# Source all sourcepkg environment setup snippets. # Source all sourcepkg environment setup snippets.
for f in ${XBPS_COMMONDIR}/environment/setup/*.sh; do
source_file "$f"
done
# Source all subpkg environment setup snippets. # Source all subpkg environment setup snippets.
for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do
source_file "$f" source_file "$f"
done done
for f in ${XBPS_COMMONDIR}/environment/setup/*.sh; do
source_file "$f"
done
if [ ! -f ${XBPS_SRCPKGDIR}/${pkg}/template ]; then if [ ! -f ${XBPS_SRCPKGDIR}/${pkg}/template ]; then
msg_error "xbps-src: unexistent file: ${XBPS_SRCPKGDIR}/${pkg}/template\n" msg_error "xbps-src: unexistent file: ${XBPS_SRCPKGDIR}/${pkg}/template\n"