summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-apps/paludis
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-apps/paludis')
-rw-r--r--sys-apps/paludis/Manifest4
-rw-r--r--sys-apps/paludis/files/paludis-2.0.0-fix-format-security.patch66
-rw-r--r--sys-apps/paludis/files/paludis-2.2.0-check-IUSE_EFFECTIVE-in-EAPI-5.patch88
-rw-r--r--sys-apps/paludis/files/paludis-2.2.0-filter-EBUILD_PHASE_FUNC.patch22
-rw-r--r--sys-apps/paludis/files/paludis-2.2.0-filter-IUSE_EFFECTIVE.patch31
-rw-r--r--sys-apps/paludis/files/paludis-2.2.0-fix-MERGE_TYPE.patch81
-rw-r--r--sys-apps/paludis/files/paludis-2.2.0-fix-PWD-handling.patch30
-rw-r--r--sys-apps/paludis/metadata.xml18
-rw-r--r--sys-apps/paludis/paludis-1.4.2-r1.ebuild157
-rw-r--r--sys-apps/paludis/paludis-2.0.0.ebuild161
-rw-r--r--sys-apps/paludis/paludis-2.2.0-r2.ebuild169
-rw-r--r--sys-apps/paludis/paludis-2.2.0.ebuild159
-rw-r--r--sys-apps/paludis/paludis-2.4.0.ebuild162
-rw-r--r--sys-apps/paludis/paludis-9999.ebuild165
14 files changed, 1313 insertions, 0 deletions
diff --git a/sys-apps/paludis/Manifest b/sys-apps/paludis/Manifest
new file mode 100644
index 000000000000..cc1091304cef
--- /dev/null
+++ b/sys-apps/paludis/Manifest
@@ -0,0 +1,4 @@
+DIST paludis-1.4.2.tar.bz2 1791385 SHA256 ac342d908572e97968abcdd806ba9f390585a06f8da213b34374475972cb2611 SHA512 1176812683453e61897005612f525aad42b38063ff680e645ee840d63c3ffe866578f4c2756f85f7d8bea5be8ca70d3ad1713c0ea2de9e18a76135251126c109 WHIRLPOOL 72b7391b242cebd78883e43ad82d736825841de64a2e4675a7b43a751a51edd3da8acdf37888b5112f4c9aa22c0137502e519cb81b6a1085681a4d860dafcd1c
+DIST paludis-2.0.0.tar.bz2 1787616 SHA256 9e635d86e655658d31adde5813f5fcad2982b5fe8847c3c565eca7d28a1ec639 SHA512 e1df4d0617b4e021d1b63181517c0ecb9ece55669226c6ea0bba318b6899277c09a8d8ccc11ef673a3f27e77302c84702df4ae7568b44a87e0b138e346623728 WHIRLPOOL 90dcd765ebc864d14e569a01071fe3effae3c4424cf7f3004ce1f273c721c512697c6100e3b775d34732640bd770220fe5304f4d2b5e67f2de86c9f04c9ffe97
+DIST paludis-2.2.0.tar.bz2 1786405 SHA256 0b0bcb14a6539874d274c72e6a7b9825aa80fa083c2b61e1d5b14daf24829346 SHA512 9b4dd4613ec31683021d6fc5b5eb094024ceada47c41e09d1f0cb86f1de5b621869756401ba14ec0ec5f5dd20a5f8bf5b596c3891724bb9c245400b5fef4961f WHIRLPOOL 9cd602561b38e1bb6fc3d9baa5452c63a394c1e51faf299d8d1e82dad9a53969f14be542dac3f90974fcdf08c16c267cfdf45273c5244f378f9a2b7b6288bd97
+DIST paludis-2.4.0.tar.bz2 1787689 SHA256 f47b4bb5503dc127022453b15ca811dec22ee2f04c3c3b76ed1c5a83dbe1af1f SHA512 5fbb15d2285c892fdf19288b8838c51ec2439817a9abc685b8692ff4a3ddf76632d3ab51b2e0298c8eacf00f8b00f4e66b47b34db12844cd4eb77cbfb87ca32e WHIRLPOOL d9dc107886b8bf09bb203704d559dd030190b8390607964578c3f2e10a5c5cd4400146ffed894a968143761fc8149796d37597274b34b8414133b26c7252345b
diff --git a/sys-apps/paludis/files/paludis-2.0.0-fix-format-security.patch b/sys-apps/paludis/files/paludis-2.0.0-fix-format-security.patch
new file mode 100644
index 000000000000..40d2f3ad4953
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.0.0-fix-format-security.patch
@@ -0,0 +1,66 @@
+commit f777dadef601434550aa3fb411eebab04ad07103
+Author: David Leverton <levertond@googlemail.com>
+Date: Wed Aug 27 21:10:59 2014 +0100
+
+ Fix build with -Werror=format-security
+
+ Fixes: Gentoo#521326
+
+diff --git a/ruby/paludis_ruby.cc b/ruby/paludis_ruby.cc
+index 587601c..d58a8d0 100644
+--- a/ruby/paludis_ruby.cc
++++ b/ruby/paludis_ruby.cc
+@@ -173,19 +173,19 @@ void paludis::ruby::exception_to_ruby_exception(const std::exception & ee)
+ rb_raise(rb_eRuntimeError, "Unexpected paludis::InternalError: %s (%s)",
+ dynamic_cast<const paludis::InternalError *>(&ee)->message().c_str(), ee.what());
+ else if (0 != dynamic_cast<const paludis::GotASetNotAPackageDepSpec *>(&ee))
+- rb_raise(c_got_a_set_not_a_package_dep_spec, dynamic_cast<const paludis::GotASetNotAPackageDepSpec *>(&ee)->message().c_str());
++ rb_raise(c_got_a_set_not_a_package_dep_spec, "%s", dynamic_cast<const paludis::GotASetNotAPackageDepSpec *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::BadVersionSpecError *>(&ee))
+- rb_raise(c_bad_version_spec_error, dynamic_cast<const paludis::BadVersionSpecError *>(&ee)->message().c_str());
++ rb_raise(c_bad_version_spec_error, "%s", dynamic_cast<const paludis::BadVersionSpecError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::SetNameError *>(&ee))
+- rb_raise(c_set_name_error, dynamic_cast<const paludis::SetNameError *>(&ee)->message().c_str());
++ rb_raise(c_set_name_error, "%s", dynamic_cast<const paludis::SetNameError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::PackageNamePartError *>(&ee))
+- rb_raise(c_package_name_part_error, dynamic_cast<const paludis::PackageNamePartError *>(&ee)->message().c_str());
++ rb_raise(c_package_name_part_error, "%s", dynamic_cast<const paludis::PackageNamePartError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::CategoryNamePartError *>(&ee))
+- rb_raise(c_category_name_part_error, dynamic_cast<const paludis::CategoryNamePartError *>(&ee)->message().c_str());
++ rb_raise(c_category_name_part_error, "%s", dynamic_cast<const paludis::CategoryNamePartError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::NameError *>(&ee))
+- rb_raise(c_name_error, dynamic_cast<const paludis::NameError *>(&ee)->message().c_str());
++ rb_raise(c_name_error, "%s", dynamic_cast<const paludis::NameError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::PackageDepSpecError *>(&ee))
+- rb_raise(c_package_dep_spec_error, dynamic_cast<const paludis::PackageDepSpecError *>(&ee)->message().c_str());
++ rb_raise(c_package_dep_spec_error, "%s", dynamic_cast<const paludis::PackageDepSpecError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::AmbiguousPackageNameError *>(&ee))
+ {
+ VALUE ex_args[2];
+@@ -198,19 +198,19 @@ void paludis::ruby::exception_to_ruby_exception(const std::exception & ee)
+ rb_exc_raise(rb_class_new_instance(2, ex_args, c_ambiguous_package_name_error));
+ }
+ else if (0 != dynamic_cast<const paludis::NoSuchPackageError *>(&ee))
+- rb_raise(c_no_such_package_error, dynamic_cast<const paludis::NoSuchPackageError *>(&ee)->message().c_str());
++ rb_raise(c_no_such_package_error, "%s", dynamic_cast<const paludis::NoSuchPackageError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::NoSuchRepositoryError *>(&ee))
+- rb_raise(c_no_such_repository_error, dynamic_cast<const paludis::NoSuchRepositoryError *>(&ee)->message().c_str());
++ rb_raise(c_no_such_repository_error, "%s", dynamic_cast<const paludis::NoSuchRepositoryError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::ConfigFileError *>(&ee))
+- rb_raise(c_config_file_error, dynamic_cast<const paludis::ConfigFileError *>(&ee)->message().c_str());
++ rb_raise(c_config_file_error, "%s", dynamic_cast<const paludis::ConfigFileError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::ConfigurationError *>(&ee))
+- rb_raise(c_configuration_error, dynamic_cast<const paludis::ConfigurationError *>(&ee)->message().c_str());
++ rb_raise(c_configuration_error, "%s", dynamic_cast<const paludis::ConfigurationError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::ActionFailedError *>(&ee))
+- rb_raise(c_action_failed_error, dynamic_cast<const paludis::ActionFailedError *>(&ee)->message().c_str());
++ rb_raise(c_action_failed_error, "%s", dynamic_cast<const paludis::ActionFailedError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::ActionAbortedError *>(&ee))
+- rb_raise(c_action_aborted_error, dynamic_cast<const paludis::ActionAbortedError *>(&ee)->message().c_str());
++ rb_raise(c_action_aborted_error, "%s", dynamic_cast<const paludis::ActionAbortedError *>(&ee)->message().c_str());
+ else if (0 != dynamic_cast<const paludis::BadVersionOperatorError *>(&ee))
+- rb_raise(c_bad_version_operator_error, dynamic_cast<const paludis::BadVersionOperatorError *>(&ee)->message().c_str());
++ rb_raise(c_bad_version_operator_error, "%s", dynamic_cast<const paludis::BadVersionOperatorError *>(&ee)->message().c_str());
+
+ else if (0 != dynamic_cast<const paludis::Exception *>(&ee))
+ rb_raise(rb_eRuntimeError, "Caught paludis::Exception: %s (%s)",
diff --git a/sys-apps/paludis/files/paludis-2.2.0-check-IUSE_EFFECTIVE-in-EAPI-5.patch b/sys-apps/paludis/files/paludis-2.2.0-check-IUSE_EFFECTIVE-in-EAPI-5.patch
new file mode 100644
index 000000000000..1950f697f001
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.2.0-check-IUSE_EFFECTIVE-in-EAPI-5.patch
@@ -0,0 +1,88 @@
+From bfb1bd7682b4a678cfa7dccb87d1f49d842317ac Mon Sep 17 00:00:00 2001
+From: David Leverton <levertond@googlemail.com>
+Date: Sat, 21 Mar 2015 20:04:30 +0000
+Subject: Only check IUSE_EFFECTIVE for EAPI 5
+
+In other EAPIs the value isn't set by C++, and therefore may leak in
+from the calling environment.
+
+diff --git a/paludis/repositories/e/ebuild/0/list_functions.bash b/paludis/repositories/e/ebuild/0/list_functions.bash
+index 0c5d91a..4998c2b 100644
+--- a/paludis/repositories/e/ebuild/0/list_functions.bash
++++ b/paludis/repositories/e/ebuild/0/list_functions.bash
+@@ -37,13 +37,6 @@ usev()
+
+ useq()
+ {
+- if [[ -n "${IUSE_EFFECTIVE:+x}" ]] ; then
+- local i=( $IUSE_EFFECTIVE )
+- if ! hasq ${1#!} "${i[@]#[+-]}" ; then
+- die "Flag '${1#!}' is not included in IUSE_EFFECTIVE=\"${IUSE_EFFECTIVE}\""
+- fi
+- fi
+-
+ if [[ "${1:0:1}" == "!" ]] ; then
+ ! hasq "${1#!}" "${USE}"
+ else
+diff --git a/paludis/repositories/e/ebuild/5/Makefile.am b/paludis/repositories/e/ebuild/5/Makefile.am
+index fbcb919..ced4e53 100644
+--- a/paludis/repositories/e/ebuild/5/Makefile.am
++++ b/paludis/repositories/e/ebuild/5/Makefile.am
+@@ -7,6 +7,7 @@ libexecprog5dir = $(libexecdir)/paludis/5
+ libexecprog5_SCRIPTS = \
+ src_test.bash \
+ usex.bash \
++ list_functions.bash \
+ output_functions.bash
+
+ TESTS =
+diff --git a/paludis/repositories/e/ebuild/5/list_functions.bash b/paludis/repositories/e/ebuild/5/list_functions.bash
+new file mode 100644
+index 0000000..7cb22ad
+--- /dev/null
++++ b/paludis/repositories/e/ebuild/5/list_functions.bash
+@@ -0,0 +1,41 @@
++#!/usr/bin/env bash
++# vim: set sw=4 sts=4 et :
++
++# Copyright (c) 2006, 2009, 2012 Ciaran McCreesh
++# Copyright (c) 2015 David Leverton
++#
++# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005
++# Gentoo Foundation and distributed under the terms of the GNU General
++# Public License v2.
++#
++# 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 list_functions
++
++useq()
++{
++ if [[ -n "${IUSE_EFFECTIVE:+x}" ]] ; then
++ local i=( $IUSE_EFFECTIVE )
++ if ! hasq ${1#!} "${i[@]#[+-]}" ; then
++ die "Flag '${1#!}' is not included in IUSE_EFFECTIVE=\"${IUSE_EFFECTIVE}\""
++ fi
++ fi
++
++ if [[ "${1:0:1}" == "!" ]] ; then
++ ! hasq "${1#!}" "${USE}"
++ else
++ hasq "${1}" "${USE}"
++ fi
++}
++
+--
+cgit v0.10.2
+
diff --git a/sys-apps/paludis/files/paludis-2.2.0-filter-EBUILD_PHASE_FUNC.patch b/sys-apps/paludis/files/paludis-2.2.0-filter-EBUILD_PHASE_FUNC.patch
new file mode 100644
index 000000000000..dc46726909c2
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.2.0-filter-EBUILD_PHASE_FUNC.patch
@@ -0,0 +1,22 @@
+From dccb65acba7684c97675473fec5120e3aa55d2d0 Mon Sep 17 00:00:00 2001
+From: David Leverton <levertond@googlemail.com>
+Date: Sun, 29 Mar 2015 18:36:02 +0100
+Subject: Fix EBUILD_PHASE_FUNC leakage
+
+
+diff --git a/paludis/repositories/e/ebuild/ebuild.bash b/paludis/repositories/e/ebuild/ebuild.bash
+index 24a93d4..b856bad 100755
+--- a/paludis/repositories/e/ebuild/ebuild.bash
++++ b/paludis/repositories/e/ebuild/ebuild.bash
+@@ -76,7 +76,7 @@ ebuild_sanitise_envvars
+ # fancy fake variables
+ EBUILD_METADATA_VARIABLES="DEPEND RDEPEND PDEPEND IUSE IUSE_EFFECTIVE SRC_URI DOWNLOADS RESTRICT \
+ LICENSE LICENCES KEYWORDS INHERITED PROVIDE HOMEPAGE DESCRIPTION DEPENDENCIES \
+- E_IUSE E_DEPEND E_RDEPEND E_PDEPEND PLATFORMS DEFINED_PHASES \
++ E_IUSE E_DEPEND E_RDEPEND E_PDEPEND PLATFORMS DEFINED_PHASES EBUILD_PHASE_FUNC \
+ MYOPTIONS E_MYOPTIONS E_DEPENDENCIES BINARY_KEYWORDS BINARY_URI \
+ GENERATED_USING GENERATED_TIME GENERATED_FROM_REPOSITORY BINARY_PLATFORMS REMOTE_IDS \
+ SUMMARY BUGS_TO UPSTREAM_DOCUMENTATION UPSTREAM_CHANGELOG \
+--
+cgit v0.10.2
+
diff --git a/sys-apps/paludis/files/paludis-2.2.0-filter-IUSE_EFFECTIVE.patch b/sys-apps/paludis/files/paludis-2.2.0-filter-IUSE_EFFECTIVE.patch
new file mode 100644
index 000000000000..2e56e6b3b122
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.2.0-filter-IUSE_EFFECTIVE.patch
@@ -0,0 +1,31 @@
+From ef6930e03428ec512c9d564886c06078e5238d45 Mon Sep 17 00:00:00 2001
+From: David Leverton <levertond@googlemail.com>
+Date: Sat, 21 Mar 2015 19:38:52 +0000
+Subject: Add IUSE_EFFECTIVE to EBUILD_METADATA_VARIABLES{,_FROM_CPLUSPLUS}
+
+
+diff --git a/paludis/repositories/e/ebuild/ebuild.bash b/paludis/repositories/e/ebuild/ebuild.bash
+index f4387e1..24a93d4 100755
+--- a/paludis/repositories/e/ebuild/ebuild.bash
++++ b/paludis/repositories/e/ebuild/ebuild.bash
+@@ -74,7 +74,7 @@ ebuild_sanitise_envvars
+
+ # The list below should include all variables from all EAPIs, along with any
+ # fancy fake variables
+-EBUILD_METADATA_VARIABLES="DEPEND RDEPEND PDEPEND IUSE SRC_URI DOWNLOADS RESTRICT \
++EBUILD_METADATA_VARIABLES="DEPEND RDEPEND PDEPEND IUSE IUSE_EFFECTIVE SRC_URI DOWNLOADS RESTRICT \
+ LICENSE LICENCES KEYWORDS INHERITED PROVIDE HOMEPAGE DESCRIPTION DEPENDENCIES \
+ E_IUSE E_DEPEND E_RDEPEND E_PDEPEND PLATFORMS DEFINED_PHASES \
+ MYOPTIONS E_MYOPTIONS E_DEPENDENCIES BINARY_KEYWORDS BINARY_URI \
+@@ -82,7 +82,7 @@ EBUILD_METADATA_VARIABLES="DEPEND RDEPEND PDEPEND IUSE SRC_URI DOWNLOADS RESTRIC
+ SUMMARY BUGS_TO UPSTREAM_DOCUMENTATION UPSTREAM_CHANGELOG \
+ UPSTREAM_RELEASE_NOTES PROPERTIES PALUDIS_DECLARED_FUNCTIONS SLOT EAPI OPTIONS USE \
+ PALUDIS_EBUILD_RDEPEND_WAS_SET PALUDIS_EBUILD_DEPEND REQUIRED_USE SCM_REVISION"
+-EBUILD_METADATA_VARIABLES_FROM_CPLUSPLUS="SLOT EAPI OPTIONS USE"
++EBUILD_METADATA_VARIABLES_FROM_CPLUSPLUS="SLOT EAPI OPTIONS USE IUSE_EFFECTIVE"
+
+ shopt -s expand_aliases
+ [[ -z ${PALUDIS_SHELL_OPTIONS} && unset == ${PALUDIS_SHELL_OPTIONS-unset} ]] &&
+--
+cgit v0.10.2
+
diff --git a/sys-apps/paludis/files/paludis-2.2.0-fix-MERGE_TYPE.patch b/sys-apps/paludis/files/paludis-2.2.0-fix-MERGE_TYPE.patch
new file mode 100644
index 000000000000..2ef1a48ed52a
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.2.0-fix-MERGE_TYPE.patch
@@ -0,0 +1,81 @@
+From 96768e54e2fdfc526edd2e939f20203e43b25a36 Mon Sep 17 00:00:00 2001
+From: David Leverton <levertond@googlemail.com>
+Date: Sun, 1 Mar 2015 15:22:32 +0000
+Subject: Fix MERGE_TYPE
+
+Unfortunately the test cases were broken in the same way as the
+feature itself, so it wasn't caught.
+
+Fixes: ticket:1323
+
+diff --git a/paludis/repositories/e/e_repository_TEST_4.cc b/paludis/repositories/e/e_repository_TEST_4.cc
+index a59014d..caccf2c 100644
+--- a/paludis/repositories/e/e_repository_TEST_4.cc
++++ b/paludis/repositories/e/e_repository_TEST_4.cc
+@@ -301,7 +301,6 @@ TEST(ERepository, EAPI4MergeType)
+ n::replacing() = std::make_shared<PackageIDSequence>(),
+ n::want_phase() = &want_all_phases
+ ));
+- ::setenv("EXPECTED_MERGE_TYPE", "source", 1);
+
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/merge-type-4::test-repo",
+@@ -371,7 +370,6 @@ TEST(ERepository, EAPI4MergeTypeBin)
+ n::replacing() = std::make_shared<PackageIDSequence>(),
+ n::want_phase() = &want_all_phases
+ ));
+- ::setenv("EXPECTED_MERGE_TYPE", "buildonly", 1);
+
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/merge-type-bin-4::test-repo",
+@@ -389,7 +387,6 @@ TEST(ERepository, EAPI4MergeTypeBin)
+ n::replacing() = std::make_shared<PackageIDSequence>(),
+ n::want_phase() = &want_all_phases
+ ));
+- ::setenv("EXPECTED_MERGE_TYPE", "binary", 1);
+
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/merge-type-bin-4::binrepo",
+diff --git a/paludis/repositories/e/e_repository_TEST_4_setup.sh b/paludis/repositories/e/e_repository_TEST_4_setup.sh
+index 81b6593..0c28acc 100755
+--- a/paludis/repositories/e/e_repository_TEST_4_setup.sh
++++ b/paludis/repositories/e/e_repository_TEST_4_setup.sh
+@@ -956,6 +956,8 @@ KEYWORDS="test"
+
+ S="${WORKDIR}"
+
++EXPECTED_MERGE_TYPE=source
++
+ pkg_setup() {
+ if [[ ${EXPECTED_MERGE_TYPE} != ${MERGE_TYPE} ]] ; then
+ die ${EXPECTED_MERGE_TYPE} is not ${MERGE_TYPE}
+@@ -975,10 +977,13 @@ KEYWORDS="test"
+
+ S="${WORKDIR}"
+
++EXPECTED_MERGE_TYPE=buildonly
++
+ pkg_setup() {
+ if [[ ${EXPECTED_MERGE_TYPE} != ${MERGE_TYPE} ]] ; then
+ die ${EXPECTED_MERGE_TYPE} is not ${MERGE_TYPE}
+ fi
++ EXPECTED_MERGE_TYPE=binary
+ }
+ END
+ mkdir -p "cat/required-use-all-good" || exit 1
+diff --git a/paludis/repositories/e/ebuild/ebuild.bash b/paludis/repositories/e/ebuild/ebuild.bash
+index a88554b..f4387e1 100755
+--- a/paludis/repositories/e/ebuild/ebuild.bash
++++ b/paludis/repositories/e/ebuild/ebuild.bash
+@@ -304,7 +304,7 @@ ebuild_scrub_environment()
+ echo "\${!${PALUDIS_CLIENT_UPPER}_CMDLINE_*} ${PALUDIS_CLIENT_UPPER}_OPTIONS" )
+
+ unset -v CATEGORY PN PV P PNV PVR PF PNVR
+- unset -v ebuild EBUILD
++ unset -v ebuild EBUILD MERGE_TYPE
+ unset -v $(
+ for v in ${PALUDIS_SOURCE_MERGED_VARIABLES} ${PALUDIS_BRACKET_MERGED_VARIABLES} ; do
+ echo E_${v}
+--
+cgit v0.10.2
+
diff --git a/sys-apps/paludis/files/paludis-2.2.0-fix-PWD-handling.patch b/sys-apps/paludis/files/paludis-2.2.0-fix-PWD-handling.patch
new file mode 100644
index 000000000000..663e94d54979
--- /dev/null
+++ b/sys-apps/paludis/files/paludis-2.2.0-fix-PWD-handling.patch
@@ -0,0 +1,30 @@
+From f9b2434560399b00f7de479474f8f22fc0271e77 Mon Sep 17 00:00:00 2001
+From: Georgi Georgiev <chutz@gg3.net>
+Date: Tue, 10 Mar 2015 00:38:36 +0900
+Subject: PWD is a special variable, we should leave its value alone
+
+Bash sets the value of PWD to the current working directory. It is not a
+good idea to change that variable without actually changing the
+directory. This would happen if the working directory changes between
+saving and loading the environment (saving - when building a PBIN, and
+loading - when installing it for example), so better let bash handle
+this variable.
+
+Fixes: ticket:1325
+
+diff --git a/paludis/repositories/e/ebuild/source_functions.bash b/paludis/repositories/e/ebuild/source_functions.bash
+index 58b9327..5bfb251 100755
+--- a/paludis/repositories/e/ebuild/source_functions.bash
++++ b/paludis/repositories/e/ebuild/source_functions.bash
+@@ -37,7 +37,7 @@ ebuild_need_extglob()
+ ebuild_safe_source()
+ {
+ set -- "${@}" '[^a-zA-Z_]*' '*[^a-zA-Z0-9_]*' \
+- EUID PPID UID FUNCNAME GROUPS SHELLOPTS BASHOPTS BASHPID IFS \
++ EUID PPID UID FUNCNAME GROUPS SHELLOPTS BASHOPTS BASHPID IFS PWD \
+ 'BASH_@(ARGC|ARGV|LINENO|SOURCE|VERSINFO|REMATCH)' \
+ 'BASH_COMPLETION?(_DIR)' 'bash+([0-9])?([a-z])' \
+ EBUILD_KILL_PID PALUDIS_LOADSAVEENV_DIR PALUDIS_DO_NOTHING_SANDBOXY SANDBOX_ACTIVE \
+--
+cgit v0.10.2
+
diff --git a/sys-apps/paludis/metadata.xml b/sys-apps/paludis/metadata.xml
new file mode 100644
index 000000000000..93c3ebe9295a
--- /dev/null
+++ b/sys-apps/paludis/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>jdhore@gentoo.org</email>
+ <name>Jeff Horelick</name>
+ </maintainer>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <use>
+ <flag name="pbins">Enable binary package support. Adds dependency upon
+ <pkg>app-arch/libarchive</pkg></flag>
+ <flag name="pink">Use a less boring colourscheme than the default</flag>
+ <flag name='search-index'>Enable cave search --index. Requires sqlite.</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-apps/paludis/paludis-1.4.2-r1.ebuild b/sys-apps/paludis/paludis-1.4.2-r1.ebuild
new file mode 100644
index 000000000000..4751880ddb26
--- /dev/null
+++ b/sys-apps/paludis/paludis-1.4.2-r1.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 eutils python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2"
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ >=sys-devel/gcc-4.4
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2[xattr] )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:1.9 )
+ xml? ( >=dev-libs/libxml2-2.6 )
+ search-index? ( >=dev-db/sqlite-3 )"
+
+DEPEND="${COMMON_DEPEND}
+ doc? (
+ || ( >=app-doc/doxygen-1.5.3 <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/epydoc[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.4 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.4"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # The package explicitly wants ruby1.9, so fix the script on it.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e '1s/ruby/&19/' ruby/demos/*.rb || die
+
+ epatch_user
+}
+
+src_configure() {
+ local myeconfargs=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable xml)
+ $(use_enable search-index)
+ $(use_enable test gtest)
+
+ --enable-prebuilt-documentation
+ --enable-vim
+ --enable-visibility
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}
diff --git a/sys-apps/paludis/paludis-2.0.0.ebuild b/sys-apps/paludis/paludis-2.0.0.ebuild
new file mode 100644
index 000000000000..e1bd370d4e0c
--- /dev/null
+++ b/sys-apps/paludis/paludis-2.0.0.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 eutils python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2"
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86"
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:1.9 )
+ search-index? ( >=dev-db/sqlite-3 )
+ xml? ( >=dev-libs/libxml2-2.6 )"
+
+DEPEND="${COMMON_DEPEND}
+ >=app-text/asciidoc-8.6.3
+ app-text/htmltidy
+ app-text/xmlto
+ >=sys-devel/gcc-4.7
+ doc? (
+ || (
+ >=app-doc/doxygen-1.5.3
+ <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/sphinx[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.7 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.7"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # The package explicitly wants ruby1.9, so fix the script on it.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e '1s/ruby/&19/' ruby/demos/*.rb || die
+ epatch "${FILESDIR}/${P}-fix-format-security.patch"
+
+ epatch_user
+}
+
+src_configure() {
+ local myconf=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable test gtest)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ $(use_enable search-index)
+ $(use_enable xml)
+
+ --enable-vim
+ --enable-visibility
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}
diff --git a/sys-apps/paludis/paludis-2.2.0-r2.ebuild b/sys-apps/paludis/paludis-2.2.0-r2.ebuild
new file mode 100644
index 000000000000..98a4d23763b9
--- /dev/null
+++ b/sys-apps/paludis/paludis-2.2.0-r2.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools bash-completion-r1 eutils python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2"
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:1.9 )
+ search-index? ( >=dev-db/sqlite-3 )
+ xml? ( >=dev-libs/libxml2-2.6 )"
+
+DEPEND="${COMMON_DEPEND}
+ >=app-text/asciidoc-8.6.3
+ app-text/htmltidy
+ app-text/xmlto
+ >=sys-devel/gcc-4.7
+ doc? (
+ || (
+ >=app-doc/doxygen-1.5.3
+ <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/sphinx[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.7 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.7"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # The package explicitly wants ruby1.9, so fix the script on it.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e '1s/ruby/&19/' ruby/demos/*.rb || die
+
+ local PATCHES=(
+ "${FILESDIR}"/${P}-fix-MERGE_TYPE.patch
+ "${FILESDIR}"/${P}-fix-PWD-handling.patch
+ "${FILESDIR}"/${P}-filter-IUSE_EFFECTIVE.patch
+ "${FILESDIR}"/${P}-check-IUSE_EFFECTIVE-in-EAPI-5.patch
+ "${FILESDIR}"/${P}-filter-EBUILD_PHASE_FUNC.patch
+ )
+
+ epatch "${PATCHES[@]}"
+ epatch_user
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable test gtest)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ $(use_enable search-index)
+ $(use_enable xml)
+
+ --enable-vim
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake -k check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}
diff --git a/sys-apps/paludis/paludis-2.2.0.ebuild b/sys-apps/paludis/paludis-2.2.0.ebuild
new file mode 100644
index 000000000000..d8a064be865d
--- /dev/null
+++ b/sys-apps/paludis/paludis-2.2.0.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 eutils python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2"
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:1.9 )
+ search-index? ( >=dev-db/sqlite-3 )
+ xml? ( >=dev-libs/libxml2-2.6 )"
+
+DEPEND="${COMMON_DEPEND}
+ >=app-text/asciidoc-8.6.3
+ app-text/htmltidy
+ app-text/xmlto
+ >=sys-devel/gcc-4.7
+ doc? (
+ || (
+ >=app-doc/doxygen-1.5.3
+ <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/sphinx[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.7 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.7"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # The package explicitly wants ruby1.9, so fix the script on it.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e '1s/ruby/&19/' ruby/demos/*.rb || die
+
+ epatch_user
+}
+
+src_configure() {
+ local myconf=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable test gtest)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ $(use_enable search-index)
+ $(use_enable xml)
+
+ --enable-vim
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}
diff --git a/sys-apps/paludis/paludis-2.4.0.ebuild b/sys-apps/paludis/paludis-2.4.0.ebuild
new file mode 100644
index 000000000000..725f7214e172
--- /dev/null
+++ b/sys-apps/paludis/paludis-2.4.0.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+# matching profile defaults for now
+RUBY_VER=2.0
+
+inherit bash-completion-r1 eutils python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2"
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:${RUBY_VER} )
+ search-index? ( >=dev-db/sqlite-3 )
+ xml? ( >=dev-libs/libxml2-2.6 )"
+
+DEPEND="${COMMON_DEPEND}
+ >=app-text/asciidoc-8.6.3
+ app-text/htmltidy
+ app-text/xmlto
+ >=sys-devel/gcc-4.7
+ doc? (
+ || (
+ >=app-doc/doxygen-1.5.3
+ <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/sphinx[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax[ruby_targets_ruby${RUBY_VER/./}] )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.7 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.7"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Fix the script shebang on Ruby scripts.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e "1s/ruby/&${RUBY_VER/./}/" ruby/demos/*.rb || die
+
+ epatch_user
+}
+
+src_configure() {
+ local myconf=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable test gtest)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ --with-ruby-version="${RUBY_VER}"
+ $(use_enable search-index)
+ $(use_enable xml)
+
+ --enable-vim
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake -k check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}
diff --git a/sys-apps/paludis/paludis-9999.ebuild b/sys-apps/paludis/paludis-9999.ebuild
new file mode 100644
index 000000000000..1501384e1c76
--- /dev/null
+++ b/sys-apps/paludis/paludis-9999.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+EGIT_REPO_URI='git://git.exherbo.org/paludis/paludis.git'
+PYTHON_COMPAT=( python2_7 )
+# matching profile defaults for now
+RUBY_VER=2.0
+
+inherit autotools bash-completion-r1 eutils git-r3 python-single-r1 user
+
+DESCRIPTION="paludis, the other package mangler"
+HOMEPAGE="http://paludis.exherbo.org/"
+SRC_URI=""
+
+IUSE="doc pbins pink python ruby search-index test xml"
+LICENSE="GPL-2 vim"
+SLOT="0"
+KEYWORDS=""
+
+COMMON_DEPEND="
+ >=app-admin/eselect-1.2.13
+ >=app-shells/bash-3.2
+ dev-libs/libpcre[cxx]
+ sys-apps/file
+ pbins? ( >=app-arch/libarchive-3.1.2 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] )
+ ruby? ( dev-lang/ruby:${RUBY_VER} )
+ search-index? ( >=dev-db/sqlite-3 )
+ xml? ( >=dev-libs/libxml2-2.6 )"
+
+DEPEND="${COMMON_DEPEND}
+ >=app-text/asciidoc-8.6.3
+ app-text/htmltidy
+ app-text/xmlto
+ >=sys-devel/gcc-4.7
+ doc? (
+ || (
+ >=app-doc/doxygen-1.5.3
+ <=app-doc/doxygen-1.5.1 )
+ python? (
+ dev-python/sphinx[${PYTHON_USEDEP}] )
+ ruby? ( dev-ruby/syntax[ruby_targets_ruby${RUBY_VER/./}] )
+ )
+ virtual/pkgconfig
+ test? ( >=dev-cpp/gtest-1.6.0-r1 )"
+
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/sandbox"
+
+PDEPEND="app-eselect/eselect-package-manager"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if id paludisbuild >/dev/null 2>/dev/null ; then
+ if ! groups paludisbuild | grep --quiet '\<tty\>' ; then
+ eerror "The 'paludisbuild' user is now expected to be a member of the"
+ eerror "'tty' group. You should add the user to this group before"
+ eerror "upgrading Paludis."
+ die "Please add paludisbuild to tty group"
+ fi
+ fi
+ fi
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) -lt 4
+ || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]]
+ then
+ eerror "Paludis requires at least gcc 4.7 to build. Please switch the active"
+ eerror "gcc version using gcc-config."
+ die "Paludis requires at least gcc 4.7"
+ fi
+ fi
+}
+
+pkg_setup() {
+ enewgroup "paludisbuild"
+ enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty"
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Fix the script shebang on Ruby scripts.
+ # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
+ sed -i -e "1s/ruby/&${RUBY_VER/./}/" ruby/demos/*.rb || die
+
+ ./autotools_prepare.bash || die
+ eautoreconf
+ epatch_user
+}
+
+src_configure() {
+ local myconf=(
+ --htmldir=/usr/share/doc/${PF}/html
+
+ $(use_enable doc doxygen)
+ $(use_enable test gtest)
+ $(use_enable pbins)
+ $(use_enable pink)
+ $(use_enable python)
+ $(use python && use_enable doc python-doc)
+ $(use_enable ruby)
+ $(use ruby && use_enable doc ruby-doc)
+ --with-ruby-version="${RUBY_VER}"
+ $(use_enable search-index)
+ $(use_enable xml)
+
+ --enable-vim
+ --with-config-framework=eselect
+ --with-environments=default,portage
+ --with-vim-install-dir=/usr/share/vim/vimfiles
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+
+ dobashcomp bash-completion/cave
+
+ insinto /usr/share/zsh/site-functions
+ doins zsh-completion/_cave
+}
+
+src_test() {
+ # Work around Portage bugs
+ local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks"
+ local -x BASH_ENV=/dev/null
+
+ if [[ ${EUID} == 0 ]] ; then
+ # hate
+ local -x PALUDIS_REDUCED_UID=0
+ local -x PALUDIS_REDUCED_GID=0
+ fi
+
+ if ! nonfatal emake -k check ; then
+ eerror "Tests failed. Looking for files for you to add to your bug report..."
+ find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do
+ eerror " $a"
+ done
+ die "Make check failed"
+ fi
+}
+
+pkg_postinst() {
+ local pm
+ if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
+ pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
+ fi
+
+ if [[ ${pm} != paludis ]] ; then
+ elog "If you are using paludis or cave as your primary package manager,"
+ elog "you should consider running:"
+ elog " eselect package-manager set paludis"
+ fi
+}