aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar David Leverton <levertond@googlemail.com> 2015-11-01 20:43:47 +0000
committerAvatar David Leverton <levertond@googlemail.com> 2015-11-05 17:37:28 +0000
commitd9fa141466ccba61fd00ac3c0430b77ac7966084 (patch)
treef090442fafc9755cc05bd51038d7decfb35c4aa0
parent223c7cd2b1c03f5916b00c3ba583b47112a148ff (diff)
downloadpaludis-d9fa141466ccba61fd00ac3c0430b77ac7966084.tar.gz
paludis-d9fa141466ccba61fd00ac3c0430b77ac7966084.tar.xz
EAPI 6 has get_libdir
-rw-r--r--paludis/repositories/e/e_repository_TEST_5.cc9
-rwxr-xr-xpaludis/repositories/e/e_repository_TEST_5_setup.sh18
-rw-r--r--paludis/repositories/e/e_repository_TEST_6.cc9
-rwxr-xr-xpaludis/repositories/e/e_repository_TEST_6_setup.sh28
-rw-r--r--paludis/repositories/e/ebuild/6/Makefile.am1
-rw-r--r--paludis/repositories/e/ebuild/6/multilib_functions.bash26
6 files changed, 91 insertions, 0 deletions
diff --git a/paludis/repositories/e/e_repository_TEST_5.cc b/paludis/repositories/e/e_repository_TEST_5.cc
index ebef77a..9a3bb96 100644
--- a/paludis/repositories/e/e_repository_TEST_5.cc
+++ b/paludis/repositories/e/e_repository_TEST_5.cc
@@ -294,6 +294,15 @@ TEST(ERepository, InstallEAPI5)
EXPECT_EQ("5", visitor_cast<const MetadataValueKey<std::string> >(**id->find_metadata("EAPI"))->parse_value());
EXPECT_THROW(id->perform_action(action), ActionFailedError);
}
+
+ {
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/no-get_libdir-5",
+ &env, { })), nullptr, { }))]->last());
+ ASSERT_TRUE(bool(id));
+ EXPECT_EQ("5", visitor_cast<const MetadataValueKey<std::string> >(**id->find_metadata("EAPI"))->parse_value());
+ id->perform_action(action);
+ }
}
TEST(ERepository, RequiredUse)
diff --git a/paludis/repositories/e/e_repository_TEST_5_setup.sh b/paludis/repositories/e/e_repository_TEST_5_setup.sh
index 8e7c0b0..ee132fc 100755
--- a/paludis/repositories/e/e_repository_TEST_5_setup.sh
+++ b/paludis/repositories/e/e_repository_TEST_5_setup.sh
@@ -559,6 +559,24 @@ test() {
}
END
+mkdir -p "cat/no-get_libdir" || exit 1
+cat << 'END' > cat/no-get_libdir/no-get_libdir-5.ebuild || exit 1
+EAPI="5"
+DESCRIPTION="The Description"
+HOMEPAGE="http://example.com/"
+SRC_URI=""
+SLOT="0"
+IUSE=""
+LICENSE="GPL-2"
+KEYWORDS="test"
+
+S=${WORKDIR}
+
+src_configure() {
+ [[ -z $(declare -F get_libdir) ]] || die
+}
+END
+
mkdir -p "cat/subslots" || exit 1
cat << 'END' > cat/subslots/subslots-5.ebuild || exit 1
EAPI="5"
diff --git a/paludis/repositories/e/e_repository_TEST_6.cc b/paludis/repositories/e/e_repository_TEST_6.cc
index 79dbde3..39dc998 100644
--- a/paludis/repositories/e/e_repository_TEST_6.cc
+++ b/paludis/repositories/e/e_repository_TEST_6.cc
@@ -302,5 +302,14 @@ TEST(ERepository, InstallEAPI6)
EXPECT_EQ("6", visitor_cast<const MetadataValueKey<std::string> >(**id->find_metadata("EAPI"))->parse_value());
id->perform_action(action);
}
+
+ {
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/get_libdir-6",
+ &env, { })), nullptr, { }))]->last());
+ ASSERT_TRUE(bool(id));
+ EXPECT_EQ("6", visitor_cast<const MetadataValueKey<std::string> >(**id->find_metadata("EAPI"))->parse_value());
+ id->perform_action(action);
+ }
}
diff --git a/paludis/repositories/e/e_repository_TEST_6_setup.sh b/paludis/repositories/e/e_repository_TEST_6_setup.sh
index 1976b80..5913ff3 100755
--- a/paludis/repositories/e/e_repository_TEST_6_setup.sh
+++ b/paludis/repositories/e/e_repository_TEST_6_setup.sh
@@ -491,5 +491,33 @@ test() {
}
END
+mkdir -p "cat/get_libdir" || exit 1
+cat << 'END' > cat/get_libdir/get_libdir-6.ebuild || exit 1
+EAPI="6"
+DESCRIPTION="The Description"
+HOMEPAGE="http://example.com/"
+SRC_URI=""
+SLOT="0"
+IUSE=""
+LICENSE="GPL-2"
+KEYWORDS="test"
+
+S=${WORKDIR}
+
+src_configure() {
+ [[ -n $(declare -F get_libdir) ]] || die
+
+ local vars="CONF_LIBDIR_OVERRIDE ABI DEFAULT_ABI ${!LIBDIR_*}"
+ local ${vars}
+ unset ${vars}
+
+ [[ $(get_libdir) == lib ]] || die
+ [[ $(ABI= LIBDIR_=libv get_libdir) == lib ]] || die
+ [[ $(ABI=vax get_libdir) == lib ]] || die
+ [[ $(ABI=vax LIBDIR_vax= get_libdir) == lib ]] || die
+ [[ $(ABI=vax LIBDIR_vax=libv get_libdir) == libv ]] || die
+}
+END
+
cd ..
cd ..
diff --git a/paludis/repositories/e/ebuild/6/Makefile.am b/paludis/repositories/e/ebuild/6/Makefile.am
index beaef33..e7737e4 100644
--- a/paludis/repositories/e/ebuild/6/Makefile.am
+++ b/paludis/repositories/e/ebuild/6/Makefile.am
@@ -5,6 +5,7 @@ SUBDIRS = .
libexecprog6dir = $(libexecdir)/paludis/6
libexecprog6_SCRIPTS = \
+ multilib_functions.bash \
output_functions.bash
TESTS =
diff --git a/paludis/repositories/e/ebuild/6/multilib_functions.bash b/paludis/repositories/e/ebuild/6/multilib_functions.bash
new file mode 100644
index 0000000..0fa13fe
--- /dev/null
+++ b/paludis/repositories/e/ebuild/6/multilib_functions.bash
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+# vim: set sw=4 sts=4 et :
+
+# Copyright (c) 2015 David Leverton
+#
+# This file is part of the Paludis package manager. Paludis is free software;
+# you can redistribute it and/or modify it under the terms of the GNU General
+# Public License, version 2, as published by the Free Software Foundation.
+#
+# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+
+ebuild_load_module --older multilib_functions
+
+get_libdir()
+{
+ local libdir=$(ebuild_get_libdir)
+ echo ${libdir:-lib}
+}
+