aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-06-06 13:25:42 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-06-06 13:25:42 +0000
commit927e85f20de0283a6a1eb3c38348b91173029f49 (patch)
treeac4c0c75314afdbd860fe6ce356f4e564787a603
parenta372a401f02d3c0bceefc110e428fbe7dfbdb1c9 (diff)
downloadpaludis-927e85f20de0283a6a1eb3c38348b91173029f49.tar.gz
paludis-927e85f20de0283a6a1eb3c38348b91173029f49.tar.xz
r3336@snowflake: ciaranm | 2007-06-06 14:25:08 +0100
Use libwrapiter 1.2.0
-rw-r--r--configure.ac6
-rw-r--r--paludis/args/args_group.hh2
-rw-r--r--paludis/args/args_handler.hh2
-rw-r--r--paludis/config_file.cc1
-rw-r--r--paludis/config_file.hh2
-rw-r--r--paludis/config_file_TEST.cc2
-rw-r--r--paludis/contents.cc1
-rw-r--r--paludis/contents.hh2
-rw-r--r--paludis/dep_list/condition_tracker.cc2
-rw-r--r--paludis/dep_list/dep_list.cc3
-rw-r--r--paludis/dep_list/dep_list.hh2
-rw-r--r--paludis/dep_list/dep_list_TEST.cc2
-rw-r--r--paludis/dep_list/dep_list_TEST.hh1
-rw-r--r--paludis/dep_list/exceptions.cc2
-rw-r--r--paludis/dep_list/query_visitor.cc2
-rw-r--r--paludis/dep_list/range_rewriter.cc2
-rw-r--r--paludis/dep_list/show_suggest_visitor.cc2
-rw-r--r--paludis/dep_list/uninstall_list.cc2
-rw-r--r--paludis/dep_list/uninstall_list.hh2
-rw-r--r--paludis/dep_list/uninstall_list_TEST.cc2
-rw-r--r--paludis/dep_spec.cc2
-rw-r--r--paludis/dep_spec.hh2
-rw-r--r--paludis/dep_spec_TEST.cc2
-rw-r--r--paludis/dep_spec_flattener.cc1
-rw-r--r--paludis/dep_spec_flattener.hh2
-rw-r--r--paludis/dep_spec_pretty_printer.cc1
-rw-r--r--paludis/dep_spec_pretty_printer_TEST.cc1
-rw-r--r--paludis/dep_tag.cc1
-rw-r--r--paludis/environment_implementation.cc2
-rw-r--r--paludis/environment_implementation_TEST.cc2
-rw-r--r--paludis/environments/no_config/no_config_environment.cc2
-rw-r--r--paludis/environments/no_config/no_config_environment.hh2
-rw-r--r--paludis/environments/paludis/keywords_conf.cc2
-rw-r--r--paludis/environments/paludis/licenses_conf.cc1
-rw-r--r--paludis/environments/paludis/mirrors_conf.cc2
-rw-r--r--paludis/environments/paludis/package_mask_conf.cc1
-rw-r--r--paludis/environments/paludis/paludis_config.cc3
-rw-r--r--paludis/environments/paludis/paludis_environment.cc2
-rw-r--r--paludis/environments/paludis/paludis_environment_TEST.cc2
-rw-r--r--paludis/environments/paludis/use_conf.cc2
-rw-r--r--paludis/environments/portage/portage_environment.cc2
-rw-r--r--paludis/environments/portage/portage_environment_TEST.cc2
-rw-r--r--paludis/environments/test/test_environment.cc2
-rw-r--r--paludis/files.m42
-rw-r--r--paludis/hook.cc1
-rw-r--r--paludis/hook.hh2
-rw-r--r--paludis/match_package.cc1
-rw-r--r--paludis/name.cc1
-rw-r--r--paludis/package_database.cc171
-rw-r--r--paludis/package_database.hh10
-rw-r--r--paludis/package_database_TEST.cc2
-rw-r--r--paludis/paludis.cc8
-rw-r--r--paludis/paludis.hh.m411
-rw-r--r--paludis/portage_dep_lexer.cc1
-rw-r--r--paludis/portage_dep_lexer.hh2
-rw-r--r--paludis/portage_dep_lexer_TEST.cc3
-rw-r--r--paludis/portage_dep_parser.cc2
-rw-r--r--paludis/portage_dep_parser_TEST.cc1
-rw-r--r--paludis/qa/categories_check.cc1
-rw-r--r--paludis/qa/dep_any_check.cc1
-rw-r--r--paludis/qa/dep_flags_check.cc1
-rw-r--r--paludis/qa/dep_packages_check.cc1
-rw-r--r--paludis/qa/deprecated_functions_check.cc1
-rw-r--r--paludis/qa/deps_exist_check.cc2
-rw-r--r--paludis/qa/deps_visible_check.cc2
-rw-r--r--paludis/qa/extract_check.cc1
-rw-r--r--paludis/qa/homepage_check.cc2
-rw-r--r--paludis/qa/inherits_check.cc1
-rw-r--r--paludis/qa/iuse_check.cc2
-rw-r--r--paludis/qa/keywords_check.cc2
-rw-r--r--paludis/qa/license_check.cc1
-rw-r--r--paludis/qa/metadata_file.cc1
-rw-r--r--paludis/qa/metadata_file.hh3
-rw-r--r--paludis/qa/metadata_file_TEST.cc1
-rw-r--r--paludis/qa/pdepend_overlap_check.cc1
-rw-r--r--paludis/qa/profile_paths_exist_check.cc1
-rw-r--r--paludis/qa/qa_environment.hh2
-rw-r--r--paludis/qa/repo_name_check.cc1
-rw-r--r--paludis/qa/restrict_check.cc1
-rw-r--r--paludis/qa/src_uri_check.cc1
-rw-r--r--paludis/query.cc2
-rw-r--r--paludis/repositories/cran/cran_dep_parser.cc2
-rw-r--r--paludis/repositories/cran/cran_dep_parser_TEST.cc1
-rw-r--r--paludis/repositories/cran/cran_description.cc2
-rw-r--r--paludis/repositories/cran/cran_installed_repository.cc3
-rw-r--r--paludis/repositories/cran/cran_repository.cc3
-rw-r--r--paludis/repositories/cran/cran_repository_TEST.cc2
-rw-r--r--paludis/repositories/fake/fake_installed_repository.cc2
-rw-r--r--paludis/repositories/fake/fake_repository.cc3
-rw-r--r--paludis/repositories/fake/fake_repository_base.cc2
-rw-r--r--paludis/repositories/gems/gem_specification.cc2
-rw-r--r--paludis/repositories/gems/gem_specifications.cc2
-rw-r--r--paludis/repositories/gems/gem_specifications.hh2
-rw-r--r--paludis/repositories/gems/gems_repository.cc2
-rw-r--r--paludis/repositories/gems/installed_gems_repository.cc3
-rw-r--r--paludis/repositories/gems/registration.cc2
-rw-r--r--paludis/repositories/gems/yaml.cc2
-rw-r--r--paludis/repositories/gems/yaml_TEST.cc1
-rw-r--r--paludis/repositories/gentoo/eapi_phase.cc2
-rw-r--r--paludis/repositories/gentoo/eapi_phase.hh2
-rw-r--r--paludis/repositories/gentoo/ebin.cc2
-rw-r--r--paludis/repositories/gentoo/ebin_entries.cc2
-rw-r--r--paludis/repositories/gentoo/ebuild.cc2
-rw-r--r--paludis/repositories/gentoo/ebuild_entries.cc3
-rw-r--r--paludis/repositories/gentoo/ebuild_flat_metadata_cache.cc1
-rw-r--r--paludis/repositories/gentoo/eclass_mtimes.cc2
-rw-r--r--paludis/repositories/gentoo/exheres_layout.cc2
-rw-r--r--paludis/repositories/gentoo/glsa.cc2
-rw-r--r--paludis/repositories/gentoo/glsa.hh2
-rw-r--r--paludis/repositories/gentoo/make_ebin_repository.cc2
-rw-r--r--paludis/repositories/gentoo/make_ebuild_repository.cc2
-rw-r--r--paludis/repositories/gentoo/portage_repository.cc3
-rw-r--r--paludis/repositories/gentoo/portage_repository.hh2
-rw-r--r--paludis/repositories/gentoo/portage_repository_TEST.cc2
-rw-r--r--paludis/repositories/gentoo/portage_repository_news.cc1
-rw-r--r--paludis/repositories/gentoo/portage_repository_profile.cc2
-rw-r--r--paludis/repositories/gentoo/portage_repository_profile.hh2
-rw-r--r--paludis/repositories/gentoo/portage_repository_profile_file.cc2
-rw-r--r--paludis/repositories/gentoo/portage_repository_profile_file.hh2
-rw-r--r--paludis/repositories/gentoo/portage_repository_sets.cc28
-rw-r--r--paludis/repositories/gentoo/portage_repository_sets.hh4
-rw-r--r--paludis/repositories/gentoo/portage_repository_sets_TEST.cc2
-rw-r--r--paludis/repositories/gentoo/registration.cc2
-rw-r--r--paludis/repositories/gentoo/traditional_layout.cc3
-rw-r--r--paludis/repositories/gentoo/use_desc.cc2
-rw-r--r--paludis/repositories/gentoo/vdb_merger.cc2
-rw-r--r--paludis/repositories/gentoo/vdb_repository.cc3
-rw-r--r--paludis/repositories/gentoo/vdb_unmerger.cc2
-rw-r--r--paludis/repositories/gentoo/xml_things_TEST.cc1
-rw-r--r--paludis/repositories/virtuals/installed_virtuals_repository.cc2
-rw-r--r--paludis/repositories/virtuals/virtuals_repository.cc2
-rw-r--r--paludis/repository.cc9
-rw-r--r--paludis/repository.hh7
-rw-r--r--paludis/repository_name_cache.cc2
-rw-r--r--paludis/repository_name_cache_TEST.cc2
-rw-r--r--paludis/set_file.cc2
-rw-r--r--paludis/set_file_TEST.cc1
-rw-r--r--paludis/syncer.cc2
-rw-r--r--paludis/tasks/find_unused_packages_task.cc2
-rw-r--r--paludis/tasks/install_task.cc2
-rw-r--r--paludis/tasks/install_task.hh2
-rw-r--r--paludis/tasks/report_task.cc2
-rw-r--r--paludis/tasks/stage_builder_task.cc1
-rw-r--r--paludis/tasks/stage_builder_task.hh2
-rw-r--r--paludis/tasks/sync_task.cc1
-rw-r--r--paludis/tasks/uninstall_task.cc2
-rw-r--r--paludis/tasks/uninstall_task.hh1
-rw-r--r--paludis/util/collection.hh3
-rw-r--r--paludis/util/pstream.cc1
-rw-r--r--paludis/util/system.cc1
-rw-r--r--paludis/util/system.hh2
-rw-r--r--paludis/util/visitor.hh2
-rw-r--r--paludis/version_metadata.cc2
-rw-r--r--python/contents.cc2
-rw-r--r--python/dep_spec.cc2
-rw-r--r--python/name.cc2
-rw-r--r--python/package_database.cc1
-rw-r--r--python/repository.cc1
-rw-r--r--python/version_requirements.cc2
-rw-r--r--python/version_spec.cc2
-rw-r--r--ruby/contents.cc2
-rw-r--r--ruby/dep_list.cc1
-rw-r--r--ruby/dep_spec.cc2
-rw-r--r--ruby/environment.cc2
-rw-r--r--ruby/find_unused_packages_task.cc2
-rw-r--r--ruby/metadata_file.cc1
-rw-r--r--ruby/package_database.cc2
-rw-r--r--ruby/repository.cc2
-rw-r--r--ruby/version_metadata.cc2
-rw-r--r--src/clients/adjutrix/find_reverse_deps.cc2
-rw-r--r--src/clients/contrarius/stage_builder.cc1
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/categories_list_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/packages_list_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/packages_repository_filter_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/repositories_list_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/repository_info_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc2
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/versions_list_model.cc2
-rw-r--r--src/clients/paludis/applets.cc2
-rw-r--r--src/clients/paludis/install.cc3
-rw-r--r--src/output/console_install_task.cc2
-rw-r--r--src/output/console_install_task.hh1
-rw-r--r--src/output/console_query_task.cc2
-rw-r--r--src/output/licence.cc1
-rw-r--r--src/output/use_flag_pretty_printer.cc2
185 files changed, 395 insertions, 178 deletions
diff --git a/configure.ac b/configure.ac
index 5f1381343..5d7de0f58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -364,13 +364,13 @@ int main(int, char **)
AC_MSG_CHECKING([libwrapiter version])
AC_COMPILE_IFELSE([
#include <libwrapiter/libwrapiter.hh>
-#if LIBWRAPITER_VERSION < 1000
-# error libwrapiter 1.0 or later required
+#if LIBWRAPITER_VERSION < 10200
+# error libwrapiter 1.2.0 or later required
#endif
],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
- AC_MSG_ERROR([libwrapiter version must be at least 1.0])])
+ AC_MSG_ERROR([libwrapiter version must be at least 1.2.0])])
dnl }}}
dnl {{{ we can use abi::__cxa_demangle
diff --git a/paludis/args/args_group.hh b/paludis/args/args_group.hh
index 05f30eccf..ec945525a 100644
--- a/paludis/args/args_group.hh
+++ b/paludis/args/args_group.hh
@@ -25,7 +25,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <string>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declaration for ArgsGroup.
diff --git a/paludis/args/args_handler.hh b/paludis/args/args_handler.hh
index 4f4115702..62d6c0970 100644
--- a/paludis/args/args_handler.hh
+++ b/paludis/args/args_handler.hh
@@ -27,7 +27,7 @@
#include <iosfwd>
#include <string>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declaration for ArgsHandler.
diff --git a/paludis/config_file.cc b/paludis/config_file.cc
index 4c25186e6..ec2ff6a93 100644
--- a/paludis/config_file.cc
+++ b/paludis/config_file.cc
@@ -28,6 +28,7 @@
#include <paludis/util/join.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <fstream>
#include <istream>
#include <list>
diff --git a/paludis/config_file.hh b/paludis/config_file.hh
index 79eb5a012..c66c3e5e9 100644
--- a/paludis/config_file.hh
+++ b/paludis/config_file.hh
@@ -26,7 +26,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/options.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <iosfwd>
#include <string>
diff --git a/paludis/config_file_TEST.cc b/paludis/config_file_TEST.cc
index 11509d05b..df371a018 100644
--- a/paludis/config_file_TEST.cc
+++ b/paludis/config_file_TEST.cc
@@ -22,6 +22,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/system.hh>
#include <paludis/util/collection_concrete.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <sstream>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/contents.cc b/paludis/contents.cc
index cdeb7eb21..980b305f8 100644
--- a/paludis/contents.cc
+++ b/paludis/contents.cc
@@ -20,6 +20,7 @@
#include "contents.hh"
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <list>
/** \file
diff --git a/paludis/contents.hh b/paludis/contents.hh
index 61d8c3914..359557621 100644
--- a/paludis/contents.hh
+++ b/paludis/contents.hh
@@ -26,7 +26,7 @@
#include <paludis/util/tr1_memory.hh>
#include <string>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for the Contents classes.
diff --git a/paludis/dep_list/condition_tracker.cc b/paludis/dep_list/condition_tracker.cc
index 887b49931..3201abacf 100644
--- a/paludis/dep_list/condition_tracker.cc
+++ b/paludis/dep_list/condition_tracker.cc
@@ -21,6 +21,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/dep_spec.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace tr1::placeholders;
diff --git a/paludis/dep_list/dep_list.cc b/paludis/dep_list/dep_list.cc
index b9a905660..a953354ad 100644
--- a/paludis/dep_list/dep_list.cc
+++ b/paludis/dep_list/dep_list.cc
@@ -46,6 +46,9 @@
#include <paludis/util/tr1_functional.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <algorithm>
#include <functional>
#include <vector>
diff --git a/paludis/dep_list/dep_list.hh b/paludis/dep_list/dep_list.hh
index ff899a4c1..2697e23ef 100644
--- a/paludis/dep_list/dep_list.hh
+++ b/paludis/dep_list/dep_list.hh
@@ -33,7 +33,7 @@
#include <iosfwd>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/dep_list/dep_list_TEST.cc b/paludis/dep_list/dep_list_TEST.cc
index 218d020ef..b3679032c 100644
--- a/paludis/dep_list/dep_list_TEST.cc
+++ b/paludis/dep_list/dep_list_TEST.cc
@@ -20,6 +20,8 @@
#include "dep_list_TEST.hh"
#include <paludis/util/visitor-impl.hh>
#include <paludis/dep_spec_pretty_printer.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace test;
diff --git a/paludis/dep_list/dep_list_TEST.hh b/paludis/dep_list/dep_list_TEST.hh
index 2aef3b8c4..9718dabe3 100644
--- a/paludis/dep_list/dep_list_TEST.hh
+++ b/paludis/dep_list/dep_list_TEST.hh
@@ -31,6 +31,7 @@
#include <paludis/environments/test/test_environment.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <string>
#include <list>
#include <ostream>
diff --git a/paludis/dep_list/exceptions.cc b/paludis/dep_list/exceptions.cc
index 32a49454b..a3ba96f8f 100644
--- a/paludis/dep_list/exceptions.cc
+++ b/paludis/dep_list/exceptions.cc
@@ -18,6 +18,8 @@
*/
#include "exceptions.hh"
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/dep_list/query_visitor.cc b/paludis/dep_list/query_visitor.cc
index c2919b7d4..d63373e25 100644
--- a/paludis/dep_list/query_visitor.cc
+++ b/paludis/dep_list/query_visitor.cc
@@ -23,6 +23,8 @@
#include <paludis/package_database.hh>
#include <paludis/util/tr1_functional.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/dep_list/range_rewriter.cc b/paludis/dep_list/range_rewriter.cc
index 9ce067801..5583b2924 100644
--- a/paludis/dep_list/range_rewriter.cc
+++ b/paludis/dep_list/range_rewriter.cc
@@ -18,6 +18,8 @@
*/
#include "range_rewriter.hh"
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/dep_list/show_suggest_visitor.cc b/paludis/dep_list/show_suggest_visitor.cc
index 5996f9ef1..04a001483 100644
--- a/paludis/dep_list/show_suggest_visitor.cc
+++ b/paludis/dep_list/show_suggest_visitor.cc
@@ -26,6 +26,8 @@
#include <paludis/util/save.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/dep_list/uninstall_list.cc b/paludis/dep_list/uninstall_list.cc
index c95c5f735..3adfba6df 100644
--- a/paludis/dep_list/uninstall_list.cc
+++ b/paludis/dep_list/uninstall_list.cc
@@ -34,6 +34,8 @@ using namespace paludis;
#include <paludis/match_package.hh>
#include <paludis/version_metadata.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <algorithm>
diff --git a/paludis/dep_list/uninstall_list.hh b/paludis/dep_list/uninstall_list.hh
index 9d72e8dd3..49b629612 100644
--- a/paludis/dep_list/uninstall_list.hh
+++ b/paludis/dep_list/uninstall_list.hh
@@ -26,7 +26,7 @@
#include <paludis/package_database_entry.hh>
#include <paludis/dep_tag.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/dep_list/uninstall_list_TEST.cc b/paludis/dep_list/uninstall_list_TEST.cc
index 6f8788f1c..afaa93da9 100644
--- a/paludis/dep_list/uninstall_list_TEST.cc
+++ b/paludis/dep_list/uninstall_list_TEST.cc
@@ -28,6 +28,8 @@
#include <paludis/package_database.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <string>
#include <list>
#include <ostream>
diff --git a/paludis/dep_spec.cc b/paludis/dep_spec.cc
index 6f42f860d..81ed20028 100644
--- a/paludis/dep_spec.cc
+++ b/paludis/dep_spec.cc
@@ -28,6 +28,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <map>
diff --git a/paludis/dep_spec.hh b/paludis/dep_spec.hh
index 5392e6b39..5544c8238 100644
--- a/paludis/dep_spec.hh
+++ b/paludis/dep_spec.hh
@@ -32,7 +32,7 @@
#include <paludis/version_operator-fwd.hh>
#include <paludis/version_spec-fwd.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <paludis/util/tr1_memory.hh>
diff --git a/paludis/dep_spec_TEST.cc b/paludis/dep_spec_TEST.cc
index b642e1ddf..ef9338a1e 100644
--- a/paludis/dep_spec_TEST.cc
+++ b/paludis/dep_spec_TEST.cc
@@ -20,6 +20,8 @@
#include <paludis/dep_spec.hh>
#include <paludis/util/iterator.hh>
#include <paludis/version_requirements.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/dep_spec_flattener.cc b/paludis/dep_spec_flattener.cc
index 2323c74f3..78dd5b4cc 100644
--- a/paludis/dep_spec_flattener.cc
+++ b/paludis/dep_spec_flattener.cc
@@ -21,6 +21,7 @@
#include <paludis/dep_spec_flattener.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <list>
#include <algorithm>
diff --git a/paludis/dep_spec_flattener.hh b/paludis/dep_spec_flattener.hh
index 469dad07e..ac925d920 100644
--- a/paludis/dep_spec_flattener.hh
+++ b/paludis/dep_spec_flattener.hh
@@ -26,7 +26,7 @@
#include <paludis/util/attributes.hh>
#include <paludis/util/instantiation_policy.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for DepSpecFlattener.
diff --git a/paludis/dep_spec_pretty_printer.cc b/paludis/dep_spec_pretty_printer.cc
index 519f51ec9..1c3c242f4 100644
--- a/paludis/dep_spec_pretty_printer.cc
+++ b/paludis/dep_spec_pretty_printer.cc
@@ -24,6 +24,7 @@
#include <paludis/util/save.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
/** \file
* Implementation of dep_spec_pretty_printer.hh.
diff --git a/paludis/dep_spec_pretty_printer_TEST.cc b/paludis/dep_spec_pretty_printer_TEST.cc
index c267c713b..ca0d98087 100644
--- a/paludis/dep_spec_pretty_printer_TEST.cc
+++ b/paludis/dep_spec_pretty_printer_TEST.cc
@@ -21,6 +21,7 @@
#include "portage_dep_parser.hh"
#include <paludis/util/visitor-impl.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <test/test_runner.hh>
#include <test/test_framework.hh>
diff --git a/paludis/dep_tag.cc b/paludis/dep_tag.cc
index 9f2425872..0269f6b96 100644
--- a/paludis/dep_tag.cc
+++ b/paludis/dep_tag.cc
@@ -23,6 +23,7 @@
#include <paludis/util/virtual_constructor-impl.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/instantiation_policy-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
/** \file
* Implementation for DepTag, DepTagCategory etc.
diff --git a/paludis/environment_implementation.cc b/paludis/environment_implementation.cc
index da5c577fd..89dbcd017 100644
--- a/paludis/environment_implementation.cc
+++ b/paludis/environment_implementation.cc
@@ -26,6 +26,8 @@
#include <paludis/util/log.hh>
#include <paludis/util/save.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
#include "config.h"
diff --git a/paludis/environment_implementation_TEST.cc b/paludis/environment_implementation_TEST.cc
index 464833442..06fa94acf 100644
--- a/paludis/environment_implementation_TEST.cc
+++ b/paludis/environment_implementation_TEST.cc
@@ -20,6 +20,8 @@
#include <paludis/environment_implementation.hh>
#include <paludis/package_database.hh>
#include <paludis/repositories/fake/fake_repository.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/environments/no_config/no_config_environment.cc b/paludis/environments/no_config/no_config_environment.cc
index 9926be83b..0941f602b 100644
--- a/paludis/environments/no_config/no_config_environment.cc
+++ b/paludis/environments/no_config/no_config_environment.cc
@@ -27,6 +27,8 @@
#include <paludis/config_file.hh>
#include <paludis/distribution.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
using namespace paludis;
diff --git a/paludis/environments/no_config/no_config_environment.hh b/paludis/environments/no_config/no_config_environment.hh
index ff869aefc..8906fd9dc 100644
--- a/paludis/environments/no_config/no_config_environment.hh
+++ b/paludis/environments/no_config/no_config_environment.hh
@@ -23,7 +23,7 @@
#include <paludis/environment_implementation.hh>
#include <paludis/util/fs_entry.hh>
#include <paludis/util/private_implementation_pattern.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/environments/paludis/keywords_conf.cc b/paludis/environments/paludis/keywords_conf.cc
index 07df872d6..fc619aa7e 100644
--- a/paludis/environments/paludis/keywords_conf.cc
+++ b/paludis/environments/paludis/keywords_conf.cc
@@ -29,6 +29,8 @@
#include <paludis/util/log.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <vector>
#include <map>
diff --git a/paludis/environments/paludis/licenses_conf.cc b/paludis/environments/paludis/licenses_conf.cc
index cee66a559..f68eb6a3e 100644
--- a/paludis/environments/paludis/licenses_conf.cc
+++ b/paludis/environments/paludis/licenses_conf.cc
@@ -29,6 +29,7 @@
#include <paludis/util/log.hh>
#include <paludis/util/tokeniser.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <list>
#include <vector>
#include <map>
diff --git a/paludis/environments/paludis/mirrors_conf.cc b/paludis/environments/paludis/mirrors_conf.cc
index 4060bad7d..9aa3cbb02 100644
--- a/paludis/environments/paludis/mirrors_conf.cc
+++ b/paludis/environments/paludis/mirrors_conf.cc
@@ -29,6 +29,8 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/util/collection_concrete.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <vector>
using namespace paludis;
diff --git a/paludis/environments/paludis/package_mask_conf.cc b/paludis/environments/paludis/package_mask_conf.cc
index 8aea10142..3f52c8116 100644
--- a/paludis/environments/paludis/package_mask_conf.cc
+++ b/paludis/environments/paludis/package_mask_conf.cc
@@ -32,6 +32,7 @@
#include <list>
#include <algorithm>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::paludis_environment;
diff --git a/paludis/environments/paludis/paludis_config.cc b/paludis/environments/paludis/paludis_config.cc
index 4427489a0..f7bdf498a 100644
--- a/paludis/environments/paludis/paludis_config.cc
+++ b/paludis/environments/paludis/paludis_config.cc
@@ -53,6 +53,9 @@
#include <sys/types.h>
#include <pwd.h>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include "config.h"
/** \file
diff --git a/paludis/environments/paludis/paludis_environment.cc b/paludis/environments/paludis/paludis_environment.cc
index e98fd5f1e..0f6e450ae 100644
--- a/paludis/environments/paludis/paludis_environment.cc
+++ b/paludis/environments/paludis/paludis_environment.cc
@@ -42,6 +42,8 @@
#include <paludis/util/save.hh>
#include <paludis/util/strip.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <functional>
#include <algorithm>
#include <list>
diff --git a/paludis/environments/paludis/paludis_environment_TEST.cc b/paludis/environments/paludis/paludis_environment_TEST.cc
index e62acd10d..2ebc0e078 100644
--- a/paludis/environments/paludis/paludis_environment_TEST.cc
+++ b/paludis/environments/paludis/paludis_environment_TEST.cc
@@ -22,6 +22,8 @@
#include <paludis/util/fs_entry.hh>
#include <test/test_runner.hh>
#include <test/test_framework.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <cstdlib>
using namespace paludis;
diff --git a/paludis/environments/paludis/use_conf.cc b/paludis/environments/paludis/use_conf.cc
index b324df69d..16e32754b 100644
--- a/paludis/environments/paludis/use_conf.cc
+++ b/paludis/environments/paludis/use_conf.cc
@@ -34,6 +34,8 @@
#include <paludis/util/collection_concrete.hh>
#include <list>
#include <vector>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace paludis::paludis_environment;
diff --git a/paludis/environments/portage/portage_environment.cc b/paludis/environments/portage/portage_environment.cc
index 5cb959a68..8b7c33ded 100644
--- a/paludis/environments/portage/portage_environment.cc
+++ b/paludis/environments/portage/portage_environment.cc
@@ -34,6 +34,8 @@
#include <paludis/package_database.hh>
#include <algorithm>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <functional>
#include <set>
#include <map>
diff --git a/paludis/environments/portage/portage_environment_TEST.cc b/paludis/environments/portage/portage_environment_TEST.cc
index 060909847..95aa5c815 100644
--- a/paludis/environments/portage/portage_environment_TEST.cc
+++ b/paludis/environments/portage/portage_environment_TEST.cc
@@ -23,6 +23,8 @@
#include <paludis/package_database_entry.hh>
#include <paludis/util/collection_concrete.hh>
#include <paludis/util/join.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace test;
diff --git a/paludis/environments/test/test_environment.cc b/paludis/environments/test/test_environment.cc
index 53434675e..520abbb86 100644
--- a/paludis/environments/test/test_environment.cc
+++ b/paludis/environments/test/test_environment.cc
@@ -21,6 +21,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/collection_concrete.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <string>
using namespace paludis;
diff --git a/paludis/files.m4 b/paludis/files.m4
index 3fe5fce30..9f79ef17e 100644
--- a/paludis/files.m4
+++ b/paludis/files.m4
@@ -28,7 +28,7 @@ add(`match_package', `hh', `cc')
add(`name', `hh', `cc', `fwd', `test', `sr', `se')
add(`package_database', `hh', `cc', `test', `se')
add(`package_database_entry', `hh', `cc', `sr')
-add(`paludis', `hh', `cc')
+add(`paludis', `hh')
add(`portage_dep_lexer', `hh', `cc', `test')
add(`portage_dep_parser', `hh', `cc', `fwd', `se', `test')
add(`query', `hh', `cc')
diff --git a/paludis/hook.cc b/paludis/hook.cc
index 7c3602e24..99e7d1421 100644
--- a/paludis/hook.cc
+++ b/paludis/hook.cc
@@ -22,6 +22,7 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/exception.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <map>
using namespace paludis;
diff --git a/paludis/hook.hh b/paludis/hook.hh
index 808751eee..5f626d9d4 100644
--- a/paludis/hook.hh
+++ b/paludis/hook.hh
@@ -27,7 +27,7 @@
#include <utility>
#include <string>
#include <set>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/match_package.cc b/paludis/match_package.cc
index eb6c5ade3..2039adb28 100644
--- a/paludis/match_package.cc
+++ b/paludis/match_package.cc
@@ -24,6 +24,7 @@
#include <paludis/version_requirements.hh>
#include <paludis/package_database.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/name.cc b/paludis/name.cc
index ed62af103..211914880 100644
--- a/paludis/name.cc
+++ b/paludis/name.cc
@@ -22,6 +22,7 @@
#include <paludis/util/operators.hh>
#include <paludis/util/log.hh>
#include <ostream>
+#include <utility>
/** \file
* Implementation of name.hh things.
diff --git a/paludis/package_database.cc b/paludis/package_database.cc
index 8b5ed1b92..d6c6ad97d 100644
--- a/paludis/package_database.cc
+++ b/paludis/package_database.cc
@@ -26,6 +26,9 @@
#include <paludis/util/collection_concrete.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <list>
#include <map>
#include <set>
@@ -280,6 +283,83 @@ namespace
return ma->slot == mb->slot;
}
};
+
+ struct PDEComparator
+ {
+ const PackageDatabase * const pde;
+ std::map<std::string, int> rank;
+
+ PDEComparator(const PackageDatabase * const p) :
+ pde(p)
+ {
+ int x(0);
+ for (PackageDatabase::RepositoryIterator r(pde->begin_repositories()), r_end(pde->end_repositories()) ;
+ r != r_end ; ++r)
+ rank.insert(std::make_pair(stringify((*r)->name()), ++x));
+ }
+
+ bool operator() (const PackageDatabaseEntry & lhs, const PackageDatabaseEntry & rhs) const
+ {
+ if (lhs.name < rhs.name)
+ return true;
+ if (lhs.name > rhs.name)
+ return false;
+
+ if (lhs.version < rhs.version)
+ return true;
+ if (lhs.version > rhs.version)
+ return false;
+
+ std::map<std::string, int>::const_iterator l(rank.find(stringify(lhs.repository)));
+ if (l == rank.end())
+ throw InternalError(PALUDIS_HERE, "lhs.repository '" + stringify(lhs.repository) + "' not in rank");
+
+ std::map<std::string, int>::const_iterator r(rank.find(stringify(rhs.repository)));
+ if (r == rank.end())
+ throw InternalError(PALUDIS_HERE, "rhs.repository '" + stringify(rhs.repository) + "' not in rank");
+
+ if (l->second < r->second)
+ return true;
+
+ return false;
+ }
+ };
+
+ void sort_package_database_entry_collection(const PackageDatabase * const t,
+ PackageDatabaseEntryCollection::Concrete & p)
+ {
+ if (! p.empty())
+ p.sort(PDEComparator(t));
+ }
+
+ void
+ group_package_database_entry_collection(const PackageDatabase * const t,
+ PackageDatabaseEntryCollection::Concrete & p)
+ {
+ if (p.empty())
+ return;
+
+ for (std::list<PackageDatabaseEntry>::reverse_iterator r(p.list.rbegin()) ;
+ r != p.list.rend() ; ++r)
+ {
+ SlotName r_slot(t->fetch_repository(r->repository)->version_metadata(r->name, r->version)->slot);
+
+ for (std::list<PackageDatabaseEntry>::reverse_iterator rr(next(r)) ;
+ rr != p.list.rend() ; ++rr)
+ {
+ if (r->name != rr->name)
+ break;
+
+ SlotName rr_slot(t->fetch_repository(rr->repository)->version_metadata(rr->name, rr->version)->slot);
+ if (rr_slot != r_slot)
+ continue;
+
+ p.list.splice(previous(r.base()), p.list, previous(rr.base()));
+ if (p.list.rend() == ((rr = ++r)))
+ return;
+ }
+ }
+ }
}
tr1::shared_ptr<PackageDatabaseEntryCollection>
@@ -355,17 +435,17 @@ PackageDatabase::query(const Query & q, const QueryOrder query_order) const
switch (query_order)
{
case qo_order_by_version:
- _sort_package_database_entry_collection(*result);
+ sort_package_database_entry_collection(this, *result);
continue;
case qo_group_by_slot:
- _sort_package_database_entry_collection(*result);
- _group_package_database_entry_collection(*result);
+ sort_package_database_entry_collection(this, *result);
+ group_package_database_entry_collection(this, *result);
continue;
case qo_best_version_only:
{
- _sort_package_database_entry_collection(*result);
+ sort_package_database_entry_collection(this, *result);
std::list<PackageDatabaseEntry> l;
std::unique_copy(result->list.rbegin(), result->list.rend(),
std::front_inserter(l), &compare_name);
@@ -375,8 +455,8 @@ PackageDatabase::query(const Query & q, const QueryOrder query_order) const
case qo_best_version_in_slot_only:
{
- _sort_package_database_entry_collection(*result);
- _group_package_database_entry_collection(*result);
+ sort_package_database_entry_collection(this, *result);
+ group_package_database_entry_collection(this, *result);
std::list<PackageDatabaseEntry> l;
std::unique_copy(result->list.rbegin(), result->list.rend(),
std::front_inserter(l), CompareNameSlot(this));
@@ -465,85 +545,6 @@ PackageDatabase::more_important_than(const RepositoryName & lhs,
return l->second > r->second;
}
-namespace
-{
- struct PDEComparator
- {
- const PackageDatabase * const pde;
- std::map<std::string, int> rank;
-
- PDEComparator(const PackageDatabase * const p) :
- pde(p)
- {
- int x(0);
- for (PackageDatabase::RepositoryIterator r(pde->begin_repositories()), r_end(pde->end_repositories()) ;
- r != r_end ; ++r)
- rank.insert(std::make_pair(stringify((*r)->name()), ++x));
- }
-
- bool operator() (const PackageDatabaseEntry & lhs, const PackageDatabaseEntry & rhs) const
- {
- if (lhs.name < rhs.name)
- return true;
- if (lhs.name > rhs.name)
- return false;
-
- if (lhs.version < rhs.version)
- return true;
- if (lhs.version > rhs.version)
- return false;
-
- std::map<std::string, int>::const_iterator l(rank.find(stringify(lhs.repository)));
- if (l == rank.end())
- throw InternalError(PALUDIS_HERE, "lhs.repository '" + stringify(lhs.repository) + "' not in rank");
-
- std::map<std::string, int>::const_iterator r(rank.find(stringify(rhs.repository)));
- if (r == rank.end())
- throw InternalError(PALUDIS_HERE, "rhs.repository '" + stringify(rhs.repository) + "' not in rank");
-
- if (l->second < r->second)
- return true;
-
- return false;
- }
- };
-}
-
-void
-PackageDatabase::_sort_package_database_entry_collection(PackageDatabaseEntryCollection::Concrete & p) const
-{
- if (! p.empty())
- p.sort(PDEComparator(this));
-}
-
-void
-PackageDatabase::_group_package_database_entry_collection(PackageDatabaseEntryCollection::Concrete & p) const
-{
- if (p.empty())
- return;
-
- for (std::list<PackageDatabaseEntry>::reverse_iterator r(p.list.rbegin()) ;
- r != p.list.rend() ; ++r)
- {
- SlotName r_slot(fetch_repository(r->repository)->version_metadata(r->name, r->version)->slot);
-
- for (std::list<PackageDatabaseEntry>::reverse_iterator rr(next(r)) ;
- rr != p.list.rend() ; ++rr)
- {
- if (r->name != rr->name)
- break;
-
- SlotName rr_slot(fetch_repository(rr->repository)->version_metadata(rr->name, rr->version)->slot);
- if (rr_slot != r_slot)
- continue;
-
- p.list.splice(previous(r.base()), p.list, previous(rr.base()));
- if (p.list.rend() == ((rr = ++r)))
- return;
- }
- }
-}
-
PackageDatabase::RepositoryIterator
PackageDatabase::begin_repositories() const
{
diff --git a/paludis/package_database.hh b/paludis/package_database.hh
index f183d8835..60fa60cf6 100644
--- a/paludis/package_database.hh
+++ b/paludis/package_database.hh
@@ -29,14 +29,14 @@
#include <paludis/util/join.hh>
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/stringify.hh>
-#include <paludis/util/collection.hh>
+#include <paludis/util/collection-fwd.hh>
#include <paludis/version_metadata.hh>
#include <paludis/version_spec.hh>
#include <paludis/package_database_entry.hh>
#include <paludis/contents.hh>
#include <iosfwd>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for the PackageDatabase class and related utilities.
@@ -239,12 +239,6 @@ namespace paludis
private PrivateImplementationPattern<PackageDatabase>,
private InstantiationPolicy<PackageDatabase, instantiation_method::NonCopyableTag>
{
- private:
- void _sort_package_database_entry_collection(
- PackageDatabaseEntryCollection::Concrete &) const;
- void _group_package_database_entry_collection(
- PackageDatabaseEntryCollection::Concrete &) const;
-
public:
/**
* Constructor.
diff --git a/paludis/package_database_TEST.cc b/paludis/package_database_TEST.cc
index 05692d390..aed6329df 100644
--- a/paludis/package_database_TEST.cc
+++ b/paludis/package_database_TEST.cc
@@ -20,6 +20,8 @@
#include <paludis/paludis.hh>
#include <paludis/environments/test/test_environment.hh>
#include <paludis/repositories/fake/fake_repository.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/paludis.cc b/paludis/paludis.cc
deleted file mode 100644
index 47e119feb..000000000
--- a/paludis/paludis.cc
+++ /dev/null
@@ -1,8 +0,0 @@
-/* vim: set sw=4 sts=4 et foldmethod=syntax : */
-
-#include "paludis.hh"
-
-void paludis_was_here()
-{
-}
-
diff --git a/paludis/paludis.hh.m4 b/paludis/paludis.hh.m4
index d97d2823d..e3377ae32 100644
--- a/paludis/paludis.hh.m4
+++ b/paludis/paludis.hh.m4
@@ -5,7 +5,7 @@ dnl vim: set ft=cpp et sw=4 sts=4 :
#endif
/*
- * Copyright (c) 2005, 2006 Ciaran McCreesh <ciaranm@ciaranm.org>
+ * Copyright (c) 2005, 2006, 2007 Ciaran McCreesh <ciaranm@ciaranm.org>
*
* 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
@@ -37,13 +37,8 @@ addthis(`$1',`$5')addthis(`$1',`$6')')dnl
include(`paludis/files.m4')
-extern "C"
-{
- /**
- * For simplifying extconf.rb detection.
- */
- void paludis_was_here();
-}
+#include <paludis/util/util.hh>
+#include <libwrapiter/libwrapiter.hh>
#endif
diff --git a/paludis/portage_dep_lexer.cc b/paludis/portage_dep_lexer.cc
index 867180ebb..05bd84bcf 100644
--- a/paludis/portage_dep_lexer.cc
+++ b/paludis/portage_dep_lexer.cc
@@ -22,6 +22,7 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/exception.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <vector>
#include <list>
diff --git a/paludis/portage_dep_lexer.hh b/paludis/portage_dep_lexer.hh
index 4d06687d6..44d104c17 100644
--- a/paludis/portage_dep_lexer.hh
+++ b/paludis/portage_dep_lexer.hh
@@ -25,7 +25,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <string>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for the PortageDepLexer class.
diff --git a/paludis/portage_dep_lexer_TEST.cc b/paludis/portage_dep_lexer_TEST.cc
index 62792efe0..b2fe769a0 100644
--- a/paludis/portage_dep_lexer_TEST.cc
+++ b/paludis/portage_dep_lexer_TEST.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006 Ciaran McCreesh <ciaranm@ciaranm.org>
+ * Copyright (c) 2005, 2006, 2007 Ciaran McCreesh <ciaranm@ciaranm.org>
*
* 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
@@ -21,6 +21,7 @@
#include <sstream>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace test;
using namespace paludis;
diff --git a/paludis/portage_dep_parser.cc b/paludis/portage_dep_parser.cc
index 297be4837..ea7015a93 100644
--- a/paludis/portage_dep_parser.cc
+++ b/paludis/portage_dep_parser.cc
@@ -25,6 +25,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/tr1_functional.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <stack>
/** \file
diff --git a/paludis/portage_dep_parser_TEST.cc b/paludis/portage_dep_parser_TEST.cc
index 474110c93..38bacbbdc 100644
--- a/paludis/portage_dep_parser_TEST.cc
+++ b/paludis/portage_dep_parser_TEST.cc
@@ -19,6 +19,7 @@
#include <paludis/paludis.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <sstream>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/qa/categories_check.cc b/paludis/qa/categories_check.cc
index ae1219aa6..414e7471b 100644
--- a/paludis/qa/categories_check.cc
+++ b/paludis/qa/categories_check.cc
@@ -20,6 +20,7 @@
#include <paludis/qa/categories_check.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/config_file.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
diff --git a/paludis/qa/dep_any_check.cc b/paludis/qa/dep_any_check.cc
index 9ce480bb7..d50f032d6 100644
--- a/paludis/qa/dep_any_check.cc
+++ b/paludis/qa/dep_any_check.cc
@@ -27,6 +27,7 @@
#include <paludis/util/save.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/qa/dep_flags_check.cc b/paludis/qa/dep_flags_check.cc
index bc1b8a264..e70261304 100644
--- a/paludis/qa/dep_flags_check.cc
+++ b/paludis/qa/dep_flags_check.cc
@@ -27,6 +27,7 @@
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
#include <algorithm>
diff --git a/paludis/qa/dep_packages_check.cc b/paludis/qa/dep_packages_check.cc
index a71d9c54d..8bd4bbe2a 100644
--- a/paludis/qa/dep_packages_check.cc
+++ b/paludis/qa/dep_packages_check.cc
@@ -28,6 +28,7 @@
#include <paludis/util/system.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
using namespace paludis;
diff --git a/paludis/qa/deprecated_functions_check.cc b/paludis/qa/deprecated_functions_check.cc
index ca25613ff..dc9d9359e 100644
--- a/paludis/qa/deprecated_functions_check.cc
+++ b/paludis/qa/deprecated_functions_check.cc
@@ -24,6 +24,7 @@
#include <paludis/util/log.hh>
#include <paludis/util/system.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <pcre++.h>
#include <set>
diff --git a/paludis/qa/deps_exist_check.cc b/paludis/qa/deps_exist_check.cc
index 492cc090a..0b8aaedd6 100644
--- a/paludis/qa/deps_exist_check.cc
+++ b/paludis/qa/deps_exist_check.cc
@@ -27,6 +27,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/qa/deps_visible_check.cc b/paludis/qa/deps_visible_check.cc
index 65a066fa8..14c7555ca 100644
--- a/paludis/qa/deps_visible_check.cc
+++ b/paludis/qa/deps_visible_check.cc
@@ -29,6 +29,8 @@
#include <paludis/util/tr1_functional.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <algorithm>
diff --git a/paludis/qa/extract_check.cc b/paludis/qa/extract_check.cc
index 0cca37e20..88f99a61a 100644
--- a/paludis/qa/extract_check.cc
+++ b/paludis/qa/extract_check.cc
@@ -25,6 +25,7 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/qa/qa_environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::qa;
diff --git a/paludis/qa/homepage_check.cc b/paludis/qa/homepage_check.cc
index ed4f33c91..8667e1553 100644
--- a/paludis/qa/homepage_check.cc
+++ b/paludis/qa/homepage_check.cc
@@ -22,6 +22,8 @@
#include <paludis/environment.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/qa/inherits_check.cc b/paludis/qa/inherits_check.cc
index 5ad939cb4..d8f4ab47b 100644
--- a/paludis/qa/inherits_check.cc
+++ b/paludis/qa/inherits_check.cc
@@ -28,6 +28,7 @@
#include <paludis/util/log.hh>
#include <paludis/util/system.hh>
#include <paludis/qa/qa_environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
using namespace paludis;
diff --git a/paludis/qa/iuse_check.cc b/paludis/qa/iuse_check.cc
index af03b81d9..5d5c38d1a 100644
--- a/paludis/qa/iuse_check.cc
+++ b/paludis/qa/iuse_check.cc
@@ -30,6 +30,8 @@
#include <paludis/util/iterator.hh>
#include <paludis/util/tr1_functional.hh>
#include <paludis/qa/qa_environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
using namespace paludis;
diff --git a/paludis/qa/keywords_check.cc b/paludis/qa/keywords_check.cc
index f3fdba512..8413cbaab 100644
--- a/paludis/qa/keywords_check.cc
+++ b/paludis/qa/keywords_check.cc
@@ -22,6 +22,8 @@
#include <paludis/package_database_entry.hh>
#include <paludis/environment.hh>
#include <paludis/qa/qa_environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
using namespace paludis;
diff --git a/paludis/qa/license_check.cc b/paludis/qa/license_check.cc
index ca49d5f94..90cad0e9f 100644
--- a/paludis/qa/license_check.cc
+++ b/paludis/qa/license_check.cc
@@ -25,6 +25,7 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::qa;
diff --git a/paludis/qa/metadata_file.cc b/paludis/qa/metadata_file.cc
index 2b7a240b4..af83357da 100644
--- a/paludis/qa/metadata_file.cc
+++ b/paludis/qa/metadata_file.cc
@@ -28,6 +28,7 @@
#include <libxml/parser.h>
#include <set>
#include <list>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::qa;
diff --git a/paludis/qa/metadata_file.hh b/paludis/qa/metadata_file.hh
index 849928f68..7724b06f6 100644
--- a/paludis/qa/metadata_file.hh
+++ b/paludis/qa/metadata_file.hh
@@ -21,7 +21,8 @@
#define PALUDIS_GUARD_PALUDIS_QA_METADATA_FILE_HH 1
#include <paludis/util/private_implementation_pattern.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
+#include <string>
namespace paludis
{
diff --git a/paludis/qa/metadata_file_TEST.cc b/paludis/qa/metadata_file_TEST.cc
index 658e4efa9..f44092649 100644
--- a/paludis/qa/metadata_file_TEST.cc
+++ b/paludis/qa/metadata_file_TEST.cc
@@ -20,6 +20,7 @@
#include <paludis/qa/metadata_file.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <algorithm>
#include "config.h"
diff --git a/paludis/qa/pdepend_overlap_check.cc b/paludis/qa/pdepend_overlap_check.cc
index 2b2f2ad9e..808a69700 100644
--- a/paludis/qa/pdepend_overlap_check.cc
+++ b/paludis/qa/pdepend_overlap_check.cc
@@ -25,6 +25,7 @@
#include <paludis/util/join.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
#include <algorithm>
diff --git a/paludis/qa/profile_paths_exist_check.cc b/paludis/qa/profile_paths_exist_check.cc
index cb2b83943..9fc328dbb 100644
--- a/paludis/qa/profile_paths_exist_check.cc
+++ b/paludis/qa/profile_paths_exist_check.cc
@@ -20,6 +20,7 @@
#include <paludis/qa/profile_paths_exist_check.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/config_file.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
diff --git a/paludis/qa/qa_environment.hh b/paludis/qa/qa_environment.hh
index 81d37e563..959cc98fa 100644
--- a/paludis/qa/qa_environment.hh
+++ b/paludis/qa/qa_environment.hh
@@ -26,7 +26,7 @@
#include <paludis/package_database.hh>
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/fs_entry.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for the QAEnvironment class.
diff --git a/paludis/qa/repo_name_check.cc b/paludis/qa/repo_name_check.cc
index 671d94088..efd45deff 100644
--- a/paludis/qa/repo_name_check.cc
+++ b/paludis/qa/repo_name_check.cc
@@ -20,6 +20,7 @@
#include <paludis/qa/repo_name_check.hh>
#include <paludis/qa/qa_environment.hh>
#include <paludis/config_file.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
diff --git a/paludis/qa/restrict_check.cc b/paludis/qa/restrict_check.cc
index f033529cb..be7a1f30f 100644
--- a/paludis/qa/restrict_check.cc
+++ b/paludis/qa/restrict_check.cc
@@ -26,6 +26,7 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/qa/qa_environment.hh>
#include <set>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::qa;
diff --git a/paludis/qa/src_uri_check.cc b/paludis/qa/src_uri_check.cc
index 184906afe..0c037eec4 100644
--- a/paludis/qa/src_uri_check.cc
+++ b/paludis/qa/src_uri_check.cc
@@ -25,6 +25,7 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/qa/qa_environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
#include <algorithm>
diff --git a/paludis/query.cc b/paludis/query.cc
index 6c8142fdc..b28e2bba8 100644
--- a/paludis/query.cc
+++ b/paludis/query.cc
@@ -23,6 +23,8 @@
#include <paludis/package_database.hh>
#include <paludis/environment.hh>
#include <paludis/match_package.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
#include <set>
diff --git a/paludis/repositories/cran/cran_dep_parser.cc b/paludis/repositories/cran/cran_dep_parser.cc
index 737ba8883..ddaee065b 100644
--- a/paludis/repositories/cran/cran_dep_parser.cc
+++ b/paludis/repositories/cran/cran_dep_parser.cc
@@ -25,6 +25,8 @@
#include <paludis/util/strip.hh>
#include <paludis/util/stringify.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <string>
#include <list>
diff --git a/paludis/repositories/cran/cran_dep_parser_TEST.cc b/paludis/repositories/cran/cran_dep_parser_TEST.cc
index 8c2ef8832..3dda1178e 100644
--- a/paludis/repositories/cran/cran_dep_parser_TEST.cc
+++ b/paludis/repositories/cran/cran_dep_parser_TEST.cc
@@ -25,6 +25,7 @@
#include <paludis/util/system.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/repositories/cran/cran_description.cc b/paludis/repositories/cran/cran_description.cc
index 1bbebd449..d7db38373 100644
--- a/paludis/repositories/cran/cran_description.cc
+++ b/paludis/repositories/cran/cran_description.cc
@@ -29,6 +29,8 @@
#include <string>
#include <algorithm>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc
index 7dce7015e..1fa5fa984 100644
--- a/paludis/repositories/cran/cran_installed_repository.cc
+++ b/paludis/repositories/cran/cran_installed_repository.cc
@@ -39,6 +39,9 @@
#include <paludis/util/strip.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <fstream>
#include <functional>
#include <algorithm>
diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc
index 6a987ba64..fe6329412 100644
--- a/paludis/repositories/cran/cran_repository.cc
+++ b/paludis/repositories/cran/cran_repository.cc
@@ -47,6 +47,9 @@
#include <paludis/util/system.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <map>
#include <list>
#include <fstream>
diff --git a/paludis/repositories/cran/cran_repository_TEST.cc b/paludis/repositories/cran/cran_repository_TEST.cc
index 64100bb6c..579f9e907 100644
--- a/paludis/repositories/cran/cran_repository_TEST.cc
+++ b/paludis/repositories/cran/cran_repository_TEST.cc
@@ -25,6 +25,8 @@
#include <paludis/environments/test/test_environment.hh>
#include <paludis/util/collection_concrete.hh>
#include <paludis/util/system.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/repositories/fake/fake_installed_repository.cc b/paludis/repositories/fake/fake_installed_repository.cc
index 8e183e5b6..4a43cee3e 100644
--- a/paludis/repositories/fake/fake_installed_repository.cc
+++ b/paludis/repositories/fake/fake_installed_repository.cc
@@ -23,6 +23,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/portage_dep_parser.hh>
#include <paludis/dep_spec_flattener.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/fake/fake_repository.cc b/paludis/repositories/fake/fake_repository.cc
index d9f9abf43..504b650e2 100644
--- a/paludis/repositories/fake/fake_repository.cc
+++ b/paludis/repositories/fake/fake_repository.cc
@@ -24,6 +24,9 @@
#include <paludis/distribution.hh>
#include <paludis/environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
using namespace paludis;
FakeRepository::FakeRepository(const Environment * const e, const RepositoryName & our_name) :
diff --git a/paludis/repositories/fake/fake_repository_base.cc b/paludis/repositories/fake/fake_repository_base.cc
index 602fce585..45e05fc65 100644
--- a/paludis/repositories/fake/fake_repository_base.cc
+++ b/paludis/repositories/fake/fake_repository_base.cc
@@ -27,6 +27,8 @@
#include <paludis/version_metadata.hh>
#include <paludis/portage_dep_parser.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <map>
/** \file
diff --git a/paludis/repositories/gems/gem_specification.cc b/paludis/repositories/gems/gem_specification.cc
index 9425608a2..eb0391437 100644
--- a/paludis/repositories/gems/gem_specification.cc
+++ b/paludis/repositories/gems/gem_specification.cc
@@ -22,6 +22,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace paludis::gems;
diff --git a/paludis/repositories/gems/gem_specifications.cc b/paludis/repositories/gems/gem_specifications.cc
index 988adf185..c8cd24c4d 100644
--- a/paludis/repositories/gems/gem_specifications.cc
+++ b/paludis/repositories/gems/gem_specifications.cc
@@ -26,6 +26,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/make_shared_ptr.hh>
#include <paludis/hashed_containers.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace paludis::gems;
diff --git a/paludis/repositories/gems/gem_specifications.hh b/paludis/repositories/gems/gem_specifications.hh
index 79331d647..ca7af7032 100644
--- a/paludis/repositories/gems/gem_specifications.hh
+++ b/paludis/repositories/gems/gem_specifications.hh
@@ -28,7 +28,7 @@
#include <paludis/util/tr1_memory.hh>
#include <paludis/name-fwd.hh>
#include <paludis/version_spec-fwd.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <string>
namespace paludis
diff --git a/paludis/repositories/gems/gems_repository.cc b/paludis/repositories/gems/gems_repository.cc
index 00db6572e..2e48f9d0f 100644
--- a/paludis/repositories/gems/gems_repository.cc
+++ b/paludis/repositories/gems/gems_repository.cc
@@ -31,6 +31,8 @@
#include <paludis/util/system.hh>
#include <paludis/eapi.hh>
#include <paludis/hashed_containers.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <fstream>
using namespace paludis;
diff --git a/paludis/repositories/gems/installed_gems_repository.cc b/paludis/repositories/gems/installed_gems_repository.cc
index 8022a1321..51b3703d1 100644
--- a/paludis/repositories/gems/installed_gems_repository.cc
+++ b/paludis/repositories/gems/installed_gems_repository.cc
@@ -37,6 +37,9 @@
#include <paludis/hashed_containers.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
using namespace paludis;
typedef MakeHashedMap<std::pair<QualifiedPackageName, VersionSpec>, tr1::shared_ptr<const gems::InstalledGemMetadata> >::Type MetadataMap;
diff --git a/paludis/repositories/gems/registration.cc b/paludis/repositories/gems/registration.cc
index 67002ad81..007375972 100644
--- a/paludis/repositories/gems/registration.cc
+++ b/paludis/repositories/gems/registration.cc
@@ -25,6 +25,8 @@
#include <paludis/util/make_shared_ptr.hh>
#include <paludis/distribution.hh>
#include <paludis/environment.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/gems/yaml.cc b/paludis/repositories/gems/yaml.cc
index 711d9ab04..d8005753a 100644
--- a/paludis/repositories/gems/yaml.cc
+++ b/paludis/repositories/gems/yaml.cc
@@ -23,6 +23,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/tr1_functional.hh>
#include <paludis/util/make_shared_ptr.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <syck.h>
#include <cstring>
#include <algorithm>
diff --git a/paludis/repositories/gems/yaml_TEST.cc b/paludis/repositories/gems/yaml_TEST.cc
index 4b4351e0f..9bad77776 100644
--- a/paludis/repositories/gems/yaml_TEST.cc
+++ b/paludis/repositories/gems/yaml_TEST.cc
@@ -22,6 +22,7 @@
#include <paludis/repositories/gems/yaml.hh>
#include <paludis/util/iterator.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <algorithm>
#include <sstream>
diff --git a/paludis/repositories/gentoo/eapi_phase.cc b/paludis/repositories/gentoo/eapi_phase.cc
index b79eda8bf..70dafc200 100644
--- a/paludis/repositories/gentoo/eapi_phase.cc
+++ b/paludis/repositories/gentoo/eapi_phase.cc
@@ -23,6 +23,8 @@
#include <paludis/util/iterator.hh>
#include <paludis/util/make_shared_ptr.hh>
#include <paludis/eapi.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
#include <algorithm>
#include <list>
diff --git a/paludis/repositories/gentoo/eapi_phase.hh b/paludis/repositories/gentoo/eapi_phase.hh
index 834b5a75a..10e4a6da1 100644
--- a/paludis/repositories/gentoo/eapi_phase.hh
+++ b/paludis/repositories/gentoo/eapi_phase.hh
@@ -21,7 +21,7 @@
#define PALUDIS_GUARD_PALUDIS_REPOSITORIES_GENTOO_EAPI_PHASE_HH 1
#include <paludis/util/private_implementation_pattern.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <string>
namespace paludis
diff --git a/paludis/repositories/gentoo/ebin.cc b/paludis/repositories/gentoo/ebin.cc
index c9752e7a2..e5626bd0d 100644
--- a/paludis/repositories/gentoo/ebin.cc
+++ b/paludis/repositories/gentoo/ebin.cc
@@ -27,6 +27,8 @@
#include <paludis/about.hh>
#include <sys/resource.h>
#include <sys/time.h>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <unistd.h>
using namespace paludis;
diff --git a/paludis/repositories/gentoo/ebin_entries.cc b/paludis/repositories/gentoo/ebin_entries.cc
index 882435e11..030c66401 100644
--- a/paludis/repositories/gentoo/ebin_entries.cc
+++ b/paludis/repositories/gentoo/ebin_entries.cc
@@ -33,6 +33,8 @@
#include <paludis/util/is_file_with_extension.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/dep_spec_pretty_printer.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
#include <fstream>
diff --git a/paludis/repositories/gentoo/ebuild.cc b/paludis/repositories/gentoo/ebuild.cc
index 77adf0457..b013a51ff 100644
--- a/paludis/repositories/gentoo/ebuild.cc
+++ b/paludis/repositories/gentoo/ebuild.cc
@@ -30,6 +30,8 @@
#include <sys/resource.h>
#include <sys/time.h>
#include <unistd.h>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include "config.h"
/** \file
diff --git a/paludis/repositories/gentoo/ebuild_entries.cc b/paludis/repositories/gentoo/ebuild_entries.cc
index d864941a5..23d02b79e 100644
--- a/paludis/repositories/gentoo/ebuild_entries.cc
+++ b/paludis/repositories/gentoo/ebuild_entries.cc
@@ -39,6 +39,9 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <fstream>
#include <list>
#include <set>
diff --git a/paludis/repositories/gentoo/ebuild_flat_metadata_cache.cc b/paludis/repositories/gentoo/ebuild_flat_metadata_cache.cc
index 5b7f02c15..f3769ee79 100644
--- a/paludis/repositories/gentoo/ebuild_flat_metadata_cache.cc
+++ b/paludis/repositories/gentoo/ebuild_flat_metadata_cache.cc
@@ -27,6 +27,7 @@
#include <set>
#include <list>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <functional>
#include <algorithm>
diff --git a/paludis/repositories/gentoo/eclass_mtimes.cc b/paludis/repositories/gentoo/eclass_mtimes.cc
index ade07e417..041cdfe22 100644
--- a/paludis/repositories/gentoo/eclass_mtimes.cc
+++ b/paludis/repositories/gentoo/eclass_mtimes.cc
@@ -20,6 +20,8 @@
#include "eclass_mtimes.hh"
#include <paludis/hashed_containers.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/gentoo/exheres_layout.cc b/paludis/repositories/gentoo/exheres_layout.cc
index adcf26d35..c064aa686 100644
--- a/paludis/repositories/gentoo/exheres_layout.cc
+++ b/paludis/repositories/gentoo/exheres_layout.cc
@@ -32,6 +32,8 @@
#include <paludis/util/is_file_with_extension.hh>
#include <paludis/util/iterator.hh>
#include <paludis/util/strip.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <paludis/util/tr1_functional.hh>
#include <functional>
diff --git a/paludis/repositories/gentoo/glsa.cc b/paludis/repositories/gentoo/glsa.cc
index 371862fa6..df4f723f6 100644
--- a/paludis/repositories/gentoo/glsa.cc
+++ b/paludis/repositories/gentoo/glsa.cc
@@ -21,6 +21,8 @@
#include <paludis/util/iterator.hh>
#include <paludis/util/stringify.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <dlfcn.h>
#include <stdint.h>
diff --git a/paludis/repositories/gentoo/glsa.hh b/paludis/repositories/gentoo/glsa.hh
index 2ab7907fa..c9ab4561a 100644
--- a/paludis/repositories/gentoo/glsa.hh
+++ b/paludis/repositories/gentoo/glsa.hh
@@ -24,7 +24,7 @@
#include <paludis/util/sr.hh>
#include <paludis/name.hh>
#include <paludis/version_spec.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <string>
diff --git a/paludis/repositories/gentoo/make_ebin_repository.cc b/paludis/repositories/gentoo/make_ebin_repository.cc
index 955c7f8c2..a402c622f 100644
--- a/paludis/repositories/gentoo/make_ebin_repository.cc
+++ b/paludis/repositories/gentoo/make_ebin_repository.cc
@@ -24,6 +24,8 @@
#include <paludis/repositories/gentoo/portage_repository_exceptions.hh>
#include <paludis/environment.hh>
#include <paludis/distribution.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/gentoo/make_ebuild_repository.cc b/paludis/repositories/gentoo/make_ebuild_repository.cc
index e2e5f7eb0..8d21f7ce1 100644
--- a/paludis/repositories/gentoo/make_ebuild_repository.cc
+++ b/paludis/repositories/gentoo/make_ebuild_repository.cc
@@ -24,6 +24,8 @@
#include <paludis/repositories/gentoo/portage_repository_exceptions.hh>
#include <paludis/environment.hh>
#include <paludis/distribution.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/gentoo/portage_repository.cc b/paludis/repositories/gentoo/portage_repository.cc
index 98f1c1ebe..129ebf5f9 100644
--- a/paludis/repositories/gentoo/portage_repository.cc
+++ b/paludis/repositories/gentoo/portage_repository.cc
@@ -61,6 +61,9 @@
#include <paludis/util/system.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <map>
#include <fstream>
#include <functional>
diff --git a/paludis/repositories/gentoo/portage_repository.hh b/paludis/repositories/gentoo/portage_repository.hh
index 8fa2d8675..871fb0ec3 100644
--- a/paludis/repositories/gentoo/portage_repository.hh
+++ b/paludis/repositories/gentoo/portage_repository.hh
@@ -66,8 +66,6 @@ namespace paludis
{
private:
void need_mirrors() const;
- PackageDatabaseEntryCollection::Iterator find_best(PackageDatabaseEntryCollection & c,
- const PackageDatabaseEntry & e) const;
protected:
virtual bool do_has_category_named(const CategoryNamePart &) const;
diff --git a/paludis/repositories/gentoo/portage_repository_TEST.cc b/paludis/repositories/gentoo/portage_repository_TEST.cc
index a027c8f60..63c4b608e 100644
--- a/paludis/repositories/gentoo/portage_repository_TEST.cc
+++ b/paludis/repositories/gentoo/portage_repository_TEST.cc
@@ -25,6 +25,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/eapi.hh>
#include <paludis/dep_spec_pretty_printer.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/repositories/gentoo/portage_repository_news.cc b/paludis/repositories/gentoo/portage_repository_news.cc
index 89b2efb30..16f9189f2 100644
--- a/paludis/repositories/gentoo/portage_repository_news.cc
+++ b/paludis/repositories/gentoo/portage_repository_news.cc
@@ -28,6 +28,7 @@
#include <paludis/util/strip.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <set>
#include <ostream>
diff --git a/paludis/repositories/gentoo/portage_repository_profile.cc b/paludis/repositories/gentoo/portage_repository_profile.cc
index f482486a3..de705f6fa 100644
--- a/paludis/repositories/gentoo/portage_repository_profile.cc
+++ b/paludis/repositories/gentoo/portage_repository_profile.cc
@@ -35,6 +35,8 @@
#include <paludis/hashed_containers.hh>
#include <paludis/version_metadata.hh>
#include <paludis/distribution.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <algorithm>
diff --git a/paludis/repositories/gentoo/portage_repository_profile.hh b/paludis/repositories/gentoo/portage_repository_profile.hh
index bbc4e37a1..46a26425a 100644
--- a/paludis/repositories/gentoo/portage_repository_profile.hh
+++ b/paludis/repositories/gentoo/portage_repository_profile.hh
@@ -26,7 +26,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/instantiation_policy.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <string>
/** \file
diff --git a/paludis/repositories/gentoo/portage_repository_profile_file.cc b/paludis/repositories/gentoo/portage_repository_profile_file.cc
index 143d0f104..4bcb4adac 100644
--- a/paludis/repositories/gentoo/portage_repository_profile_file.cc
+++ b/paludis/repositories/gentoo/portage_repository_profile_file.cc
@@ -22,6 +22,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/config_file.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <algorithm>
diff --git a/paludis/repositories/gentoo/portage_repository_profile_file.hh b/paludis/repositories/gentoo/portage_repository_profile_file.hh
index 89a59eb8c..9aa9437ee 100644
--- a/paludis/repositories/gentoo/portage_repository_profile_file.hh
+++ b/paludis/repositories/gentoo/portage_repository_profile_file.hh
@@ -23,7 +23,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/attributes.hh>
#include <paludis/util/fs_entry.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/repositories/gentoo/portage_repository_sets.cc b/paludis/repositories/gentoo/portage_repository_sets.cc
index 5247c1244..2283bbe25 100644
--- a/paludis/repositories/gentoo/portage_repository_sets.cc
+++ b/paludis/repositories/gentoo/portage_repository_sets.cc
@@ -43,6 +43,9 @@
#include <paludis/util/tr1_functional.hh>
#include <set>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include "config.h"
using namespace paludis;
@@ -152,31 +155,6 @@ PortageRepositorySets::sets_list() const
return result;
}
-PackageDatabaseEntryCollection::Iterator
-PortageRepositorySets::find_best(PackageDatabaseEntryCollection & c, const PackageDatabaseEntry & e) const
-{
- Context local("When finding best update for '" + stringify(e.name) + "-" +
- stringify(e.version) + "':");
- // Find an entry in c that matches e best. e is not in c.
- QualifiedPackageName n(e.name);
- SlotName s(_imp->environment->package_database()->fetch_repository(
- e.repository)->version_metadata(e.name, e.version)->slot);
- PackageDatabaseEntryCollection::Iterator i(c.begin()), i_end(c.end()), i_best(c.end());
- for ( ; i != i_end; ++i)
- {
- if (n != i->name)
- continue;
- if (s != _imp->environment->package_database()->fetch_repository(
- i->repository)->version_metadata(
- i->name, i->version)->slot)
- continue;
-
- i_best = i;
- }
-
- return i_best;
-}
-
namespace
{
bool
diff --git a/paludis/repositories/gentoo/portage_repository_sets.hh b/paludis/repositories/gentoo/portage_repository_sets.hh
index fef2b7bcb..26c39dfb4 100644
--- a/paludis/repositories/gentoo/portage_repository_sets.hh
+++ b/paludis/repositories/gentoo/portage_repository_sets.hh
@@ -45,10 +45,6 @@ namespace paludis
private PrivateImplementationPattern<PortageRepositorySets>,
private InstantiationPolicy<PortageRepositorySets, instantiation_method::NonCopyableTag>
{
- private:
- PackageDatabaseEntryCollection::Iterator
- find_best(PackageDatabaseEntryCollection & c, const PackageDatabaseEntry & e) const;
-
public:
///\name Basic operations
///\{
diff --git a/paludis/repositories/gentoo/portage_repository_sets_TEST.cc b/paludis/repositories/gentoo/portage_repository_sets_TEST.cc
index 744f59683..9d96c31a4 100644
--- a/paludis/repositories/gentoo/portage_repository_sets_TEST.cc
+++ b/paludis/repositories/gentoo/portage_repository_sets_TEST.cc
@@ -27,6 +27,8 @@
#include <paludis/util/system.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include "config.h"
using namespace test;
diff --git a/paludis/repositories/gentoo/registration.cc b/paludis/repositories/gentoo/registration.cc
index 7e27cbd8e..f42ba19bc 100644
--- a/paludis/repositories/gentoo/registration.cc
+++ b/paludis/repositories/gentoo/registration.cc
@@ -22,6 +22,8 @@
#include <paludis/repositories/gentoo/make_ebin_repository.hh>
#include <paludis/repositories/gentoo/vdb_repository.hh>
#include <paludis/util/log.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include "config.h"
using namespace paludis;
diff --git a/paludis/repositories/gentoo/traditional_layout.cc b/paludis/repositories/gentoo/traditional_layout.cc
index 6e3def43d..f7c2c4833 100644
--- a/paludis/repositories/gentoo/traditional_layout.cc
+++ b/paludis/repositories/gentoo/traditional_layout.cc
@@ -37,6 +37,9 @@
#include <functional>
#include <algorithm>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
using namespace paludis;
typedef MakeHashedMap<CategoryNamePart, bool>::Type CategoryMap;
diff --git a/paludis/repositories/gentoo/use_desc.cc b/paludis/repositories/gentoo/use_desc.cc
index cb4c8add3..c33d55403 100644
--- a/paludis/repositories/gentoo/use_desc.cc
+++ b/paludis/repositories/gentoo/use_desc.cc
@@ -28,6 +28,8 @@
#include <paludis/util/strip.hh>
#include <paludis/config_file.hh>
#include <paludis/package_database_entry.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
diff --git a/paludis/repositories/gentoo/vdb_merger.cc b/paludis/repositories/gentoo/vdb_merger.cc
index 57e3adb8b..ccaee7e7d 100644
--- a/paludis/repositories/gentoo/vdb_merger.cc
+++ b/paludis/repositories/gentoo/vdb_merger.cc
@@ -28,6 +28,8 @@
#include <paludis/environment.hh>
#include <paludis/package_database_entry.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <fstream>
#include <iostream>
#include <iomanip>
diff --git a/paludis/repositories/gentoo/vdb_repository.cc b/paludis/repositories/gentoo/vdb_repository.cc
index 80a68ff69..3a264a890 100644
--- a/paludis/repositories/gentoo/vdb_repository.cc
+++ b/paludis/repositories/gentoo/vdb_repository.cc
@@ -56,6 +56,9 @@
#include <paludis/util/system.hh>
#include <paludis/util/tokeniser.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
#include <fstream>
#include <functional>
#include <algorithm>
diff --git a/paludis/repositories/gentoo/vdb_unmerger.cc b/paludis/repositories/gentoo/vdb_unmerger.cc
index 5c6f75597..ef217cc48 100644
--- a/paludis/repositories/gentoo/vdb_unmerger.cc
+++ b/paludis/repositories/gentoo/vdb_unmerger.cc
@@ -40,6 +40,8 @@ using namespace paludis;
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
namespace paludis
{
diff --git a/paludis/repositories/gentoo/xml_things_TEST.cc b/paludis/repositories/gentoo/xml_things_TEST.cc
index 8bdbbd92e..ec76571ad 100644
--- a/paludis/repositories/gentoo/xml_things_TEST.cc
+++ b/paludis/repositories/gentoo/xml_things_TEST.cc
@@ -18,6 +18,7 @@
*/
#include <paludis/repositories/gentoo/glsa.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <paludis/util/join.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.cc b/paludis/repositories/virtuals/installed_virtuals_repository.cc
index 351ee67dd..9ed77b979 100644
--- a/paludis/repositories/virtuals/installed_virtuals_repository.cc
+++ b/paludis/repositories/virtuals/installed_virtuals_repository.cc
@@ -26,6 +26,8 @@
#include <paludis/package_database.hh>
#include <paludis/util/collection_concrete.hh>
#include <paludis/hook.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <vector>
#include <algorithm>
diff --git a/paludis/repositories/virtuals/virtuals_repository.cc b/paludis/repositories/virtuals/virtuals_repository.cc
index 0cc718774..3066b91ac 100644
--- a/paludis/repositories/virtuals/virtuals_repository.cc
+++ b/paludis/repositories/virtuals/virtuals_repository.cc
@@ -28,6 +28,8 @@
#include <paludis/util/tr1_functional.hh>
#include <paludis/query.hh>
#include <vector>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include "vr_entry.hh"
using namespace paludis;
diff --git a/paludis/repository.cc b/paludis/repository.cc
index bbb1f3a21..4a02462b2 100644
--- a/paludis/repository.cc
+++ b/paludis/repository.cc
@@ -25,8 +25,11 @@
#include <paludis/util/instantiation_policy-impl.hh>
#include <paludis/util/stringify.hh>
#include <paludis/config_file.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <map>
#include <list>
+#include <utility>
#include <algorithm>
#include <ctype.h>
@@ -395,3 +398,9 @@ RepositoryUseInterface::describe_use_flag(const UseFlagName & n, const PackageDa
return do_describe_use_flag(n, pkg);
}
+bool
+RepositoryMirrorsInterface::is_mirror(const std::string & s) const
+{
+ return begin_mirrors(s) != end_mirrors(s);
+}
+
diff --git a/paludis/repository.hh b/paludis/repository.hh
index a6372ceb0..e0c2bd504 100644
--- a/paludis/repository.hh
+++ b/paludis/repository.hh
@@ -36,7 +36,7 @@
#include <string>
#include <map>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
/** \file
* Declarations for the Repository class.
@@ -833,10 +833,7 @@ namespace paludis
/**
* Is the named item a mirror?
*/
- bool is_mirror(const std::string & s) const
- {
- return begin_mirrors(s) != end_mirrors(s);
- }
+ bool is_mirror(const std::string & s) const;
///\}
diff --git a/paludis/repository_name_cache.cc b/paludis/repository_name_cache.cc
index 4732b47e2..3bb802573 100644
--- a/paludis/repository_name_cache.cc
+++ b/paludis/repository_name_cache.cc
@@ -26,6 +26,8 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/dir_iterator.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <fstream>
diff --git a/paludis/repository_name_cache_TEST.cc b/paludis/repository_name_cache_TEST.cc
index edee025fd..a75172f4d 100644
--- a/paludis/repository_name_cache_TEST.cc
+++ b/paludis/repository_name_cache_TEST.cc
@@ -23,6 +23,8 @@
#include <paludis/util/fs_entry.hh>
#include <paludis/util/join.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
diff --git a/paludis/set_file.cc b/paludis/set_file.cc
index 2ac9a6e53..79131419e 100644
--- a/paludis/set_file.cc
+++ b/paludis/set_file.cc
@@ -27,6 +27,8 @@
#include <paludis/environment.hh>
#include <paludis/query.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
#include <vector>
#include <fstream>
diff --git a/paludis/set_file_TEST.cc b/paludis/set_file_TEST.cc
index a1496cdd3..ab4f649cc 100644
--- a/paludis/set_file_TEST.cc
+++ b/paludis/set_file_TEST.cc
@@ -23,6 +23,7 @@
#include <paludis/dep_spec_pretty_printer.hh>
#include <paludis/util/fs_entry.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <fstream>
using namespace test;
diff --git a/paludis/syncer.cc b/paludis/syncer.cc
index c35794e76..d4cb412f2 100644
--- a/paludis/syncer.cc
+++ b/paludis/syncer.cc
@@ -26,6 +26,8 @@
#include <paludis/util/system.hh>
#include <paludis/util/tokeniser.hh>
#include <paludis/util/join.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
/** \file
diff --git a/paludis/tasks/find_unused_packages_task.cc b/paludis/tasks/find_unused_packages_task.cc
index f62cd0f77..6e0e777c8 100644
--- a/paludis/tasks/find_unused_packages_task.cc
+++ b/paludis/tasks/find_unused_packages_task.cc
@@ -24,6 +24,8 @@
#include <paludis/query.hh>
#include <paludis/util/tokeniser.hh>
#include <paludis/util/collection_concrete.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
diff --git a/paludis/tasks/install_task.cc b/paludis/tasks/install_task.cc
index c420c3dc2..a4388a149 100644
--- a/paludis/tasks/install_task.cc
+++ b/paludis/tasks/install_task.cc
@@ -33,6 +33,8 @@
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/tokeniser.hh>
#include <paludis/util/log.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/paludis/tasks/install_task.hh b/paludis/tasks/install_task.hh
index 9c3cb018b..9c26b3cd5 100644
--- a/paludis/tasks/install_task.hh
+++ b/paludis/tasks/install_task.hh
@@ -24,7 +24,7 @@
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/dep_list/dep_list.hh>
#include <paludis/repository-fwd.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/tasks/report_task.cc b/paludis/tasks/report_task.cc
index df53f2ac9..4e9c66aee 100644
--- a/paludis/tasks/report_task.cc
+++ b/paludis/tasks/report_task.cc
@@ -25,6 +25,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
using namespace paludis;
diff --git a/paludis/tasks/stage_builder_task.cc b/paludis/tasks/stage_builder_task.cc
index 49782fa4f..16322e4f8 100644
--- a/paludis/tasks/stage_builder_task.cc
+++ b/paludis/tasks/stage_builder_task.cc
@@ -21,6 +21,7 @@
#include <paludis/environment.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/paludis/tasks/stage_builder_task.hh b/paludis/tasks/stage_builder_task.hh
index 1790de552..c066bb32a 100644
--- a/paludis/tasks/stage_builder_task.hh
+++ b/paludis/tasks/stage_builder_task.hh
@@ -20,7 +20,7 @@
#ifndef PALUDIS_GUARD_PALUDIS_TASKS_STAGE_BUILDER_TASK_HH
#define PALUDIS_GUARD_PALUDIS_TASKS_STAGE_BUILDER_TASK_HH 1
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <paludis/util/instantiation_policy.hh>
#include <paludis/util/private_implementation_pattern.hh>
diff --git a/paludis/tasks/sync_task.cc b/paludis/tasks/sync_task.cc
index 9ba51a7cc..9c6b1fdd2 100644
--- a/paludis/tasks/sync_task.cc
+++ b/paludis/tasks/sync_task.cc
@@ -23,6 +23,7 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/package_database.hh>
#include <paludis/hook.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/paludis/tasks/uninstall_task.cc b/paludis/tasks/uninstall_task.cc
index b0d91d792..b9c9c3871 100644
--- a/paludis/tasks/uninstall_task.cc
+++ b/paludis/tasks/uninstall_task.cc
@@ -27,6 +27,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/query.hh>
#include <paludis/hook.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/paludis/tasks/uninstall_task.hh b/paludis/tasks/uninstall_task.hh
index b8c906dce..faec5e44f 100644
--- a/paludis/tasks/uninstall_task.hh
+++ b/paludis/tasks/uninstall_task.hh
@@ -24,6 +24,7 @@
#include <paludis/package_database_entry.hh>
#include <paludis/util/instantiation_policy.hh>
#include <paludis/util/private_implementation_pattern.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
namespace paludis
{
diff --git a/paludis/util/collection.hh b/paludis/util/collection.hh
index f5633b891..2355df019 100644
--- a/paludis/util/collection.hh
+++ b/paludis/util/collection.hh
@@ -22,7 +22,8 @@
#include <paludis/util/collection-fwd.hh>
#include <paludis/util/instantiation_policy.hh>
-#include <libwrapiter/libwrapiter.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
+#include <libwrapiter/libwrapiter_output_iterator-fwd.hh>
#include <iterator>
#include <functional>
#include <paludis/util/tr1_memory.hh>
diff --git a/paludis/util/pstream.cc b/paludis/util/pstream.cc
index eb171aa5d..395248eee 100644
--- a/paludis/util/pstream.cc
+++ b/paludis/util/pstream.cc
@@ -20,6 +20,7 @@
#include <paludis/util/log.hh>
#include <paludis/util/pstream.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <cstring>
#include <errno.h>
diff --git a/paludis/util/system.cc b/paludis/util/system.cc
index 167e44d51..518feac04 100644
--- a/paludis/util/system.cc
+++ b/paludis/util/system.cc
@@ -24,6 +24,7 @@
#include <paludis/util/stringify.hh>
#include <paludis/util/destringify.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <sys/utsname.h>
#include <sys/types.h>
#include <sys/wait.h>
diff --git a/paludis/util/system.hh b/paludis/util/system.hh
index 39deace79..df6aa9467 100644
--- a/paludis/util/system.hh
+++ b/paludis/util/system.hh
@@ -23,7 +23,7 @@
#include <paludis/util/exception.hh>
#include <paludis/util/private_implementation_pattern.hh>
#include <paludis/util/tr1_memory.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
#include <string>
#include <sys/types.h>
diff --git a/paludis/util/visitor.hh b/paludis/util/visitor.hh
index 1baea1913..df665285c 100644
--- a/paludis/util/visitor.hh
+++ b/paludis/util/visitor.hh
@@ -32,7 +32,7 @@
#include <paludis/util/tr1_memory.hh>
#include <paludis/util/tr1_type_traits.hh>
#include <paludis/util/operators.hh>
-#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator-fwd.hh>
namespace paludis
{
diff --git a/paludis/version_metadata.cc b/paludis/version_metadata.cc
index 78a613b22..16d6c777f 100644
--- a/paludis/version_metadata.cc
+++ b/paludis/version_metadata.cc
@@ -25,6 +25,8 @@
#include <paludis/eapi.hh>
#include <paludis/util/log.hh>
#include <paludis/util/collection_concrete.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
/** \file
* Implementation of VersionMetadata.
diff --git a/python/contents.cc b/python/contents.cc
index 0c0cd4cf1..7ba6f2326 100644
--- a/python/contents.cc
+++ b/python/contents.cc
@@ -18,8 +18,8 @@
*/
#include <paludis_python.hh>
-
#include <paludis/contents.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::python;
diff --git a/python/dep_spec.cc b/python/dep_spec.cc
index 44125bec6..b75340360 100644
--- a/python/dep_spec.cc
+++ b/python/dep_spec.cc
@@ -18,7 +18,7 @@
*/
#include <paludis_python.hh>
-
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <paludis/dep_spec.hh>
using namespace paludis;
diff --git a/python/name.cc b/python/name.cc
index a8e8f44b5..6c32847b3 100644
--- a/python/name.cc
+++ b/python/name.cc
@@ -18,7 +18,7 @@
*/
#include <paludis_python.hh>
-
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <paludis/name.hh>
using namespace paludis;
diff --git a/python/package_database.cc b/python/package_database.cc
index 574a113ff..1173cf00d 100644
--- a/python/package_database.cc
+++ b/python/package_database.cc
@@ -25,6 +25,7 @@
#include <paludis/package_database_entry.hh>
#include <paludis/package_database.hh>
#include <paludis/util/collection.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::python;
diff --git a/python/repository.cc b/python/repository.cc
index 5e3e9d66a..0ccd35cb2 100644
--- a/python/repository.cc
+++ b/python/repository.cc
@@ -23,6 +23,7 @@
#include <paludis/repository.hh>
#include <paludis/repositories/gentoo/portage_repository.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
using namespace paludis::python;
diff --git a/python/version_requirements.cc b/python/version_requirements.cc
index 161befa0f..feac2ebd5 100644
--- a/python/version_requirements.cc
+++ b/python/version_requirements.cc
@@ -18,7 +18,7 @@
*/
#include <paludis_python.hh>
-
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <paludis/version_requirements.hh>
using namespace paludis;
diff --git a/python/version_spec.cc b/python/version_spec.cc
index 9d0eb3efa..ec0f03016 100644
--- a/python/version_spec.cc
+++ b/python/version_spec.cc
@@ -18,7 +18,7 @@
*/
#include <paludis_python.hh>
-
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <paludis/version_spec.hh>
using namespace paludis;
diff --git a/ruby/contents.cc b/ruby/contents.cc
index 01c1b107d..36e4f61ce 100644
--- a/ruby/contents.cc
+++ b/ruby/contents.cc
@@ -20,6 +20,8 @@
#include <paludis_ruby.hh>
#include <paludis/contents.hh>
#include <paludis/util/visitor-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/dep_list.cc b/ruby/dep_list.cc
index 8e7da468e..0d9479491 100644
--- a/ruby/dep_list.cc
+++ b/ruby/dep_list.cc
@@ -20,6 +20,7 @@
#include <paludis_ruby.hh>
#include <paludis/dep_list/dep_list.hh>
#include <paludis/util/collection_concrete.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/dep_spec.cc b/ruby/dep_spec.cc
index d635ccdd8..22744c3de 100644
--- a/ruby/dep_spec.cc
+++ b/ruby/dep_spec.cc
@@ -22,6 +22,8 @@
#include <paludis/dep_spec.hh>
#include <paludis/version_requirements.hh>
#include <paludis/version_operator.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/environment.cc b/ruby/environment.cc
index 408028e58..759db08b8 100644
--- a/ruby/environment.cc
+++ b/ruby/environment.cc
@@ -23,6 +23,8 @@
#include <paludis/environments/adapted/adapted_environment.hh>
#include <paludis/environments/environment_maker.hh>
#include <paludis/util/collection_concrete.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/find_unused_packages_task.cc b/ruby/find_unused_packages_task.cc
index 4cf3f58b9..b7a1e08a8 100644
--- a/ruby/find_unused_packages_task.cc
+++ b/ruby/find_unused_packages_task.cc
@@ -19,6 +19,8 @@
#include <paludis_ruby.hh>
#include <paludis/tasks/find_unused_packages_task.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/metadata_file.cc b/ruby/metadata_file.cc
index e2d87f5d1..c1fe7570c 100644
--- a/ruby/metadata_file.cc
+++ b/ruby/metadata_file.cc
@@ -20,6 +20,7 @@
#include <paludis_ruby.hh>
#include <paludis/qa/metadata_file.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/package_database.cc b/ruby/package_database.cc
index e6f2380c3..de1ec2b7c 100644
--- a/ruby/package_database.cc
+++ b/ruby/package_database.cc
@@ -20,6 +20,8 @@
#include <paludis_ruby.hh>
#include <paludis/package_database.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/repository.cc b/ruby/repository.cc
index 69e693f6b..85a1727ef 100644
--- a/ruby/repository.cc
+++ b/ruby/repository.cc
@@ -21,6 +21,8 @@
#include <paludis_ruby.hh>
#include <paludis/repository.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/ruby/version_metadata.cc b/ruby/version_metadata.cc
index 1ff2d2a07..b363fcb18 100644
--- a/ruby/version_metadata.cc
+++ b/ruby/version_metadata.cc
@@ -22,6 +22,8 @@
#include <paludis/version_metadata.hh>
#include <paludis/package_database_entry.hh>
#include <paludis/util/stringify.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <ruby.h>
using namespace paludis;
diff --git a/src/clients/adjutrix/find_reverse_deps.cc b/src/clients/adjutrix/find_reverse_deps.cc
index 29352ae6f..4bd99af44 100644
--- a/src/clients/adjutrix/find_reverse_deps.cc
+++ b/src/clients/adjutrix/find_reverse_deps.cc
@@ -28,6 +28,8 @@
#include <paludis/query.hh>
#include <paludis/dep_spec.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <set>
#include <map>
diff --git a/src/clients/contrarius/stage_builder.cc b/src/clients/contrarius/stage_builder.cc
index 2d800c408..54834884d 100644
--- a/src/clients/contrarius/stage_builder.cc
+++ b/src/clients/contrarius/stage_builder.cc
@@ -22,6 +22,7 @@
#include <src/clients/contrarius/stage.hh>
#include <src/clients/contrarius/stage_builder.hh>
#include <src/output/colour.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <iostream>
#include <list>
diff --git a/src/clients/gtkpaludis/libgtkpaludis/categories_list_model.cc b/src/clients/gtkpaludis/libgtkpaludis/categories_list_model.cc
index c6dac7740..c9c13c77d 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/categories_list_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/categories_list_model.cc
@@ -8,6 +8,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/environment.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace gtkpaludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/packages_list_model.cc b/src/clients/gtkpaludis/libgtkpaludis/packages_list_model.cc
index eccb8da72..d2e74443a 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/packages_list_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/packages_list_model.cc
@@ -9,6 +9,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/environment.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/packages_repository_filter_model.cc b/src/clients/gtkpaludis/libgtkpaludis/packages_repository_filter_model.cc
index efad8a7d6..cdb142add 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/packages_repository_filter_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/packages_repository_filter_model.cc
@@ -8,6 +8,8 @@
#include <paludis/environment.hh>
#include <paludis/package_database.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace gtkpaludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/repositories_list_model.cc b/src/clients/gtkpaludis/libgtkpaludis/repositories_list_model.cc
index a099b1142..933f059a5 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/repositories_list_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/repositories_list_model.cc
@@ -7,6 +7,8 @@
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/environment.hh>
#include <paludis/package_database.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace paludis;
using namespace gtkpaludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/repository_info_model.cc b/src/clients/gtkpaludis/libgtkpaludis/repository_info_model.cc
index d444bf2a8..a829a5caa 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/repository_info_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/repository_info_model.cc
@@ -7,6 +7,8 @@
#include <paludis/package_database.hh>
#include <paludis/util/iterator.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
using namespace gtkpaludis;
using namespace paludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc b/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
index 1005c7b75..91ff45135 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
@@ -10,6 +10,8 @@
#include <paludis/package_database.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/src/clients/gtkpaludis/libgtkpaludis/versions_list_model.cc b/src/clients/gtkpaludis/libgtkpaludis/versions_list_model.cc
index 0edfbc8c7..34ee41cfa 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/versions_list_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/versions_list_model.cc
@@ -10,6 +10,8 @@
#include <paludis/environment.hh>
#include <paludis/package_database.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <list>
using namespace paludis;
diff --git a/src/clients/paludis/applets.cc b/src/clients/paludis/applets.cc
index 1ca271e13..b2ebbc8a5 100644
--- a/src/clients/paludis/applets.cc
+++ b/src/clients/paludis/applets.cc
@@ -30,6 +30,8 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/util/virtual_constructor-impl.hh>
#include <paludis/repositories/repository_maker.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <string>
#include <set>
#include <map>
diff --git a/src/clients/paludis/install.cc b/src/clients/paludis/install.cc
index 5e1eb1404..0fda4c431 100644
--- a/src/clients/paludis/install.cc
+++ b/src/clients/paludis/install.cc
@@ -46,6 +46,9 @@
#include <paludis/util/system.hh>
#include <paludis/dep_list/exceptions.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
+
/** \file
* Handle the --install action for the main paludis program.
*/
diff --git a/src/output/console_install_task.cc b/src/output/console_install_task.cc
index 8390dda0f..c7f69f54f 100644
--- a/src/output/console_install_task.cc
+++ b/src/output/console_install_task.cc
@@ -31,6 +31,8 @@
#include <paludis/util/iterator.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/query.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <algorithm>
#include <set>
diff --git a/src/output/console_install_task.hh b/src/output/console_install_task.hh
index f59009f7a..c61960bdd 100644
--- a/src/output/console_install_task.hh
+++ b/src/output/console_install_task.hh
@@ -22,6 +22,7 @@
#include <paludis/tasks/install_task.hh>
#include <paludis/package_database_entry.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <src/output/use_flag_pretty_printer.hh>
#include <src/output/console_task.hh>
#include <iosfwd>
diff --git a/src/output/console_query_task.cc b/src/output/console_query_task.cc
index 675431b19..7bb602a40 100644
--- a/src/output/console_query_task.cc
+++ b/src/output/console_query_task.cc
@@ -25,6 +25,8 @@
#include <paludis/util/tokeniser.hh>
#include <paludis/util/visitor-impl.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include <paludis/query.hh>
#include <list>
diff --git a/src/output/licence.cc b/src/output/licence.cc
index c81f72192..027d6845c 100644
--- a/src/output/licence.cc
+++ b/src/output/licence.cc
@@ -21,6 +21,7 @@
#include "colour.hh"
#include <ostream>
#include <algorithm>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
using namespace paludis;
diff --git a/src/output/use_flag_pretty_printer.cc b/src/output/use_flag_pretty_printer.cc
index d87124439..efb85a043 100644
--- a/src/output/use_flag_pretty_printer.cc
+++ b/src/output/use_flag_pretty_printer.cc
@@ -24,6 +24,8 @@
#include <paludis/util/collection_concrete.hh>
#include <paludis/util/iterator.hh>
#include <paludis/util/tr1_functional.hh>
+#include <libwrapiter/libwrapiter_forward_iterator.hh>
+#include <libwrapiter/libwrapiter_output_iterator.hh>
#include "colour.hh"
#include <iostream>
#include <set>