diff options
author | 2015-11-01 20:43:47 +0000 | |
---|---|---|
committer | 2015-11-05 17:37:28 +0000 | |
commit | d9fa141466ccba61fd00ac3c0430b77ac7966084 (patch) | |
tree | f090442fafc9755cc05bd51038d7decfb35c4aa0 | |
parent | 223c7cd2b1c03f5916b00c3ba583b47112a148ff (diff) | |
download | paludis-d9fa141466ccba61fd00ac3c0430b77ac7966084.tar.gz paludis-d9fa141466ccba61fd00ac3c0430b77ac7966084.tar.xz |
EAPI 6 has get_libdir
-rw-r--r-- | paludis/repositories/e/e_repository_TEST_5.cc | 9 | ||||
-rwxr-xr-x | paludis/repositories/e/e_repository_TEST_5_setup.sh | 18 | ||||
-rw-r--r-- | paludis/repositories/e/e_repository_TEST_6.cc | 9 | ||||
-rwxr-xr-x | paludis/repositories/e/e_repository_TEST_6_setup.sh | 28 | ||||
-rw-r--r-- | paludis/repositories/e/ebuild/6/Makefile.am | 1 | ||||
-rw-r--r-- | paludis/repositories/e/ebuild/6/multilib_functions.bash | 26 |
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 ebef77a7e..9a3bb9692 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 8e7c0b051..ee132fc5f 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 79dbde34e..39dc99854 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 1976b805d..5913ff363 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 beaef3346..e7737e43f 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 000000000..0fa13fe34 --- /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} +} + |