aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpaludis/repositories/e/e_repository_TEST_exlibs_setup.sh2
-rw-r--r--paludis/repositories/e/ebuild/exheres-0/exlib_functions.bash10
2 files changed, 9 insertions, 3 deletions
diff --git a/paludis/repositories/e/e_repository_TEST_exlibs_setup.sh b/paludis/repositories/e/e_repository_TEST_exlibs_setup.sh
index c9db49013..031491de5 100755
--- a/paludis/repositories/e/e_repository_TEST_exlibs_setup.sh
+++ b/paludis/repositories/e/e_repository_TEST_exlibs_setup.sh
@@ -615,6 +615,8 @@ src_unpack() {
END
mkdir -p "packages/cat/called-cross-phase-exlib"
cat <<'END' > packages/cat/called-cross-phase-exlib/verify.exlib || exit 1
+export_exlib_phases pkg_setup
+
verify_pkg_setup() {
:
}
diff --git a/paludis/repositories/e/ebuild/exheres-0/exlib_functions.bash b/paludis/repositories/e/ebuild/exheres-0/exlib_functions.bash
index 380827260..0dd52556a 100644
--- a/paludis/repositories/e/ebuild/exheres-0/exlib_functions.bash
+++ b/paludis/repositories/e/ebuild/exheres-0/exlib_functions.bash
@@ -266,9 +266,13 @@ require()
has ${v} ${!a_v} || die "${CURRENT_EXLIB}.exlib takes no ${v} parameter"
done
- # die on exported exlib phases which don't get defined
- for v in ${PALUDIS_CHECK_EXPORTED_PHASES} ; do
- type -t ${v} >/dev/null || die "exported phase function ${v} does not exist"
+ for v in ${PALUDIS_EBUILD_FUNCTIONS} ; do
+ c_v=${CURRENT_EXLIB}_${v}
+ if has ${c_v} ${PALUDIS_CHECK_EXPORTED_PHASES}; then
+ type -t ${c_v} >/dev/null || die "exported phase function ${v} does not exist"
+ else
+ type -t ${c_v} >/dev/null && die "phase function ${c_v} exists but was not exported"
+ fi
done
export PALUDIS_CHECK_EXPORTED_PHASES="${old_PALUDIS_CHECK_EXPORTED_PHASES}"