aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-05-28 08:36:58 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-05-28 08:36:58 +0000
commit1989fc0a15669359f8be07d1a1e2db5ec76aefb1 (patch)
treed8a4c42e13a05f3ec036204c96e3e0fddbe7dfb0
parentffcd9571f4ccf6f976d8a8f7d3538e7bd9ad57e9 (diff)
downloadpaludis-1989fc0a15669359f8be07d1a1e2db5ec76aefb1.tar.gz
paludis-1989fc0a15669359f8be07d1a1e2db5ec76aefb1.tar.xz
Move EAPI data into configuration files. Fixes: ticket:256
-rw-r--r--configure.ac1
-rw-r--r--paludis/Makefile.am.m43
-rw-r--r--paludis/dep_list/Makefile.am1
-rw-r--r--paludis/dep_spec.se1
-rw-r--r--paludis/eapi-fwd.hh1
-rw-r--r--paludis/eapi.cc109
-rw-r--r--paludis/eapi.hh15
-rw-r--r--paludis/eapis/0.conf16
-rw-r--r--paludis/eapis/CRAN-1.conf16
-rw-r--r--paludis/eapis/Makefile.am19
-rw-r--r--paludis/eapis/exheres-0.conf17
-rw-r--r--paludis/eapis/paludis-1.conf17
-rw-r--r--paludis/merger/Makefile.am1
-rw-r--r--paludis/name.se1
-rw-r--r--paludis/portage_dep_parser.se1
-rw-r--r--paludis/qa/Makefile.am.m41
-rw-r--r--paludis/repositories/cran/Makefile.am1
-rw-r--r--paludis/repositories/gentoo/Makefile.am1
-rw-r--r--paludis/repositories/gentoo/ebuild/Makefile.am1
-rw-r--r--python/Makefile.am1
-rw-r--r--ruby/Makefile.am1
-rw-r--r--ruby/demos/Makefile.am1
-rw-r--r--src/clients/adjutrix/Makefile.am1
-rw-r--r--src/clients/contrarius/Makefile.am1
-rw-r--r--src/clients/inquisitio/Makefile.am1
-rw-r--r--src/clients/paludis/Makefile.am1
26 files changed, 172 insertions, 58 deletions
diff --git a/configure.ac b/configure.ac
index 4b015b1..f51ced4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1065,6 +1065,7 @@ AC_OUTPUT(
paludis/args/Makefile
paludis/dep_list/Makefile
paludis/digests/Makefile
+ paludis/eapis/Makefile
paludis/environments/Makefile
paludis/environments/adapted/Makefile
paludis/environments/paludis/Makefile
diff --git a/paludis/Makefile.am.m4 b/paludis/Makefile.am.m4
index fe1c622..5469b0a 100644
--- a/paludis/Makefile.am.m4
+++ b/paludis/Makefile.am.m4
@@ -82,7 +82,7 @@ DEFS= \
EXTRA_DIST = about.hh.in Makefile.am.m4 paludis.hh.m4 files.m4 \
hashed_containers.hh.in testscriptlist srlist srcleanlist selist secleanlist \
repository_blacklist.txt hooker.bash
-SUBDIRS = digests fetchers syncers util selinux . dep_list merger repositories environments args qa tasks
+SUBDIRS = digests eapis fetchers syncers util selinux . dep_list merger repositories environments args qa tasks
BUILT_SOURCES = srcleanlist secleanlist
libpaludis_la_SOURCES = filelist
@@ -156,6 +156,7 @@ built-sources : $(BUILT_SOURCES)
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="$(top_srcdir)/paludis/repositories/gentoo/ebuild/" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_HOOKER_DIR="$(top_srcdir)/paludis/" \
PALUDIS_OUTPUTWRAPPER_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/util/`" \
PALUDIS_SKIP_CONFIG="yes" \
diff --git a/paludis/dep_list/Makefile.am b/paludis/dep_list/Makefile.am
index 86704ea..fff1af5 100644
--- a/paludis/dep_list/Makefile.am
+++ b/paludis/dep_list/Makefile.am
@@ -63,6 +63,7 @@ TESTS = \
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="$(top_srcdir)/ebuild/" \
PALUDIS_SKIP_CONFIG="yes" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
TEST_SCRIPT_DIR="$(srcdir)/" \
bash $(top_srcdir)/test/run_test.sh
diff --git a/paludis/dep_spec.se b/paludis/dep_spec.se
index 89dddbe..38810d2 100644
--- a/paludis/dep_spec.se
+++ b/paludis/dep_spec.se
@@ -4,6 +4,7 @@
make_enum_PackageDepSpecParseMode()
{
prefix pds_pm
+ want_destringify
key pds_pm_eapi_0 "EAPI 0"
key pds_pm_eapi_0_strict "EAPI 0, errors for non-permitted things"
diff --git a/paludis/eapi-fwd.hh b/paludis/eapi-fwd.hh
index bb9d159..4d94b61 100644
--- a/paludis/eapi-fwd.hh
+++ b/paludis/eapi-fwd.hh
@@ -25,6 +25,7 @@ namespace paludis
class EAPI;
class SupportedEAPI;
class EAPIData;
+ class EAPIConfigurationError;
}
#endif
diff --git a/paludis/eapi.cc b/paludis/eapi.cc
index a2aed0d..8e59aef 100644
--- a/paludis/eapi.cc
+++ b/paludis/eapi.cc
@@ -21,6 +21,13 @@
#include <paludis/name.hh>
#include <paludis/dep_spec.hh>
#include <paludis/hashed_containers.hh>
+#include <paludis/util/dir_iterator.hh>
+#include <paludis/util/is_file_with_extension.hh>
+#include <paludis/util/system.hh>
+#include <paludis/util/strip.hh>
+#include <paludis/util/destringify.hh>
+#include <paludis/util/make_shared_ptr.hh>
+#include <paludis/config_file.hh>
using namespace paludis;
@@ -33,69 +40,57 @@ namespace paludis
Implementation()
{
- values.insert(std::make_pair("0", EAPI("0", tr1::shared_ptr<SupportedEAPI>(new SupportedEAPI(SupportedEAPI::create()
- .package_dep_spec_parse_mode(pds_pm_eapi_0)
- .strict_package_dep_spec_parse_mode(pds_pm_eapi_0_strict)
- .dependency_spec_tree_parse_mode(dst_pm_eapi_0)
- .iuse_flag_parse_mode(iuse_pm_eapi_0)
- .strict_iuse_flag_parse_mode(iuse_pm_eapi_0_strict)
- .breaks_portage(false)
- .has_pkg_pretend(false)
- .uri_supports_arrow(false)
- .want_aa_var(true)
- .want_arch_var(true)
- .want_portage_emulation_vars(true)
- .require_use_expand_in_iuse(false))))));
-
- values.insert(std::make_pair("", values.find("0")->second));
-
- values.insert(std::make_pair("paludis-1", EAPI("paludis-1", tr1::shared_ptr<SupportedEAPI>(new SupportedEAPI(SupportedEAPI::create()
- .package_dep_spec_parse_mode(pds_pm_permissive)
- .strict_package_dep_spec_parse_mode(pds_pm_permissive)
- .dependency_spec_tree_parse_mode(dst_pm_paludis_1)
- .iuse_flag_parse_mode(iuse_pm_permissive)
- .strict_iuse_flag_parse_mode(iuse_pm_permissive)
- .breaks_portage(true)
- .has_pkg_pretend(true)
- .want_aa_var(false)
- .want_arch_var(true)
- .uri_supports_arrow(true)
- .want_portage_emulation_vars(false)
- .require_use_expand_in_iuse(false))))));
-
- values.insert(std::make_pair("CRAN-1", EAPI("CRAN-1", tr1::shared_ptr<SupportedEAPI>(new SupportedEAPI(SupportedEAPI::create()
- .package_dep_spec_parse_mode(pds_pm_permissive)
- .strict_package_dep_spec_parse_mode(pds_pm_eapi_0_strict)
- .dependency_spec_tree_parse_mode(dst_pm_eapi_0)
- .iuse_flag_parse_mode(iuse_pm_permissive)
- .strict_iuse_flag_parse_mode(iuse_pm_permissive)
- .breaks_portage(true)
- .has_pkg_pretend(false)
- .want_aa_var(false)
- .want_arch_var(false)
- .want_portage_emulation_vars(false)
- .uri_supports_arrow(true)
- .require_use_expand_in_iuse(false))))));
-
- values.insert(std::make_pair("exheres-0", EAPI("exheres-0", tr1::shared_ptr<SupportedEAPI>(new SupportedEAPI(SupportedEAPI::create()
- .package_dep_spec_parse_mode(pds_pm_exheres_0)
- .strict_package_dep_spec_parse_mode(pds_pm_exheres_0)
- .dependency_spec_tree_parse_mode(dst_pm_exheres_0)
- .iuse_flag_parse_mode(iuse_pm_exheres_0)
- .strict_iuse_flag_parse_mode(iuse_pm_exheres_0)
- .breaks_portage(true)
- .has_pkg_pretend(true)
- .want_aa_var(false)
- .want_arch_var(false)
- .want_portage_emulation_vars(false)
- .uri_supports_arrow(true)
- .require_use_expand_in_iuse(true))))));
+ Context c("When loading EAPI data:");
+
+ for (DirIterator d(getenv_with_default("PALUDIS_EAPIS_DIR", DATADIR "/paludis/eapis")), d_end ;
+ d != d_end ; ++d)
+ {
+ if (! is_file_with_extension(*d, ".conf", IsFileWithOptions()))
+ continue;
+
+ Context cc("When loading EAPI file '" + stringify(*d) + "':");
+
+ KeyValueConfigFile k(*d, KeyValueConfigFileOptions());
+
+ values.insert(std::make_pair(strip_trailing_string(d->basename(), ".conf"),
+ EAPI(strip_trailing_string(d->basename(), ".conf"), make_shared_ptr(new SupportedEAPI(
+ SupportedEAPI::create()
+ .package_dep_spec_parse_mode(destringify<PackageDepSpecParseMode>(
+ k.get("package_dep_spec_parse_mode")))
+ .strict_package_dep_spec_parse_mode(destringify<PackageDepSpecParseMode>(
+ k.get("strict_package_dep_spec_parse_mode")))
+ .dependency_spec_tree_parse_mode(destringify<DependencySpecTreeParseMode>(
+ k.get("dependency_spec_tree_parse_mode")))
+ .iuse_flag_parse_mode(destringify<IUseFlagParseMode>(
+ k.get("iuse_flag_parse_mode")))
+ .strict_iuse_flag_parse_mode(destringify<IUseFlagParseMode>(
+ k.get("strict_iuse_flag_parse_mode")))
+ .breaks_portage(destringify<bool>(k.get("breaks_portage")))
+ .has_pkg_pretend(destringify<bool>(k.get("has_pkg_pretend")))
+ .uri_supports_arrow(destringify<bool>(k.get("uri_supports_arrow")))
+ .want_aa_var(destringify<bool>(k.get("want_aa_var")))
+ .want_arch_var(destringify<bool>(k.get("want_arch_var")))
+ .want_portage_emulation_vars(destringify<bool>(k.get("want_portage_emulation_vars")))
+ .require_use_expand_in_iuse(destringify<bool>(k.get("require_use_expand_in_iuse")))
+ )))));
+ }
+
+ MakeHashedMap<std::string, EAPI>::Type::const_iterator i(values.find("0"));
+ if (i == values.end())
+ throw EAPIConfigurationError("No EAPI configuration found for EAPI 0");
+ else
+ values.insert(std::make_pair("", i->second));
}
};
}
#include <paludis/eapi-sr.cc>
+EAPIConfigurationError::EAPIConfigurationError(const std::string & s) throw () :
+ ConfigurationError("EAPI configuration error: " + s)
+{
+}
+
EAPIData::EAPIData() :
PrivateImplementationPattern<EAPIData>(new Implementation<EAPIData>)
{
diff --git a/paludis/eapi.hh b/paludis/eapi.hh
index 36bcf44..1057214 100644
--- a/paludis/eapi.hh
+++ b/paludis/eapi.hh
@@ -34,6 +34,21 @@ namespace paludis
#include <paludis/eapi-sr.hh>
/**
+ * Thrown if an EAPI configuration is broken.
+ *
+ * \see EAPI
+ * \ingroup grpnames
+ * \ingroup grpexceptions
+ * \nosubgrouping
+ */
+ class PALUDIS_VISIBLE EAPIConfigurationError :
+ public ConfigurationError
+ {
+ public:
+ EAPIConfigurationError(const std::string &) throw ();
+ };
+
+ /**
* Holds information on recognised EAPIs.
*
* \see EAPI
diff --git a/paludis/eapis/0.conf b/paludis/eapis/0.conf
new file mode 100644
index 0000000..2a82485
--- /dev/null
+++ b/paludis/eapis/0.conf
@@ -0,0 +1,16 @@
+# Configuration for EAPI 0
+# EAPI 0 is the default EAPI used by Gentoo. It is specified in PMS.
+
+package_dep_spec_parse_mode = eapi_0
+strict_package_dep_spec_parse_mode = eapi_0_strict
+dependency_spec_tree_parse_mode = eapi_0
+iuse_flag_parse_mode = eapi_0
+strict_iuse_flag_parse_mode = eapi_0_strict
+breaks_portage = false
+has_pkg_pretend = false
+uri_supports_arrow = false
+want_aa_var = true
+want_arch_var = true
+want_portage_emulation_vars = true
+require_use_expand_in_iuse = false
+
diff --git a/paludis/eapis/CRAN-1.conf b/paludis/eapis/CRAN-1.conf
new file mode 100644
index 0000000..512661e
--- /dev/null
+++ b/paludis/eapis/CRAN-1.conf
@@ -0,0 +1,16 @@
+# Configuration for EAPI CRAN-1
+# This isn't a real EAPI. It's used by Paludis internally for CRAN packages.
+
+package_dep_spec_parse_mode = permissive
+strict_package_dep_spec_parse_mode = permissive
+dependency_spec_tree_parse_mode = eapi_0
+iuse_flag_parse_mode = permissive
+strict_iuse_flag_parse_mode = permissive
+breaks_portage = true
+has_pkg_pretend = false
+want_aa_var = false
+want_arch_var = false
+want_portage_emulation_vars = false
+uri_supports_arrow = true
+require_use_expand_in_iuse = false
+
diff --git a/paludis/eapis/Makefile.am b/paludis/eapis/Makefile.am
new file mode 100644
index 0000000..702aca0
--- /dev/null
+++ b/paludis/eapis/Makefile.am
@@ -0,0 +1,19 @@
+MAINTAINERCLEANFILES = Makefile.in
+CLEANFILES = *~ gmon.out *.gcov *.gcno *.gcda .keep
+SUBDIRS =
+
+eapis = \
+ 0.conf \
+ CRAN-1.conf \
+ exheres-0.conf \
+ paludis-1.conf
+
+eapidir = $(datadir)/paludis/eapis/
+
+eapi_DATA = $(eapis)
+
+EXTRA_DIST = $(eapis)
+
+built-sources : $(BUILT_SOURCES)
+ for s in `echo $(SUBDIRS) | tr -d .` ; do $(MAKE) -C $$s built-sources || exit 1 ; done
+
diff --git a/paludis/eapis/exheres-0.conf b/paludis/eapis/exheres-0.conf
new file mode 100644
index 0000000..4f4d90f
--- /dev/null
+++ b/paludis/eapis/exheres-0.conf
@@ -0,0 +1,17 @@
+# Configuration for EAPI exheres-0
+# This is an experimental EAPI for exheres. It is not stable. When a stable
+# version is available, it will be snapshotted as exheres-1.
+
+package_dep_spec_parse_mode = exheres_0
+strict_package_dep_spec_parse_mode = exheres_0
+dependency_spec_tree_parse_mode = exheres_0
+iuse_flag_parse_mode = exheres_0
+strict_iuse_flag_parse_mode = exheres_0
+breaks_portage = true
+has_pkg_pretend = true
+want_aa_var = false
+want_arch_var = false
+want_portage_emulation_vars = false
+uri_supports_arrow = true
+require_use_expand_in_iuse = true
+
diff --git a/paludis/eapis/paludis-1.conf b/paludis/eapis/paludis-1.conf
new file mode 100644
index 0000000..316cd75
--- /dev/null
+++ b/paludis/eapis/paludis-1.conf
@@ -0,0 +1,17 @@
+# Configuration for EAPI paludis-1
+# This is an internal EAPI supporting most Paludis extra features. It is not
+# particularly stable or ideal for third party use.
+
+package_dep_spec_parse_mode = permissive
+strict_package_dep_spec_parse_mode = permissive
+dependency_spec_tree_parse_mode = paludis_1
+iuse_flag_parse_mode = permissive
+strict_iuse_flag_parse_mode = permissive
+breaks_portage = true
+has_pkg_pretend = true
+want_aa_var = false
+want_arch_var = true
+uri_supports_arrow = true
+want_portage_emulation_vars = false
+require_use_expand_in_iuse = false
+
diff --git a/paludis/merger/Makefile.am b/paludis/merger/Makefile.am
index 1b1e4d9..53725d3 100644
--- a/paludis/merger/Makefile.am
+++ b/paludis/merger/Makefile.am
@@ -47,6 +47,7 @@ TESTS = \
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="$(top_srcdir)/paludis/repositories/gentoo/ebuild/" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_SKIP_CONFIG="yes" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
PALUDIS_HOOKER_DIR="$(top_srcdir)/paludis/" \
diff --git a/paludis/name.se b/paludis/name.se
index fd4af25..1e66fd1 100644
--- a/paludis/name.se
+++ b/paludis/name.se
@@ -21,6 +21,7 @@ END
make_enum_IUseFlagParseMode()
{
prefix iuse_pm
+ want_destringify
key iuse_pm_eapi_0 "EAPI 0"
key iuse_pm_eapi_0_strict "EAPI 0, errors for non-permitted things"
diff --git a/paludis/portage_dep_parser.se b/paludis/portage_dep_parser.se
index 91e4ecf..55a413b 100644
--- a/paludis/portage_dep_parser.se
+++ b/paludis/portage_dep_parser.se
@@ -4,6 +4,7 @@
make_enum_DependencySpecTreeParseMode()
{
prefix dst_pm
+ want_destringify
key dst_pm_eapi_0 "EAPI 0"
key dst_pm_exheres_0 "EAPI exheres-0"
diff --git a/paludis/qa/Makefile.am.m4 b/paludis/qa/Makefile.am.m4
index fdacbdf..2bfd644 100644
--- a/paludis/qa/Makefile.am.m4
+++ b/paludis/qa/Makefile.am.m4
@@ -80,6 +80,7 @@ TESTS = testlist
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="$(top_srcdir)/paludis/repositories/gentoo/ebuild/" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_SKIP_CONFIG="yes" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
TEST_SCRIPT_DIR="$(srcdir)/" \
diff --git a/paludis/repositories/cran/Makefile.am b/paludis/repositories/cran/Makefile.am
index 2558131..65a1f44 100644
--- a/paludis/repositories/cran/Makefile.am
+++ b/paludis/repositories/cran/Makefile.am
@@ -98,6 +98,7 @@ check_SCRIPTS = cran_repository_TEST_setup.sh cran_repository_TEST_cleanup.sh
TESTS_ENVIRONMENT = env \
CRAN_BASH_DIR="$(top_srcdir)/paludis/repositories/cran/cran/" \
PALUDIS_SKIP_CONFIG="yes" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
TEST_SCRIPT_DIR="$(srcdir)/" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
bash $(top_srcdir)/test/run_test.sh
diff --git a/paludis/repositories/gentoo/Makefile.am b/paludis/repositories/gentoo/Makefile.am
index c071838..803a872 100644
--- a/paludis/repositories/gentoo/Makefile.am
+++ b/paludis/repositories/gentoo/Makefile.am
@@ -213,6 +213,7 @@ check_SCRIPTS = \
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_SKIP_CONFIG="yes" \
TEST_SCRIPT_DIR="$(srcdir)/" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
diff --git a/paludis/repositories/gentoo/ebuild/Makefile.am b/paludis/repositories/gentoo/ebuild/Makefile.am
index fd0857f..58630e5 100644
--- a/paludis/repositories/gentoo/ebuild/Makefile.am
+++ b/paludis/repositories/gentoo/ebuild/Makefile.am
@@ -50,6 +50,7 @@ libexecprog_SCRIPTS = \
TESTS_ENVIRONMENT = env \
PALUDIS_EBUILD_DIR="$(top_srcdir)/paludis/repositories/gentoo/ebuild/" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_EBUILD_LOG_LEVEL="warning" \
TOP_BUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/`" \
TEST_SCRIPT_DIR="$(srcdir)/" \
diff --git a/python/Makefile.am b/python/Makefile.am
index 358f215..d0c975e 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -75,6 +75,7 @@ TESTS_ENVIRONMENT = env \
PALUDIS_NO_XTERM_TITLES="yes" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
PALUDIS_ENVIRONMENT_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/environments`" \
SYSCONFDIR="$(sysconfdir)" \
diff --git a/ruby/Makefile.am b/ruby/Makefile.am
index f25f4cc..d43926f 100644
--- a/ruby/Makefile.am
+++ b/ruby/Makefile.am
@@ -89,6 +89,7 @@ TESTS_ENVIRONMENT = env \
PALUDIS_NO_XTERM_TITLES="yes" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
PALUDIS_ENVIRONMENT_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/environments`" \
SYSCONFDIR="$(sysconfdir)" \
diff --git a/ruby/demos/Makefile.am b/ruby/demos/Makefile.am
index 1972319..0606dea 100644
--- a/ruby/demos/Makefile.am
+++ b/ruby/demos/Makefile.am
@@ -29,6 +29,7 @@ TESTS_ENVIRONMENT = env \
PALUDIS_NO_XTERM_TITLES="yes" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/ebuild/utils/canonicalise $(top_srcdir)/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/ebuild/utils/canonicalise $(top_builddir)/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
SYSCONFDIR="$(sysconfdir)" \
LD_LIBRARY_PATH="`$(top_srcdir)/ebuild/utils/canonicalise $(top_builddir)/paludis/.libs`" \
diff --git a/src/clients/adjutrix/Makefile.am b/src/clients/adjutrix/Makefile.am
index b186773..87a3fcf 100644
--- a/src/clients/adjutrix/Makefile.am
+++ b/src/clients/adjutrix/Makefile.am
@@ -67,6 +67,7 @@ TESTS_ENVIRONMENT = env \
PALUDIS_NO_XTERM_TITLES="yes" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
SYSCONFDIR="$(sysconfdir)" \
ADJUTRIX_OPTIONS="" \
diff --git a/src/clients/contrarius/Makefile.am b/src/clients/contrarius/Makefile.am
index cafd0c4..e60f346 100644
--- a/src/clients/contrarius/Makefile.am
+++ b/src/clients/contrarius/Makefile.am
@@ -53,6 +53,7 @@ BUILT_SOURCES = \
TESTS_ENVIRONMENT = env \
TEST_SCRIPT_DIR="$(srcdir)/" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
CONTRARIUS_OPTIONS="" \
bash $(top_srcdir)/test/run_test.sh bash
diff --git a/src/clients/inquisitio/Makefile.am b/src/clients/inquisitio/Makefile.am
index dc4ce79..3c5e6f1 100644
--- a/src/clients/inquisitio/Makefile.am
+++ b/src/clients/inquisitio/Makefile.am
@@ -63,6 +63,7 @@ TESTS_ENVIRONMENT = env \
INQUISITIO_OPTIONS="" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
SYSCONFDIR="$(sysconfdir)" \
bash $(top_srcdir)/test/run_test.sh bash
diff --git a/src/clients/paludis/Makefile.am b/src/clients/paludis/Makefile.am
index ca96b78..472425f 100644
--- a/src/clients/paludis/Makefile.am
+++ b/src/clients/paludis/Makefile.am
@@ -83,6 +83,7 @@ TESTS_ENVIRONMENT = env \
PALUDIS_OPTIONS="" \
PALUDIS_EBUILD_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_srcdir)/paludis/repositories/gentoo/ebuild/`" \
PALUDIS_EBUILD_DIR_FALLBACK="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories/gentoo/ebuild/`" \
+ PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_REPOSITORY_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/repositories`" \
PALUDIS_ENVIRONMENT_SO_DIR="`$(top_srcdir)/paludis/repositories/gentoo/ebuild/utils/canonicalise $(top_builddir)/paludis/environments`" \
PALUDIS_NO_CHOWN="yupyup" \