diff options
Diffstat (limited to '0.8.0')
683 files changed, 85383 insertions, 0 deletions
diff --git a/0.8.0/AUTHORS b/0.8.0/AUTHORS new file mode 100644 index 000000000..41655ac4f --- /dev/null +++ b/0.8.0/AUTHORS @@ -0,0 +1,35 @@ +Authors of Paludis +================== + +Ciaran McCreesh <ciaranm@ciaranm.org> + Main code + +Stephen P. Bennett <spb@gentoo.org> + Contributor + +Mark Loeser <halcy0n@gentoo.org> + Contributor + +John N. Laliberte <allanonjl@gentoo.org> + Contributor to Qualudis + +Stephen Klimaszewski <steev@gentoo.org> + Contributor + +Danny van Dyk <kugelfang@gentoo.org> + Contributor + +Fernando J. Pereda <ferdy@gentoo.org> + Contributor + +Robert S. Gerus <arachnist@gmail.com> + Contributor, FreeBSD portability + +David Morgan <david.morgan@wadham.oxford.ac.uk> + Contributor + +Mike Kelly <pioto@gentoo.org> + Contributor + +Piotr Rak <piotr.rak@gmail.com> + Contributor diff --git a/0.8.0/ChangeLog b/0.8.0/ChangeLog new file mode 100644 index 000000000..f511b6f7d --- /dev/null +++ b/0.8.0/ChangeLog @@ -0,0 +1,3667 @@ +ChangeLog for Paludis +===================== + +This file lists every change made except typo and formatting fixes, which are +only listed in SVN log. For a summary of what has changed between releases, +see the NEWS file. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + + Release: 0.8.0 + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Forcibly disable gtk in this branch. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Prepare for the 0.8 branch. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, src/paludis/command_line.cc, + src/paludis/install.cc, src/paludis/use.cc, src/paludis/use.hh: + Implement --dl-reinstall if-use-changed. Show USE flag changes + visually. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): More visibility work. Force disable visibility for now, + since we're triggering a ld.so bug. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/find_reverse_deps.cc: Be three thousand billion times + faster than the so-called competition. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/match_package.hh, paludis/repositories/portage/Makefile.am, + paludis/util/counted_ptr.hh, paludis/util/counted_ptr_TEST.cc, + paludis/util/files.m4, paludis/util/stringify.hh, + src/adjutrix/Makefile.am, -paludis/util/counted_ptr.cc: Nuke some + unused code. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository_profile.cc, + paludis/repositories/portage/portage_repository_profile_file.cc: + Support -flags in package.use.{mask,force}. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc: Fake a + categories file if one is not available. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/make_ebuild_repository.cc: Don't expect + a cache for PortageRepository instances if the default cache directory + doesn't exist. + +2006-10-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, paludis/Makefile.am.m4, paludis/config_file.cc, + paludis/config_file.hh, paludis/environment.cc, + paludis/environment.hh, + paludis/environment/default/default_environment.cc, + paludis/environment/default/default_environment.hh, paludis/libxml, + paludis/libxml/Makefile.am, paludis/qa/Makefile.am.m4, + paludis/qa/files.m4, paludis/qa/metadata_check.cc, + paludis/qa/metadata_file.cc, + paludis/repositories/cran/cran_installed_repository.cc, + paludis/repositories/cran/cran_installed_repository.hh, + paludis/repositories/cran/cran_repository.cc, + paludis/repositories/cran/cran_repository.hh, + paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/glsa.cc, + paludis/repositories/portage/glsa.hh, + paludis/repositories/portage/glsa.sr, + paludis/repositories/portage/make_ebin_repository.cc, + paludis/repositories/portage/make_ebuild_repository.cc, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_sets.cc, + paludis/repositories/portage/portage_repository_sets.hh, + paludis/repositories/portage/xml_things.cc, + paludis/repositories/portage/xml_things_TEST.cc, + paludis/repositories/portage/xml_things_TEST_cleanup.sh, + paludis/repositories/portage/xml_things_TEST_setup.sh, + paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, paludis/repository.hh, + paludis/repository.sr, paludis/tasks/install_task.cc, + paludis/util/collection.hh, paludis/util/exception.cc, + paludis/util/exception.hh, paludis/version_spec.hh, + src/adjutrix/Makefile.am, src/adjutrix/adjutrix.cc, + src/adjutrix/command_line.cc, src/adjutrix/command_line.hh, + src/adjutrix/find_insecure_packages.cc, + src/adjutrix/find_insecure_packages.hh, src/paludis/command_line.cc, + src/paludis/command_line.hh, src/paludis/list.cc, src/paludis/list.hh, + src/paludis/paludis.cc, +paludis/libxml/libxml.cc, + +paludis/libxml/libxml.hh, -paludis/qa/libxml_utils.cc, + -paludis/qa/libxml_utils.hh: Rework security code. An external + preprocessor is no longer required. The paludis 'all' security list is + now part of adjutrix. + +2006-10-10 Stephen Bennett <spb@gentoo.org> + + * paludis/repositories/portage/portage_repository_ebuild_entries.cc: + Allow mirror:// URIs in repositories that don't contain + thirdpartymirrors if a mirrors.conf entry for the mirror in question + exists. + +2006-10-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc: Fix resume command. + +2006-10-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/dep_list.sr, paludis/dep_tag.cc, + paludis/dep_tag.hh, paludis/tasks/install_task.cc, src/colour.hh, + src/paludis/command_line.cc, src/paludis/command_line.hh, + src/paludis/install.cc: Add --show-install-reasons paludis option. + +2006-10-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * misc/make_sr.bash, paludis/dep_list.cc, paludis/dep_list.hh, + paludis/dep_tag.cc, paludis/dep_tag.hh, paludis/dep_tag.sr, + paludis/files.m4, src/paludis/install.cc: Tag support for the new + deplist. + +2006-10-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/vdb/vdb_repository.cc: Slight performance + tweaks. + +2006-10-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/Makefile.am.m4, paludis/dep_list.cc, paludis/dep_list.hh, + paludis/dep_list.sr, paludis/dep_list_TEST.cc, paludis/files.m4, + paludis/match_package.cc, + paludis/repositories/virtuals/virtuals_repository.cc, + paludis/tasks/install_task.cc, paludis/tasks/install_task.hh, + paludis/util/counted_ptr.hh, + src/adjutrix/display_default_system_resolution.cc, + src/paludis/command_line.cc, src/paludis/command_line.hh, + src/paludis/install.cc, -paludis/dep_list_entry.sr: New deplist code. + Much cleaner than before. No support for tags yet. + +2006-10-05 Mike Kelly <pioto@gentoo.org> + + * hooks/update_config_protect_list.bash, AUTHORS, ChangeLog: Change my + email address. + +2006-10-05 Mike Kelly <pioto@gentoo.org> + + * ebuild/ebuild.bash: Die if PALUDIS_TMPDIR doesn't exist when we try + to load an ebuild. + +2006-10-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/files.m4, paludis/qa/libxml_utils.hh, + paludis/qa/metadata_file.cc: Don't barf on empty herd elements. + +2006-10-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/files.m4, paludis/qa/libxml_utils.hh, + paludis/qa/metadata_check.cc, paludis/qa/metadata_file.cc, + paludis/qa/metadata_file.hh, paludis/qa/metadata_file_TEST.cc, + src/qualudis/qualudis.cc: Include maintainer information in qualudis + output. + +2006-10-04 Richard Brown + + * doc/doc_configuration_files.doxygen: Mention package_mask.conf and + package_unmask.conf. + +2006-10-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/deprecated_functions_check.cc, + paludis/qa/deprecated_functions_check.hh, paludis/qa/files.m4: Add a + deprecated functions QA check. + +2006-10-01 Fernando J. Pereda <ferdy@gentoo.org> + + * paludis/qa/gpg_check_TEST.cc: Skip gpg_check tests if gnupg is not + installed. + +2006-10-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, paludis/ebuild.cc: Define PKGMANAGER + environment variable and VDB entry. + +2006-10-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment/default/default_environment.cc, + paludis/environment/default/default_environment_TEST.cc: Yet another + USE_EXPAND fix. + +2006-10-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/package_database.hh, + paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository_profile.cc, + paludis/repositories/portage/portage_repository_profile_file.cc, + paludis/repositories/portage/portage_repository_profile_file.hh: Split + up PortageRepository some more. + +2006-09-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/Makefile.am.m4, paludis/util/collection.hh, + paludis/util/collection_concrete.hh, paludis/util/counted_ptr.hh, + paludis/util/destringify.hh, paludis/util/dir_iterator.hh, + paludis/util/exception.hh, paludis/util/fd_holder.hh, + paludis/util/fd_output_stream.hh, paludis/util/fs_entry.hh, + paludis/util/is_file_with_extension.hh, paludis/util/pipe.hh, + paludis/util/pstream.hh, paludis/util/random.hh, + paludis/util/strip.hh, paludis/util/system.hh, + paludis/util/tokeniser.hh: More visibility work. + +2006-09-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/virtuals/installed_virtuals_repository.cc, + paludis/repositories/virtuals/virtuals_repository.cc: Slight + performance tweaks. + +2006-09-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/instantiation_policy.hh, paludis/util/log.hh, + paludis/util/virtual_constructor.hh: Make visibility less likely to do + weird things. + +2006-09-28 Fernando J. Pereda <ferdy@gentoo.org> + + * +paludis/util/fd_holder.hh, ebuild/utils/merge.cc, + paludis/util/files.m4: Move FDHolder to its own file. + + * paludis/util/system.cc, paludis/util/system_TEST.cc: Make + real_run_command return the exit status of the process rather than the + whole status returned by wait. Add a test for it. + + * +paludis/qa/gpg_check.cc, +paludis/qa/gpg_check.hh, + +paludis/qa/gpg_check_TEST.cc, +paludis/qa/gpg_check_TEST_setup.sh, + +paludis/qa/gpg_check_TEST_cleanup.sh, paludis/qa/files.m4: Add a QA check + to test Manifest signatures. minor if not signed and major if a bad + signature is found. + +2006-09-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, misc/make_sr.bash, paludis/args/Makefile.am, + paludis/args/args_TEST.cc, paludis/args/args_dumper.hh, + paludis/args/args_error.cc, paludis/args/args_error.hh, + paludis/args/args_group.hh, paludis/args/args_handler.hh, + paludis/args/args_option.cc, paludis/args/args_option.hh, + paludis/args/args_visitor.cc, paludis/args/args_visitor.hh, + paludis/args/bad_argument.hh, paludis/args/man.hh, + paludis/digests/Makefile.am, paludis/digests/md5.hh, + paludis/digests/rmd160.hh, paludis/digests/sha256.hh, + paludis/repositories/virtuals/Makefile.am, + paludis/repositories/virtuals/installed_virtuals_repository.cc, + paludis/repositories/virtuals/installed_virtuals_repository.hh, + paludis/repositories/virtuals/virtuals_repository.cc, + paludis/repositories/virtuals/virtuals_repository.hh, + paludis/repositories/virtuals/vr_entry.hh, paludis/selinux/Makefile.am, + paludis/selinux/security_context.hh, paludis/tasks/Makefile.am, + paludis/tasks/install_task.hh, paludis/tasks/sync_task.hh, + paludis/tasks/uninstall_task.hh, paludis/util/Makefile.am.m4, + +paludis/util/attributes.hh.in, -paludis/args/bad_value.cc, + -paludis/args/bad_value.hh, -paludis/args/missing_value.cc, + -paludis/args/missing_value.hh, -paludis/util/attributes.hh: Add + visibility support to some of the smaller libraries. + +2006-09-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc: Display the nice error message with resume + command for fetch failures too. + +2006-09-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment/default/Makefile.am, + paludis/environment/default/default_environment.cc, + paludis/environment/default/default_environment_TEST.cc: Ignore "* -*" + in use.conf for USE_EXPAND things. + +2006-09-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/Makefile.am, ruby/demos/version_spec_distributions.rb, + +ruby/environment.cc, +ruby/environment_TEST.rb, + +ruby/environment_TEST_cleanup.sh, +ruby/environment_TEST_setup.sh, + -ruby/default_environment.cc, -ruby/default_environment_TEST.rb, + -ruby/default_environment_TEST_cleanup.sh, + -ruby/default_environment_TEST_setup.sh: Rubyify NoConfigEnvironment. + Move demo code over to using NoConfigEnvironment. + +2006-09-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment/no_config/no_config_environment.cc, + paludis/environment/no_config/no_config_environment.hh, + paludis/environment/no_config/no_config_environment.sr, + src/adjutrix/display_default_system_resolution.cc, + src/adjutrix/display_profiles_use.cc: Move profiles.desc code into + NoConfigEnvironment. + +2006-09-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/Makefile.am, paludis/Makefile.am.m4, + paludis/args/Makefile.am, paludis/dep_list_TEST.cc, + paludis/environment, paludis/environment/Makefile.am, + paludis/environment/default, paludis/environment/default/Makefile.am, + paludis/environment/no_config, + paludis/environment/no_config/Makefile.am, + paludis/environment/no_config/no_config_environment.sr, + paludis/environment/test, paludis/environment/test/Makefile.am, + paludis/files.m4, paludis/package_database_TEST.cc, + paludis/repositories/cran/Makefile.am, + paludis/repositories/cran/cran_dep_parser_TEST.cc, + paludis/repositories/cran/cran_repository_TEST.cc, + paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository_TEST.cc, + paludis/repositories/vdb/Makefile.am, + paludis/repositories/vdb/vdb_repository_TEST.cc, ruby/Makefile.am, + ruby/default_environment.cc, src/adjutrix/Makefile.am, + src/adjutrix/adjutrix.cc, + src/adjutrix/display_default_system_resolution.cc, + src/adjutrix/display_default_system_resolution.hh, + src/adjutrix/display_profiles_use.cc, + src/adjutrix/display_profiles_use.hh, + src/adjutrix/find_reverse_deps.cc, src/adjutrix/find_reverse_deps.hh, + src/gtkpaludis/Makefile.am, src/gtkpaludis/browse_tree.cc, + src/gtkpaludis/gtkpaludis.cc, src/gtkpaludis/information_tree.cc, + src/gtkpaludis/sync.cc, src/paludis/Makefile.am, + src/paludis/applets.cc, src/paludis/contents.cc, + src/paludis/install.cc, src/paludis/list.cc, src/paludis/news.cc, + src/paludis/owner.cc, src/paludis/paludis.cc, src/paludis/query.cc, + src/paludis/sync.cc, src/paludis/uninstall.cc, test/run_test.sh, + +paludis/environment/default/default_config.cc, + +paludis/environment/default/default_config.hh, + +paludis/environment/default/default_environment.cc, + +paludis/environment/default/default_environment.hh, + +paludis/environment/default/default_environment_TEST.cc, + +paludis/environment/default/default_environment_TEST_cleanup.sh, + +paludis/environment/default/default_environment_TEST_setup.sh, + +paludis/environment/no_config/no_config_environment.cc, + +paludis/environment/no_config/no_config_environment.hh, + +paludis/environment/test/test_environment.cc, + +paludis/environment/test/test_environment.hh, + -paludis/default_config.cc, -paludis/default_config.hh, + -paludis/default_environment.cc, -paludis/default_environment.hh, + -paludis/default_environment_TEST.cc, + -paludis/default_environment_TEST_cleanup.sh, + -paludis/default_environment_TEST_setup.sh, + -paludis/test_environment.cc, -paludis/test_environment.hh, + -src/adjutrix/adjutrix_environment.cc, + -src/adjutrix/adjutrix_environment.hh: Split out environment + implementations into their own subdirs and libraries. Make a + NoConfigEnvironment out of what used to be AdjutrixEnvironment. + +2006-09-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/find_reverse_deps.cc: Allow adjutrix -r pkgname. + +2006-09-26 Danny van Dyk <kugelfang@gentoo.org> + + * src/adjutrix/command_line.hh, src/adjutrix/find_reverse_deps.hh, + src/adjutrix/Makefile.am, src/adjutrix/command_line.cc, + src/adjutrix/find_reverse_deps.cc, src/adjutrix/adjutrix.cc: Add + action to find all packages depending on a given atom. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ruby/Makefile.am, ruby/default_environment.cc, + ruby/demos, ruby/demos/Makefile.am, + ruby/demos/version_spec_distributions.rb, ruby/paludis_ruby.cc: Add + some demo Ruby code. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/Makefile.am, ruby/package_database.cc, + ruby/package_database_TEST.rb, ruby/paludis_ruby.hh, + ruby/repository.cc, ruby/repository_TEST.rb, + ruby/repository_TEST_cleanup.sh, ruby/repository_TEST_setup.sh, + ruby/version_spec.cc: More Ruby work. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/package_database.cc, paludis/package_database.hh, + ruby/Makefile.am, ruby/default_environment_TEST.rb, ruby/dep_atom.cc, + ruby/dep_atom_TEST.rb, ruby/log.cc, ruby/log_TEST.rb, + ruby/package_database.cc, ruby/package_database_TEST.rb, + ruby/package_database_TEST_cleanup.sh, + ruby/package_database_TEST_setup.sh, ruby/package_database_entry.cc, + ruby/paludis_ruby.cc, ruby/paludis_ruby.hh: More Ruby work. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/Makefile.am, ruby/default_environment.cc, + ruby/default_environment_TEST.rb, ruby/package_database.cc, + ruby/package_database_entry.cc, ruby/package_database_entry_TEST.rb, + ruby/paludis_ruby.cc, ruby/paludis_ruby.hh, ruby/version_spec.cc, + -ruby/name.cc, -ruby/name_TEST.rb: Rework Ruby code to avoid using + most Name classes. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc: + More USE_EXPAND fixes. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Don't try -Wsequence-point. + +2006-09-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, ebuild/builtin_merge.bash: A bit more debug + info. + +2006-09-24 Mike Kelly <pioto@gentoo.org> + + * bash-completion/paludis: Update with most recent options. It now + only will complete on set names in the default (installing, etc) + context (since --list-packages is still slooow). + +2006-09-24 Mike Kelly <pioto@gentoo.org> + + * eselect/repo.eselect: Fix the default template root. + +2006-09-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/Makefile.am, ruby/default_environment.cc, + ruby/default_environment_TEST.rb, ruby/log.cc, ruby/log_TEST.rb, + ruby/mask_reasons.cc, ruby/name.cc, ruby/package_database.cc, + ruby/package_database_TEST.rb, ruby/paludis_ruby.hh: More Ruby work. + +2006-09-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/default_environment.cc, ruby/default_environment_TEST.rb, + ruby/log.cc, ruby/log_TEST.rb, ruby/mask_reasons.cc, + ruby/mask_reasons_TEST.rb, ruby/name.cc, ruby/name_TEST.rb, + ruby/package_database_entry.cc, ruby/package_database_entry_TEST.rb, + ruby/paludis_ruby.cc, ruby/paludis_ruby.hh, ruby/version_spec.cc, + ruby/version_spec_TEST.rb: Move all Ruby classes under a new Paludis + master class. + +2006-09-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/ebin.cc, paludis/ebuild.cc, + paludis/repositories/cran/cran_repository.cc, paludis/util/log.cc, + paludis/util/log.hh: Make LogLevel stringifiable. Remove + log_level_string method. + + * ruby/Makefile.am, ruby/default_environment.cc, + ruby/default_environment_TEST.rb, + ruby/default_environment_TEST_setup.sh, ruby/log.cc, ruby/log_TEST.rb, + ruby/mask_reasons.cc, ruby/mask_reasons_TEST.rb, ruby/paludis_ruby.cc, + ruby/paludis_ruby.hh, ruby/version_spec_TEST.rb: More Ruby work. + +2006-09-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * Makefile.am, configure.ac, ruby/Makefile.am, + ruby/default_environment.cc, ruby/default_environment_TEST.rb, + ruby/default_environment_TEST_setup.sh: More Ruby work. Distcheck should + now work. + +2006-09-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/default_environment.cc, ruby/default_environment_TEST_setup.sh: + Support optional PDE parameter for query_use. + +2006-09-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ruby/Makefile.am, ruby/default_environment.cc, + ruby/default_environment_TEST_cleanup.sh, + ruby/default_environment_TEST_setup.sh, ruby/name.cc, ruby/name_TEST.rb, + ruby/package_database_entry.cc, ruby/package_database_entry_TEST.rb, + ruby/paludis_ruby.cc, ruby/paludis_ruby.hh, ruby/paludis_ruby_TEST.rb, + ruby/version_spec.cc, test/run_test.sh: More Ruby interface. + +2006-09-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repository_so_loader.cc: Don't use RTLD_LOCAL. g++ is over + happy when it comes to template instantiations, and it can lead to + multiple singleton instances. + +2006-09-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * Makefile.am, configure.ac, paludis/files.m4, paludis/paludis.cc, + paludis/paludis.hh.m4, paludis/repositories/cran/Makefile.am, + paludis/repositories/fake/Makefile.am, + paludis/repositories/nothing/Makefile.am, + paludis/repositories/portage/Makefile.am, + paludis/repositories/vdb/Makefile.am, + paludis/repositories/virtuals/Makefile.am, ruby, ruby/Makefile.am, + ruby/name.cc, ruby/name_TEST.rb, ruby/paludis_ruby.cc, + ruby/paludis_ruby.hh, ruby/paludis_ruby_TEST.rb, + src/gtkpaludis/Makefile.am, src/gtkpaludis/browse_tree.cc: Add the + start of a Ruby interface. Tidy up some of the makefiles. + +2006-09-23 Mike Kelly <pioto@gentoo.org> + + * src/paludis/command_line.hh, src/paludis/command_line.cc, + src/paludis/list.hh, src/paludis/list.cc, src/paludis/paludis.cc, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_sets.cc, + paludis/repositories/portage/portage_repository_sets.hh, + paludis/repositories/cran/cran_installed_repository.hh, + paludis/repositories/cran/cran_installed_repository.cc, + paludis/repositories/cran/cran_repository.cc, + paludis/repositories/cran/cran_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, + paludis/repositories/vdb/vdb_repository.cc, paludis/repository.hh: Add + a --list-sets option, to list package sets, and the --set option, to + specify a limited set of sets to list. + +2006-09-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/query.cc: Prefer visible packages over masked packages + for --query metadata selection. + + + Fixes: Berlios#8848. + +2006-09-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, paludis/default_environment.cc, + paludis/default_environment.hh, paludis/environment.cc, + paludis/environment.hh, paludis/qa/dep_flags_check.cc, + paludis/repositories/fake/fake_repository_base.cc, + paludis/repositories/fake/fake_repository_base.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_ebin_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, paludis/repository.cc, + paludis/repository.hh, paludis/test_environment.cc, + paludis/test_environment.hh, paludis/util/collection.hh, + paludis/util/collection_concrete.hh, src/paludis/use.cc: New + USE_EXPAND code. + +2006-09-21 Stephen Bennett <spb@gentoo.org> + + * eselect/repo.eselect: Various fixes to show and set. + +2006-09-21 Stephen Bennett <spb@gentoo.org> + + * paludis/syncer.cc: Add file:// syncer, using rsync. + +2006-09-21 Stephen Bennett <spb@gentoo.org> + + * src/paludis/install.cc: sighandler_t -> sig_t change from arachnist. + +2006-09-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): Take advantage of g++-4.1 code diagnostic utilities. + +2006-09-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc: Experimental resume command support on + interrupt too. Should also deal more cleanly with child processes. + +2006-09-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/install_task.cc, paludis/tasks/install_task.hh, + src/paludis/install.cc: Experimental resume command support. + +2006-09-15 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/Makefile.am, src/colour.cc, src/paludis/Makefile.am, + src/qualudis/Makefile.am: Don't display xterm titles for testcases. + +2006-09-15 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Use AS_HELP_STRING throughout. + +2006-09-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/default_environment.hh, + paludis/environment.cc, paludis/environment.hh: Replace the "select + one" behaviour present on certain sets with a universal "merge all". + +2006-09-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/virtuals/virtuals_repository.cc: Maybe fix + possible virtuals bug. + +2006-09-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/package_database.cc, src/paludis/query.cc: More context for + certain error messages. + +2006-09-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.cc, paludis/default_environment_TEST.cc, + paludis/default_environment_TEST_setup.sh: Make -* work. Really, this + time. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/keywords_graph.cc: Make the adjutrix keywords graph + SLOT aware. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * misc/Makefile.am: Add svn-version-filter.bash to dist to shut + Doxygen up. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/adjutrix_environment.cc, src/adjutrix/command_line.cc, + src/adjutrix/command_line.hh: Add --unstable option for adjutrix, + mainly for --display-default-system-resolution. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/Makefile.am, src/adjutrix/adjutrix.cc, + src/adjutrix/adjutrix_environment.cc, + src/adjutrix/adjutrix_environment.hh, src/adjutrix/command_line.cc, + src/adjutrix/command_line.hh, + src/adjutrix/display_default_system_resolution.cc, + src/adjutrix/display_default_system_resolution.hh, + src/adjutrix/find_dropped_keywords.cc, + src/adjutrix/find_stable_candidates.cc, + src/adjutrix/keywords_graph.cc: Add a + --display-default-system-resolution action to adjutrix. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.cc, paludis/environment.hh: Better default + behaviour for Environment. + +2006-09-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/command_line.cc, src/adjutrix/command_line.hh, + src/adjutrix/display_profiles_use.cc: Allow selective profile + querying. + +2006-09-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge_common.cc: Support -item and -* in CONFIG_PROTECT + variables. + +2006-09-10 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/Makefile.am, src/adjutrix/adjutrix.cc, + src/adjutrix/adjutrix_environment.cc, + src/adjutrix/adjutrix_environment.hh, src/adjutrix/command_line.cc, + src/adjutrix/command_line.hh, src/adjutrix/display_profiles_use.cc, + src/adjutrix/display_profiles_use.hh: Add --display-profiles-use + action to adjutrix. + +2006-09-10 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/environment.cc, + paludis/environment.hh: Make the default environment query_use more + useful. + +2006-09-10 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.cc, paludis/default_config.hh, + paludis/default_environment.cc, paludis/default_environment_TEST.cc, + paludis/default_environment_TEST_cleanup.sh, + paludis/default_environment_TEST_setup.sh, paludis/files.m4: Add use -* + support, and some tests for default environment. + + * doc/doc_bootstrap_howto.doxygen, + doc/doc_configuration_files.doxygen: Update docs with -*. + +2006-09-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/instantiation_policy.hh, + paludis/util/instantiation_policy_TEST.cc: Extend singleton + capabilities. + +2006-09-09 Fernando J. Pereda <ferdy@gentoo.org> + + * paludis/util/fs_entry.cc paludis/util/fs_entry.hh + paludis/util/fs_entry_TEST.cc: Second argument of FSEntry::chmod defaults + to -1. Added test coverage for FSEntry methods: permissions, chmod, chown, + readlink, group, owner and operator<<. + +2006-09-08 Stephen Bennett <spb@gentoo.org> + + * eselect/repo.eselect, eselect/Makefile.am: Add repo.eselect, for + installing repository config files. + +2006-09-06 Mike Kelly <pioto@gentoo.org> + + * paludis/syncer.cc: Exclude /local from rsync as well, to be + consistent w/ portage. + +2006-09-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository_TEST.cc, + paludis/repositories/vdb/vdb_repository_TEST_setup.sh: Portage doesn't + always add a newline to the end of the world file. Work with this + stupidity. + +2006-09-05 Mike Kelly <pioto@gentoo.org> + + * eselect/news.eselect: Add an "all" option for the read and unread + actions, to allow reading all news items, or marking all read items as + unread. + +2006-09-05 Mike Kelly <pioto@gentoo.org> + + * eselect/news.eselect: Add an option for the read action to show all + new news items. + +2006-09-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Ignore comments and blanks in parent files. + +2006-09-05 Mike Kelly <pioto@gentoo.org> + + * ebuild/ebuild.bash: Source hooks called by perform_hook, rather than + start another shell to run them. This means that hooks will be able to + see all variables defined in an ebuild. + +2006-09-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am: Generate skeleton prepdocs, prepalldocs. + +2006-09-04 Mike Kelly <pioto@gentoo.org> + + * ebuild/utils/dohtml: Should now work properly in recursive mode. + Added support for the -f option (allowed files). Fixed a potential bug + with allowed extension matching. + + + Fixes: berlios#8655. + +2006-09-03 Stephen Bennett <spb@gentoo.org> + + * ebuild/build_functions.bash: Set --libdir in econf based on --prefix + if this is passed in by the ebuild. Should allow KDE to be installed. + +2006-09-02 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/dosym: Fix dosym's directory existence check. + +2006-09-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repository_so_loader.cc: Be more picky about which + repository .so files we load. + +2006-09-01 Mike Kelly <pioto@gentoo.org> + + * doc/doc_migration_howto.doxygen: Add a description of an automated + method for migrating a portage to a paludis config (using the + portage2paludis.bash script). + +2006-09-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository_TEST.cc, + paludis/repositories/portage/portage_repository_TEST_setup.sh, + paludis/repositories/portage/portage_repository_profile.cc: Allow + -lines in profile package.mask. Be more tolerant of malformed profile + files. + +2006-09-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: More build environment sanity testing. + +2006-08-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/doc_bootstrap_howto.doxygen, + doc/doc_known_issues.doxygen, doc/doc_mainpage.doxygen, + doc/doc_migration_howto.doxygen, doc/header.html: Extend the user + documentation. + +2006-08-31 Mike Kelly <pioto@gentoo.org> + + * doc/doc_configuration_files.doxygen: Added brief documentation of + the "importance" key for repositories. + +2006-08-31 Mike Kelly <pioto@gentoo.org> + + * bash-completion/, bash-completion/paludis: Add initial bash + completion script for paludis. It isn't in EXTRA_DIST anywhere yet, + and it isn't really complete, particularly the package name matching. + +2006-08-29 Mike Kelly <pioto@gentoo.org> + + * hooks/Makefile.am.m4: Fix distcheck, forgot to update EXTRA_DIST. + +2006-08-29 Mike Kelly <pioto@gentoo.org> + + * src/paludis/install.cc: Fix the xterm title bar to show the proper + count of packages to be installed when virtuals must be installed. + +2006-08-29 Mike Kelly <pioto@gentoo.org> + + * hooks/update_config_protect_list.bash: Whoops, fix some quoting. + +2006-08-28 Mike Kelly <pioto@gentoo.org> + + * hooks/Makefile.am.m4, hooks/update_config_protect_list.bash: Add a + new hook to generate vdb_dir/.cache/all_CONFIG_PROTECT{,_MASK} files, + which contain a list of all CONFIG_PROTECT and CONFIG_PROTECT_MASK + directories from all packages. This is for use by things like + etc-update. + +2006-08-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): My email address is now ciaranm@ciaranm.org + +2006-08-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/metadata_check.cc: Cleaner handling of libxml2 memory + deallocation. + +2006-08-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Provide better error messages for lack of libxml2, + gtkmm or vte. + +2006-08-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, paludis/qa/Makefile.am.m4, + paludis/qa/metadata_check.cc, src/qualudis/Makefile.am: Use libxml2 + directly rather than calling xmllint for QA checks. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/find_dropped_keywords.cc: When detecting dropped + keywords, only consider slots that contain a keyworded version that is + better than the worst keyworded version on the target arch. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/metadata_check.cc: Use ~/.qualudis rather than ~/.paludis + for Qualudis temporary files. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/qualudis/Makefile.am, src/qualudis/qualudis.cc: Enable xterm + titles in Qualudis. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/virtuals/virtuals_repository.cc, + paludis/repository.sr: Allow version-restricted virtuals. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, paludis/qa/Makefile.am.m4, + paludis/qa/defaults_check.cc, paludis/qa/defaults_check.hh, + paludis/qa/defaults_check_TEST.cc, + paludis/qa/defaults_check_TEST_cleanup.sh, + paludis/qa/defaults_check_TEST_setup.sh, paludis/qa/files.m4, + paludis/qa/whitespace_check.cc, src/gtkpaludis/Makefile.am, + src/gtkpaludis/vtemm/Makefile.am, src/qualudis/Makefile.am: QA now + needs pcre++. Make defaults_check work again. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc, paludis/qa/keywords_check.cc, + paludis/version_metadata.sr: Fix "keywords altered by eclass" check. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/src_uri_check.cc: Make output a bit more useful. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc: Fix + uninitialised has_mirrors. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/qa_environment.cc: Support virtuals. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/qa_environment.cc: Create repositories for each package + database. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/files.m4, paludis/qa/qa_environment.cc, + paludis/qa/qa_environment.hh, paludis/qa/qa_environment.sr, + paludis/qa/qa_environment_TEST_setup.sh: Use real profiles from + profiles.desc for QA environment. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/qa_environment.cc, paludis/qa/qa_environment.hh: + Restructure how QAEnvironment handles its package database to make + package database switching simpler. + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/test_extras.cc: Eliminate some of the noise made by + tests that intentionally fail (duff ebuilds etc). + +2006-08-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/Makefile.am.m4, paludis/qa/create_metadata_check.cc, + paludis/qa/dep_any_check.cc, paludis/qa/dep_flags_check.cc, + paludis/qa/dep_packages_check.cc, paludis/qa/deps_exist_check.cc, + paludis/qa/deps_visible_check.cc, paludis/qa/description_check.cc, + paludis/qa/ebuild_check.hh, paludis/qa/extract_check.cc, + paludis/qa/files.m4, paludis/qa/homepage_check.cc, + paludis/qa/inherits_check.cc, paludis/qa/iuse_check.cc, + paludis/qa/keywords_check.cc, paludis/qa/license_check.cc, + paludis/qa/message.cc, paludis/qa/message.hh, + paludis/qa/parse_deps_check.cc, paludis/qa/pdepend_overlap_check.cc, + paludis/qa/qa_environment_TEST.cc, + paludis/qa/qa_environment_TEST_cleanup.sh, + paludis/qa/qa_environment_TEST_setup.sh, paludis/qa/restrict_check.cc, + paludis/qa/slot_check.cc, paludis/qa/src_uri_check.cc, + +paludis/qa/qa_environment.cc, +paludis/qa/qa_environment.hh, + -paludis/qa/environment.cc, -paludis/qa/environment.hh: Tidy up qa + somewhat. Add some tests for QAEnvironment. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/adjutrix/Makefile.am, src/adjutrix/adjutrix.cc, + src/adjutrix/command_line.cc, src/adjutrix/command_line.hh, + src/adjutrix/keywords_graph.cc: Add colour to adjutrix. + + * src/colour.hh: Add cl_bold_yellow. + + * src/paludis/command_line.cc: Remove -C alias to --no-colour. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/Makefile.am, src/adjutrix/Makefile.am, + src/adjutrix/command_line.cc, + src/adjutrix/find_stable_candidates_TEST, src/adjutrix/help_TEST, + src/adjutrix/version_TEST, +src/adjutrix/adjutrix.cc, + +src/adjutrix/adjutrix_environment.cc, + +src/adjutrix/adjutrix_environment.hh, +src/adjutrix/man_adjutrix.cc, + -src/adjutrix/archtool.cc, -src/adjutrix/archtool_environment.cc, + -src/adjutrix/archtool_environment.hh, -src/adjutrix/man_archtool.cc: + archtool is now called adjutrix. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/Makefile.am, src/paludis/Makefile.am, src/paludis/contents.cc, + src/paludis/list.cc, src/paludis/owner.cc, src/paludis/paludis.cc, + +src/colour.cc, +src/colour.hh, -src/paludis/colour.cc, + -src/paludis/colour.hh: Move colour code from src/paludis to src so + that it can be used by qualudis and archtool. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: More build environment sanity checking. Disable static + library builds unless they're explicitly requested. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_unmerge.bash: Catalyst unsets CONFIG_PROTECT. Work + around this to avoid problems when upgrading Catalyst-generated + packages. + +2006-08-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/archtool/Makefile.am, src/archtool/archtool.cc, + src/archtool/command_line.cc, src/archtool/command_line.hh, + src/archtool/find_dropped_keywords.cc, + src/archtool/find_dropped_keywords.hh, + src/archtool/find_dropped_keywords.sr: Add --find-dropped-keywords + action to archtool. + +2006-08-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, src/Makefile.am, src/archtool, + src/archtool/Makefile.am, src/archtool/archtool.cc, + src/archtool/archtool_environment.cc, + src/archtool/archtool_environment.hh, src/archtool/command_line.cc, + src/archtool/command_line.hh, src/archtool/find_stable_candidates.cc, + src/archtool/find_stable_candidates.hh, + src/archtool/find_stable_candidates.sr, + src/archtool/find_stable_candidates_TEST, + src/archtool/find_stable_candidates_TEST_cleanup.sh, + src/archtool/find_stable_candidates_TEST_setup.sh, + src/archtool/help_TEST, src/archtool/keywords_graph.cc, + src/archtool/keywords_graph.hh, src/archtool/man_archtool.cc, + src/archtool/version_TEST: Add archtool (temporary name, until we + come up with something better). + +2006-08-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/fake/fake_repository_base.cc, + paludis/repositories/fake/fake_repository_base.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, paludis/repository.hh: + Make the Repository arch flags interface more useful. + +2006-08-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Ensure that PALUDIS_HOME contains an absolute + path. + +2006-08-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.cc, paludis/environment.hh: Provide default + implementations for most Environment virtual functions, to reduce the + amount of boilerplate code for special Environment implementations. + +2006-08-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc: Remove bogus quotes mismatch warning for + lines in the form 'key = '. + +2006-08-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen, + doc/doc_configuration_files.doxygen, doc/doc_mainpage.doxygen, + doc/header.html: Update documentation to point to pioto.org rather + than berlios.org for now. + +2006-08-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/config_file_TEST.cc: Allow (with a warning) line continuations + inside quoted strings without backslashes for KeyValueConfigFile. + +2006-08-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Export REAL_CHOST=$CHOST to avoid gcc-config + stupidity. + +2006-08-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc: Get title counts right again. + +2006-08-20 Stephen Bennett <spb@gentoo.org> + + * ebuild/ebuild.bash: Newer libselinux uses thread-specific attr files + in /proc, so update sandbox vars to allow this. + +2006-08-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc: Be more verbose when ebuild cache generation + fails. + +2006-08-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/query.cc: Support package sets in --query. + + + Fixes: Berlios#FR2381. + +2006-08-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/Makefile.am, src/paludis/install.cc, + src/paludis/query.cc, src/paludis/use.cc, src/paludis/use.hh: Display + USE flags for --query. + + + Fixes: Berlios#FR2380. + +2006-08-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/query.cc: Display more information for virtuals with + --query. + +2006-08-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/vdb/vdb_repository.cc: Generate virtuals + metadata as VersionMetadata::Virtual rather than VersionMetadata. + +2006-08-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/vdb/vdb_repository.cc: Mark all USE flags as + masked / forced for VDB entries. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_init.bash, ebuild/builtin_init_bin.bash, + ebuild/ebuild.bash: Make PALUDIS_HOME work for unmerge too. + + * paludis/default_config.cc: More verbose errors. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/paludis.cc: Include program arguments as part of the top + level context. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash: Make sure our VDB cache is present. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Filter LD_ variables from environment when + loading from VDB. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/echo_functions.bash.in: Implement real elog support. + +2006-08-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc: Display virtual and real package total + counts separately. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc: Remove some left + over old style virtuals handling. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc: When PROVIDEing virtuals, make the dep list entry + for ::virtuals, not ::provider. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/fake/Makefile.am, + paludis/repositories/fake/fake_installed_repository.cc, + paludis/repositories/fake/fake_installed_repository.hh, + paludis/repositories/fake/fake_repository.cc, + paludis/repositories/fake/fake_repository.hh, + +paludis/repositories/fake/fake_repository_base.cc, + +paludis/repositories/fake/fake_repository_base.hh: Move FakeRepository + code into a new FakeRepositoryBase class. Create FakeRepository and + FakeInstalledRepository. + + * paludis/dep_list_TEST.cc: Add a test case for forced downgrades. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/virtuals/installed_virtuals_repository.cc, + paludis/repositories/virtuals/installed_virtuals_repository.hh: Allow + uninstalling of virtuals. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/package_database.cc, + paludis/repositories/virtuals/installed_virtuals_repository.hh, + paludis/repositories/virtuals/virtuals_repository.hh, + paludis/repository.hh: Exclude virtuals repos from favourite + repository candidates. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/ebin.cc, paludis/ebin.sr, + paludis/ebuild.cc, paludis/ebuild.sr, paludis/environment.cc, + paludis/mask_reasons.cc, paludis/mask_reasons.hh, + paludis/package_database.cc, paludis/package_database.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository_ebin_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/vdb/vdb_repository.cc, + paludis/version_metadata.cc, paludis/version_metadata.hh, + paludis/version_metadata.sr, src/paludis/query.cc: Create a separate + metadata interface for virtual packages. Handle masking of virtual + packages. + +2006-08-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.cc, paludis/package_database.cc, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/virtuals/Makefile.am, + paludis/repositories/virtuals/installed_virtuals_repository.cc, + paludis/repositories/virtuals/virtuals_repository.cc, + paludis/repositories/virtuals/virtuals_repository.hh, + paludis/repositories/virtuals/vr_entry.cc, + paludis/repositories/virtuals/vr_entry.hh, paludis/repository.hh, + paludis/repository.sr, +paludis/repositories/virtuals/vr_entry.sr, + -paludis/repositories/virtuals/installed_virtuals_repository.sr: More + work on dynamic virtuals. Masking is not yet implemented, preventing + this from being sanely usable. + +2006-08-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/vdb/vdb_repository.cc: Use fast_unique_copy for + VDB too. + +2006-08-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fast_unique_copy.hh, + paludis/util/fast_unique_copy_TEST.cc, paludis/util/files.m4: Add a + fast_unique_copy algorithm, like std::unique_copy for where the input is + sorted and randomly accessible and there are likely to be many + duplicates. + + * paludis/repositories/virtuals/installed_virtuals_repository.cc: Use + fast_unique_copy for category and package name extractions. + +2006-08-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.cc, paludis/environment.cc, + paludis/environment.hh, paludis/repository.cc, paludis/repository.hh, + paludis/repository.sr, paludis/repository_config_entry.sr: Start work on + the new dynamic virtuals framework. + + * paludis/repositories/cran/cran_installed_repository.cc, + paludis/repositories/cran/cran_installed_repository.hh, + paludis/repositories/cran/cran_repository.cc, + paludis/repositories/cran/cran_repository.hh: Convert CRAN over to + dynamic virtuals. + + * paludis/repositories/fake/fake_repository.cc, + paludis/repositories/fake/fake_repository.hh: Convert FakeRepository + over to dynamic virtuals. + + * paludis/repositories/nothing/nothing_repository.cc, + paludis/repositories/nothing/nothing_repository.hh: Convert + NothingRepository over to dynamic virtuals. + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_ebin_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc: + Convert PortageRepository over to dynamic virtuals. + + * paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh: Convert VDB over to dynamic + virtuals. + + * configure.ac, paludis/repositories/Makefile.am, + paludis/repositories/virtuals, + paludis/repositories/virtuals/Makefile.am, + paludis/repositories/virtuals/installed_virtuals_repository.cc, + paludis/repositories/virtuals/installed_virtuals_repository.hh, + paludis/repositories/virtuals/installed_virtuals_repository.sr, + paludis/repositories/virtuals/virtuals_repository.cc, + paludis/repositories/virtuals/virtuals_repository.hh: Add start of + dynamic virtual repository classes. + +2006-08-12 Danny van Dyk <kugelfang@gentoo.org> + + * doc/doc_configuration_files.doxygen: Update configuration files + documentation for CRAN repositories. + +2006-08-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * misc/make_sr.bash: Use compare rather than operator< for sr + comparisons, where possible. + + * paludis/default_config.cc, paludis/name.cc, + paludis/package_database.cc, paludis/version_spec.cc: Update includes + for the above. + +2006-08-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/dep_list_entry.sr, paludis/ebin.sr, + paludis/ebuild.sr, paludis/package_database_entry.sr, + paludis/qualified_package_name.sr, + paludis/repositories/cran/cran_installed_repository.sr, + paludis/repositories/cran/cran_repository.sr, + paludis/repositories/portage/portage_repository_params.sr, + paludis/repositories/vdb/vdb_repository.sr, paludis/repository.sr, + paludis/repository_config_entry.sr, paludis/syncer.sr, + paludis/use_config_entry.sr: More docs tweaks. + +2006-08-12 Ahmed Ammar <b33fc0d3@gmail.com> + + * paludis/syncer.cc: Add svn+https sync support. + +2006-08-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/doxygen.conf.in, misc/make_sr.bash, + paludis/digests/md5_TEST.cc, paludis/digests/rmd160_TEST.cc, + paludis/digests/sha256_TEST.cc, + paludis/repositories/nothing/nothing_repository.sr, + -doc/doc_directories.doxygen: Docs tweaks. + +2006-08-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): Stop using smart_record, start using sr. + +2006-08-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * test/test_framework.cc, test/test_framework.hh: Improve handling of + unexpected exceptions in test cases. + +2006-08-09 Danny van Dyk <kugelfang@gentoo.org> + + * cran/cran.bash, cran/Makefile.am, src/paludis/query.cc, + paludis/environment.cc, + paludis/repositories/cran/cran_installed_repository.hh, + paludis/repositories/cran/cran_repository.hh, + paludis/repositories/cran/cran_repository_TEST_cleanup.sh, + paludis/repositories/cran/cran_description.hh, + paludis/repositories/cran/cran_dep_parser.hh, + paludis/repositories/cran/cran_installed_repository.cc, + paludis/repositories/cran/cran_repository_TEST.cc, + paludis/repositories/cran/cran_repository.cc, + paludis/repositories/cran/Makefile.am, + paludis/repositories/cran/cran_dep_parser_TEST.cc, + paludis/repositories/cran/cran_description.cc, + paludis/repositories/cran/cran_repository_TEST_setup.sh, + paludis/repositories/cran/cran_dep_parser.cc, + paludis/repositories/Makefile.am, paludis/version_metadata.cc, + paludis/version_metadata.hh, configure.ac, Makefile.am: Add + repositories to support CRAN (http://cran.r-project.org). + + * paludis/portage_dep_lexer.hh, paludis/portage_dep_parser.hh: Fix + include guards. + +2006-08-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/gtkpaludis/vtemm/Makefile.am: Work around automake being a bit + silly with subdir dependencies. + +2006-08-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge.cc: Make merge much faster. + +2006-08-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/files.m4, -paludis/util/comparison_policy_TEST.cc: Nuke + worthless comparison policy test. + +2006-08-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash: Fake a Portage COUNTER file in VDB + entries. + +2006-08-03 Danny van Dyk <kugelfang@gentoo.org> + + * src/qualudis/qualudis_command_line.cc: Fix default value for + --message-level. + +2006-08-02 Piotr Rak <piotr.rak@gmail.com> + + * AUTHORS: Add self to AUTHORS. + + * configure.ac, src/gtkpaludis/Makefile.am, + src/gtkpaludis/browse_tree.cc, src/gtkpaludis/browse_tree.hh, + src/gtkpaludis/main_window.cc, src/gtkpaludis/message_window.cc, + src/gtkpaludis/message_window.hh, + src/gtkpaludis/vte_message_window.cc, + src/gtkpaludis/vte_message_window.hh, src/gtkpaludis/vtemm, + src/gtkpaludis/vtemm/Makefile.am, src/gtkpaludis/vtemm/converts, + src/gtkpaludis/vtemm/converts/Makefile.am, + src/gtkpaludis/vtemm/converts/convert.m4, + src/gtkpaludis/vtemm/converts/convert_base.m4, + src/gtkpaludis/vtemm/defs, src/gtkpaludis/vtemm/defs/Makefile.am, + src/gtkpaludis/vtemm/defs/enum.pl, + src/gtkpaludis/vtemm/defs/generate_defs_vte.cc, + src/gtkpaludis/vtemm/reaper.ccg, src/gtkpaludis/vtemm/reaper.hg, + src/gtkpaludis/vtemm/terminal_widget.ccg, + src/gtkpaludis/vtemm/terminal_widget.hg: Use VTE for the message + window. + +2006-08-02 Mike Kelly <pioto@gentoo.org> + + * hooks/Makefile.am.m4: We should be using _DATA for the .keep files, + not _SCRIPTS. + +2006-08-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/uninstall.cc: Typo in xterm titles: Installing -> + Uninstalling. + +2006-08-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * Makefile.am, src/qualudis/Makefile.am, + src/qualudis/qualudis_command_line.hh: Make 'make dist' work even when + 'make' hasn't previously been run. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, ebuild/builtin_unmerge.bash, + hooks/gnu_info_index.bash: Remove hard references to VDB directory. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebin.cc, + paludis/repositories/portage/portage_repository_ebin_entries.cc: More + ebin work. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repository_so_loader.cc: Be more helpful when .so loading + fails. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/install_task.cc: Don't update world for fetch only. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/portage_stubs.bash: Add portageq vdb_path emulation. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, ebuild/Makefile.am, + ebuild/builtin_fetch_bin.bash, ebuild/builtin_init_bin.bash, + ebuild/builtin_unpack_bin.bash, ebuild/ebuild.bash, + ebuild/utils/dounpack, paludis/ebin.cc, paludis/ebin.hh, + paludis/files.m4, paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/make_ebin_repository.cc, + paludis/repositories/portage/make_ebin_repository.hh, + paludis/repositories/portage/make_ebuild_repository.cc, + paludis/repositories/portage/make_ebuild_repository.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_TEST.cc, + paludis/repositories/portage/portage_repository_ebin_entries.hh, + paludis/repositories/portage/portage_repository_params.hh, + paludis/version_metadata.cc, paludis/version_metadata.hh, + src/paludis/query.cc: Initial support for installing, but not + creating, binary packages. + +2006-07-31 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/Makefile.am, paludis/args/args_handler.cc, + paludis/args/args_handler.hh, paludis/args/man.hh, + src/paludis/command_line.cc, src/paludis/man_paludis.cc, + src/qualudis/man_qualudis.cc: Move most of the man writing code into + args. Extend what can be included in a man page. Extend man pages. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * test/test_framework.cc, test/test_framework.hh: Remove some STL + includes from the test framework headers. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/install_task.hh, paludis/tasks/sync_task.hh, + paludis/tasks/uninstall_task.hh: Make task constructors protected. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/Makefile.am, paludis/tasks/sync_task.cc, + paludis/tasks/sync_task.hh: Make a SyncTask. + + * src/gtkpaludis/Makefile.am, src/gtkpaludis/browse_tree.cc, + src/gtkpaludis/gtkpaludis.cc, src/gtkpaludis/main_window.hh, + src/gtkpaludis/sync.cc, src/gtkpaludis/sync.hh, src/paludis/sync.cc: Use + it. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/Makefile.am, src/qualudis/Makefile.am: Distribute man + pages as part of the dist tarball, to prevent problems when cross + compiling. + + * src/paludis/command_line.cc: Tidy up --help slightly. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.hh: Add a change_package_database method to + Environment so that subclasses can implement package database switching. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/args_group.cc, paludis/args/args_handler.cc, + paludis/args/args_option.cc, paludis/config_file.cc, + paludis/contents.cc, paludis/dep_atom.cc, + paludis/dep_atom_flattener.cc, paludis/environment.hh, + paludis/package_database.cc, paludis/portage_dep_lexer.cc, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.hh, + paludis/repositories/portage/portage_repository_entries.hh, + paludis/repositories/portage/portage_repository_news.cc, + paludis/repositories/portage/portage_repository_sets.cc, + paludis/repository.cc, paludis/util/dir_iterator.cc, + paludis/util/fd_output_stream.hh, paludis/util/pipe.hh: Doxygen + improvements. + +2006-07-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.hh, + paludis/repositories/portage/portage_repository_entries.cc, + paludis/repositories/portage/portage_repository_entries.hh, + paludis/repositories/portage/portage_repository_params.hh: Use a + virtual constructor for PortageRepositoryEntries. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.hh, + paludis/repositories/portage/portage_repository_entries.hh: Move + environment variable code out from PortageRepository to + PortageRepositoryEntries. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.cc, + paludis/repositories/portage/portage_repository_ebuild_entries.hh, + paludis/repositories/portage/portage_repository_entries.hh: Move + install code out from PortageRepository to PortageRepositoryEntries. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/qa/src_uri_check.cc, + paludis/repositories/fake/fake_repository.cc, + paludis/repositories/fake/fake_repository.hh, + paludis/repositories/nothing/nothing_repository.cc, + paludis/repositories/nothing/nothing_repository.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, paludis/repository.hh: + Make a new MirrorsIterator for Repository classes. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/hashed_containers.hh.in: Add MakeHashedMultiSet and + MakeHashedMultiMap classes. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/vdb/vdb_repository.cc: version_metadata now + throws rather than returning a dummy entry for packages that don't + exist. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository.cc, + +paludis/repositories/portage/portage_repository_ebuild_entries.cc, + +paludis/repositories/portage/portage_repository_ebuild_entries.hh, + +paludis/repositories/portage/portage_repository_entries.cc, + +paludis/repositories/portage/portage_repository_entries.hh, + -paludis/repositories/portage/portage_repository_ebuild_metadata.cc, + -paludis/repositories/portage/portage_repository_ebuild_metadata.hh, + -paludis/repositories/portage/portage_repository_metadata.cc, + -paludis/repositories/portage/portage_repository_metadata.hh: Rename + PortageRepository*Metadata to PortageRepository*Entries. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc: Switch to + storing params rather than copying them. + +2006-07-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_news.cc: Remove some + unnecessary public functions from PortageRepository. + +2006-07-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_configuration_files.doxygen: Fix incorrect description for + NothingRepository. + + + Fixes: Berlios#8236. + +2006-07-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/colour.cc, src/paludis/colour.hh: Disable xterm titles for + dumb and linux terminals. + + + Fixes: Berlios#8235. + +2006-07-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_ebuild_metadata.cc, + paludis/repositories/portage/portage_repository_ebuild_metadata.hh, + paludis/repositories/portage/portage_repository_metadata.hh, + paludis/repositories/portage/portage_repository_news.cc, + paludis/repositories/portage/portage_repository_news.hh, + paludis/repositories/portage/portage_repository_params.hh, + paludis/repositories/portage/portage_repository_sets.cc, + paludis/repositories/portage/portage_repository_sets.hh: More work on + splitting up PortageRepository. + +2006-07-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_news.cc, + paludis/repositories/portage/portage_repository_news.hh, + paludis/repositories/portage/portage_repository_sets.cc, + paludis/repositories/portage/portage_repository_sets.hh: Split up + PortageRepository some more. Move the news and advisory config file + implementations from the main library into the Portage repository + library. + +2006-07-28 Piotr Rak <piotr.rak@gmail.com> + + * src/gtkpaludis/gtkpaludis.cc: Handle an unset DISPLAY more sanely. + + + Fixes: Berlios#8195. + +2006-07-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/install_task.cc: Don't update world for set targets. + + + Fixes: Berlios#8219. + +2006-07-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Fix potential infinite loop on unmerge. + +2006-07-27 Mike Kelly <pioto@gentoo.org> + + * hooks/Makefile.am.m4, src/paludis/sync.cc, + paludis/tasks/uninstall_task.cc, paludis/tasks/install_task.cc, + ebuild/ebuild.bash: Add failure hooks for all ebuild phases, and for + sync, install, and uninstall. + +2006-07-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/Makefile.am.m4, paludis/args/Makefile.am, paludis/files.m4, + paludis/qa/Makefile.am.m4, paludis/repositories/fake/Makefile.am, + paludis/repositories/nothing/Makefile.am, + paludis/repositories/portage/Makefile.am, + paludis/repositories/vdb/Makefile.am, paludis/repository_so_loader.cc, + src/gtkpaludis/Makefile.am, src/paludis/Makefile.am, + src/paludis/paludis.cc, src/qualudis/Makefile.am: Dynamically load + repositories from .so files in libdir/paludis/repositories/. + + + Fixes: Berlios#FR2423. + +2006-07-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/gtkpaludis/browse_tree.cc, src/gtkpaludis/browse_tree.hh, + src/gtkpaludis/main_window.cc, src/gtkpaludis/main_window.hh: Lock + controls when syncing. + +2006-07-26 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/default_environment.cc: Fix InternalError while workin on + repositories without UseInterface. + +2006-07-26 Piotr Rak <piotr.rak@gmail.com> + + * paludis/defaul_config.cc: Allow configuration suffix to be changed + after DefaultConfig initialisation failure. + +2006-07-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/pstream.cc, paludis/util/pstream.hh: Allow stderr for + PStream commands to be redirected. + + * paludis/util/system.cc, paludis/util/system.hh: Allow stdout and + stderr for run_command to be redirected. + + * src/gtkpaludis/message_window.cc, src/gtkpaludis/message_window.hh: + Fancy auto-scrolling message window. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/gtkpaludis/main_window.cc: Make the messages window resizeable. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, ebuild/utils/merge.cc, + paludis/util/fd_output_stream.hh, paludis/util/files.m4, + paludis/util/pipe.cc, paludis/util/pipe.hh, + src/gtkpaludis/message_window.cc: Unify fd output streams and pipe + handling. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/gtkpaludis/Makefile.am, src/gtkpaludis/main_window.cc, + src/gtkpaludis/message_window.cc, src/gtkpaludis/message_window.hh: + Make the message window less useless. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/digests/Makefile.am, + ebuild/fetchers/Makefile.am, ebuild/utils/Makefile.am, + paludis/Makefile.am.m4, paludis/args/Makefile.am, + paludis/digests/Makefile.am, paludis/qa/Makefile.am.m4, + paludis/repositories/fake/Makefile.am, + paludis/repositories/nothing/Makefile.am, + paludis/repositories/portage/Makefile.am, + paludis/repositories/vdb/Makefile.am, paludis/selinux/Makefile.am, + paludis/tasks/Makefile.am, paludis/util/Makefile.am.m4, + src/Makefile.am, src/paludis/Makefile.am, src/qualudis/Makefile.am, + test/Makefile.am: Change how we handle CXXFLAGS, to allow + configure-detected warning flags to be overridden in subdirectories. + + * src/gtkpaludis, src/gtkpaludis/Makefile.am, + src/gtkpaludis/browse_tree.cc, src/gtkpaludis/browse_tree.hh, + src/gtkpaludis/gtkpaludis.cc, src/gtkpaludis/information_tree.hh, + src/gtkpaludis/main_window.hh, src/gtkpaludis/command_line.cc, + src/gtkpaludis/command_line.hh: Start work on a Gtk+ interface. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/exception.cc, paludis/util/exception.hh: Fix backtrace + contexts. + +2006-07-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/tasks/Makefile.am, paludis/tasks/uninstall_task.cc, + paludis/tasks/uninstall_task.hh, src/paludis/install.cc, + src/paludis/uninstall.cc: Move uninstalling to a task. + +2006-07-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Require libwrapiter-0.2. + +2006-07-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/args_handler.cc, paludis/args/args_handler.hh, + paludis/args/args_option.cc, paludis/args/args_option.hh, + paludis/args/args_visitor.cc, paludis/args/args_visitor.hh, + paludis/util/collection.hh, src/paludis/sync.cc: More header and + libwrapiter cleanups. + +2006-07-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/args_group.cc, paludis/args/args_group.hh, + paludis/args/args_handler.cc, paludis/args/args_handler.hh, + src/paludis/Makefile.am, src/paludis/command_line.cc, + src/paludis/command_line.hh, src/paludis/man_paludis.cc, + src/qualudis/Makefile.am, src/qualudis/man_qualudis.cc, + src/qualudis/qualudis_command_line.cc, + src/qualudis/qualudis_command_line.hh: Initial automatic man page + generation support. Rather crude. + +2006-07-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, paludis/Makefile.am.m4, paludis/environment.cc, + paludis/environment.hh, paludis/tasks, paludis/tasks/Makefile.am, + paludis/tasks/install_task.cc, paludis/tasks/install_task.hh, + src/paludis/Makefile.am, src/paludis/install.cc, + src/paludis/uninstall.cc: Switch install action over to a tasks + interface. More to follow. + +2006-07-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/log.cc: Improve log context output format. + +2006-07-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository_profile.cc, + paludis/repositories/portage/portage_repository_profile.hh: Add + profile package.mask support. + +2006-07-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doxygen.conf.in, paludis/repositories/portage/Makefile.am, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_exceptions.cc, + paludis/repositories/portage/portage_repository_exceptions.hh, + paludis/repositories/portage/portage_repository_profile.cc, + paludis/repositories/portage/portage_repository_profile.hh: Start work + on splitting up PortageRepository. + +2006-07-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Warn if /proc is strange. + +2006-07-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/args_dumper.hh, paludis/args/args_group.cc, + paludis/args/args_group.hh, paludis/args/args_handler.cc, + paludis/args/args_option.cc: Tidy up args a bit. + +2006-07-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_atom_flattener.cc, paludis/environment.cc, + paludis/package_database.cc, paludis/package_database.hh: More + libwrapiter conversions. + +2006-07-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/utils/unmerge.cc, paludis/dep_list.cc, + paludis/dep_list_TEST.cc, + paludis/repositories/portage/portage_repository.cc: Remove all uses of + deque in favour of lists. Although deque is theoretically potentially + faster, it's fairly broken in some standard library implementations. + + + Fixes: Berlios#8127. + +2006-07-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/Makefile.am.m4, paludis/config_file.cc, + paludis/config_file.hh, paludis/config_file_TEST.cc, + paludis/contents.hh, paludis/default_config.cc, + paludis/default_config.hh, paludis/dep_atom.hh, + paludis/dep_atom_flattener.hh, paludis/dep_list.cc, + paludis/dep_list.hh, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/files.m4, paludis/portage_dep_lexer.hh, + paludis/qa/environment.cc, + paludis/repositories/nothing/nothing_repository.cc, + paludis/repositories/nothing/nothing_repository.hh, + paludis/repositories/portage/portage_repository.cc, + paludis/repositories/portage/portage_repository.hh, + paludis/repositories/portage/portage_repository_TEST.cc, + paludis/repositories/vdb/vdb_repository.cc, + paludis/repositories/vdb/vdb_repository.hh, + paludis/repositories/vdb/vdb_repository_TEST.cc, + paludis/repository.hh, paludis/util/Makefile.am.m4, + paludis/util/collection.hh, paludis/util/collection_concrete.hh, + paludis/util/exception.cc, paludis/util/exception.hh, + src/paludis/install.cc: More libwrapiter conversion. + +2006-07-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Re-enable --enable-qa. + +2006-07-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): Start using libwrapiter and smarter containers to avoid + including big scary STL files in our headers. + +2006-07-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * (lots): Switch from .a to .so files. Move each repository format + into its own subdirectory in paludis/repositories/. + + * configure.ac: Move to 0.5 branch. + +2006-07-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Display full filenames in die backtraces. + +2006-07-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Preparation for 0.4.2. + + + Release: 0.4.2 + +2006-07-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge_common.cc: Make CONFIG_PROTECT work as expected + when ROOT=/. + + * ebuild/utils/merge_TEST.bash, ebuild/utils/merge_TEST_setup.sh: Add + tests for CONFIG_PROTECT behaviour. + + + Fixes: Berlios#8113. + + Fixes: Berlios#FR2377. + +2006-07-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: More filtering of environment for + Portage-generated VDB entries. + +2006-07-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Preparation for 0.4.1. + + + Release: 0.4.1 + +2006-07-13 Stephen Bennett <spb@gentoo.org> + + * paludis/selinux/security_context.cc: Include stringify.hh to fix + breakage caused by other changes. + +2006-07-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: When ROOT=/ and unmerging a Portage-installed + package, avoid sandbox errors caused by the saved environment. + +2006-07-12 Stephen Bennett <spb@gentoo.org> + + * paludis/name.cc: Allow . in category names to make crossdev happy. + +2006-07-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * autogen.bash: Make autogen more autoconf-2.60 friendly. + +2006-07-12 David Morgan <david.morgan@wadham.oxford.ac.uk> + + * paludis/qa/create_metadata_check.cc, paludis/qa/dep_any_check.cc, + paludis/qa/dep_flags_check.cc, paludis/qa/dep_packages_check.cc, + paludis/qa/deps_exist_check.cc, paludis/qa/deps_visible_check.cc, + paludis/qa/digest_collisions_check.cc, + paludis/qa/ebuild_count_check.cc, + paludis/qa/file_permissions_check.cc, + paludis/qa/files_dir_size_check.cc, paludis/qa/glep_31_check.cc, + paludis/qa/has_ebuilds_check.cc, paludis/qa/has_misc_files_check.cc, + paludis/qa/package_dir_check.cc, paludis/qa/package_name_check.cc, + paludis/qa/parse_deps_check.cc, paludis/qa/pdepend_overlap_check.cc, + paludis/qa/src_uri_check.cc: s/ /_/ in check identifiers, and rename + file_name -> filename and ebuild_count -> ebuild_count_check. + +2006-07-12 David Morgan <david.morgan@wadham.oxford.ac.uk> + + * paludis/qa/deps_exist_check.cc, paludis/qa/deps_visible_check.cc, + paludis/qa/iuse_check.cc, paludis/qa/keywords_check.cc, + paludis/qa/metadata_check.cc: Fix compilation errors. + +2006-07-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/applets.cc, src/paludis/colour.hh, + src/paludis/contents.cc, src/paludis/install.cc, + src/paludis/licence.cc, src/paludis/list.cc, src/paludis/paludis.cc, + src/paludis/query.cc, src/paludis/uninstall.cc: Be more consistent + with colours. + +2006-07-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis/install.cc, src/paludis/uninstall.cc: Display package + names in colour when showing world file changes. + +2006-07-12 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/qa/files.m4, paludis/qa/dep_flags_check.cc: Fix dep_flags + check to compile and add it back to libpaludisqa. + + * src/qualudis/qualudis_command_line.cc, + src/qualudis/qualudis_command_line.hh, src/qualudis/qualudis.c: + Removed '--check' commandline action. Qualudis now runs checks by + default. Added '--qa-check' commandline option to specify which checks + should be run. + +2006-07-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, src/: move src/ to src/paludis/. In future we'll have + a src/ subdirectory for each client. + +2006-07-11 David Morgan <david.morgan@wadham.oxford.ac.uk> + + * paludis/qa/create_metadata_check.cc, paludis/qa/dep_any_check.cc + paludis/qa/dep_flags_check.cc paludis/qa/dep_packages_check.cc + paludis/qa/deps_exist_check.cc paludis/qa/deps_visible_check.cc + paludis/qa/description_check.cc paludis/qa/extract_check.cc + paludis/qa/homepage_check.cc paludis/qa/inherits_check.cc + paludis/qa/iuse_check.cc paludis/qa/keywords_check.cc + paludis/qa/license_check.cc paludis/qa/parse_deps_check.cc + paludis/qa/pdepend_overlap_check.cc paludis/qa/restrict_check.cc + paludis/qa/slot_check.cc paludis/qa/src_uri_check.cc: Fixes for most + of the libqualudis problems. DepParser -> PortageDepParser, vmk_foo -> + correct new enumerations, get(foo) -> get<foo>() and do get metadata + correctly. + +2006-07-10 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/config_file.hh, paludis/contents.hh, + paludis/default_config.hh, paludis/dep_atom.hh, paludis/files.m4, + paludis/portage_dep_parser_TEST.cc, -paludis/dep_atom_dumper.cc, + -paludis/dep_atom_dumper.hh, -paludis/dep_atom_dumper_TEST.cc, + -paludis/paludis.cc: More code and doxygen cleanups. Remove + DepAtomDumper class. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.hh, paludis/util/instantiation_policy.hh, + paludis/util/is_file_with_extension.cc, + paludis/util/is_file_with_extension.hh, paludis/util/iterator.hh, + paludis/util/pstream.hh, paludis/util/random.hh, paludis/util/save.hh, + paludis/util/strip.hh, paludis/util/system.hh, + paludis/util/tokeniser.hh, paludis/util/validated.hh, + paludis/util/virtual_constructor.hh, paludis/util/visitor.hh: More + code and doxygen cleanups. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/counted_ptr.hh: Use operator const void * rather than + operator bool for CountedPtr to avoid bool -> int conversion weirdness. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/util/counted_ptr.hh, + paludis/util/destringify.hh, paludis/util/dir_iterator.cc, + paludis/util/dir_iterator.hh, paludis/util/exception.hh, + paludis/util/files.m4, paludis/util/iterator_TEST.cc, + paludis/util/strip.cc, paludis/util/visitor_TEST.cc, + paludis/version_spec.cc, -paludis/util/deleter.cc, + -paludis/util/deleter.hh, -paludis/util/deleter_TEST.cc: Remove deleter, + it's only used by test cases. Clean up some more public interfaces and + doxygen blocks. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/util/files.m4, + -paludis/util/container_entry.hh, + -paludis/util/container_entry_TEST.cc: Remove ContainerEntry class, it + is no longer required. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/dep_atom.hh, + paludis/util/collection.hh, paludis/util/files.m4, + -paludis/util/composite_pattern.hh: Remove Composite class, it is no + longer required. More doxygen cleanups. + +2006-07-09 Ciaran McCreesh <ciaranm@ciaranm.org> + + * autogen.bash, paludis/util/Makefile.am.m4, + +paludis/util/comparison_policy.hh, + -paludis/util/comparison_policy.hh.m4: Replace m4 voodoo with + preprocessor voodoo. Improve doxygenation. + +2006-07-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/config_file.hh, paludis/contents.hh, + paludis/default_config.cc, paludis/dep_atom.hh, + paludis/digests/md5.hh, paludis/digests/rmd160.hh, + paludis/digests/sha256.hh, paludis/environment.cc, + paludis/environment.hh, paludis/fake_repository.cc, + paludis/nothing_repository.cc, paludis/portage_repository.cc, + paludis/portage_repository.hh, paludis/repository.hh, + paludis/selinux/security_context.hh, + paludis/util/instantiation_policy.hh, paludis/util/random.hh, + paludis/vdb_repository.cc, paludis/vdb_repository.hh: Doxygen + improvements. + +2006-07-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/default_config.cc, paludis/default_environment.cc, + paludis/dep_atom.cc, paludis/dep_atom.hh, paludis/fake_repository.cc, + paludis/name.cc, paludis/name.hh, paludis/util/counted_ptr.hh, + paludis/util/smart_record.hh.m4, paludis/util/validated.hh, + paludis/util/visitor.hh: Remove some unnecessary inlining. + +2006-07-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am: Fix maintainer-clean. + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Preparation for 0.4.0. + + + Release: 0.4.0 + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen, + doc/doc_configuration_files.doxygen, doc/doc_mainpage.doxygen, + doc/doxygen.conf.in: Doxygen updates in preparation for 0.4. + +2006-07-07 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/prep.in, ebuild/utils/Makefile: Add dummy prep* + utilities that simply emit a QA notice warning against their use. + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/selinux/security_context.cc: Unbreak SELinux. + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/applets.cc, src/applets.hh, src/command_line.cc, + src/command_line.hh, src/paludis.cc: Add --configuration-variable + <repo> <var> commandline option. + +2006-07-07 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/dosym: Add a QA notice when dosym is called without its + target directory existing. Also use dirname instead of bash + substitutions. + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/portage_stubs.bash: Add debug-print-section. + +2006-07-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/echo_functions.bash.in: Add elog. For now, it's just a forward + to einfo. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/fake_repository.cc, paludis/fake_repository.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/repository.cc, paludis/repository.hh, paludis/vdb_repository.cc, + paludis/vdb_repository.hh, src/install.cc: Make --pretend --install + output for USE_EXPAND things much cleaner. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_atom.cc, paludis/dep_atom.hh, paludis/dep_list.cc, + paludis/dep_list.hh, src/install.cc: Improve error message displayed + when [use] dependencies are not met. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * hooks/eselect_env_update.bash, hooks/news.bash, src/uninstall.cc: Be + consistent with blank lines in output. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.cc, paludis/environment.hh, src/install.cc, + src/uninstall.cc: Packages are now added to world unless either a + restriction (slot, version) or --preserve-world is specified. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: g++ 4.1 is retarded. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/command_line.cc, src/command_line.hh: Move --list-{categories, + packages,repositories} to being displayed as internal / script use. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/fake_repository.cc, paludis/nothing_repository.cc, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/repository.cc, paludis/repository.hh, paludis/vdb_repository.cc: + Change how repository information is handled. + + * src/command_line.cc, src/command_line.hh, src/list.cc, src/paludis.cc: + Add --info support. Update --list-repositories to the new repository + information interface. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Be a bit quieter. + +2006-07-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/digests/md5.hh, paludis/digests/rmd160.hh, + paludis/digests/sha256.hh: Remove always_inline, gcc is smart enough to + handle this correctly. + +2006-07-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Add eselect style backtraces to die. + +2006-07-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/build_functions.bash, +ebuild/utils/dounpack, + -ebuild/utils/unpack: Change how unpack is handled. + +2006-07-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc, paludis/ebuild.hh, paludis/portage_repository.cc, + src/install_TEST_setup.sh: Add ${AA} support. Strip trailing spaces + from ${A} and ${AA}, kde-meta.eclass relies upon this. + +2006-07-05 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/dosym, ebuild/utils/donewins: Export PATH in dosym to + work around sandbox weirdness, and add a deprecation notice to + donewins since noone knows why it exists anyway. + +2006-07-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge.cc, ebuild/utils/unmerge.cc, + paludis/default_config.cc, paludis/default_environment.cc, + paludis/dep_atom.cc, paludis/dep_list.cc, paludis/ebuild.cc, + paludis/environment.cc, paludis/nothing_repository.cc, + paludis/portage_repository.cc, paludis/util/log.cc, + paludis/util/log.hh, paludis/util/log_TEST.cc, + paludis/util/pstream.cc, paludis/util/system.cc, + paludis/vdb_repository.cc, src/install.cc, src/list.cc: Don't display + context with all log messages, only the ones where it's useful. + +2006-07-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/Makefile.am, ebuild/ebuild.bash, ebuild/utils/Makefile.am, + ebuild/utils/unpack, -ebuild/unpack_functions.bash: Move unpack into + an external script so that it can be used by non-ebuilds. + +2006-07-04 Stephen Bennett <spb@gentoo.org> + + * paludis/selinux/security_context.cc: When built with selinux support + and the library exists, check whether kernel support is enabled before + attempting any SELinux operations. This fixes merge in the case where + the userland part of SELinux is complete but the kernel support is + missing, potentially common in recovery scenarios. + +2006-07-04 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/dosym: Create any necessary directories in dosym if + they don't exist. Portage changed behaviour here, so we sync to it for + now. + +2006-07-04 Stephen Bennett <spb@gentoo.org> + + * configure.ac, paludis/Makefile.am.m4, + paludis/selinux/security_context.hh, + paludis/selinux/security_context.cc, paludis/selinux/Makefile.am, + ebuild/ebuild.bash, ebuild/utils/merge.cc, ebuild/utils/Makefile.am: + Initial SELinux support for merge. Does not handle all corner cases as + yet, but should work for SELinux-enabled and SELinux-not-present. + +2006-07-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, ebuild/builtin_unmerge.bash, + ebuild/ebuild.bash, ebuild/eclass_functions.bash, paludis/ebuild.cc, + paludis/ebuild.hh: Switch to VDB_FORMAT paludis-2. Save the repository + whence the package originated. Use Portage compatible environment + saving. + + * paludis/vdb_repository.cc, paludis/vdb_repository.hh: Add buildroot + configuration option. + + * src/upgrade_TEST_setup.sh: Test environment behaviour. + +2006-07-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc: Fix behaviour of PVR. + +2006-07-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/Makefile.am, ebuild/ebuild.bash, paludis/ebuild.cc, + paludis/ebuild.hh, paludis/fake_repository.cc, + paludis/nothing_repository.cc, paludis/portage_repository.cc, + paludis/portage_repository.hh, paludis/repository.cc, + paludis/repository.hh, paludis/vdb_repository.cc, + paludis/vdb_repository.hh, src/applets.cc, src/applets.hh, + src/command_line.cc, src/command_line.hh, src/paludis.cc, + +ebuild/builtin_variable.bash: Add support for --environment-variable + on the commandline. + +2006-07-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/log.cc: Display context with log messages. + +2006-07-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_atom.cc: Downgrade use of * with operators other than + equals from an error to a QA warning. + +2006-07-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, ebuild/builtin_unmerge.bash: Add code to + recover from sh breaking due to library downgrades. + +2006-06-30 Stephen Bennett <spb@gentoo.org> + + * ebuild/utils/merge.cc: Better handle symlinks when merging. + +2006-06-30 Stephen Bennett <spb@gentoo.org> + + * paludis/syncer.cc: Add svn+http syncer. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/eclass_functions.bash: Fix eclassdirs. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/sync.cc: Add xterm titles for syncing. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/merge.cc, + ebuild/utils/unmerge.cc: Use internal md5 routines rather than calling + md5sum when merging and unmerging. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/Makefile.am, ebuild/digests/Makefile.am, + ebuild/digests/domd5.cc, ebuild/digests/dormd160.cc, + ebuild/digests/dosha256.cc, paludis/Makefile.am.m4, paludis/digests, + paludis/digests/Makefile.am, +paludis/digests/md5.cc, + +paludis/digests/md5.hh, +paludis/digests/md5_TEST.cc, + +paludis/digests/rmd160.cc, +paludis/digests/rmd160.hh, + +paludis/digests/rmd160_TEST.cc, +paludis/digests/sha256.cc, + +paludis/digests/sha256.hh, +paludis/digests/sha256_TEST.cc, + -ebuild/digests/dormd160_TEST.cc, -ebuild/digests/dosha256_TEST.cc, + -ebuild/digests/md5.cc, -ebuild/digests/md5.hh, + -ebuild/digests/md5_TEST.cc, -ebuild/digests/rmd160.cc, + -ebuild/digests/rmd160.hh, -ebuild/digests/sha256.cc, + -ebuild/digests/sha256.hh: Split up digest tools and classes. Move + digest classes into paludis/digests/ so that they can be used + internally. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/digests/Makefile.am, ebuild/digests/domd5, + ebuild/digests/domd5.cc, ebuild/digests/md5.cc, ebuild/digests/md5.hh, + ebuild/digests/md5_TEST.cc: Implement MD5 internally, to avoid linkage + problems with external md5sum on upgrade. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, ebuild/builtin_unmerge.bash, + ebuild/ebuild.bash, src/Makefile.am: Nasty hack to make distcheck work + when autotools starts sticking things in different directories. + +2006-06-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/dep_list.hh, src/command_line.cc, + src/command_line.hh, src/install.cc: Add --dl-no-unnecessary-upgrades + commandline option. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge.cc: Fix merge to /. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/merge.cc, + ebuild/utils/merge_common.cc, ebuild/utils/merge_common.hh, + ebuild/utils/unmerge.cc: Move some common merge / unmerge code into + separate files. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_unmerge.bash, ebuild/utils/unmerge.cc: Re-enable + config protect support. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge.cc, ebuild/builtin_merge.bash: Fix set*id handling. + Re-enable config protect support. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh: Add chmod member + function to FSEntry. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_tidyup.bash: Be more verbose. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_fetch.bash: Fix bogus error message text. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/unmerge, + ebuild/utils/unmerge.cc, ebuild/utils/unmerge_TEST.bash: Replace the + icky bash unmerge with a slightly less icky C++ unmerge. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh: Add rmdir member + function to FSEntry. + +2006-06-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/merge, ebuild/utils/merge.cc, + ebuild/utils/merge_TEST.bash, ebuild/utils/unmerge_TEST.bash: Replace + the icky bash merge with a slightly less icky C++ merge. + +2006-06-27 David Morgan <david.morgan@wadham.oxford.ac.uk> + + * paludis/trunk/qa/environment.cc, paludis/trunk/environment.hh: Misc + fixes for things broken by changes elsewhere (mostly QAEnvironment). + + * paludis/trunk/qa/files.m4: Temporarily commented out tests that are + broken. + +2006-06-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh: Add chown, + owner, group member functions to FSEntry. + +2006-06-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh: Add readlink + member function to FSEntry. + +2006-06-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh: Add + permissions member function to FSEntry. Add optional mode argument + to FSEntry mkdir member function. Add unlink member function to + FSEntry. + +2006-06-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/header.html, doc/paludis.css, + paludis/args/args_option.cc, paludis/contents.hh, + paludis/default_config.cc, paludis/util/comparison_policy_TEST.cc, + paludis/util/counted_ptr_TEST.cc, paludis/util/destringify.hh, + paludis/util/smart_record.hh.m4, paludis/util/smart_record_TEST.cc, + paludis/util/stringify.hh, src/licence.hh: Documentation improvements. + + * doc/doc_configuration_files.doxygen: Add documentation about our + config file formats. + +2006-06-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_fetch.bash: Give a better error if DISTDIR isn't a + directory. + +2006-06-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc: Emit a warning when dropping circular + dependencies. + +2006-06-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: If the user mirrors.conf file + contains an entry with a mirror named '*', first try fetching from + there. + +2006-06-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/fetchers/dofile: Make file:/// fetching work. + +2006-06-18 Fernando J. Pereda <ferdy@gentoo.org> + + * paludis/util/files.m4: Add `testscript' to system. + +2006-06-17 Fernando J. Pereda <ferdy@gentoo.org> + + * paludis/util/system.hh, paludis/util/system.cc, + paludis/util/system_TEST_setup.sh, paludis/util/system_TEST_cleanup.sh, + paludis/util/system_TEST.cc, paludis/syncer.cc: Introduce + run_command_in_directory and use it in GitSyncer::sync(). + +2006-06-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/name.cc, paludis/name.hh, paludis/test_environment.hh, + paludis/version_metadata.hh, paludis/version_operator.cc, + paludis/version_operator.hh, paludis/version_spec.hh: Tidy up some + includes. + +2006-06-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/src_test.bash: Check for makefile and GNUmakefile. + +2006-06-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doxygen.conf.in: Generate include graphs. + +2006-06-15 Danny van Dyk <kugelfang@gentoo.org> + + * doc/doc_security_advisories.doxygen, doc/Makefile.am: Add + specification for security advisories. + + * utils/glsa2txt.py: Add python script to create security advisories + from GLSAs. + + * paludis/config_file.cc: Change AdvisoryFile to parse new advisory + format. + +2006-06-15 Stephen Bennett <spb@gentoo.org> + + * paludis/repository.hh: Add virtual destructors to interface classes + to get rid of some irritating compiler warnings. + +2006-06-12 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/default_config.cc, paludis/default_config.hh: Tidy up some + includes and remove some unnecessary inlines. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/Makefile.am, ebuild/builtin_fetch.bash, + ebuild/fetchers, ebuild/fetchers/Makefile.am, ebuild/fetchers/dofile, + ebuild/fetchers/dowget.in: Move fetching things out into wrapper scripts + rather than hardcoding wget. Add file:/// URL support. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/files.m4, paludis/nothing_repository.cc, + paludis/nothing_repository.hh: Add a NothingRepository that supports + sync= but does not contain any packages. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.hh, paludis/portage_repository.cc: Remove + unnecessary do_contents implementation. + +2006-06-11 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/default_environment.cc, paludis/default_environment.hh, + paludis/environment.cc, paludis/environment.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/repository.hh, paludis/vdb_repository.cc, + paludis/vdb_repository.hh, paludis/version_operator.hh: Add support + for PackageSetOptions. + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh: Revise + security algorithm. + + * src/command_line.cc, src/command_line.hh, src/list.cc, src/list.hh, + src/paludis.cc: Add support for --list-vulnerabilities commandline + option. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: Show the location of the repository + config file rather than the repository in eclassdir / profiledir + deprecated notices. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash, ebuild/ebuild.bash, + ebuild/eclass_functions.bash, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/util/fs_entry.cc, paludis/util/fs_entry.hh, + paludis/vdb_repository.cc, src/install_TEST_setup.sh: Add support for + multiple eclass directories and multiple profile directories in + Portage repositories. The 'eclassdir' and 'profiledir' keys are now + deprecated, in favour of 'eclassdirs' and 'profiledirs'. + +2006-06-11 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/collection.hh: Add push_back method for + SequentialCollection, so that a std::back_insert_iterator can be used. + Include a const_reference typedef in SequentialCollection, for various + standard algorithms. + +2006-06-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/Makefile.am, src/exception_TEST, src/help_TEST, + src/install_TEST, src/list_dep_tag_categories_TEST, + src/list_repository_formats_TEST, src/list_sync_formats_TEST, + src/upgrade_TEST, src/version_TEST: Move the test scripts out of the + Makefile. + + * src/upgrade_TEST_cleanup.sh, src/upgrade_TEST_setup.sh: Add a test + for installing then upgrading a package. + +2006-06-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc: Add a PALUDIS_NO_GLOBAL_HOOKS env + var, mostly for test cases. + + * src/Makefile.am, src/install_TEST_cleanup.sh, + src/install_TEST_setup.sh: Do a full package install as part of the + test cases. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Display better counts for --install. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/args/bad_argument.hh, paludis/args/bad_value.hh, + paludis/args/missing_value.hh, paludis/default_environment.hh, + paludis/dep_list.hh, paludis/util/comparison_policy.hh.m4, + test/test_framework.hh: Fix up Doxygen grouping. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/files.m4, paludis/util/match_sequence.cc, + paludis/util/match_sequence.hh, paludis/util/match_sequence_TEST.cc: + Kill match_sequence. It's only used for one QA check, which is + probably better done using something more powerful anyway. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, ebuild/echo_functions.bash.in: Handle date in + log code, global scope. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Move us onto the 0.3 branch. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/dep_list.cc, + paludis/environment.cc, paludis/fake_repository.cc, + paludis/fake_repository.hh, paludis/match_package.cc, + paludis/package_database.cc, paludis/package_database.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/portage_repository_TEST.cc, paludis/repository.cc, + paludis/repository.hh, paludis/vdb_repository.cc, + paludis/vdb_repository.hh, src/contents.cc, src/install.cc, + src/news.cc, src/owner.cc, src/query.cc, src/sync.cc, + src/uninstall.cc: Switch to a new capabilities interface for + repositories. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/smart_record.hh.m4: Export smart record key types, for + utility functions. + +2006-06-06 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/counted_ptr.hh: Allow upcasts on construction. + +2006-06-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/build_functions.bash, ebuild/utils/Makefile.am, + ebuild/utils/emake: Move emake to an external app, like it is in + Portage, so things like xargs emake work. + +2006-06-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/unpack_functions.bash: Unpack .tar.Z files correctly. + +2006-06-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/Makefile.am.m4, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/vdb_repository.cc, src/Makefile.am, src/paludis.cc: Stop + hardcoding BIGTEMPDIR. Make the build directory a repository + configuration parameter (buildroot) instead. + +2006-06-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/environment.cc, + paludis/fake_repository.cc, paludis/fake_repository.hh, + paludis/package_database.cc, paludis/package_database.hh, + paludis/package_database_TEST.cc, paludis/portage_repository.cc, + paludis/portage_repository.hh, paludis/repository.hh, + paludis/vdb_repository.cc, paludis/vdb_repository.hh, + paludis/vdb_repository_TEST.cc: Interface tidyup. + +2006-06-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/random_TEST.cc: Make chi squared test less prone to + occasional random failures. + +2006-06-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_operator.cc, paludis/version_operator.hh, + paludis/version_operator_TEST.cc: Typo tidle -> tilde. + +2006-06-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.hh, paludis/dep_atom_flattener.hh, + paludis/dep_list.hh, paludis/test_environment.hh: Fix environment + includes. + +2006-05-29 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Tag for 0.2.5 + + + Release: 0.2.5 + +2006-05-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/hashed_containers.hh.in: Fix harmless compiler warning, + since people keep asking about it. + +2006-05-27 Stephen Bennett <spb@gentoo.org> + + * ebuild/echo_functions.bash, ebuild/echo_functions.bash.in, + configure.ac, hooks/news.bash, hooks/eselect_env_update.bash, + hooks/find_config_updates.bash: Make bash and hook output pink when + appropriate. + +2006-05-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * hooks/gnu_info_index.bash, paludis/default_environment.cc: Fix up + remaining path issues. + +2006-05-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/sed, ebuild/utils/sed.in: + Move sed -> sed.in, and only generate sed wrapper when it's needed, to + avoid path issues. + +2006-05-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, ebuild/Makefile.am, ebuild/builtin_init.bash, + ebuild/builtin_merge.bash, ebuild/builtin_unmerge.bash, + ebuild/ebuild.bash, ebuild/portage_stubs.bash, + ebuild/utils/Makefile.am, ebuild/utils/canonicalise, + ebuild/utils/merge, ebuild/utils/merge_TEST.bash, + ebuild/utils/unmerge, ebuild/utils/unmerge_TEST.bash: Make a + canonicalise wrapper, rather than using realpath or readlink -f. + Tinker with PATH ordering so that this actually works. + +2006-05-25 Robert Sebastian Gerus <arachnist@gmail.com> + + * hooks/gnu_info_index.bash, ebuild/utils/merge, ebuild/utils/getmtime, + ebuild/utils/unmerge: Add a wrapper that will call stat -f '%m' on + FreeBSD and stat -c '%Y' everywhere else. + +2006-05-25 Robert Sebastian Gerus <arachnist@gmail.com> + + * ebuild/ebuild.bash, ebuild/portage_stubs.bash, ebuild/utils/merge, + ebuild/utils/unmerge, ebuild/builtin_merge.bash, doc/Makefile.am, + ebuild/builtin_unmerge.bash: Replace readlink -f with realpath, for + portability. + +2006-05-24 Robert Sebastian Gerus <arachnist@gmail.com> + + * configure.ac, ebuild/utils/Makefile.am, ebuild/utils/sed: Add sed + wrapper script which calls gsed, installed only if sed isn't gnu sed. + +2006-05-24 Robert Sebastian Gerus <arachnist@gmail.com> + + * test/test_runner.cc: Skip glibc-specific backtrace call on non-glibc + systems. + +2006-05-24 Robert Sebastian Gerus <arachnist@gmail.com> + + * paludis/util/system_TEST.cc: Added a check for FreeBSD. + +2006-05-24 Robert Sebastian Gerus <arachnist@gmail.com> + + * /trunk/configure.ac: date --iso=seconds -> date +%Y-%m-%dT%H:%M:%S%z + for portability. + +2006-05-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec.cc, paludis/version_spec_TEST.cc: Add -try + support to version specs. + + * doc/doc_portage_differences.cc: Bring up to date. + +2006-05-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc, paludis/vdb_repository.hh: Improve error + condition handling. + +2006-05-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/system.cc: Improve error condition handling. + +2006-05-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.cc: Improve error condition handling. + + * paludis/portage_repository.cc: Use + PortageRepositoryConfigurationError rather than InternalError for + profiles where ARCH is unset. Clean up various small todo items. + + * paludis/portage_repository.cc: Don't hardcode mirror://gentoo/ as + the master mirror name. + +2006-05-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.cc, paludis/default_config.hh, + paludis/default_environment.cc, paludis/default_environment.hh, + paludis/environment.hh, paludis/portage_repository.cc, + paludis/test_environment.hh: Support a mirrors.conf file, with the + same format as thirdpartymirrors, in the config directory. + +2006-05-22 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, paludis/portage_repository_TEST.cc: Use EAPI="0" + when EAPI is unset. Improve version metadata generation tests. + +2006-05-22 Fernando J. Pereda <ferdy@gentoo.org> + + * paludis/syncer.hh, paludis/syncer.cc: Add a Syncer to sync Git + repositories (GitSyncer). + + * AUTHORS: Add myself as 'Contributor'. + +2006-05-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Tag for 0.2.4. + + + Release: 0.2.4 + +2006-05-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc: Fix ebuild metadata generation. + +2006-05-20 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/util/smart_record.hh.m4: Increase maximal number of smartrecord + entries to 15. + + * paludis/portage_repository.cc, paludis/portage_repository.hh: Turn + the location of the security advisory directory into a config item. + +2006-05-19 Stephen Bennett <spb@gentoo.org> + + * NEWS, configure.ac: Tag for 0.2.3. + + + Release: 0.2.3 + +2006-05-19 Stephen Bennett <spb@gentoo.org> + + * ebuild/kernel_functions.bash, ebuild/kernel_funtions_TEST.bash, + ebuild/ebuild.bash, ebuild/Makefile.am: Add KV_* functions imported + from functions.sh. + +2006-05-19 Stephen Bennett <spb@gentoo.org> + + * paludis/portage_repository.cc: Support removal of packages from + system set in subprofiles. + +2006-05-19 Stephen Bennett <spb@gentoo.org> + + * src/colour.hh, configure.ac: Allow a choice of colourschemes. + +2006-05-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * Makefile.am, configure.ac, eselect, eselect/Makefile.am, + eselect/news.eselect: Ship the news.eselect module as part of Paludis + for now. + +2006-05-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/Makefile.am, ebuild/digests/Makefile.am, + ebuild/utils/Makefile.am, ebuild/utils/merge_TEST_cleanup.sh, + ebuild/utils/merge_TEST_setup.sh, + ebuild/utils/unmerge_TEST_cleanup.sh, + ebuild/utils/unmerge_TEST_setup.sh, hooks/Makefile.am.m4, + paludis/Makefile.am.m4, paludis/args/Makefile.am, + paludis/config_file_TEST_cleanup.sh, + paludis/config_file_TEST_setup.sh, + paludis/portage_repository_TEST_cleanup.sh, + paludis/portage_repository_TEST_setup.sh, paludis/qa/Makefile.am.m4, + paludis/qa/file_permissions_check_TEST_cleanup.sh, + paludis/qa/file_permissions_check_TEST_setup.sh, + paludis/qa/has_ebuilds_check_TEST_cleanup.sh, + paludis/qa/has_ebuilds_check_TEST_setup.sh, + paludis/qa/has_misc_files_check_TEST_cleanup.sh, + paludis/qa/has_misc_files_check_TEST_setup.sh, + paludis/qa/package_name_check_TEST_cleanup.sh, + paludis/qa/package_name_check_TEST_setup.sh, + paludis/util/Makefile.am.m4, + paludis/util/dir_iterator_TEST_cleanup.sh, + paludis/util/dir_iterator_TEST_setup.sh, + paludis/util/fs_entry_TEST_cleanup.sh, + paludis/util/fs_entry_TEST_setup.sh, + paludis/util/is_file_with_extension_TEST_setup.sh, + paludis/vdb_repository_TEST_cleanup.sh, + paludis/vdb_repository_TEST_setup.sh, src/Makefile.am, + src/qualudis/Makefile.am, test/Makefile.am, test/run_test.sh: Use bash + rather than sh, since we already require it anyway and BSD sh sucks. + +2006-05-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec_TEST.cc: Check tilde comparison behaviour. + +2006-05-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc, paludis/portage_repository_TEST.cc, + paludis/portage_repository_TEST_setup.sh: Handle ebuilds with really + broken metadata more gracefully. + +2006-05-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Fix text alignment issue when displaying tags. + +2006-05-17 Stephen Bennett <spb@gentoo.org> + + * ebuild/echo_functions.bash: Add our own implementations of einfo and + friends to avoid depending on functions.sh. + +2006-05-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, paludis/ebuild.cc, paludis/ebuild.hh: Emulate + various Portage internals. + +2006-05-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_unmerge.bash: Don't sandbox unmerging from /, to work + around a sandbox 'feature'. + +2006-05-15 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/command_line.cc, src/command_line.hh, src/list.cc: Add + --repository, --category, --package filter options for the --list + actions. + +2006-05-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am: Fix distcheck. + +2006-05-14 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_lexer.cc, paludis/dep_lexer.hh, + paludis/dep_lexer_TEST.cc, paludis/dep_list.cc, + paludis/dep_list_TEST.cc, paludis/dep_parser.cc, + paludis/dep_parser.hh, paludis/dep_parser_TEST.cc, paludis/ebuild.cc, + paludis/environment.cc, paludis/fake_repository.cc, paludis/files.m4, + paludis/portage_repository.cc, paludis/vdb_repository.cc, + paludis/version_metadata.cc, paludis/version_metadata.hh, + src/install.cc, src/query.cc, paludis/portage_dep_lexer.cc, + paludis/portage_dep_lexer.hh, paludis/portage_dep_lexer_TEST.cc, + paludis/portage_dep_parser.cc, paludis/portage_dep_parser.hh, + paludis/portage_dep_parser_TEST.cc: Move DepParser -> + PortageDepParser, DepLexer -> PortageDepLexer, abstract out remaining + parser calls into VersionMetadata. + +2006-05-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/tokeniser.cc: Generalise the WhitespaceTokeniser to + include newlines. + + * paludis/config_file.cc, paludis/default_config.cc, + paludis/default_environment.cc, paludis/portage_repository.cc, + paludis/vdb_repository.cc: Switch to using WhitespaceTokeniser rather + than separate instances. + +2006-05-13 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_list.cc, paludis/dep_list_TEST.cc, paludis/dep_parser.cc, + paludis/dep_parser.hh, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/environment.cc, paludis/fake_repository.cc, + paludis/match_package.cc, paludis/portage_repository.cc, + paludis/portage_repository_TEST.cc, paludis/vdb_repository.cc, + paludis/version_metadata.cc, paludis/version_metadata.hh, + src/install.cc, src/query.cc: Rework VersionMetadata to be far less + ebuild-centric. + + * paludis/util/compare.hh: Avoid using always_inline, it breaks in + various weird circumstances. + + * paludis/util/files.m4, paludis/util/tokeniser.cc, + paludis/util/tokeniser.hh: Add a singleton WhitespaceTokeniser class, + rather than declaring them all over the place. + +2006-05-08 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge, ebuild/utils/unmerge: Avoid temporarily removing + symlinks where possible. + +2006-05-07 Danny van Dyk <kugelfang@gentoo.org> + + * ebuild/utils/merge: Add 'hash -r' after removal of symlinks. + + + Fixes: Berlios#7414. + +2006-05-07 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_merge.bash: Switch off sandbox when merging to / to + avoid sandbox getting upset when its own files get replaced. + + + Fixes: Berlios#7402. + +2006-05-06 Stephen Bennett <spb@gentoo.org> + + * src/install.cc: Display use.force info in --install output. + +2006-05-06 Stephen Bennett <spb@gentoo.org> + + * paludis/repository.hh, paludis/vdb_repository.hh, + paludis/vdb_repository.cc, paludis/fake_repository.hh, + paludis/fake_repository.cc, paludis/portage_repository.hh, + paludis/portage_repository.cc, paludis/portage_repository_TEST.cc, + paludis/portage_repository_TEST_setup.sh: use.force, package.use.force + support. + +2006-05-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am: Make clean, maintainer-clean remove the html/ + generated content. + +2006-05-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Update for 0.2.2. + + + Release: 0.2.2 + +2006-05-05 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/dep_tag.cc, + paludis/dep_tag.hh, paludis/environment.cc, + paludis/portage_repository.cc, paludis/vdb_repository.cc, + src/install.cc: Rework dep tagging, and use it more heavily. + +2006-05-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/pkg_setup.bash: Allow extra pkg_ sandbox privs in pkg_setup. + +2006-05-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/query.cc: Explain the mask reasons shown with --query via a key. + +2006-05-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: Don't try Gentoo mirrors for + RESTRICT=mirror packages. + +2006-05-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash: Add /var/cache to the sandbox writelist. + +2006-05-04 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/build_functions.bash: Pass along quotes properly when calling + econf. + + + Fixes: Berlios#7358. + +2006-05-03 Ilya A. Volynets-Evenbakh <ilya@total-knowledge.com> + + * ebuild/util/Makefile.am: use $< and $@ to refer to lib input and + output files, in order to avoid out-of-tree build breackage + +2006-05-03 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository_TEST.cc, test/test_framework.cc, + test/test_framework.hh: Don't try to run tests that launch sandbox if + sandbox is already active. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * hooks/Makefile.am.m4, hooks/news.bash: Add GLEP 42 (News items) + hooks. + + * paludis/config_file.cc, paludis/config_file.hh: Add GLEP 42 news + item file class. + + * paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/repository.hh: Add repository support for creating unread news + file lists. + + * src/Makefile.am, src/command_line.cc, src/command_line.hh, + src/install.cc, src/news.cc, src/news.hh, src/paludis.cc: Add + --update-news internal action. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_config.hh, paludis/default_environment.cc: Pass + HOOK_LOG_LEVEL, HOOK_CONFIG_SUFFIX to hooks. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/sync.cc: Hooks now get called even if repository names aren't + passed on the commandline. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_atom.cc, paludis/dep_atom_TEST.cc: Parse =foo/bar-scm + and the like correctly. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry_TEST_setup.sh: Add a one second delay and an + extra touch, to try to avoid tests occasionally failing when checking + mtime / ctime. + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * NEWS, configure.ac: Update for 0.2.1. + + + Release: 0.2.1 + +2006-05-02 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/doc_news.doxygen, doc/header.html: Add a NEWS + docs page. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/pkg_nofetch.bash, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/portage_repository.cc: Better nofetch support. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/system.cc: Don't spawn sandbox if we're already + sandboxed. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/query.cc: Tell the user if they try to query a set. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/util/smart_record.hh.m4: Add file package sets to Portage + format repositories. + + + Fixes: Berlios#FR2184. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * hooks/Makefile.am.m4: Rework to avoid breaking distcheck's uninstall + checks. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc: Don't display the "key lookup failed" + warning for VDB entries where the file is missing. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc: USE may contain -flags. Ignore them. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/applets.cc: Don't include the ::repo in --best-version output, + it confuses built_with_use. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/default_environment.hh, + paludis/environment.cc, paludis/environment.hh, + paludis/test_environment.hh: Allow hooks to have additional associated + environment variables. + + * src/install.cc, src/sync.cc, src/uninstall.cc: Provide appropriate + environment variables for hooks. + + * hooks/Makefile.am.m4, hooks/log.bash: Add hook script for creating + paludis.log entries. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen: Use cat <<"END" to avoid having to + escape the dollar signs. Thanks to ecatmur. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_portage_differences.doxygen, paludis/default_environment.cc, + paludis/default_environment.hh, paludis/environment.cc, + paludis/environment.hh: Support user defined package sets. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Display EAPI in mask reasons, like we do for licence + and keywords. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen: Update with new overlay URL. + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + + Release: 0.2.0 + +2006-05-01 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Don't add to world if --fetch is specified. + +2006-05-01 Stephen Bennett <spb@gentoo.org> + + * NEWS, configure.ac: Paludis 0.2.0. + +2006-04-30 Stephen Bennett <spb@gentoo.org> + + * ebuild/build_functions.bash: Killed some overzealous quoting in + einstall that was breaking some packages. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/Makefile.am, ebuild/utils/dolib.a, + ebuild/utils/dolib.so, ebuild/utils/newlib.a, ebuild/utils/newlib.so, + ebuild/utils/dolib.a.in, ebuild/utils/dolib.so.in, + ebuild/utils/newlib.a.in, ebuild/utils/newlib.so.in: Try to work + around svn ignoring things. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * hooks/Makefile.am.m4: Fix EXTRA_DIST for distribution tarballs. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/digests/Makefile.am: Fix include path. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/doxygen.conf.in, doc/footer.html, + doc/header.html, doc/paludis.css: Replace the icky default Doxygen + style with a marginally less icky style stolen from libebt. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * autogen.bash, ebuild/utils/dobin_TEST.bash, hooks/Makefile.am -> + hooks/Makefile.am.m4: Restructure hooks Makefile and dobin tests to + avoid breaking distcheck. + + + Fixes: Berlios#7328. + + Fixes: Berlios#7326. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/syncer.cc: Make the local directory when syncing via rsync. + +2006-04-30 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.cc, paludis/util/fs_entry.hh, + paludis/util/fs_entry_TEST.cc: Add a mkdir method to FSEntry. + +2006-04-29 Stephen Bennett <spb@gentoo.org> + + * ebuild/build_functions.bash: Make einstall pass libdir= to make. + + + Fixes: Berlios#7305. + +2006-04-29 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh: + Rework of the built-in security set. + +2006-04-28 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/contents.cc, paludis/contents.hh, + paludis/fake_repository.cc, paludis/fake_repository.hh, + paludis/files.m4, paludis/package_database.cc, + paludis/package_database.hh, paludis/portage_repository.cc, + paludis/portage_repository.hh, paludis/repository.hh, + paludis/vdb_repository.cc, paludis/vdb_repository.hh: Provide a way of + querying the contents of a package. + + * src/Makefile.am, src/colour.hh, src/command_line.cc, + src/command_line.hh, src/contents.cc, src/contents.hh, src/owner.cc, + src/owner.hh, src/paludis.cc: Add --owner and --contents actions. + +2006-04-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec.cc, paludis/version_spec_TEST.cc: Allow scm-rX + on unversioned packages. + +2006-04-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/unpack_functions.bash: Make unpack know how to extract .ar + and .deb files. + +2006-04-27 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen: Add gettext to the suggested test + blacklist. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/Makefile.am, src/install.cc, src/licence.cc, src/licence.hh, + src/query.cc: Use the fancy licence displayer for --query as well as + --install. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc: Load HOMEPAGE, DESCRIPTION. + + * src/query.cc: Prefer installed packages over uninstalled packages, + even if there are newer versions of uninstalled packages, when + displaying query output. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/environment.cc: Handle || ( ) in LICENSE properly. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/digests/Makefile.am, ebuild/digests/dormd160, + ebuild/digests/dormd160.cc, ebuild/digests/dormd160_TEST.cc, + ebuild/digests/rmd160.cc, ebuild/digests/rmd160.hh: Implement our own + RMD160 too, to avoid an OpenSSL dependency. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Display keywords for masked packages, like we do for + licences. + +2006-04-26 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/paludis.cc: Show whether sandbox is enabled with --version. + +2006-04-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am: Don't tinker with Doxygen niceness. + + * doc/doc_bootstrap_howto.doxygen: Update with information about + avoiding sandbox and test issues with Python, avoiding test issues + with various packages, apr's pickiness and various wording and + formatting tweaks. + + * configure.ac, ebuild/Makefile.am, ebuild/builtin_fetch.bash, + ebuild/builtin_init.bash, ebuild/builtin_merge.bash, + ebuild/builtin_strip.bash, ebuild/builtin_unmerge.bash, + ebuild/ebuild.bash, ebuild/pkg_postinst.bash, ebuild/pkg_postrm.bash, + ebuild/pkg_preinst.bash, ebuild/pkg_prerm.bash, + ebuild/sandbox_stubs.bash, ebuild/utils/doconfd, ebuild/utils/doenvd, + ebuild/utils/doinitd, ebuild/utils/doins, ebuild/utils/dolib.a, + ebuild/utils/dolib.so, ebuild/utils/donewins, ebuild/utils/newbin, + ebuild/utils/newconfd, ebuild/utils/newdoc, ebuild/utils/newenvd, + ebuild/utils/newexe, ebuild/utils/newinitd, ebuild/utils/newins, + ebuild/utils/newlib.a, ebuild/utils/newlib.so, ebuild/utils/newman, + ebuild/utils/newsbin, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/util/system.cc, paludis/util/system.hh, ebuild/sandbox.bash: + Support sandbox. + +2006-04-25 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_bootstrap_howto.doxygen: Our list of required licences was + slightly too short. Extend it. + +2006-04-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * Makefile.am, configure.ac, ebuild/Makefile.am, + ebuild/builtin_merge.bash, ebuild/builtin_updateenv.bash, + ebuild/depend.bash, ebuild/ebuild.bash, hooks, hooks/Makefile.am, + hooks/eselect_env_update.bash, hooks/find_config_updates.bash, + hooks/gnu_info_index.bash, paludis/Makefile.am.m4, + paludis/default_config.cc, paludis/default_config.hh, + paludis/default_environment.cc, paludis/default_environment.hh, + paludis/ebuild.cc, paludis/environment.hh, + paludis/test_environment.hh, src/install.cc, src/sync.cc, + src/uninstall.cc, ebuild/builtin_metadata.bash: Rename depend ebuild + action to metadata and remove updateenv action. Add a hooks framework. + Use hooks for running eselect env update, updating GNU info + directories and checking for configuration files. + + * ebuild/echo_functions.bash: Fix log output when redirected. + + * doc/doc_portage_differences: We have hooks. + +2006-04-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry_TEST.cc, paludis/util/fs_entry_TEST_setup.sh: + Add further symlink behaviour checks. + + * paludis/util/is_file_with_extension.cc: Also allow symlinks to + files. + +2006-04-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge: Name CONFIG_PROTECTed files in the same way + Portage does. + +2006-04-24 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_references.doxygen, doc/doxygen.conf.in, + paludis/util/files.m4, paludis/util/random.cc, paludis/util/random.hh, + paludis/util/random_TEST.cc: Don't use the c random number functions + that have global state, use our own instead. + +2006-04-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/Makefile.am, doc/doc_mainpage.doxygen, + doc/doc_portage_differences.doxygen: Extend documentation to include how + we differ from Portage. + +2006-04-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/dep_atom.cc, + paludis/dep_atom.hh, paludis/dep_atom_TEST.cc, paludis/dep_list_TEST.cc, + paludis/match_package.cc, paludis/portage_repository.cc: Enable [use] + dependencies (library only, no nice user interface to them at present). + Enhance priority of use.mask. Add circular detection for per package use + masking when [use] deps are used, to avoid infinite recursion. + +2006-04-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac: Don't enable QA ever, for now. + +2006-04-23 Ciaran McCreesh <ciaranm@ciaranm.org> + + * configure.ac, ebuild/Makefile.am, ebuild/builtin_fetch.bash, + ebuild/digests, ebuild/digests/Makefile.am, ebuild/digests/domd5, + ebuild/digests/dormd160, ebuild/digests/dosha256.cc, + ebuild/digests/dosha256_TEST.cc, ebuild/digests/sha256.cc, + ebuild/digests/sha256.hh: Split out digest checks into separate + programs, to make ferringb happy. Add our own SHA-256 implementation + to avoid pulling in nasty dependencies. + +2006-04-23 Stephen Bennett <spb@gentoo.org> + + * paludis/repository.hh, paludis/portage_repository.hh, + paludis/fake_repository.hh, paludis/vdb_repository.hh, + paludis/portage_repository.cc, paludis/portage_repository_TEST.cc, + paludis/portage_repository_TEST_setup.sh, paludis/fake_repository.cc, + paludis/vdb_repository.cc, src_install.cc: Per-package USE masking + support. + +2006-04-21 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/default_environment.cc, paludis/dep_list.cc, + paludis/match_package.cc, paludis/match_package.hh, + paludis/package_database.cc, paludis/package_database.hh, + paludis/package_database_TEST.cc, paludis/portage_repository.cc, + paludis/test_environment.cc: Switch match_package to take Environment + rather than PackageDatabase as its first argument, since we're not + using multiple DBs per environment any more. + +2006-04-20 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec.cc: Don't do silly things when given "0" as a + version. + +2006-04-20 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/smart_record.hh.m4: Intel's compiler handles partial + specialisation slightly differently. Make the char * to string type + conversion work. + +2006-04-20 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec.cc: Fix STL usage issues that can cause + segfaults with Intel's compiler. + +2006-04-20 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/args/args.cc, paludis/args/args.hh, + paludis/args/args_TEST.cc, paludis/args/args_dumper.cc, + paludis/args/args_dumper.hh, paludis/args/args_error.cc, + paludis/args/args_error.hh, paludis/args/args_group.cc, + paludis/args/args_group.hh, paludis/args/args_handler.cc, + paludis/args/args_handler.hh, paludis/args/args_option.cc, + paludis/args/args_option.hh, paludis/args/args_visitor.cc, + paludis/args/args_visitor.hh, paludis/dep_atom.hh, + paludis/dep_atom_flattener.hh, paludis/dep_list.hh, + paludis/dep_parser.cc, paludis/dep_tag.hh, paludis/ebuild.hh, + paludis/environment.cc, paludis/fake_repository.hh, + paludis/hashed_containers.cc, paludis/portage_repository.cc, + paludis/repository.hh, paludis/syncer.hh, paludis/test_extras.cc, + paludis/version_operator.hh, src/command_line.hh, src/install.cc, + src/paludis.cc: Last batch of code docs changes for now. + +2006-04-20 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/util/attributes.hh, + paludis/util/collection.hh, paludis/util/compare.hh, + paludis/util/composite_pattern.hh, paludis/util/container_entry.hh, + paludis/util/counted_ptr.hh, paludis/util/counted_ptr_TEST.cc, + paludis/util/deleter.cc, paludis/util/deleter.hh, + paludis/util/deleter_TEST.cc, paludis/util/destringify.cc, + paludis/util/destringify.hh, paludis/util/destringify_TEST.cc, + paludis/util/dir_iterator.cc, paludis/util/dir_iterator.hh, + paludis/util/dir_iterator_TEST.cc, paludis/util/exception.cc, + paludis/util/exception.hh, paludis/util/files.m4, + paludis/util/fs_entry.cc, paludis/util/fs_entry.hh, + paludis/util/fs_entry_TEST.cc, paludis/util/instantiation_policy.cc, + paludis/util/instantiation_policy.hh, + paludis/util/instantiation_policy_TEST.cc, paludis/util/is_const.cc, + paludis/util/is_const.hh, paludis/util/is_const_TEST.cc, + paludis/util/is_file_with_extension.cc, + paludis/util/is_file_with_extension.hh, + paludis/util/is_file_with_extension_TEST.cc, paludis/util/iterator.hh, + paludis/util/iterator_TEST.cc, paludis/util/join.cc, + paludis/util/join.hh, paludis/util/join_TEST.cc, paludis/util/log.cc, + paludis/util/log.hh, paludis/util/log_TEST.cc, + paludis/util/match_sequence.cc, paludis/util/match_sequence.hh, + paludis/util/match_sequence_TEST.cc, + paludis/util/private_implementation_pattern.cc, + paludis/util/private_implementation_pattern.hh, + paludis/util/pstream.cc, paludis/util/pstream.hh, + paludis/util/pstream_TEST.cc, paludis/util/random.cc, + paludis/util/random.hh, paludis/util/save.cc, paludis/util/save.hh, + paludis/util/save_TEST.cc, paludis/util/smart_record.hh.m4, + paludis/util/smart_record_TEST.cc, paludis/util/stringify.hh, + paludis/util/stringify_TEST.cc, paludis/util/strip.cc, + paludis/util/strip.hh, paludis/util/strip_TEST.cc, + paludis/util/system.cc, paludis/util/system.hh, + paludis/util/system_TEST.cc, paludis/util/test_extras.cc, + paludis/util/tokeniser.hh, paludis/util/tokeniser_TEST.cc, + paludis/util/validated.hh, paludis/util/validated_TEST.cc, + paludis/util/virtual_constructor.hh, + paludis/util/virtual_constructor_TEST.cc, paludis/util/visitor.hh, + paludis/util/visitor_TEST.cc: Fix up docs for paludis/util/ . + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/package_database.cc, + paludis/package_database.hh, paludis/package_database_TEST.cc, + paludis/portage_repository.cc, paludis/portage_repository.hh, + paludis/portage_repository_TEST.cc, paludis/repository.cc, + paludis/repository.hh, paludis/syncer.cc, paludis/syncer.hh, + paludis/test_environment.cc, paludis/test_environment.hh, + paludis/test_extras.cc, paludis/vdb_repository.cc, + paludis/vdb_repository.hh, paludis/vdb_repository_TEST.cc, + paludis/version_metadata.cc, paludis/version_metadata.hh, + paludis/version_operator.cc, paludis/version_operator.hh, + paludis/version_operator_TEST.cc, paludis/version_spec.cc, + paludis/version_spec.hh, paludis/version_spec_TEST.cc: And the rest of + the docs for paludis/. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/utils/merge_TEST.bash, ebuild/utils/unmerge_TEST.bash: + Support autotools "build somewhere else" mode. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc, src/sync.cc, src/uninstall.cc: Stop relying upon + namespaces being pulled in magically. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, paludis/ebuild.cc, paludis/ebuild.hh, + paludis/environment.cc, paludis/environment.hh, + paludis/fake_repository.cc, paludis/fake_repository.hh, + paludis/hashed_containers.cc, paludis/hashed_containers.hh.in, + paludis/hashed_containers_TEST.cc, paludis/mask_reasons.cc, + paludis/mask_reasons.hh, paludis/match_package.cc, + paludis/match_package.hh, paludis/name.cc, paludis/name.hh, + paludis/name_TEST.cc: Some more progress on the documentation rework. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/ebuild.bash, ebuild/echo_functions.bash, paludis/util/log.cc, + paludis/util/log.hh, src/paludis.cc: Add program name and time to log + messages. + + * paludis/vdb_repository.cc: Add debug messages for operations that + are expected to be slow. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_main.doxygen, doc/doc_namespaces.doxygen, + paludis/about.hh.in, paludis/about_TEST.cc, paludis/config_file.cc, + paludis/config_file.hh, paludis/config_file_TEST.cc, + paludis/default_config.cc, paludis/default_config.hh, + paludis/dep_atom.cc, paludis/dep_atom.hh, paludis/dep_atom_TEST.cc, + paludis/dep_atom_dumper.cc, paludis/dep_atom_dumper.hh, + paludis/dep_atom_dumper_TEST.cc, paludis/dep_atom_flattener.cc, + paludis/dep_atom_flattener.hh, paludis/dep_atom_pretty_printer.cc, + paludis/dep_atom_pretty_printer.hh, paludis/dep_lexer.cc, + paludis/dep_lexer.hh, paludis/dep_lexer_TEST.cc, + paludis/dep_parser.cc, paludis/dep_parser.hh, + paludis/dep_parser_TEST.cc, paludis/dep_tag.cc, paludis/dep_tag.hh: + First part of the documentation rework, plus minor formatting and code + style fixes. More to come. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/Makefile.am, src/applets.cc, src/applets.hh, + src/command_line.cc, src/command_line.hh, src/paludis.cc: Add + --list-dep-tag-categories and related test. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/doc_mainpage.doxygen, doc/HOWTO.rst, doc/doc_changelog.doxygen, + doc/Makefile.am, doc/doc_bootstrap_howto.doxygen, Makefile.am, + README: Rework the documentation. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/version_spec_TEST.cc, paludis/version_spec.cc, + paludis/version_spec.hh: Add support for -scm versions. Rework + version spec internals to be substantially cleaner. Make the tests a + lot more extensive. + +2006-04-19 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/compare.hh, paludis/util/smart_record_TEST.cc: Make + CompareByAll comparisons work correctly. + +2006-04-18 Stephen Bennett <spb@gentoo.org> + + * paludis/portage_repository.cc: Fix compiler warning. + +2006-04-18 Stephen Bennett <spb@gentoo.org> + + * paludis/fake_repository.cc, paludis/vdb_repository.cc, + paludis/default_environment.cc, paludis/fake_repository.hh, + paludis/vdb_repository.hh, paludis/repository.hh, + paludis/portage_repository.cc, paludis/vdb_repository_TEST.cc, + paludis/vdb_repository_TEST_setup.sh, paludis/package_database.hh, + paludis/portage_repository.hh, paludis/package_database_entry.hh: + Support querying of USE from VDBRepository. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository_TEST.cc, paludis/portage_repository.cc, + paludis/portage_repository_TEST_setup.sh: Ignore any weird version specs + with a warning, rather than bombing out. + +2006-04-18 Stephen Bennett <spb@gentoo.org> + + * ebuild/build_functions.bash: Replace non-existant ${PREFIX} with /usr. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * src/install.cc: Fix (5 of 4) style counts caused by incrementing the + package counter when cleaning. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.hh: Explicitly include fs_entry, rather than + relying upon magic. + + * paludis/files.m4, paludis/vdb_repository_TEST_cleanup.sh, + paludis/vdb_repository_TEST_setup.sh, paludis/vdb_repository_TEST.cc: + Some very crude VDB repo tests. + +2006-04-18 Stephen Bennett <spb@gentoo.org> + + * ebuild/ebuild.bash: Export variables set in make.defaults. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.hh, paludis/portage_repository.cc, paludis/ebuild.cc: + Provide A during the ebuild build phase. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * doc/HOWTO.rst: Add a note about the backslashes being for cat. + +2006-04-18 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: Fix SLOT being set to an empty string + for some non-default virtual providers. + +2006-04-18 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/config_file.cc, paludis/config_file.hh: Fix typo. + + * paludis/portage_repository.cc: Fix return value for an empty + security package set. Fix whitespaces. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/dep_tag.cc, paludis/dep_list.cc, paludis/vdb_repository.cc, + paludis/files.m4, paludis/dep_atom.hh, paludis/dep_list.hh, + paludis/dep_tag.hh, paludis/portage_repository.cc, paludis/dep_atom.cc: + Turn dep tags into a proper class. Associate some basic GLSA information + with GLSA tags (future expansion expected). + + * src/install.cc: Display new style dep tags. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/iterator.hh: Add convenience indirect_iterator generation + function. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/ebuild.cc, paludis/ebuild.hh, paludis/files.m4, + paludis/portage_repository.cc, paludis/repository.cc, + paludis/repository.hh, paludis/vdb_repository.cc: Split ebuild + execution code out into its own EbuildCommand classes. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/config_file.cc: Typo fix. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/fs_entry.hh, paludis/util/fs_entry.cc, + paludis/util/fs_entry_TEST.cc: Remove automatic cast from FSEntry to + std::string, since all it does is lead to silly bugs going undetected + at compile time. + + * paludis/vdb_repository.cc, paludis/portage_repository.cc: Don't rely + upon automatic casts from FSEntry to std::string. + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/config_file_TEST.cc: Provide overloaded constructors that take + an FSEntry rather than a std::string. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.hh: Sync is a string, not a filesystem + entry. + +2005-04-17 Danny van Dyk <kugelfang@gentoo.org> + + * paludis/config_file.cc, paludis/config_file.hh, + paludis/dep_parser.cc, paludis/dep_parser.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh: + Implement built-in 'security' package set. + +2006-04-17 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc: Fix VDBEntry's operator< to return false + rather than an undefined value on equality. + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/vdb_repository.cc, paludis/vdb_repository.hh, + paludis/portage_repository.cc, paludis/portage_repository.hh: Use a + smart record for the constructor, allowing named parameters to be + provided, rather than passing around huge parameter lists containing + lots of things of the same type + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/util/smart_record.hh.m4, paludis/util/smart_record_TEST.cc: + Add support for named parameters to smart records. + +2006-04-16 Stephen Bennett <spb@gentoo.org> + + * paludis/portage_repository.cc, ebuild/ebuild.bash: Support multiple + inheritance in profiles. + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * ebuild/builtin_fetch.bash: After a failed fetch, wget has a tendency + to leave zero byte files lying around. When checking for existing + files in DISTDIR in builtin_fetch, if the file is zero bytes in size + then delete and refetch it. + + + Fixes: Berlios#7163. + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: Remove iostream include, it was only + there for early debugging code and adds overhead (see TC++SL 13.2.3). + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc, ebuild/builtin_tidyup.bash, + ebuild/ebuild.bash, ebuild/builtin_updateenv.bash, ebuild/Makefile.am: + Split out the eselect env update call from builtin_tidyup into a new + builtin_updateenv, making SKIP_FUNCTIONS="tidyup" a lot more sensible. + +2006-04-16 Ciaran McCreesh <ciaranm@ciaranm.org> + + * paludis/portage_repository.cc: Expand mirror:// components that have + a path before the filename correctly. + + + Fixes: Berlios#7161. + diff --git a/0.8.0/Makefile.am b/0.8.0/Makefile.am new file mode 100644 index 000000000..e587cc394 --- /dev/null +++ b/0.8.0/Makefile.am @@ -0,0 +1,38 @@ +CLEANFILES = *~ done-check gmon.out *.gcov *.gcno *.gcda automake-deps-hack.tmp +MAINTAINERCLEANFILES = Makefile.in configure config/* aclocal.m4 \ + config.h config.h.in INSTALL COPYING +AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip std-options +EXTRA_DIST = autogen.bash automake-deps-hack.tmp +SUBDIRS = misc test paludis cran ebuild ruby src doc hooks eselect + +DISTCHECK_CONFIGURE_FLAGS = --enable-qa --enable-ruby --enable-glsa --with-ruby-install-dir='$${prefix}/ruby_dir' + +automake-deps-hack.tmp : + $(MAKE) -C paludis/util + $(MAKE) -C paludis/args + $(MAKE) -C paludis/qa message-sr.hh + $(MAKE) -C src libcolour.a + $(MAKE) -C src/paludis paludis.1 + $(MAKE) -C src/qualudis qualudis.1 + touch $@ + +dist-hook : + rm $(distdir)/automake-deps-hack.tmp + +doxygen : + $(MAKE) -C doc doxygen + +upload-homepage : + $(MAKE) -C doc upload-homepage + +check-local : + touch $(top_builddir)/done-check + +install-data-local : + @[ -f $(top_builddir)/done-check ] || echo || true + @[ -f $(top_builddir)/done-check ] || echo "**************************************" || true + @[ -f $(top_builddir)/done-check ] || echo "Looks like you didn't run 'make check'" || true + @[ -f $(top_builddir)/done-check ] || echo " No cookies for you today. " || true + @[ -f $(top_builddir)/done-check ] || echo "**************************************" || true + @[ -f $(top_builddir)/done-check ] || echo || true + diff --git a/0.8.0/NEWS b/0.8.0/NEWS new file mode 100644 index 000000000..97a723447 --- /dev/null +++ b/0.8.0/NEWS @@ -0,0 +1,294 @@ +News for Paludis +================ + +This file lists the major changes between versions. For a more detailed list +of every change, see the ChangeLog. + +0.8.0: + * A Ruby interface is now available. + + * qualudis: Various deprecated functions are flagged. Maintainer + information is now included in the output. + + * The deplist has been rewritten to be much cleaner and much more sensible + in its handling of virtuals. It can now reinstall packages if USE flags have + changed, and can display why a package is being installed. + + * The security set for Portage format repositories no longer requires an + external preprocessor. paludis -pi security will now work off a raw sync. + +0.6.7: + * The qualudis client now checks that Manifest files are signed. + + * Various minor bug fixes. + + * We now define a PKGMANAGER environment variable and vdb entry. + +0.6.6: + * Using * -* in use.conf no longer implies -* for USE_EXPAND variables. + + * A new NoConfigEnvironment is provided to make things easier for tool + writers. + + * The adjutrix client now has a reverse dependencies search facility. + +0.6.5: + * The USE_EXPAND code has been simplified, and numerous bugs fixed in the + process. + + * A new --list-sets action is available. + + * For --query, visible packages are now chosen over invisible packages. + + * When a package install fails, the paludis client now displays a command + that can be used to resume the current task. + +0.6.4: + * A bug that could cause highly strange behaviour with virtuals when using + multiple profiles is fixed. + + * All package sets are now composite. Previously some were instead selected + from only one repository, which was confusing behaviour and not as useful as + originally suspected. + +0.6.3: + * -* now works properly. + + * The adjutrix keywords graph is now SLOT aware. + +0.6.2: + * A bug preventing recursion from behaving correctly in dohtml is fixed. + + * Ebuild hooks can now use 'die'. + + * The eselect news client has several new options. + + * Portage doesn't always add a newline to the last line in world. We now + work around this. + + * use.conf now supports -*, to prevent inheriting profile defaults. + + * CONFIG_PROTECT and CONFIG_PROTECT_MASK now recognise -target and -*. + + * The adjutrix client has several new actions that will be of use to arch + and release teams. + +0.6.1: + * A bug in dosym is fixed, meaning that Java packages, amongst others, can + now be installed. + + * Profile package.mask files can now remove entries from inherited profiles. + + * libdir is now set properly by econf when an ebuild specifies --prefix. + This should fix installing of KDE, amongst others. + + * More sanity checking is now done both of the build environment and at + runtime. + +0.6.0: + * elog will now write to PALUDIS_ELOG_FILE, if defined, as well as + displaying on screen. + + * Virtuals are now handled entirely dynamically and are not written to vdb. + + * Support for CRAN (the Comprehensive R Archive Network) repositories is now + available. + + * Manual (man) pages are now provided. + + * Logic for complex operations such as installing and uninstalling has been + moved out of the client code and into separate task classes. + + * Repository formats are now dynamically loaded from .so files rather than + being compiled in. + + * libwrapiter is now used to simplify iterator interfaces and reduce compile + times. + + * Much better handling of Portage-generated VDB entries. + + * For VDB repository entries, all USE flags are marked as masked / forced. + + * --query on virtuals is more useful. USE flags are displayed for --query. + Sets can be shown with --query. + + * New client: adjutrix, a tool for developers and arch teams. + +0.4.4: + * In key/value configuration files, line continuations inside a quoted + string with no backslash is now a warning, not an error. + + * REAL_CHOST is now exported automatically, to avoid problems with + gcc-config when Portage is not installed. + + * Support for newer libselinux /proc voodoo. + + * svn+https:// is recognised for syncing. + + * Huge speed improvements when merging. + + * portageq vdb_path is now emulated. + + * Fail hooks for ebuild phases are available. + +0.4.3: + * An infinite loop on unmerge bug has been fixed. + +0.4.2: + * CONFIG_PROTECT now works as expected for ROOT=/. + + * Unmerging Portage-installed packages with ROOT=/ will no longer have + strange eclass issues. + +0.4.1: + * Unmerging Portage-installed packages with ROOT=/ will no longer trigger + sandbox problems. + + * Category names can now include dot characters (crossdev requires this for + some CHOST values). + + * Use of colour is more consistent. + + * Lots of doxygen and code cleanup. + +0.4.0: + * Lots of internal code cleanup. + + * Doxygen generated documentation is much cleaner. Documentation about + configuration file formats is now provided. + + * The build directory for Portage format repositories is now configurable + using a parameter named 'buildroot'. + + * --pretend --install now displays detailed counts ('1 upgrade, 3 new') + rather than just a raw number. USE_EXPAND flags are displayed in a much + more useful manner. + + * As part of the test suite, various full installs of test packages are + now performed. + + * Multiple eclass directories and multiple profile directories can now + be specified for Portage format repositories. The 'eclassdir' and + 'profiledir' keys are now deprecated in favour of 'eclassdirs' and + 'profiledirs'. + + * New commandline options: --list-vulnerabilities, mostly for use by + tree maintainers; --dl-no-unnecessary-upgrades, for avoiding upgrades of + dependencies; --environment-variable which can be used to print + the value of an environment variable for an installed or uninstalled + package; similarly, --configuration-variable can be used to get a repository + configuration variable; --info, as per portage. + + * A new repository format named "nothing" is available. It does not + contain any packages, but supports a sync parameter to make automatically + syncing other directories simpler. + + * Fetching is now handled via wrapper scripts. Support for file:/// URLs + has been added. + + * If the user mirrors.conf file contains an entry with a mirror named '*', + first try fetching everything from that location. + + * A warning is now emitted when dropping circular dependencies. + + * The merge / unmerge code is now written in C++ rather than bash, and the + MD5 implementation is now internal rather than relying upon 'md5sum', which + works around problems when upgrading libc. When upgrading and downgrading, + sh breakages due to library version changes are less likely to be a problem. + + * xterm titles are now updated for syncing, similar to previous behaviour + for installing. + + * Syncing via Subversion over HTTP (svn+http://) has been enabled. + + * Improved Portage compatibility: .tar.Z files are now unpacked correctly; + the 'date' command in ebuild global scope now works with a warning, rather + than being a hard failure; use of * with operators other than equals in dep + atoms is now a QA warning rather than a fatal error; PVR and AA are + supported, and A and AA do not include extra whitespace; dosym now calls + dodir as necessary as per Portage 2.1; elog is available. + + * Some log messages include program context, to make finding the cause + of the problem simpler. + + * The repository whence a package originates is saved in VDB. Portage + compatible environment saving is now used. VDB_FORMAT is now "paludis-2". + + * SELinux is supported. + + * Backtraces are now displayed from 'die'. + + * World file updates are now carried out for packages that are unrestricted + except where --preserve-world is specified, regardless of whether the + package was previously installed. World updates are carried out after + packages are installed rather than before. + + * Dependency errors due to [use] requirements now have more friendly error + messages. + +0.2.5: + * Syncing via Git is possible (git://, git+http://, git+ssh://). + + * A new mirrors.conf configuration file can be used by the user to specify + favourite mirrors. It has the same format as thirdpartymirrors from the + repository. + + * Error condition handling is improved in many places. + + * Versions can now include -try. + + * Initial work towards FreeBSD support has been started. + +0.2.4: + * An ebuild metadata generation bug has been fixed. + + * For Portage format repositories, the location of security advisories is + now a configuration option. + +0.2.3: + * Added support for repository-level global and per-package USE forcing. + + * Added --repository, --category, and --package filter options for --list + actions. + + * Added an eselect-based newsreader. Paludis now provides a reference + implementation of GLEP 42. + + * Various bugfixes -- reinstalling glibc and coreutils should work now, + amongst others. + +0.2.2: + * Deplist tags are now used for all package sets. + + * The --query output now includes a key explaining the mask symbols. + + * News items can now be delivered via repositories (GLEP 42). + + * Various sandbox issues have been fixed. + + * Various bugfixes. + +0.2.1: + * Build issues caused by trying to invoke sandbox from inside sandbox have + been fixed. + + * The value of EAPI is now shown in the --install mask reasons. + + * User and repository defined package sets are supported. + + * The hook script interface has been enhanced. A hook script for logging + important actions to paludis.log is included. + + * The --best-version output no longer includes the ::repository suffix. + + * VDB reading is more tolerant of missing and malformed files. + + * Using --query on a package set produces a better error. + + * Ebuilds using fetch restrict will now have pkg_nofetch called where + appropriate. + +0.2.0: + Initial public release. + +.. vim: set tw=80 spell spelllang=en : diff --git a/0.8.0/README b/0.8.0/README new file mode 100644 index 000000000..740368de1 --- /dev/null +++ b/0.8.0/README @@ -0,0 +1,18 @@ +README for Paludis +================== + +Paludis is in the really early prototype not intended for real use stage. If you +aren't comfortable with C++, ebuild internals and Gentoo in general then you +shouldn't be touching it. + +Developer documentation is available via 'make doxygen' (you need Doxygen +installed, and having GraphViz will help too). It will be created under +'doc/html/'. User documentation is kept in the bottom of a locked filing cabinet +stuck in a disused lavatory with a sign on the door saying 'Beware of the +Leopard'. + +If you don't feel like building your own docs, see: + + http://paludis.berlios.de/ + +.. vim: set spell spelllang=en tw=80 : .. diff --git a/0.8.0/autogen.bash b/0.8.0/autogen.bash new file mode 100755 index 000000000..823fcad56 --- /dev/null +++ b/0.8.0/autogen.bash @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# vim: set sw=4 sts=4 et tw=80 : + +if test "xyes" = x"${BASH_VERSION}" ; then + echo "This is not bash!" + exit 127 +fi + +trap 'echo "exiting." ; exit 250' 15 +KILL_PID=$$ + +run() { + echo ">>> $@" 1>&2 + if ! $@ ; then + echo "oops!" 1>&2 + exit 127 + fi +} + +get() { + local p=${1} v= + shift + + for v in ${@} ; do + type ${p}-${v} &>/dev/null && echo ${p}-${v} && return + type ${p}${v//.} &>/dev/null && echo ${p}${v//.} && return + done + type ${p} &>/dev/null && echo ${p} && return + echo "Could not find ${p}" 1>&2 + kill $KILL_PID +} + +misc/do_m4.bash paludis/Makefile.am || exit $? +misc/do_m4.bash paludis/paludis.hh || exit $? +misc/do_m4.bash paludis/qa/Makefile.am || exit $? +misc/do_m4.bash paludis/qa/qa.hh || exit $? +misc/do_m4.bash paludis/util/util.hh || exit $? +misc/do_m4.bash paludis/util/Makefile.am || exit $? +misc/do_m4.bash hooks/Makefile.am || exit $? +run mkdir -p config +run $(get libtoolize 1.5 ) --copy --force --automake +rm -f config.cache +run $(get aclocal 1.9 ) +run $(get autoheader 2.60 2.59 ) +run $(get autoconf 2.60 2.59 ) +run $(get automake 1.9 ) -a --copy + diff --git a/0.8.0/bash-completion/paludis b/0.8.0/bash-completion/paludis new file mode 100644 index 000000000..971ea5473 --- /dev/null +++ b/0.8.0/bash-completion/paludis @@ -0,0 +1,108 @@ +# Bash completion function for paludis +# Written by Mike Kelly +# vim: set et sw=4 sts=4 ts=4 ft=sh : + +# NOTE: This is still a work in progress, don't expect it to work well or +# properly right now. + +_paludis() { + local cur prev opts + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + opts="--query -q \ + --install -i \ + --uninstall -u \ + --sync -s \ + --contents -k \ + --owner -o \ + --version -V \ + --info -I \ + --help -h \ + --has-version \ + --best-version \ + --environment-variable \ + --configuration-variable \ + --list-repositories \ + --list-categories \ + --list-packages \ + --list-sets \ + --list-sync-protocols \ + --list-repository-formats \ + --list-dep-tag-categories \ + --list-vulnerabilities \ + --update-news \ + --log-level \ + --no-colour -C \ + --no-color \ + --config-suffix -c \ + --show-slot -S \ + --show-deps -D \ + --show-metadata -M \ + --pretend -p \ + --preserve-world -1 \ + --no-config-protection \ + --fetch -f \ + --dl-rdepend-post \ + --dl-drop-self-circular \ + --dl-drop-circular \ + --dl-drop-all -0 \ + --dl-ignore-installed -e \ + --dl-no-recursive-deps \ + --dl-max-stack-depth \ + --dl-no-unnecessary-upgrades -U \ + --repository \ + --category \ + --package \ + --set \ + --full-match" + + case "${cur}" in + -*) + COMPREPLY=($(compgen -W "${opts}" -- "${cur}")) + return 0 + ;; + *) + case "${prev}" in + ## Enum operators + --log-level) + COMPREPLY=($(compgen -W "debug qa warning silent" -- "${cur}")) + return 0 + ;; + --dl-rdepend-post) + COMPREPLY=($(compgen -W "always never as-needed" -- "${cur}")) + return 0 + ;; + ## list specifiers + --repository) + COMPREPLY=($(compgen -W "`paludis --no-colour --list-repositories --log-level silent |grep \"^*\" |cut -d\" \" -f2-`" -- "${cur}")) + return 0 + ;; + --category) + COMPREPLY=($(compgen -W "`paludis --no-colour --list-categories --log-level silent |grep \"^*\" |cut -d\" \" -f2-`" -- "${cur}")) + return 0 + ;; + --package) + COMPREPLY=($(compgen -W "`paludis --no-colour --list-packages --log-level silent |grep \"^*\" |cut -d\" \" -f2-`" -- "${cur}")) + return 0 + ;; + --set) + COMPREPLY=($(compgen -W "`paludis --no-colour --list-sets --log-level silent |grep \"^\\*\" |cut -d\" \" -f2-`" -- "${cur}")) + return 0 + ;; + --owner) + COMPREPLY=($(compgen -o filenames -- "${cur}")) + return 0 + ;; + *) + # Do package name completion, etc + # For now, just complete on set names + COMPREPLY=($(compgen -W "`paludis --no-colour --list-sets --log-level silent |grep \"^*\" |cut -d\" \" -f2-`" -- "${cur}")) + return 0 + ;; + esac + ;; + esac +} +complete -F _paludis paludis diff --git a/0.8.0/configure.ac b/0.8.0/configure.ac new file mode 100644 index 000000000..a3d069cea --- /dev/null +++ b/0.8.0/configure.ac @@ -0,0 +1,693 @@ +dnl vim: set sw=4 sts=4 ts=4 noet ft=config foldmethod=marker foldmarker={{{,}}} : + +dnl {{{ program, version +AC_PREREQ(2.59) +AC_INIT([paludis/paludis.hh]) +AC_CONFIG_AUX_DIR(config) + +VERSION_MAJOR=0 +VERSION_MINOR=8 +VERSION_MICRO=0 +VERSION_FULL="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_MICRO" +VERSION="$VERSION_FULL" +VERSION_LIB_CURRENT=`expr 100 '*' $VERSION_MAJOR + $VERSION_MINOR` +VERSION_LIB_REVISION="$VERSION_MICRO" + +AC_SUBST([VERSION_MAJOR]) +AC_SUBST([VERSION_MINOR]) +AC_SUBST([VERSION_MICRO]) +AC_SUBST([VERSION_FULL]) +AC_SUBST([VERSION_LIB_CURRENT]) +AC_SUBST([VERSION_LIB_REVISION]) + +AM_INIT_AUTOMAKE(paludis, [$VERSION_FULL]) +dnl }}} + +dnl {{{ basic toolchain checks +AC_LANG([C++]) +AC_DISABLE_STATIC +AC_PROG_CXX +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_LIBTOOL +AC_PROG_MAKE_SET +dnl }}} + +dnl {{{ check for partial specialisation of template classes +AC_MSG_CHECKING([for compiler support for partial specialisation of template classes]) +AC_COMPILE_IFELSE([ +template <typename T_> +struct S +{ + static const int s = 0; +}; + +template <typename T_> +struct S<const T_> +{ +}; + +template <typename T_> +struct S<const T_ &> +{ + static const int t = 0; +}; + +int main(int, char *[]) +{ + return S<int &>::s + S<const int &>::t; +} +], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Your C++ compiler doesn't compile C++ code]) + ]) +dnl }}} + +dnl {{{ check for basic_string and string::find_last_not_of +AC_MSG_CHECKING([for a sufficiently standard std::basic_string<>]) +AC_COMPILE_IFELSE([ +#include <string> +int main(int, char **) +{ + std::string s("test"); + std::basic_string<int> t; + return std::string::npos != s.find_last_not_of("abcde") ? 0 : 1; +} +], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([I need a less broken std::basic_string<> implementation]) + ]) +dnl }}} + +dnl {{{ check for limits +AC_MSG_CHECKING([for a usable std::numeric_limits]) +AC_COMPILE_IFELSE([ +#include <limits> +int main(int, char **) +{ + return std::numeric_limits<unsigned>::digits >> 3; +} +], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Your std::numeric_limits either doesn't exist or hates me]) + ]) +dnl }}} + +dnl {{{ check for broken std::set<>::const_reverse_iterator +AC_MSG_CHECKING([for a usable std::set<>::const_reverse_iterator]) +AC_COMPILE_IFELSE([ +#include <set> +int main(int, char **) +{ + std::set<int> s; + s.insert(1); + std::set<int>::const_reverse_iterator i; + return *i; +} +], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Your std::set<>::const_reverse_iterator is h0rked]) + ]) +dnl }}} + +dnl {{{ check for hashes +have_tr1_hashes=0 +have_ext_hashes=0 +have_std_hashes=0 +AC_MSG_CHECKING([for hashed associative containers]) +AC_COMPILE_IFELSE([ +#include <tr1/unordered_map> +int main(int, char **) +{ + std::tr1::unordered_map<int, int> m; + m.insert(std::make_pair(1, 2)); +} +], + [ + AC_MSG_RESULT([std::tr1::unordered_map]) + have_tr1_hashes=1 + ], + [ + AC_COMPILE_IFELSE([ +#include <ext/hash_map> +int main(int, char **) +{ + __gnu_cxx::hash_map<int, int> m; + m.insert(std::make_pair(1, 2)); +} +], + [ + AC_MSG_RESULT([__gnu_cxx::hash_map]) + have_ext_hashes=1 + ], + [ + AC_COMPILE_IFELSE([ +#include <hash_map> +int main(int, char **) +{ + std::hash_map<int, int> m; + m.insert(std::make_pair(1, 2)); +} +], + [ + AC_MSG_RESULT([std::hash_map]) + have_std_hashes=1 + ], + [ + AC_MSG_RESULT([no, falling back to std::map (slower)]) + ])])]) + +HAVE_TR1_HASHES=$have_tr1_hashes +AC_DEFINE_UNQUOTED([HAVE_TR1_HASHES], $have_tr1_hashes, [Do we have std::tr1:: hashes?]) +AC_SUBST([HAVE_TR1_HASHES]) +HAVE_EXT_HASHES=$have_ext_hashes +AC_DEFINE_UNQUOTED([HAVE_EXT_HASHES], $have_ext_hashes, [Do we have __gnu_cxx:: hashes?]) +AC_SUBST([HAVE_EXT_HASHES]) +HAVE_STD_HASHES=$have_std_hashes +AC_DEFINE_UNQUOTED([HAVE_STD_HASHES], $have_std_hashes, [Do we have std:: hashes?]) +AC_SUBST([HAVE_STD_HASHES]) +dnl }}} + +need_xml_check= + +dnl {{{ we need libebt. +dnl don't use AC_CHECK_HEADER, it does silly things +AC_MSG_CHECKING([for libebt]) +AC_COMPILE_IFELSE([ +#include <libebt/libebt.hh> +#include <string> +struct Tag { }; +int main(int, char **) +{ + libebt::BacktraceContext<Tag> context("blah"); +} +], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([libebt (http://libebt.berlios.de/) is required])]) +dnl }}} + +dnl {{{ we need libwrapiter. +dnl don't use AC_CHECK_HEADER, it does silly things +AC_MSG_CHECKING([for libwrapiter]) +AC_COMPILE_IFELSE([ +#include <libwrapiter/libwrapiter.hh> +#include <string> +struct C { + typedef libwrapiter::ForwardIterator<C, int> Iterator; + Iterator begin(); + Iterator end(); +}; +int main(int, char **) +{ +} +], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([libwrapiter (http://libwrapiter.berlios.de/) is required])]) +AC_MSG_CHECKING([libwrapiter version]) +AC_COMPILE_IFELSE([ +#include <libwrapiter/libwrapiter.hh> +#if LIBWRAPITER_VERSION < 200 +# error libwrapiter 0.2 or later required +#endif +], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([libwrapiter version must be at least 0.2])]) +dnl }}} + +dnl {{{ check for various misc functions. +dnl It's probably possible to make many of these optional rather than +dnl hard requirements. If any of these fail for you, send patches. +AC_CHECK_FUNCS([alarm], [], [AC_MSG_ERROR([I need alarm])]) +AC_CHECK_FUNCS([strerror], [], [AC_MSG_ERROR([I need strerror])]) +AC_CHECK_FUNCS([signal], [], [AC_MSG_ERROR([I need signal])]) +AC_CHECK_FUNCS([popen], [], [AC_MSG_ERROR([I need popen])]) +AC_CHECK_FUNCS([posix_openpt], [], [AC_MSG_ERROR([I need posix_openpt])]) +AC_CHECK_FUNCS([ptsname], [], [AC_MSG_ERROR([I need ptsname])]) +AC_CHECK_FUNCS([grantpt], [], [AC_MSG_ERROR([I need grantpt])]) +AC_CHECK_FUNCS([unlockpt], [], [AC_MSG_ERROR([I need unlockpt])]) +dnl }}} + +dnl {{{ check for cxxflags +if test x == x"$LET_ME_RICE" +then + AC_MSG_CHECKING([for go faster stripes]) + for x in "as-needed" "visibility" "enforce-eh" "fast-math" "rtti" + do + if echo "${LDFLAGS} ${CFLAGS} ${CXXFLAGS}" | grep "$x" >/dev/null ; then + AC_MSG_RESULT([$x]) + if test $x = "as-needed" ; then + echo "You shouldn't have as-needed as a global flag. It makes the linker break" 1>&2 + echo "legitimate code. For more details, read http://ciaranm.org/show_post.pl?post_id=13" 1>&2 + fi + if test $x = "visibility" ; then + echo "Don't use visibility except for applications that're designed for" 1>&2 + echo "it. At present, Paludis can't be used with visibility because of what" 1>&2 + echo "appears to be an ld.so bug." 1>&2 + fi + AC_MSG_ERROR([Bad ricer. No bagel.]) + fi + done + AC_MSG_RESULT([no]) +fi + +PALUDIS_CXXFLAGS= +PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST= +PALUDIS_CXXFLAGS_NO_WREDUNDANT_DECLS= +PALUDIS_CXXFLAGS_NO_WSHADOW= +PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC= +PALUDIS_CXXFLAGS_VISIBILITY= +AC_MSG_CHECKING([whether our compiler is iccy]) +AC_COMPILE_IFELSE([ +#ifndef __ICC +#error nope +#endif +], + [cxx_compiler_icc=yes], + [cxx_compiler_icc=no]) +AC_MSG_RESULT([${cxx_compiler_icc}]) +AC_DEFUN([CHECK_CXXFLAG], [ + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $PALUDIS_CXXFLAGS $1 -Werror" + AC_COMPILE_IFELSE([ +#include <string> +#include <iostream> +int main(int, char **) +{ + std::string s("test"); + std::cout << s << std::endl; +} + ], + [cxxflag_success=yes], + [cxxflag_success=no]) + CXXFLAGS="$save_CXXFLAGS" + if test "x$cxxflag_success" = "xyes" ; then + PALUDIS_CXXFLAGS="$PALUDIS_CXXFLAGS $1" + cxxflags_message="${cxxflags_message} $1" + fi + ]) +AC_MSG_CHECKING([for appropriate compiler flags]) +if test "x${cxx_compiler_icc}" = "xyes" ; then + CHECK_CXXFLAG([-Wall]) + CHECK_CXXFLAG([-wd279]) + CHECK_CXXFLAG([-wd304]) + CHECK_CXXFLAG([-wd383]) + CHECK_CXXFLAG([-wd444]) + CHECK_CXXFLAG([-wd488]) + CHECK_CXXFLAG([-wd981]) + CHECK_CXXFLAG([-wd1125]) + CHECK_CXXFLAG([-wd1418]) + PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC=$PALUDIS_CXXFLAGS +elif test "x${ac_cv_cxx_compiler_gnu}" = "xyes" ; then + CHECK_CXXFLAG([-Wall]) + CHECK_CXXFLAG([-Wextra]) + if ! test "x$cxxflag_success" = "xyes" ; then + CHECK_CXXFLAG([-W]) + fi + CHECK_CXXFLAG([-Wold-style-cast]) + if test "x$cxxflag_success" = "xyes" ; then + PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST=-Wno-old-style-cast + fi + CHECK_CXXFLAG([-Wredundant-decls]) + if test "x$cxxflag_success" = "xyes" ; then + PALUDIS_CXXFLAGS_NO_WREDUNDANT_DECLS=-Wno-redundant-decls + fi + CHECK_CXXFLAG([-Wstrict-null-sentinel]) + CHECK_CXXFLAG([-Wmissing-noreturn]) + CHECK_CXXFLAG([-Woverloaded-virtual]) + CHECK_CXXFLAG([-Winit-self]) + CHECK_CXXFLAG([-Wunreachable-code]) + CHECK_CXXFLAG([-Wunused-function]) + CHECK_CXXFLAG([-Wshadow]) + if test "x$cxxflag_success" = "xyes" ; then + PALUDIS_CXXFLAGS_NO_WSHADOW=-Wno-shadow + fi + PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC=$PALUDIS_CXXFLAGS + CHECK_CXXFLAG([-pedantic]) +else + CHECK_CXXFLAG([-Wall]) +fi +AC_MSG_RESULT([${cxxflags_message}]) +AC_SUBST([PALUDIS_CXXFLAGS]) +AC_SUBST([PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC]) +AC_SUBST([PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST]) +AC_SUBST([PALUDIS_CXXFLAGS_NO_WSHADOW]) +AC_SUBST([PALUDIS_CXXFLAGS_NO_WREDUNDANT_DECLS]) + +dnl AC_MSG_CHECKING([whether to enable visibility]) +dnl AC_ARG_ENABLE([visibility], +dnl AS_HELP_STRING([--enable-visibility], [Enable visibility (g++-4.1)]), +dnl [ENABLE_VISIBILITY=$enableval], +dnl [ENABLE_VISIBILITY=no]) +dnl AC_MSG_RESULT([$ENABLE_VISIBILITY]) +ENABLE_VISIBILITY=no +AC_SUBST([ENABLE_VISIBILITY]) +if test "x$ENABLE_VISIBILITY" = "xyes" ; then + AC_MSG_CHECKING([for appropriate compiler visibility flags]) + old_PALUDIS_CXXFLAGS=$PALUDIS_CXXFLAGS + PALUDIS_CXXFLAGS= + CHECK_CXXFLAG([-fvisibility-inlines-hidden]) + CHECK_CXXFLAG([-fvisibility=hidden]) + AC_MSG_RESULT([$PALUDIS_CXXFLAGS]) + PALUDIS_CXXFLAGS_VISIBILITY=$PALUDIS_CXXFLAGS + PALUDIS_CXXFLAGS=$old_PALUDIS_CXXFLAGS + PALUDIS_ENABLE_VISIBILITY=1 +else + PALUDIS_ENABLE_VISIBILITY=0 +fi +AC_SUBST([PALUDIS_ENABLE_VISIBILITY]) +AC_SUBST([PALUDIS_CXXFLAGS_VISIBILITY]) +dnl }}} + +dnl {{{ sandbox +AC_MSG_CHECKING([whether to enable sandbox]) +AC_ARG_ENABLE([sandbox], + AS_HELP_STRING([--enable-sandbox], [Enable sandbox]), + [HAVE_SANDBOX=$enableval + AC_MSG_RESULT([$enableval])], + [AC_MSG_RESULT([autodetect]) + AC_CHECK_PROG(HAVE_SANDBOX, [sandbox], [yes], [no])]) +AC_SUBST([HAVE_SANDBOX]) +AM_CONDITIONAL([HAVE_SANDBOX], test "x$HAVE_SANDBOX" = "xyes") +if test x"$HAVE_SANDBOX" = "xyes" ; then + AC_DEFINE([HAVE_SANDBOX], 1, [Do we have sandbox?]) +else + AC_DEFINE([HAVE_SANDBOX], 0) +fi +dnl }}} + +dnl {{{ doxygen, dot +AC_MSG_CHECKING([whether to enable doxygen]) +AC_ARG_ENABLE([doxygen], + AS_HELP_STRING([--enable-doxygen], [Enable 'make doxygen' (developer docs)]), + [HAVE_DOXYGEN=$enableval + AC_MSG_RESULT([$enableval])], + [AC_MSG_RESULT([autodetect]) + AC_CHECK_PROG(HAVE_DOXYGEN, [doxygen], [yes], [no])]) +AC_SUBST([HAVE_DOXYGEN]) +AM_CONDITIONAL([HAVE_DOXYGEN], test "x$HAVE_DOXYGEN" = "xyes") + +AC_MSG_CHECKING([whether to enable dot]) +AC_ARG_ENABLE([dot], + AS_HELP_STRING([--enable-dot], [Enable 'HAVE_DOT' in doxygen.conf]), + [HAVE_DOT=$enableval + AC_MSG_RESULT([$enableval])], + [AC_MSG_RESULT([autodetect]) + AC_CHECK_PROG(HAVE_DOT, [dot], [yes], [no])]) +AC_SUBST([HAVE_DOT]) +AM_CONDITIONAL([HAVE_DOT], test "x$HAVE_DOT" = "xyes") +dnl }}} + +dnl {{{ check for whether to build qa stuff +AC_MSG_CHECKING([whether to build QA tools]) +AC_ARG_ENABLE([qa], + AS_HELP_STRING([--enable-qa], [Build QA things (needs pcre++, libxml2)]), + [ENABLE_QA=$enableval + AC_MSG_RESULT([$enableval])], + [ENABLE_QA=no + AC_MSG_RESULT([no])]) +if test x"$ENABLE_QA" = "xyes" ; then + AC_CHECK_PROG(HAVE_PRCEPLUSPLUS, [pcre++-config], [yes], [no]) + if test x"$HAVE_PRCEPLUSPLUS" = "xyes" ; then + PCREPLUSPLUS_CFLAGS=`pcre++-config --cflags` + AC_SUBST(PCREPLUSPLUS_CFLAGS) + PCREPLUSPLUS_LIBS=`pcre++-config --libs` + AC_SUBST(PCREPLUSPLUS_LIBS) + else + AC_MSG_ERROR([pcre++ (http://www.daemon.de/PCRE) is required if --enable-qa is used]) + fi + need_xml_check=yes +fi +AC_SUBST([ENABLE_QA]) +AM_CONDITIONAL([ENABLE_QA], test "x$ENABLE_QA" = "xyes") +dnl }}} + +dnl {{{ check for whether to build glsa stuff +AC_MSG_CHECKING([whether to build GLSA support]) +AC_ARG_ENABLE([qa], + AS_HELP_STRING([--enable-glsa], [Build GLSA things (needs libxml2)]), + [ENABLE_GLSA=$enableval + AC_MSG_RESULT([$enableval])], + [ENABLE_GLSA=no + AC_MSG_RESULT([no])]) +if test x"$ENABLE_GLSA" = "xyes" ; then + need_xml_check=yes + AC_DEFINE([ENABLE_GLSA], [1], [Build GLSA support]) +fi +AC_SUBST([ENABLE_GLSA]) +AM_CONDITIONAL([ENABLE_GLSA], test "x$ENABLE_QA" = "xyes") +dnl }}} + +dnl {{{ libxml2 check +NEED_XML=$need_xml_check +if test "x$need_xml_check" = "xyes" ; then + PKG_CHECK_MODULES(LIBXML2DEPS, [libxml-2.0 >= 2.6], [], + [AC_MSG_ERROR([libxml2 (http://xmlsoft.org/) is required if --enable-qa or --enable-glsa is used])]) + AC_SUBST(LIBXML2DEPS_CFLAGS) + AC_SUBST(LIBXML2DEPS_LIBS) +fi +AC_SUBST([NEED_XML]) +AM_CONDITIONAL([NEED_XML], test "x$NEED_XML" = "xyes") +dnl }}} + +dnl {{{ colourschemes +AC_MSG_CHECKING([whether we like pink]) +AC_ARG_ENABLE([pink], + AS_HELP_STRING([--enable-pink], [Make it pink]), + [WANT_PINK=$enableval + AC_MSG_RESULT([$enableval]) + if test x$enableval = xyes ; then + COLOURSCHEME=pink + else + COLOURSCHEME=default + fi + ], + [WANT_PINK=no + AC_MSG_RESULT([no :(]) + COLOURSCHEME=default]) +AM_CONDITIONAL([WANT_PINK], test "x$WANT_PINK" = "xyes") +AC_SUBST([COLOURSCHEME]) +if test x"$WANT_PINK" = "xyes"; then + AC_DEFINE([PALUDIS_COLOUR_PINK], 1, [Are we pinkified?]) +else + AC_DEFINE([PALUDIS_COLOUR_PINK], 0) +fi +dnl }}} + +dnl {{{ Check for dlopen symbol and set DYNAMIC_LD_LIBS. +dnl +dnl AM_DL() +dnl + +AC_CHECK_LIB(c, dlopen, +[DYNAMIC_LD_LIBS="" +have_dl=yes]) + +if test x$have_dl != "xyes"; then +AC_CHECK_LIB(dl, dlopen, + [DYNAMIC_LD_LIBS="-ldl" + have_dl=yes]) +fi + +if test x$have_dl != "xyes"; then +AC_MSG_ERROR(dynamic linker needed) +fi + +AC_SUBST(DYNAMIC_LD_LIBS) + +dnl }}} + +dnl {{{ selinux support +AC_MSG_CHECKING([whether to enable selinux support]) +AC_ARG_ENABLE([selinux], + AS_HELP_STRING([--enable-selinux], [Enable selinux support (default: check)]), + enable_selinux=$enableval, + enable_selinux=autodetect) +AC_MSG_RESULT($enable_selinux) + +if test "x$enable_selinux" != "xno"; then + AC_CHECK_LIB([selinux], + [is_selinux_enabled], + found_selinux=yes, + found_selinux=no) + if test "x$enable_selinux" = "xyes" && test "x$found_selinux" != "xyes"; then + AC_MSG_ERROR([SElinux support requested but not found]) + fi +fi + +if test "x$found_selinux" = "xyes"; then + AC_DEFINE([HAVE_SELINUX], [1], [Build selinux support]) +fi +dnl }}} + +dnl {{{ gtk support +dnl AC_MSG_CHECKING([whether to build the gtk+ client]) +dnl AC_ARG_ENABLE([gtk], +dnl AS_HELP_STRING([--enable-gtk], [Enable gtk+ client (default: disable)]), +dnl enable_gtk=$enableval, +dnl enable_gtk=no) +dnl AC_MSG_RESULT($enable_gtk) + +enable_gtk=no +if test "x$enable_gtk" = "xyes"; then + GLIBMM_LIBDIR=`pkg-config --variable=libdir glibmm-2.4` + GMMPROC_DIR=$GLIBMM_LIBDIR/glibmm-2.4/proc + AC_SUBST(GMMPROC_DIR) + GMMPROC=$GMMPROC_DIR/gmmproc + AC_SUBST(GMMPROC) + PKG_CHECK_MODULES(GTKDEPS, [gtkmm-2.4 >= 2.6.0 glibmm-2.4 >= 2.6.0 pangomm-1.4 gdkmm-2.4 vte >= 0.12.1], + [], [AC_MSG_ERROR([gtkmm-2.4 and vte-0.12.1 or later are required if --enable-gtk is used])]) + AC_SUBST(GTKDEPS_CFLAGS) + AC_SUBST(GTKDEPS_LIBS) +fi + +AM_CONDITIONAL([ENABLE_GTK], test "x$enable_gtk" = "xyes") +dnl }}} + +dnl {{{ ruby interface +AC_MSG_CHECKING([whether to build the ruby interface]) +AC_ARG_ENABLE([ruby], + AS_HELP_STRING([--enable-ruby], [Enable ruby interface (default: disable)]), + enable_ruby=$enableval, + enable_ruby=no) +AC_MSG_RESULT($enable_ruby) + +if test "x$enable_ruby" = "xyes" ; then + AC_CHECK_PROGS(RUBY, ruby, ) + if test "x$RUBY" = "x" ; then + AC_MSG_ERROR([Ruby is required for --enable-ruby]) + fi + + AC_MSG_CHECKING([for Ruby archdir]) + RUBY_ARCHDIR=`ruby -r rbconfig -e 'puts Config::CONFIG@<:@"archdir"@:>@'` + if test "x$RUBY_ARCHDIR" = "x" ; then + AC_MSG_ERROR([Could not find Ruby archdir]) + fi + AC_MSG_RESULT([$RUBY_ARCHDIR]) + AC_SUBST([RUBY_ARCHDIR]) + + AC_MSG_CHECKING([for Ruby sitearchdir]) + RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'puts Config::CONFIG@<:@"sitearchdir"@:>@'` + if test "x$RUBY_SITEARCHDIR" = "x" ; then + AC_MSG_ERROR([Could not find Ruby sitearchdir]) + fi + AC_MSG_RESULT([$RUBY_SITEARCHDIR]) + AC_SUBST([RUBY_SITEARCHDIR]) + + AC_MSG_CHECKING([for Ruby soname]) + RUBY_SONAME=`ruby -r rbconfig -e 'puts Config::CONFIG@<:@"RUBY_SO_NAME"@:>@'` + if test "x$RUBY_SONAME" = "x" ; then + AC_MSG_ERROR([Could not find Ruby soname]) + fi + AC_MSG_RESULT([$RUBY_SONAME]) + AC_SUBST([RUBY_SONAME]) + + AC_ARG_WITH([ruby-install-dir], + AS_HELP_STRING([--with-ruby-install-dir=dir], [Specify Ruby installation dir]), + RUBY_INSTALL_DIR=`eval echo $withval`, + RUBY_INSTALL_DIR=) + AC_MSG_CHECKING([for Ruby installation dir]) + if test "x$RUBY_INSTALL_DIR" = "x" ; then + RUBY_INSTALL_DIR=$RUBY_SITEARCHDIR + fi + AC_MSG_RESULT([$RUBY_INSTALL_DIR]) + AC_SUBST([RUBY_INSTALL_DIR]) +fi + +AM_CONDITIONAL([ENABLE_RUBY], test "x$enable_ruby" = "xyes") + +dnl }}} + +dnl {{{ is sed gnu sed +AC_MSG_CHECKING([if we need a sed wrapper]) +AC_SUBST([NEED_SED_WRAPPER]) +AM_CONDITIONAL([NEED_SED_WRAPPER], test x`sed --version &>/dev/null || echo yes` = "xyes") +if test x`sed --version &>/dev/null || echo yes` = "xyes"; then + AC_DEFINE([NEED_SED_WRAPPER], 1, [Do we need sed wrapper?]) + AC_MSG_RESULT([yes]) +else + AC_DEFINE([NEED_SED_WRAPPER], 0) + AC_MSG_RESULT([no]) +fi +dnl }}} + +dnl {{{ built sources +GENERATED_FILE=misc/generated-file.txt +AC_SUBST_FILE(GENERATED_FILE) + +BUILDUSER=`whoami` +AC_SUBST([BUILDUSER]) +BUILDHOST=`hostname` +AC_SUBST([BUILDHOST]) +BUILDDATE=`date +%Y-%m-%dT%H:%M:%S%z` +AC_SUBST([BUILDDATE]) +if test -d "${ac_top_srcdir:-./}/.svn" ; then + SVNVERSION=`svnversion "${ac_top_srcdir:-./}"` +else + SVNVERSION= +fi +AC_SUBST([SVNVERSION]) +dnl }}} + +dnl {{{ output +AM_CONFIG_HEADER(config.h) +AC_OUTPUT( + Makefile + cran/Makefile + doc/Makefile + doc/doxygen.conf + ebuild/Makefile + ebuild/digests/Makefile + ebuild/fetchers/Makefile + ebuild/utils/Makefile + ebuild/echo_functions.bash + eselect/Makefile + hooks/Makefile + misc/Makefile + misc/svn-version-filter-data.bash + paludis/Makefile + paludis/about.hh + paludis/args/Makefile + paludis/digests/Makefile + paludis/environment/Makefile + paludis/environment/default/Makefile + paludis/environment/no_config/Makefile + paludis/environment/test/Makefile + paludis/hashed_containers.hh + paludis/libxml/Makefile + paludis/qa/Makefile + paludis/repositories/Makefile + paludis/repositories/cran/Makefile + paludis/repositories/fake/Makefile + paludis/repositories/nothing/Makefile + paludis/repositories/portage/Makefile + paludis/repositories/vdb/Makefile + paludis/repositories/virtuals/Makefile + paludis/selinux/Makefile + paludis/tasks/Makefile + paludis/util/Makefile + paludis/util/attributes.hh + ruby/Makefile + ruby/demos/Makefile + src/Makefile + src/paludis/Makefile + src/gtkpaludis/Makefile + src/gtkpaludis/vtemm/Makefile + src/gtkpaludis/vtemm/converts/Makefile + src/gtkpaludis/vtemm/defs/Makefile + src/qualudis/Makefile + src/adjutrix/Makefile + test/Makefile + ) +dnl }}} + diff --git a/0.8.0/cran/Makefile.am b/0.8.0/cran/Makefile.am new file mode 100644 index 000000000..a4dee8c83 --- /dev/null +++ b/0.8.0/cran/Makefile.am @@ -0,0 +1,10 @@ +MAINTAINERCLEANFILES = Makefile.in +CLEANFILES = *~ +SUBDIRS = . + +libexecprogdir = $(libexecdir)/paludis/ + +libexecprog_SCRIPTS = \ + cran.bash + +EXTRA_DIST = $(libexecprog_SCRIPTS) diff --git a/0.8.0/cran/cran.bash b/0.8.0/cran/cran.bash new file mode 100644 index 000000000..6267e8a60 --- /dev/null +++ b/0.8.0/cran/cran.bash @@ -0,0 +1,146 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Danny van Dyk <kugelfang@gentoo.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +. ${PALUDIS_EBUILD_DIR}/echo_functions.bash + +shopt -s expand_aliases + +CRAN_KILL_PID=$$ +alias die='diefunc "$FUNCNAME" "$LINENO"' +trap 'echo "die trap: exiting with error." 1>&2 ; exit 250' 15 + +for f in ${PALUDIS_BASHRC_FILES} ; do + if [[ -f ${f} ]] ; then + ebuild_notice "debug" "Loading bashrc file ${f}" + source ${f} + else + ebuild_notice "debug" "Skipping bashrc file ${f}" + fi +done + +diefunc() +{ + local func="$1" line="$2" + shift 2 + echo 1>&2 + echo "!!! ERROR in cran/${PN:-?}:" 1>&2 + echo "!!! In ${func:-?} at line ${line:-?}" 1>&2 + echo "!!! ${*:-(no message provided)}" 1>&2 + echo 1>&2 + + echo "!!! Call stack:" 1>&2 + for (( n = 1 ; n < ${#FUNCNAME[@]} ; ++n )) ; do + funcname=${FUNCNAME[${n}]} + sourcefile=${BASH_SOURCE[${n}]} + lineno=${BASH_LINENO[$(( n - 1 ))]} + echo "!!! * ${funcname} (${sourcefile}:${lineno})" 1>&2 + done + echo 1>&2 + + kill ${CRAN_KILL_PID} + exit 249 +} + +cran_command() { + local ret=1 command=${1} + shift + + ebuild_section "Starting ${command}" + + if type cran_do_${command} &> /dev/null ; then + cran_do_${command} || die "Failed to run command: ${command}" + else + die "Unknown command: ${command}" + fi + + ebuild_section "Done ${command}" +} + +cran_do_clean() { + [[ -e ${WORKDIR} ]] && rm -rf ${WORKDIR} + [[ -e ${IMAGE} ]] && rm -rf ${IMAGE} + return 0 +} + +cran_do_fetch() { + local mirror ret=0 + shift + + for mirror in ${PALUDIS_CRAN_MIRRORS[@]} ; do + mkdir -p ${DISTDIR} + cd ${DISTDIR} + + if [[ -e ${DISTFILE} ]] ; then + echo "Already fetched: $(basename ${DISTFILE})" + return 0 + fi + + local dofetch="${PALUDIS_EBUILD_DIR}/fetchers/do$(echo ${mirror%%://*})" + local a="${mirror}/src/contrib/${DISTFILE}" + if [[ -f "${dofetch}" ]] ; then + ${dofetch} "${a}" "${DISTFILE}" + ret=$? + else + eerror "Don't know how to fetch '${a}'" + ret=1 + fi + if [[ ${ret} == 0 ]] ; then + break + else + echo "Failed to run \"${command}\" for mirror ${mirror}." + fi + done + if [[ ${ret} != 0 ]] ; then + echo "Finally failed to run \"${command}\"." + fi +} + +cran_do_install() { + if [[ -e "${WORKDIR}" ]] ; then + rm -Rf "${WORKDIR}" || die "Could not remove existing WORKDIR: ${WORKDIR}" + fi + mkdir -p "${WORKDIR}" + cd "${WORKDIR}" || die "Could not cd to WORKDIR: ${WORKDIR}" + + local dounpack="${PALUDIS_EBUILD_DIR}/utils/dounpack" + ${dounpack} "${DISTFILE}" + + # \todo Sandbox this? + R CMD INSTALL -l "${IMAGE}/${PALUDIS_CRAN_LIBRARY##${ROOT}}" ${PN} +} + +cran_do_merge() { + [[ -e "${IMAGE}/${INSTALL_TO##${ROOT}}/R.css" ]] \ + && rm -f "${IMAGE}/${PALUDIS_CRAN_LIBRARY##${ROOT}}/R.css" + mkdir -p "${PALUDIS_CRAN_LIBRARY}/paludis/${PN}" + ${PALUDIS_EBUILD_DIR}/utils/merge "${IMAGE}" "${ROOT}" "${PALUDIS_CRAN_LIBRARY}/paludis/${PN}/CONTENTS" +} + +cran_do_unmerge() { + [[ -e "${PALUDIS_CRAN_LIBRARY}/paludis/${PN}/CONTENTS" ]] || die "CONTENTS file is missing for package ${PN}" + ${PALUDIS_EBUILD_DIR}/utils/unmerge "${ROOT}" "${PALUDIS_CRAN_LIBRARY}/paludis/${PN}/CONTENTS" +} + +for cmd in $* ; do + cran_command ${cmd} +done diff --git a/0.8.0/doc/Makefile.am b/0.8.0/doc/Makefile.am new file mode 100644 index 000000000..591cc4e5c --- /dev/null +++ b/0.8.0/doc/Makefile.am @@ -0,0 +1,50 @@ +CLEANFILES = *~ html/* html +MAINTAINERCLEANFILES = Makefile.in + +docfiles = \ + doc_main.doxygen \ + doc_mainpage.doxygen \ + doc_coding_standards.doxygen \ + doc_namespaces.doxygen \ + doc_references.doxygen \ + doc_licence.doxygen \ + doc_authors.doxygen \ + doc_bootstrap_howto.doxygen \ + doc_changelog.doxygen \ + doc_portage_differences.doxygen \ + doc_news.doxygen \ + doc_security_advisories.doxygen \ + doc_configuration_files.doxygen \ + doc_migration_howto.doxygen \ + doc_known_issues.doxygen + +EXTRA_DIST = doxygen.conf.in header.html footer.html paludis.css $(docfiles) + +if HAVE_DOXYGEN + +doxygen : doxygen.conf $(top_srcdir)/paludis/*.cc $(top_srcdir)/paludis/*.hh \ + $(docfiles) + doxygen doxygen.conf + +else + +doxygen : + @echo "You don't have doxygen installed!" + exit 1 + +endif + +clean-local : + mkdir -p html + touch html/dummy + find html/ -type f | grep -v '\.svn' | xargs rm + +maintainer-clean-local : + mkdir -p html + touch html/dummy + find html/ -type f | grep -v '\.svn' | xargs rm + +upload-homepage : doxygen + cd `readlink -f $(top_srcdir)/doc/html` && tar jc ./ | \ + ssh shell.berlios.de tar vjx -C /home/groups/paludis/htdocs/ + diff --git a/0.8.0/doc/doc_authors.doxygen b/0.8.0/doc/doc_authors.doxygen new file mode 100644 index 000000000..8d9d855de --- /dev/null +++ b/0.8.0/doc/doc_authors.doxygen @@ -0,0 +1,9 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page Authors Authors + +\verbinclude AUTHORS + +*/ + diff --git a/0.8.0/doc/doc_bootstrap_howto.doxygen b/0.8.0/doc/doc_bootstrap_howto.doxygen new file mode 100644 index 000000000..eba582115 --- /dev/null +++ b/0.8.0/doc/doc_bootstrap_howto.doxygen @@ -0,0 +1,318 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page BootstrapHowto Bootstrap Howto + +\section BootstrapHowtoMain How to make a Paludis chroot + +<b>You may encounter problems!</b> Paludis is still undergoing heavy development, +and although it's getting to be fairly reliable, there are still issues. Most +ebuild authors don't test their code with both package managers. You will also +find that some packages are very picky about honouring <code>ROOT</code>. At the +very least, you will encounter issues if you are trying to build a stable stage +from an unstable system. + +You should join the <code>\#paludis</code> channel on Freenode. If you're doing +anything development-related, you should probably also ask to be allowed to +subscribe to the <code>paludis-sekrit</code> mailing list. + +\warning Using Portage and Paludis on the same root isn't a very good idea. There + are differences in configuration and VDB formats. + +\warning Do not file bugs related to Paludis on Gentoo Bugzilla. Do not discuss + Paludis on Gentoo mailing lists or forums. Do not pester Gentoo developers + about Paludis. Read the \link KnownIssues known issues \endlink list. + +\section BootstrapHowtoRequirements Requirements + +Install Paludis locally, being sure to configure <code>sysconfdir</code> as +<code>/etc</code>, <code>localstatedir</code> as <code>/var/lib</code> and +<code>datadir</code> as <code>/usr/share</code> to avoid confusion later on. +There're ebuilds in the tree, or in <a +href="http://svn.pioto.org/viewvc/paludis/overlay/"> the Paludis overlay</a> if +you need SVN ebuilds. + +You'll need libebt, libwrapiter, eselect and Subversion. If you're using the QA +tools (<code>--enable-qa</code>) you will also need pcre++ (and pcre, by +extension) and libxml2. You'll also need either g++-3.4, g++-4.1 or some other +reasonably standard C++ compiler along with a complete standard library +implementation (so no uClibc++). If you're trying to run on non-Linux, you'll +also need to fix a few includes and submit a patch. + +Make sure the test suite passes (either <code>FEATURES="test"</code> for +Portage, or <code>make check</code>). If it fails, don't continue until you +figure out why. + +\section BootstrapConfiguration Configuration + +Set up a local bootstrap config directory. We're assuming in this document that +you're using <code>/mychroot</code> as the root path, but anywhere not on a +noexec / nodev filesystem should work. The reason for doing things this way will +become apparent later on. + +\verbatim +mkdir ~/.paludis-bootstrap +cat <<"END" > ~/.paludis-bootstrap/specpath +root = /mychroot +config-suffix = +END +\endverbatim + +Make some skeleton directories and files: + +\verbatim +mkdir -p /mychroot/etc/{env.d,paludis/repositories} +mkdir -p /mychroot/var/{db/pkg,paludis/repositories/gentoo/distfiles} +mkdir -p /mychroot/tmp/ +touch /mychroot/etc/ld.so.conf +\endverbatim + +Set up your <code>keywords.conf</code>. At the very least, you'll need a <code>* +keywords</code> line. Further lines can be added in the form "atom keywords". +Like with Portage, accepting <code>~keyword</code> does <b>not</b> accept +<code>keyword</code>, so if you want a fully <code>~arch</code> system you +should use <code>* arch ~arch</code>. + +\verbatim +cat <<"END" > /mychroot/etc/paludis/keywords.conf +* x86 +dev-cpp/libebt x86 ~x86 +sys-apps/paludis x86 ~x86 +dev-util/subversion x86 ~x86 +app-admin/eselect x86 ~x86 +app-editors/vim x86 ~x86 +app-editors/vim-core x86 ~x86 +END +\endverbatim + +Set up your <code>use.conf</code>. At the very least, you'll need a <code>* +flags</code> line. Again, additional per-atom lines can be specified. The +<code>-apache2</code> is important, if you value your sanity, since you'll be +installing subversion. We're experimenting with a slightly different way of +handling <code>USE_EXPAND</code> variables that allows different settings for +different packages. This may change, but for now it looks like this (note the +<code>-*</code> to avoid inherinting profile values: + +\verbatim +cat <<"END" > /mychroot/etc/paludis/use.conf +* -doc nls -apache2 LINGUAS: en INPUT_DEVICES: keyboard mouse VIDEO_CARDS: -* ati +app-editors/vim -nls +END +\endverbatim + +Set up your <code>licenses.conf</code>. If you don't care about licences, which +is probably wise until we get licence grouping, it should look like this: + +\verbatim +cat <<"END" > /mychroot/etc/paludis/licenses.conf +* * +END +\endverbatim + +If you want some more fun, the following list might be enough to install a +base system if you don't turn on too many extra USE flags: + +\verbatim +cat <<"END" > /mychroot/etc/paludis/licenses.conf +# These are the basic system requirements. It's possible to knock off +# a few of these by turning off some default USE flags. +* LGPL-2.1 LGPL-2 GPL-2 BSD MIT BZIP2 Artistic DB PSF-2.1.1 PSF-2.2 +* as-is tcp_wrappers_license freedist ZLIB openssl CRACKLIB PAM FLEX + +# These are needed to get Subversion. +* Apache-1.1 Apache-2.0 + +# These are needed to get an editor that doesn't suck. +* vim + +# These are needed if you want modular X. This is utterly ridiculous, +# and the people responsible for using different licence IDs for +# identical licences should be shot. +* xorg-server libXfont xtrans util-macros libfontenc xproto fontsproto +* FTL fontcacheproto libXau libXext libX11 libXdmcp kbproto inputproto +* xf86bigfontproto bigreqsproto xextproto xcmiscproto libxkbfile libXmu +* libXt libSM libICE libXrender renderproto libXi libXxf86vm +* xf86vidmodeproto libdrm MOTIF libXaw libXpm libXp printproto xbitmaps +* makedepend xf86driproto glproto font-adobe-75dpi bdftopcf font-util +* encodings mkfontscale mkfontdir font-misc-misc font-cursor-misc +* xkbcomp iceauth rgb xauth xinit twm xclock libXft fontconfig xrdb X11 +* libXxf86misc xf86miscproto libdmx dmxproto libXtst recordproto libXres +* resourceproto libxkbui liblbxutil randrproto fixesproto damageproto +* xf86dgaproto xf86rushproto compositeproto videoproto scrnsaverproto +* evieext trapproto xineramaproto glut setxkbmap xhost xmodmap xrandr +* libXrandr libXcomposite libXfixes libXcursor libXdamage libXv +* libXxf86dga libXinerama libXScrnSaver BitstreamVera font-bh-type1 +* font-adobe-utopia-type1 font-adobe-100dpi xorg-docs +* xf86-input-keyboard xf86-input-mouse xf86-video-ati font-alias +END +\endverbatim + +Set up your <code>package_unmask.conf</code> and <code>package_mask.conf</code>, +if necessary: + +\verbatim +cat <<"END" > /mychroot/etc/paludis/package_unmask.conf +app-editors/vim +app-editors/vim-core +END +\endverbatim + +Set up your <code>mirrors.conf</code>, if you feel like it (note that 0.2.5 or +later is required, or this file is ignored). It uses the same format as +<code>thirdpartymirrors</code>. Remember to include the <code>/distfiles</code> +for Gentoo mirrors. + +\verbatim +cat <<"END" > /mychroot/etc/paludis/mirrors.conf +gentoo http://gentoo.blueyonder.co.uk/distfiles/ +gnu http://gnu.blueyonder.co.uk/ +debian http://debian.blueyonder.co.uk/ +END +\endverbatim + +Set up your <code>bashrc</code>. This must <b>NOT</b> be used to change any +values that affect dependency resolution (e.g. <code>USE</code>, +<code>LINGUAS</code>). It can be used to set <code>CFLAGS</code>, +<code>CHOST</code> and the like (on some archs you'll have to do this to +avoid getting junk from your profile). Remember to <code>export</code> your +variables. + +Unfortunately, some packages in system have broken test suites, and some +packages abuse non-${ROOT} locations in pkg_postinst. Thus, you will also +need to add a bit of magic to work around these packages. + +\verbatim +cat <<"END" > /mychroot/etc/paludis/bashrc +export CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" +export CXXFLAGS="${CFLAGS}" +export CHOST="i686-pc-linux-gnu" +export MAKEOPTS="-j2" +export EBEEP_IGNORE="yes" +export EPAUSE_IGNORE="yes" + +case "${PN}" in + + python|portage) + export SKIP_FUNCTIONS=test + export SANDBOX_PREDICT=/ + ;; + + automake|glibc|e2fsprogs|neon|gettext|tar) + export SKIP_FUNCTIONS=test + ;; + +esac + +END +\endverbatim + +Set up your repository files. Do not tinker with the VDB location, it +<b>must</b> go in <code>${ROOT}/var/db/pkg</code>. Here we'll avoid using +<code>/usr/portage</code> for the main tree because sticking data that gets +changed on <code>/usr</code> is silly. We use the <code>${ROOT}</code> variable, +which is set magically, to make the config work both in and outside of a +chroot (this is one of the reasons we have the weird-looking specpath +thing). The Paludis overlay is optional but recommended. + +\verbatim +cat <<"END" > /mychroot/etc/paludis/repositories/gentoo.conf +location = ${ROOT}/var/paludis/repositories/gentoo/ +sync = rsync://rsync.europe.gentoo.org/gentoo-portage/ +profiles = ${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0 +format = portage +END + +cat <<"END" > /mychroot/etc/paludis/repositories/installed.conf +location = ${ROOT}/var/db/pkg/ +format = vdb +END + +cat <<"END" > /mychroot/etc/paludis/repositories/paludis-overlay.conf +location = ${ROOT}/var/paludis/repositories/paludis-overlay/ +sync = svn://svn.pioto.org/paludis/overlay +profiles = ${ROOT}/var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0 +eclassdirs = ${ROOT}/var/paludis/repositories/gentoo/eclass +distdir = ${ROOT}/var/paludis/repositories/gentoo/distfiles +cache = /var/empty +format = portage +importance = 10 +END +\endverbatim + +\section BootstrapHowtoSync Initial Sync + +Now check that the config looks ok, and sync: + +\verbatim +paludis --config-suffix bootstrap --list-repositories +sudo paludis --config-suffix bootstrap --sync +\endverbatim + +If you have problems, try adding <code>--log-level debug</code>. This may or may +not give helpful information... This applies at all stages. + +The initial sync will be slow. You can cheat and copy an existing Portage tree +checkout into <code>/mychroot/var/paludis/repositories/gentoo/</code>, but +remember to preserve mtimes and permissions if you do. Note that there's no +hideously painful 'Updating the Portage cache...' to go through. Paludis will +use the metadata cache, if available, but does not use the dep cache. + +\section BootstrapInstalling Installing Things + +Now install baselayout and then system. We install baselayout manually first +because it's easier than creating a bunch of directories by hand. + +Note that there're a whole load of circular dependencies in system +(ncurses <-> gpm, patch <-> patch, gcc <-> glibc for example), so you'll +almost certainly need --dl-drop-circular at this stage. + +\verbatim +paludis --config-suffix bootstrap --install --pretend --dl-drop-all sys-apps/baselayout +sudo paludis --config-suffix bootstrap --install --dl-drop-all sys-apps/baselayout + +paludis --config-suffix bootstrap --install --pretend --dl-drop-circular system +sudo paludis --config-suffix bootstrap --install --dl-drop-circular system +\endverbatim + +Note that system will pull in Portage. That's a profiles thing that's +unavoidable for now. It won't pull in Paludis, so we do that manually. + +\note It seems apr and apr-util are rather picky about compiling into ROOT +unless an identical version is installed onto / . + +\verbatim +paludis --config-suffix bootstrap --install --pretend sys-apps/paludis +sudo paludis --config-suffix bootstrap --install sys-apps/paludis +\endverbatim + +\section BootstrapHowtoChroot Chrooting + +And that should (but probably won't) give you a usable chroot: + +\verbatim +sudo cp /etc/resolv.conf /mychroot/etc/ +sudo chroot /mychroot +reset +export HOME=/root +cd +cp /etc/skel/.bashrc . +. .bashrc +ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime +mount -tproc none /proc +mount -tsysfs none /sys +udevstart +mount -tdevpts none /dev/pts +eselect env update +source /etc/profile +( . /etc/paludis/bashrc ; export REAL_CHOST=$CHOST ; gcc-config 1 ) +eselect env update +source /etc/profile +paludis --uninstall sys-apps/portage +paludis --install app-editors/vim +paludis --uninstall app-editors/nano +\endverbatim + +You can also tar up the system and use it as a stage3 or NFS root image. + +*/ + diff --git a/0.8.0/doc/doc_changelog.doxygen b/0.8.0/doc/doc_changelog.doxygen new file mode 100644 index 000000000..7d387e23c --- /dev/null +++ b/0.8.0/doc/doc_changelog.doxygen @@ -0,0 +1,10 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page ChangeLog ChangeLog + +\verbinclude ChangeLog + +*/ + + diff --git a/0.8.0/doc/doc_coding_standards.doxygen b/0.8.0/doc/doc_coding_standards.doxygen new file mode 100644 index 000000000..50030231c --- /dev/null +++ b/0.8.0/doc/doc_coding_standards.doxygen @@ -0,0 +1,184 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page CodingStandards Coding Standards + +These are rough guidelines. You should stick to these unless there's a good +reason to do otherwise. There are lots more standards that aren't documented +here yet -- ask for clarification as necessary. + +\section CodingStandardsCopyrights Copyrights and Licence + +Paludis is licenced under the GPLv2. Any contributions must use this licence. +You should copy the standard licence header from another source file when +creating new source files. + +Copyright is handled on a per-file basis. If you are the primary author of +a file, you should list yourself as the copyright holder. If you make a +substantial contribution to a source file (for example, one or more +non-trivial classes, functions or methods), you should add yourself as a +copyright holder on that file. You should <em>not</em> add to the copyright for +small changes or bug fixes. + +Copyright years are per contributor. See, for example, paludis/fs_entry.hh for +a file that has multiple copyright holders with different years. + +Substantial contributors should also list themselves in the AUTHORS file. + +\section CodingStandardsIndentingAndSpacing Indenting and Spacing + +Indents are four spaces. There are no tabs anywhere. Braces go on a line of +their own, and may be omitted if the clarity of the code isn't affected. Make +sure you don't include trailing whitespace. + +Function calls have no space before or after the parentheses. Most operators +and built-in functions have spaces before the opening parenthesis but not +inside. The ! operator has a space after it. + +For example:: +\code +if (some_function("moo", 2)) + do_stuff("moo"); +else +{ + // this needs some explanation + while (end != do_other_stuff(foo) || ! foo) + ++foo; +} +\endcode + +\section CodingStandardsSwitches Switches + +You'll sometimes see code like this: + +\code +do +{ + switch (my_enum) + { + case e_one: + // ... + continue; + + case e_two: + // ... + continue; + } + + throw InternalError(PALUDIS_HERE, "Unexpected value for my_enum"); +} while (false); +\endcode + +The reason for using this rather than a <code>default:</code> label is that the +compiler will (or at least the compiler we use will) generate a warning if +someone later goes and adds <code>e_three</code>, and we haven't updated our +switch to recognise it. + +\section CodingStandardsComments Comments + +All public and protected interfaces and classes should be documented in the +header files via Doxygen. Implementations should be documented appropriately -- +explain complicated or unobvious parts and anything that can easily be broken +by other people. Don't bother with comments on obvious things. + +\section CodingStandardsNaming Naming + +Types are named in <code>MixedCaseNoUnderscores</code>. + +Variables and functions are named in <code>lower_case_with_underscores</code>. + +Private member variables that aren't going to end up being used anywhere +external are <code>_prefixed_with_underscore</code>. + +Template values are <code>suffixed_with_underscore_</code>, and template +typenames are <code>SuffixedAsWell_</code> (and use <code>typename</code> rather +than <code>class</code>, \ref EffCpp item 42). + +The files for <code>SomeClass</code> (and any small related utilities) would be +<code>some_class.hh</code> and <code>some_class.cc</code>. We are somewhat +inconsistent when it comes to what warrants its own file -- originally it was +pretty much one class per file, but then compiles started taking too long so +it's now more like one class plus related utilities and exceptions per file. + +Macros are <code>PALUDIS_UPPER_CASE</code>, but they're evil (\ref TCppPL +section 7.8, \ref EffCpp item 2) so don't use them. + +Very short names for loop indices and the like are fine, but prefer longer, +self-documenting names for proper variables. For loop iterator pairs, the +usual style is: + +\code +for (MyType::Iterator i(my_container.begin()), i_end(my_container.end()) ; + i != i_end ; ++i) +{ + // ... +} +\endcode + +If there's a convenient standard library algorithm available, use that +instead of a manual loop (\ref EffSTL item 43). + +\section CodingStandardsPointers Pointers and References + +Try to avoid returning raw pointer types from raw interfaces, especially if the +programmer is expected to deallocate them manually. Make liberal use of +<code>paludis::CountedPtr</code> instead -- it's low overhead and a lot less +prone to subtle screwups. See \ref EffCpp item 18. + +Pass object parameters by const reference rather than pointer to const unless +you're prepared to accept a zero pointer. Avoid pass by value except for small +integral types. See \ref EffCpp item 20. + +\section CodingStandardsNamespaces Namespaces + +Everything under <code>paludis/</code> should be inside namespace +<code>paludis</code>. Sometimes sub-namespaces are used where they look useful. + +\section CodingStandardsIncludeGuards Include Guards + +Include guards are <code>\#define PALUDIS_GUARD_FILE_NAME_HH 1</code>. + +\section CodingStandardsStandardLibrary Standard Library + +Never use <code>using namespace std</code>. It can bring arbitrary weirdness +into the current namespace. It's ok to selectively introduce things from std +where they're used a lot. See \ref TCppPL section 8.2.9.1. + +Make use of the standard library where suitable. It has fewer bugs than +code you write yourself, and it may be doing clever optimisations behind +the scenes. + +Remember the container member functions. Many containers have template +constructors that take iterator pairs. Many containers have assign and +swap methods. Use these over <code>std::copy</code>. See \ref EffSTL item +25. + +Don't use <code>vector<bool></code>. It's just not worth it. See +\ref EffSTL item 18. + +Although some compilers will let you get away with <code>std::make_pair("foo", +"bar")</code>, some won't. Strictly speaking this violates the standard. +Use <code>std::make_pair(std::string("foo"), std::string("bar"))</code> instead. + +\section CodingStandardsCasts Casts + +<code>dynamic_cast</code> is banned. It's slow (\ref EffCpp item 27) and a sign +that you should be using one of visitors (\ref GoF Visitor), multiple dispatch +(\ref MCppD chapter 11) or capability queries via a <code>get_interface</code> +type method (for example, as described in \ref GoF Composite -- Implementation +item 4) instead. + +<code>reinterpret_cast</code> is probably banned as well, unless we end up +having to talk to some weirdly broken C libraries. + +There are very few legitimate uses for <code>const_cast</code>. It +<em>might</em> be ok to use it as described in \ref EffCpp item 3. It +<em>might</em> be ok to use it to talk to C libraries. + +There's nothing wrong with making appropriate use of <code>static_cast</code>. + +Old C style <code>(Type) variable</code> casts are banned. Function style casts +(that is, <code>Type(value)</code>) should only be used when calling an explicit +constructor to pass an object to a function. See \ref EffCpp item 27. + +*/ diff --git a/0.8.0/doc/doc_configuration_files.doxygen b/0.8.0/doc/doc_configuration_files.doxygen new file mode 100644 index 000000000..465b5cdb4 --- /dev/null +++ b/0.8.0/doc/doc_configuration_files.doxygen @@ -0,0 +1,262 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page ConfigurationFiles Configuration Files + +\section ConfigurationFilesOverview Overview + +This document explains where Paludis looks for user configuration files, and +describes the format of these files. + +\section ConfigurationFilesGeneralFormat General File Format + +Except where otherwise noted, configuration files are plain text files where +blank lines and lines starting with optional whitespace followed by a hash +symbol are ignored. + +Many files use a key = value format. Here, any whitespace around the outside +of key and value is stripped. The value may be quoted using single or double +quotes. Variable expansion on previously defined keys (and sometimes on +predefined special values) may be done using <code>${variable}</code>. To +include a literal dollar, use <code>\$</code>. + +\section ConfigurationFilesLocations Locations + +Paludis tries the following locations for its configuration directory: + +- <code>${PALUDIS_HOME}/.paludis/</code>, if the <code>PALUDIS_HOME</code> + environment variable is set, or <code>${HOME}/.paludis/</code> otherwise. +- <code>SYSCONFDIR/paludis/</code>, where <code>SYSCONFDIR</code> is + <code>/etc</code> on most systems. + +If the <code>--config-suffix</code> commandline argument is supplied, Paludis +will use <code>.paludis-thesuffix</code> or <code>paludis-thesuffix</code> +instead. + +If a file named <code>specpath</code> exists in this directory, Paludis uses +this file to determine the real configuration directory. The <code>specpath</code> +file is a standard key / value configuration file (see above). The keys that +are used are: + +- <code>root</code>, which specifies the install root for packages and the + real configuration directory, which is <code>${root}/SYSCONFDIR/paludis/</code> + (note that the HOME values are <em>not</em> used here). This value is set in + <code>specpath</code> rather than the real configuration directory so + that chrooting into an image can work with no configuration changes. +- <code>config-suffix</code>, which specifies a new configuration suffix. By + default, no configuration suffix is used under root. + +If no <code>specpath</code> file is present, the original directory is used. + +\section ConfigurationFilesUseConf The use.conf File + +User <code>USE</code> preferences are controlled by the <code>use.conf</code> +file. The basic format of a line is <code>atom use use use ...</code>, where +<code>atom</code> is a package depend atom or <code>*</code> for "all packages", +and <code>use use use ...</code> is one or more USE flag names, prefixed by +a minus if they are to be disabled. + +For <code>USE_EXPAND</code> variables such as <code>LINGUAS</code> and +<code>VIDEO_CARDS</code>, <code>atom VARIABLE: value value ...</code> should be +used. To avoid inheriting values from your profile, include <code>-*</code>. + +\verbatim +# By default, apply these to all packages +* -doc nls -apache2 + +# Turn off nls for vim +app-editors/vim -nls + +# For gvim 7, turn on and off various interpreters +>=app-editors/gvim-7_alpha mzscheme perl -python ruby + +# For gtk+ with SLOT=2, enable tiff support +x11-libs/gtk+:2 tiff + +# We like English +* LINGUAS: -* en_GB en +\endverbatim + +Note that if a package matches multiple lines, <em>all</em> of these lines will +be considered, not just the best or last match. + +\section ConfigurationFilesKeywordsConf The keywords.conf File + +Which <code>KEYWORDS</code> to accept is controlled through +<code>keywords.conf</code>. The format of a line is +<code>atom keyword ...</code>. As with Portage, accepting +<code>~arch</code> does <em>not</em> implicitly accept <code>arch</code>. +For example: + +\verbatim +# We want a mostly stable system: +* x86 + +# But some ~arch packages: +dev-cpp/libebt x86 ~x86 +sys-apps/paludis x86 ~x86 +dev-util/subversion x86 ~x86 +app-admin/eselect x86 ~x86 +app-editors/vim x86 ~x86 +app-editors/vim-core x86 ~x86 +\endverbatim + +Note that if a package matches multiple lines, <em>all</em> of these lines will +be considered, not just the best or last match. + +\section ConfigurationFilesPackage_MaskConf The package_mask.conf File + +Packages can be masked through the use of the <code>package_mask.conf</code> file. The format of the file is one <code>atom</code> per line. For example: + +\verbatim +# Hide vim 7 +>=app-editors/vim-core-7 +>=app-editors/vim-7 + +# Hide gvim +app-editors/gvim +\endverbatim + +\section ConfigurationFilesPackage_UnmaskConf The package_unmask.conf File + +Packages can be unmasked through the use of the <code>package_unmask.conf</code> file. The format of the file is one <code>atom</code> per line. For example: + +\verbatim +# I need banshee 0.11.0 +media-sound/banshee +\endverbatim + +\section ConfigurationFilesLicensesConf The licenses.conf File + +Licence filtering can be controlled via <code>licenses.conf</code>. If no +filtering is desired, use: + +\verbatim +* * +\endverbatim + +For filtering, the format is similar to the keywords and use files: + +\verbatim +* GPL-2 BSD +app-editors/vim-core vim +\endverbatim + +\section ConfigurationFilesMirrorsConf The mirrors.conf File + +Mirrors and downloading can be controlled via <code>mirrors.conf</code>. Each +line takes the form <code>mirrorname http://mirror/blah/ http://another.mirror/</code>. +A special mirror named <code>*</code>, if present, will be consulted <em>before</em> +any other location for all files. For example: + +\verbatim +* file:///mnt/nfs/distfiles +gentoo http://gentoo.blueyonder.co.uk/distfiles +\endverbatim + +\section ConfigurationFilesBashrc The bashrc File + +Paludis will source <code>bashrc</code> when doing ebuild work. This file +can be used to set environment variables (<code>CHOST</code>, <code>CFLAGS</code> +and so on), but <em>cannot</em> be used to change metadata-affecting variables +such as <code>USE</code> or <code>LINGUAS</code>. + +\section ConfigurationFilesRepositories The repositories/ Files + +Each file named <code>*.conf</code> in the <code>repositories/</code> subdirectory +creates a repository for Paludis. This is a key = value format file, and the special +variable <code>${ROOT}</code> is defined based upon <code>specpath</code>. All +files must define a <code>format =</code> key; depending upon the value used, other +optional and mandatory keys are available. + +Each repository can have a key named <code>importance</code>. This is used when +two different repositories contain an identical package atom (e.g. foo/bar-1.0). +The repository with the higher importance will always be chosen first. If not +provided, the default is 0. + +\subsection ConfigurationFilesRepositoriesPortage portage Format Repositories + +\note The name <code>portage</code> is used here to refer to repositories in the +format used by the <code>gentoo-portage</code> (or <code>gentoo-x86</code>) tree. +The name is far from ideal... + +The following keys are available for <code>format = portage</code>: + +- <code>location</code> (mandatory), which points to the location of the + tree. +- <code>profiles</code> (mandatory), which should be a space separated list of + directories used for profile data. Later directories have priority. +- <code>buildroot</code> (default: <code>/var/tmp/paludis</code>), which controls + the temporary directory used by Paludis for compiling software. +- <code>cache</code> (default: <code>${location}/metadata/cache</code>), which + controls the location of the metadata cache for a repository. It should be set + to <code>/var/empty</code> if there is no metadata cache available. +- <code>distdir</code> (default: <code>${location}/distfiles</code>), which + controls where downloaded files are saved. +- <code>eclassdirs</code> (default: <code>${location}/eclass</code>), which + is a space separated list of locations of eclasses. The value of ECLASSDIR + is taken from the <em>first</em> entry, but eclasses from later entries are + favoured. +- <code>newsdir</code> (default: <code>${location}/metadata/news</code>), which + controls where GLEP 42 news items are located. +- <code>securitydir</code> (default: <code>${location}/metadata/security</code>), + which controls where security advisories are located. +- <code>setsdir</code> (default: <code>${location}/sets</code>), which controls + where package set files are located. +- <code>sync</code> (default: empty), which controls how the repository is + synced. Typically values are in the form <code>rsync://rsync.europe.gentoo.org/gentoo-portage</code> + or <code>svn://svn.pioto.org/paludis/overlay</code>. Use + <code>paludis --list-sync-protocols</code> to see supported protocols. +- <code>sync_exclude</code> (default: empty), which can point to a file that + contains a list of directories to exclude when syncing via + <code>rsync://</code>. + +\subsection ConfigurationFilesRepositoriesVDB vdb Format Repositories + +You should have exactly one VDB format repository. It holds packages that have +been installed from a <code>portage</code> format repository. + +The following keys are available for <code>format = vdb</code>: + +- <code>location</code> (mandatory), which <strong>must</strong> be set to + <code>${ROOT}/var/db/pkg</code>. +- <code>buildroot</code> (default: <code>/var/tmp/paludis</code>), which is + used as a temporary directory when carrying out uninstall operations, +- <code>world</code> (default: <code>${location}/world</code>), which is used + for the world file. + +\subsection ConfigurationFilesRepositoriesNothing nothing Format Repositories + +Usually you won't have any <code>nothing</code> repositories. They are used as +a convenience when certain locations have to be synced at <code>--sync</code> +time; they do not contain any packages. + +The following keys are available for <code>format = nothing</code>: + +- <code>location</code> (mandatory). +- <code>sync</code> (default: empty), as per <code>format = portage</code>. +- <code>sync_exclude</code> (default: empty), idem. + +\subsection ConfigurationFilesRepositoriesCRAN CRAN Format Repositories + +The following keys are available for <code>format = cran</code>: + +- <code>buildroot</code> (default: <code>/var/tmp/paludis</code>), which controls + the temporary directory used by Paludis for compiling software. +- <code>distdir</code> (default: <code>${location}/distfiles</code>), which + controls where downloaded files are saved. +- <code>library</code> (mandatory), which should be set to <code>${ROOT}/usr/${libdir}/R/library</code>, unless +you know what you're doing. +- <code>location</code> (mandatory), which points to the location of the CRAN tree. +- <code>sync</code> (default: empty), as per <code>format = portage</code>. + +\subsection ConfigurationFilesRepositoriesCRANInstalled CRAN Installed Format Repositories + +The following keys are available for <code>format = cran_installed</code>: + +- <code>location</code> (mandatory), which should be set to <code>${ROOT}/usr/${libdir}/R/library</code>, unless +you know what you're doing. This must point to the same directory as <code>library</code> for <code>format = cran</code>. + +*/ + + diff --git a/0.8.0/doc/doc_known_issues.doxygen b/0.8.0/doc/doc_known_issues.doxygen new file mode 100644 index 000000000..db7b56273 --- /dev/null +++ b/0.8.0/doc/doc_known_issues.doxygen @@ -0,0 +1,80 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page KnownIssues Known Issues and Non-Issues + +\section KnownIssuesMain About the issues + +This document describes some of the more commonly encountered problems, issues +and things that aren't bugs but might look like they are. Pestering anyone about +these is liable to get you hurt. + +\section KnownIssuesMain About the non-issues + +This document also describes some things that are not bugs or missing functionality. Pestering anyone about these is liable to get you hurt a lot. + +\section KnownIssuesPackages Packages + +\subsection KnownIssuesUdev sys-fs/udev + +Problem: <code>sys-fs/udev</code> will fail at the merge stage. + +Workaround: Use <code>~arch</code> for this package. We don't support merging +fancy things like device files. + +\subsection KnownIssuesKDE Some KDE libraries are broken on some amd64 profiles + +Problem: Various KDE applications install libraries into the wrong libdir. + +Workaround: Make sure you're running 0.6.1 or later. + +Workaround: Check your profile. You can't use <code>default-linux/amd64/</code> +directly -- you have to use one of the release subdirectories. If this still +fails, someone who knows what they're doing needs to sit down and figure out +exactly what's going on for the profile in question. + +\subsection KnownIssuesCheck Various packages fail src_test + +Problem: Various packages fail <code>src_test</code> + +Workaround: You can <code>export SKIP_FUNCTIONS="test"</code> to skip tests. This +is best done on a per-package basis via <code>bashrc</code>: + +\verbatim +case "${PN}" in + + automake|glibc|e2fsprogs|neon|gettext|tar) + export SKIP_FUNCTIONS=test + ;; + +esac +\endverbatim + +Unfortunately not all package maintainers care about making their package's test +suite work. This is a nuisance, a) because it makes things much harder for arch +teams and b) because it makes it harder for users to catch bugs. + +\subsection KnownIssuesRootSandbox Sandbox violations when ROOT!=/ + +Problem: Sandbox violations when ROOT!=/ + +Workaround: Paludis enforces ROOT. However, some packages don't honour ROOT. To +temporarily disable sandbox for these packages, <code>export SANDBOX_PREDICT=/</code>. + +\section KnownNonIssuesPortageThings Things Portage Does + +\subsection KnownNonIssuesWget wget Resume Support + +Non-Problem: With Portage, <code>wget -c</code> is used to attempt to resume downloads of partial files. With Paludis, resumes are not allowed. + +Rationale: This leads to corruption and wasted bandwidth far too frequently. In particular, if an error page that isn't recognised as a 404 is fetched from one server (this is common for <code>mirror://sourceforge/</code>), resume support means <code>wget</code> would then download all but the first few hundred bytes of the file from somewhere else, leading to a corrupt distfile notice only after lots of bandwidth has been wasted. + +\subsection KnownNonIssesResume Resume / Skip First Support + +Non-Problem: Paludis doesn't have an equivalent to --resume --skipfirst in Portage. + +Rationale: Too unreliable, too flaky and far too widely abused. There's talk of echoing a command (<code>paludis -i10 =sys-apps/foo-1.23-r1 =app-misc/fnord-2 ...</code>) that can be used to resume if an ebuild exits with an error, but that's not set in stone. + +*/ + + diff --git a/0.8.0/doc/doc_licence.doxygen b/0.8.0/doc/doc_licence.doxygen new file mode 100644 index 000000000..f1938f5f0 --- /dev/null +++ b/0.8.0/doc/doc_licence.doxygen @@ -0,0 +1,12 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page Licence Licence + +Paludis is distributed under the terms of the GNU General Public Licence, +version 2. + +\verbinclude COPYING + +*/ + diff --git a/0.8.0/doc/doc_main.doxygen b/0.8.0/doc/doc_main.doxygen new file mode 100644 index 000000000..daa811297 --- /dev/null +++ b/0.8.0/doc/doc_main.doxygen @@ -0,0 +1,352 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +// ----- Top Level Groups ----- + +/** \defgroup grplibpaludis Main Paludis library + */ + +/** \defgroup grplibpaludisutil Paludis utilities library + */ + +/** \defgroup grplibpaludisqa Paludis QA library + */ + +/** \defgroup grplibpaludisargs Paludis args library + */ + +/** \defgroup grplibpaludisdigests Paludis digests library + */ + +/** \defgroup grplibpaludisselinux Paludis SELinux library + */ + +/** \defgroup grptestcases Test cases + */ + +/** \defgroup grpexceptions Exceptions + */ + +// ----- grplibpaludis Subgroups ----- + +/** \defgroup grpdependencies Dependencies + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpabout About Paludis + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpconfigfile Configuration files + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpenvironment Environment + * + * \ingroup grplibpaludis + */ + +/** \defgroup grphashedcontainers Hashed containers + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpnames Names + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpversions Versions + * + * \ingroup grplibpaludis + */ + +/** \defgroup grpcontents Contents + * + * \ingroup grplibpaludis + */ + +// ----- grpconfigfile Subgroups ----- + +/** \defgroup grpkvconfigfile Key/Value configuration file + * + * \ingroup grpconfigfile + */ + +/** \defgroup grplineconfigfile Line configuration file + * + * \ingroup grpconfigfile + */ + +/** \defgroup grpadvisoryconfigfile Security advisory file + * + * \ingroup grpconfigfile + */ + +/** \defgroup grpnewsconfigfile News file + * + * \ingroup grpconfigfile + */ + +// ----- grpenvironment Subgroups ----- + +/** \defgroup grpdefaultenvironment Default environment + * + * \ingroup grpenvironment + */ + +/** \defgroup grptestenvironment Test environment + * + * \ingroup grpenvironment + */ + +/** \defgroup grppackagedatabase Package database + * + * \ingroup grpenvironment + */ + +/** \defgroup grpmaskreasons Mask reasons + * + * \ingroup grpenvironment + */ + +// ----- grpdefaultenvironment Subgroups ----- + +/** \defgroup grpdefaultconfig Default configuration + * + * \ingroup grpdefaultenvironment + */ + +// --- grppackagedatabase Subgroups ----- + +/** \defgroup grprepository Repositories + * + * \ingroup grppackagedatabase + */ + +// --- grprepository Subgroups ----- + +/** \defgroup grpfakerepository Fake repository + * + * \ingroup grprepository + */ + +/** \defgroup grpportagerepository Portage repository + * + * \ingroup grprepository + */ + +/** \defgroup grpnothingrepository Nothing repository + * + * \ingroup grprepository + */ + +/** \defgroup grpvdbrepository VDB repository + * + * \ingroup grprepository + */ + +/** \defgroup grpcranrepository CRAN repository + * + * \ingroup grprepository + */ + +/** \defgroup grpcraninstrepository CRAN installed repository + * + * \ingroup grprepository + */ + +/** \defgroup grpebuildinterface Ebuild interface + * + * \ingroup grprepository + */ + +/** \defgroup grpebininterface Ebin interface + * + * \ingroup grprepository + */ + +/** \defgroup grpsyncer Sync protocol handler classes + * + * \ingroup grprepository + */ + +// ----- grpdepatoms Subgroups ----- + +/** \defgroup grpdepatomdumper Dep atom dumper + * + * \ingroup grpdepatoms + */ + +/** \defgroup grpdepatomflattener Dep atom flattener + * + * \ingroup grpdepatoms + */ + +/** \defgroup grpdepatomprettyprinter Dep atom pretty printer + * + * \ingroup grpdepatoms + */ + +// ----- grpdependencies Subgroups ----- + +/** \defgroup grpdepresolver Dependency resolution + * + * \ingroup grpdependencies + */ + +/** \defgroup grpdepatoms Dependency atoms + * + * \ingroup grpdependencies + */ + +/** \defgroup grpdepparser Dependency parsing + * + * \ingroup grpdependencies + */ + +/** \defgroup grpmatchpackage Match package + * + * \ingroup grpdependencies + */ + +// ----- grpdepparser Subgroups ----- + +/** \defgroup grpdeplexer Dependency lexing + * + * \ingroup grpdepparser + */ + +// ----- grplibpaludisutil Subgroups ----- + +/** \defgroup grpcollections Collections + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpcompare Comparisons + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grppatterns Patterns + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grppipe Pipes + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpfdotputstream FD Output + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grppointers Pointers + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpdeleter Deleter + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpfilesystem Filesystem + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpstrings Strings + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grplog Log + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpsystem System + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grprandom Random numbers + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpsave Save + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grprecords Records + * + * \ingroup grplibpaludisutil + */ + +/** \defgroup grpvalidated Validated + * + * \ingroup grplibpaludisutil + */ + +// ----- grppatterns Subgroups ----- + +/** \defgroup grpinstance Instance patterns + * + * \ingroup grppatterns + */ + +/** \defgroup grppimp Private implementation pattern + * + * \ingroup grppatterns + */ + +/** \defgroup grpvc Virtual constructor + * + * \ingroup grppatterns + */ + +/** \defgroup grpvisitor Visitor + * + * \ingroup grpvisitor + */ + +// ----- grpstrings Subgroups ----- + +/** \defgroup grpdestringify Destringify + * + * \ingroup grpstrings + */ + +/** \defgroup grpjoin Join + * + * \ingroup grpstrings + */ + +/** \defgroup grpstringify Stringify + * + * \ingroup grpstrings + */ + +/** \defgroup grptokenise Tokenise + * + * \ingroup grpstrings + */ + +/** \defgroup grpmatch Match + * + * \ingroup grpstrings + */ + +/** \defgroup grpstrippers Strippers + * + * \ingroup grpstrings + */ + diff --git a/0.8.0/doc/doc_mainpage.doxygen b/0.8.0/doc/doc_mainpage.doxygen new file mode 100644 index 000000000..2990dffeb --- /dev/null +++ b/0.8.0/doc/doc_mainpage.doxygen @@ -0,0 +1,59 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** \mainpage + +\section overview Overview + +This is the documentation for Paludis, the other package manager. It is available as part of Paludis via <code>make doxygen</code>, or on the web at <a href="http://paludis.berlios.de/">the Paludis project page</a>. + +\warning Do not file bugs related to Paludis on Gentoo Bugzilla. Do not discuss + Paludis on Gentoo mailing lists or forums. Do not pester Gentoo developers + about Paludis. Read the \link KnownIssues known issues \endlink list. + +\section userdocs For End Users + +Paludis is still undergoing heavy development. It is not a mature solution, and +still has quite a few missing features. You <b>will</b> run into bugs if you use +Paludis (some of which may leave your system unusable). Most ebuild authors do +not test their code with both package managers. + +If you find this acceptable, read \link BootstrapHowto the Bootstrap HOWTO +\endlink for how to set up a chroot or make a stage, or \link MigrationHowto the +Migration HOWTO \endlink for how to migrate an existing install (this is less +reliable). You may also like to read about \link PortageDifferences some of the +differences between Paludis and Portage \endlink. + +We have a <a href="https://developer.berlios.de/bugs/?group_id=6360">bug +tracker</a> and some +<a href="https://developer.berlios.de/mail/?group_id=6360">mailing lists</a>, but +you shouldn't try to use these until after you've discussed your problem in our +IRC channel. Read the howto for more details. + +\section developerdocs For Developers + +Start by getting a +<a href="http://svn.pioto.org/viewvc/paludis/">Subversion +checkout</a> of <code>trunk/</code>, and reading the \link PortageDifferences Paludis and Portage +differences \endlink document. + +It's best to start by skimming over the main program to get a feel for how +everything fits together. The interface code is kept in the src/ directory, +and library code is in paludis/ . + +The following classes are good places to begin: + +- paludis::DefaultEnvironment provides a representation of the default + operating environment. +- paludis::PackageDatabase provides routines for querying packages. An + instance can be obtained via paludis::DefaultEnvironment. +- paludis::DepList can be used for making dependency lists. +- paludis::Repository is subclassed to do querying, installing, + uninstalling, syncing and the like. + +The <a href="modules.html">Modules</a> link in the header bar will probably +be of more use than any of the full class lists. + +You should also read \link CodingStandards the Coding Standards \endlink +before tinkering. + +*/ diff --git a/0.8.0/doc/doc_migration_howto.doxygen b/0.8.0/doc/doc_migration_howto.doxygen new file mode 100644 index 000000000..58171c156 --- /dev/null +++ b/0.8.0/doc/doc_migration_howto.doxygen @@ -0,0 +1,245 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page MigrationHowto Migration Howto + +\warning Do not file bugs related to Paludis on Gentoo Bugzilla. Do not discuss + Paludis on Gentoo mailing lists or forums. Do not pester Gentoo developers + about Paludis. Read the \link KnownIssues known issues \endlink list. + +There are two methods you can follow to migrate from Portage to Paludis, the +\ref MigrationHowtoPortageToPaludisManual "Manual Method", and the \ref +MigrationHowtoPortageToPaludisAutomated "Automated Method". Also, it is now +usually possible to migrate \ref MigrationHowtoPaludisToPortage "from Paludis back to Portage". + +\section MigrationHowtoPortageToPaludisAutomated How to Migrate from Portage to Paludis (the automated method) + +Ideally, you'd install Paludis from scratch. However, it's usually possible to +migrate from Portage to Paludis without too many issues. + +\warning Migration is not entirely reliable. + +Start by installing Paludis. There are ebuilds in the tree, or you can get SVN +ebuilds (which Portage can't use) from +<a href="http://svn.pioto.org/viewvc/paludis/overlay/"> the Paludis overlay</a>. +If you don't like the <code>libxml2</code> and <code>pcre++</code> dependencies, +turn off the <code>qa</code> USE flag. <b>Make sure you are using at least +version 0.6</b> when following this guide. + +The easiest way to migrate your configuration from Portage to Paludis is by +using the <a href="http://svn.pioto.org/viewvc/paludis/scratch/scripts/portage2paludis.bash">portage2paludis.bash</a> script, available via subversion. It is invoked as follows: + +\verbatim +$ sudo ./portage2paludis.bash +Portage2Paludis: + +This script will attempt to convert an existing portage configuration to +a paludis configuration. It assumes that the portage configuration can +be found via /etc/make.conf, /etc/make.profile, and /etc/portage/* + +Please enter where you would like your new paludis configuration to be +created, or press enter to use the default. + +Paludis Config Directory [/etc/paludis]: + +* Configuration Files: +Generating use.conf (Pass 1 of 3)... done. +Generating use.conf (Pass 2 of 3)... done. +Generating use.conf (Pass 3 of 3)... done. +Generating bashrc (Pass 1 of 1)... done. +Generating keywords.conf (Pass 1 of 2)... done. +Generating keywords.conf (Pass 2 of 2)... done. +Generating mirrors.conf (Pass 1 of 1)... done. +Generating package_mask.conf (Pass 1 of 1)... done. +Generating package_unmask.conf (Pass 1 of 1)... done. +Generating licenses.conf stub (Pass 1 of 1)... done. + +* Standard Repositories: +Generating gentoo.conf (/usr/portage) (Pass 1 of 1)... done. +Generating installed.conf (/var/db/pkg) (Pass 1 of 1)... done. +Creating /var/db/pkg/world -> /var/lib/portage/world symlink... done. + +* Overlays: +Generating portage.conf (/usr/local/portage) (Pass 1 of 1)... done. +Generating vmware.conf (/usr/portage/local/layman/vmware) (Pass 1 of 1)... done. + +Complete! +You now have a new paludis config in: /etc/paludis +\endverbatim + +A few notes on the migration script. The target directory <b>must not exist</b>, +or the script will bail out. This is to prevent it from clobbering an existing +paludis config. Also, the script will not migrate your customized portage +bashrc, that is somethign you will have to do on your own. + +The script will migrate your <code>PORTDIR_OVERLAYS</code> to Paludis as best as +possible, but, currently, Paludis doesn't support all the sync methods that +<i>layman</i> does, so you will still probably want to run <code>layman +-S</code> to update any layman repositories you have now. Finally, the script +will first try to name your repositories what their profiles/repo_name file +says they should be called and, if that fails, they will be called what their +top level directory is called (so, /usr/local/portage is called "portage"). If +any name collisions occur, the script will terminate, and you will have to +finish configuring your overlays on your own. + +Now, try: + +\verbatim +sudo paludis --sync +paludis -pi world +\endverbatim + +You will likely find that it picks up a few packages that Portage wouldn't. This +is to be expected -- the Paludis dependency resolver is considerably more complete +than the Portage one, and it will try to enforce runtime dependencies of already +installed packages. In particular, this means that if you have any packages +installed that have a <code>virtual/x11</code> runtime dependency, the virtual will +be pulled in. + +You may encounter some nasty error messages, especially if you're running an old +install and have some packages that were installed a very long time ago with a +broken Portage release. In most cases, removing the VDB entry by hand and then +immediately reinstalling the same version of the package using Paludis (or even +a recent Portage) will suffice. + +\section MigrationHowtoPortageToPaludisManual How to Migrate from Portage to Paludis (the manual method) + +Ideally, you'd install Paludis from scratch. However, it's usually possible to +migrate from Portage to Paludis without too many issues. + +\warning Migration is not entirely reliable. + +Start by installing Paludis. There are ebuilds in the tree, or you can get SVN +ebuilds (which Portage can't use) from +<a href="http://svn.pioto.org/viewvc/paludis/overlay/"> the Paludis overlay</a>. +If you don't like the <code>libxml2</code> and <code>pcre++</code> dependencies, +turn off the <code>qa</code> USE flag. <b>Make sure you are using at least +version 0.6</b> when following this guide. + +Next, make some configuration files. For full details, see \link ConfigurationFiles +the configuration files documentation \endlink . For a quick template: + +\verbatim +mkdir -p /etc/paludis/repositories + +cat <<"END" > /etc/paludis/keywords.conf +* x86 +dev-cpp/libebt x86 ~x86 +sys-apps/paludis x86 ~x86 +dev-util/subversion x86 ~x86 +app-admin/eselect x86 ~x86 +sys-fs/udev x86 ~x86 +END + +cat <<"END" > /etc/paludis/use.conf +* -doc nls -apache2 +* LINGUAS: en +* INPUT_DEVICES: keyboard mouse +* VIDEO_CARDS: -* ati +app-editors/vim -nls +END + +cat <<"END" > /etc/paludis/licenses.conf +* * +END + +cat <<"END" > /etc/paludis/mirrors.conf +gentoo http://gentoo.blueyonder.co.uk/distfiles/ +gnu http://gnu.blueyonder.co.uk/ +debian http://debian.blueyonder.co.uk/ +END +\endverbatim + +Set up your <code>bashrc</code>. This must <b>NOT</b> be used to change any +values that affect dependency resolution (e.g. <code>USE</code>, +<code>LINGUAS</code>). It can be used to set <code>CFLAGS</code>, +<code>CHOST</code> and the like (on some archs you'll have to do this to +avoid getting junk from your profile). Remember to <code>export</code> your +variables. + +\verbatim +cat <<"END" > /etc/paludis/bashrc +export CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" +export CXXFLAGS="${CFLAGS}" +export CHOST="i686-pc-linux-gnu" +export MAKEOPTS="-j2" +END +\endverbatim + +Set up your repository files. Do not tinker with the VDB location, it +<b>must</b> go in <code>${ROOT}/var/db/pkg</code>. Here we'll avoid using +<code>/usr/portage</code> for the main tree because sticking data that gets +changed on <code>/usr</code> is silly. + +\verbatim +cat <<"END" > /etc/paludis/repositories/gentoo.conf +location = /var/paludis/repositories/gentoo/ +sync = rsync://rsync.europe.gentoo.org/gentoo-portage/ +profiles = /var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0 +format = portage +END + +cat <<"END" > /etc/paludis/repositories/installed.conf +location = /var/db/pkg/ +format = vdb +END + +cat <<"END" > /etc/paludis/repositories/paludis-overlay.conf +location = /var/paludis/repositories/paludis-overlay/ +sync = svn://svn.pioto.org/paludis/overlay +profiles = /var/paludis/repositories/gentoo/profiles/default-linux/x86/2006.0 +eclassdirs = /var/paludis/repositories/gentoo/eclass +distdir = /var/paludis/repositories/gentoo/distfiles +cache = /var/empty +format = portage +importance = 10 +END +\endverbatim + +The world file for Paludis lives in the VDB directory. For Portage compatibility, +a symlink can be used (but be careful when uninstalling Portage if you use this +route). + +\verbatim +sudo ln -s /var/lib/portage/world /var/db/pkg/world +\endverbatim + +Now, try: + +\verbatim +sudo paludis --sync +paludis -pi world +\endverbatim + +You will likely find that it picks up a few packages that Portage wouldn't. This +is to be expected -- the Paludis dependency resolver is considerably more complete +than the Portage one, and it will try to enforce runtime dependencies of already +installed packages. In particular, this means that if you have any packages +installed that have a <code>virtual/x11</code> runtime dependency, the virtual will +be pulled in. + +You may encounter some nasty error messages, especially if you're running an old +install and have some packages that were installed a very long time ago with a +broken Portage release. In most cases, removing the VDB entry by hand and then +immediately reinstalling the same version of the package using Paludis (or even +a recent Portage) will suffice. + +\section MigrationHowtoPaludisToPortage How to Migrate from Paludis to Portage + +\warning Migration is not entirely reliable. + +If, and only if, you have at any point used a Paludis version below 0.6, start +with: + +\verbatim +# For people who used Paludis before 0.6 only! +rm -fr /var/db/pkg/virtual +\endverbatim + +Then <code>emerge --sync</code> (this is important) and you might be back to normal. +If you encounter weird failures when upgrading or uninstalling packages that were +installed by Paludis, removing the VDB entry by hand and then immediately +reinstalling the same version of the package using Portage will usually fix things. + +*/ + diff --git a/0.8.0/doc/doc_namespaces.doxygen b/0.8.0/doc/doc_namespaces.doxygen new file mode 100644 index 000000000..8b8164f16 --- /dev/null +++ b/0.8.0/doc/doc_namespaces.doxygen @@ -0,0 +1,29 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** \namespace test_cases + * Test cases. + * + * \ingroup Test + */ + +/** \namespace test + * Test framework. + * + * \ingroup Test + */ + +/** \namespace paludis + * Paludis library code. + */ + +/** \namespace paludis::args + * Commandline argument handling. + * + * \ingroup Args + */ + +/** \namespace paludis::qa + * QA checks. + * + * \ingroup Args + */ diff --git a/0.8.0/doc/doc_news.doxygen b/0.8.0/doc/doc_news.doxygen new file mode 100644 index 000000000..4914a904e --- /dev/null +++ b/0.8.0/doc/doc_news.doxygen @@ -0,0 +1,11 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page News News + +\verbinclude NEWS + +*/ + + + diff --git a/0.8.0/doc/doc_portage_differences.doxygen b/0.8.0/doc/doc_portage_differences.doxygen new file mode 100644 index 000000000..20f2106be --- /dev/null +++ b/0.8.0/doc/doc_portage_differences.doxygen @@ -0,0 +1,88 @@ +/* vim: set ft=cpp tw=80 sw=4 et spell spelllang=en : */ + +/** +\page PortageDifferences How Paludis and Portage Differ + +This is not a complete list. It's not even vaguely near complete. Rather, it's +a collection of lists of things of interest that are intentionally different +between Paludis and its predecessor, Portage. + +\section PortageDifferencesEndUser For the End User + +Paludis isn't aimed at end users. Having said that, the following features +would be relevant if it were: + +- A whole different configuration system, making it far easier to maintain + multiple systems, some in chroots, with entirely separate configuration + files. + +- Performance. Paludis is fast. + +- Low dependency bloat. No Python, no big external crypto libraries. + +- Security integration. + +- Multiple repository support, replacing Portage's highly limited overlays. + +- Simple per-(category, package, version, anything else) environment variable + setting (e.g. CFLAGS). + +- Licence filtering. + +- Hook scripts, for running code after a certain action occurs. + +- Wrappers for econf, emake, wget etc to allow user defined command bindings + (nice, ionice, taskset etc). + +- User definable package sets. + +- Repositories can deliver news items, warning the user of important changes + before they take place. + +- Ability to sync from Subversion, Git. + +\section PortageDifferencesEbuildDeveloper For the Ebuild Developer + +As well as the end user advantages, ebuild authors will benefit from: + +- :slot dependencies + +- ::repository dependencies + +- [use] dependencies + +- Circular dependency detection + +- Per package use masking, and from this per package use combination + restrictions. + +- Profile-level use forcing, globally and per-package, and from this the + ability to specify a default in cases where one of n USE flags must be + enabled. + +- Default deep dependency resolution. + +- Support for -scm, -try versions. + +- Multiple inheritance for profiles. + +- Ability to install hook scripts. + +- Repository definable package sets. + +- Ability to deliver news items to the end user. + +\section PortageDifferencesProgrammer For the Programmer + +- Proper library / interface separation. + +- Reasonable internals documentation, via Doxygen. + +- Consistent interfaces for different repository types. + +- Modularity where it matters. + +- Test suites, to detect the impact of changes. + +*/ + diff --git a/0.8.0/doc/doc_references.doxygen b/0.8.0/doc/doc_references.doxygen new file mode 100644 index 000000000..2609f8de6 --- /dev/null +++ b/0.8.0/doc/doc_references.doxygen @@ -0,0 +1,43 @@ +/* vim: set ft=cpp tw=80 sw=4 et : */ + +/** +\page References References + +\section ReferencesBooks Books + +\anchor AppCrypt +<strong>AppCrypt</strong>: Applied Cryptography Second Edition / Bruce +Schneier / Wiley / ISBN 0-471-11709-9 + +\anchor EffCpp +<strong>EffCpp</strong>: Effective C++ Third Edition / Scott Meyers / +Addison-Wesley / ISBN 0-321-33487-6 + +\anchor EffSTL +<strong>EffSTL</strong>: Effective STL / Scott Meyers / Addison-Wesley / ISBN +0-201-74962-9 + +\anchor GoF +<strong>GoF</strong>: Design Patterns: Elements of Reusable Object-Oriented +Software / Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides / +Addison-Wesley / ISBN 0-201-63361-2 + +\anchor MCppD +<strong>MCppD</strong>: Modern C++ Design: Generic Programming and Design +Patterns Applied / Andrei Alexandrescu / Addison-Wesley / ISBN 0-201-70431-5 + +\anchor TaoCP2 +<strong>TaoCP2</strong>: The Art of Computer Programming, Volume 2: +Seminumerical Algorithms, Third Edition / Donald E. Knuth / Addison-Wesley / +ISBN 0-201-89684-2 + +\anchor TCppSL +<strong>TCppSL</strong>: The C++ Standard Library / Nicolai M. Josuttis / +Addison-Wesley / ISBN 0-201-37926-0 + +\anchor TCppPL +<strong>TCppPL</strong>: The C++ Programming Language Third Edition / Bjarne +Stroustrup / Addison-Wesley / ISBN 0-201-88954-4 + +*/ + diff --git a/0.8.0/doc/doc_security_advisories.doxygen b/0.8.0/doc/doc_security_advisories.doxygen new file mode 100644 index 000000000..1f290f898 --- /dev/null +++ b/0.8.0/doc/doc_security_advisories.doxygen @@ -0,0 +1,154 @@ +/* vim: set ft=cpp tw=80 sw=4 et spell spelllang=en : */ + +/** +\page SecurityAdvisoriesSpecs Handling of Security Advisories + +\version 1 +\author Danny van Dyk <kugelfang@gentoo.org> +\author Stefan Cornelius <dercorny@gentoo.org> + + +\section SecurityAdvisoriesSpecsAbstract Abstract + +This specification describes how security advisory files should be named, +stored, structured and handled by Paludis. + + +\section SecurityAdvisoriesSpecsNaming Naming + +The format of file names shall be +\code + advisory-YYYYMM-XX.conf +\endcode +where XX is a unique ID that is increased with every GLSA in the month and +YYYYMM is the usual date notation. + + +\section SecurityAdvisoriesSpecsStorage Storage + +Security advisories shall be stored as text files in +\code + ${repo}/metadata/security +\endcode +by default. Files within subdirectories shall not be parsed by Paludis. However, +the user can change this path in the repository's configuration file. The key's +name shall be <code>securitydir</code>. + +Once tree wide Manifest support (aka as Manifest2 support) will be implemented, +all advisories should be listed by a Manifest file and checked against this +manifest before parsing them. + + +\section SecurityAdvisoriesSpecsStructure Structure + +The file format shall consist of a RFC 822 style header and a trailing text +body. This document describes specification <code>0</code>. The following keys shall be +understood by Paludis: + +The following keys are mandatory and must be unique in the advisory. +Paludis shall throw an exception otherwise. + +<table> + <tr> + <td>Id</td> + <td>Unique identifier of this advisory. Must be in <code>YYYYMM-XX</code> format and + reflect the suffix of the advisory's file name.</td> + </tr> + <tr> + <td>Title</td> + <td>A string that describes the kind of vulnerability indicated by the advisory.</td> + </tr> + <tr> + <td>Access</td> + <td>Describes if if the vulnerability can be exploited by <code>local</code> or + <code>remote</code> users.</td> + </tr> + <tr> + <td>Last-Modified</td> + <td>A date string that describes when the advisory was changed.</td> + </tr> + <tr> + <td>Revision</td> + <td>The advisory's revision number. It must start with <code>1.0</code> and should be + increased by <code>0.1</code> whenever the advisory's metadata was changed + substantially.</td> + <tr> + <td>Severity</td> + <td>The severity of the vulnerabilities described by the advisory. + Supported values are <code>high</code>, <code>normal</code> and <code>low</code>.</td> + </tr> + <tr> + <td>Spec-Version</td> + <td>The version of the specification that the advisory applies to should be + referenced here. As of this specification, the only valid value is <code>1</code>.</td> + </tr> +</table> + +\note The following keys can be specified more than once. + +<table> + <tr> + <td>Affected</td> + <td>A string of one dependency atom or two ranged dependency atoms. When two + dependency atoms are given, their intersection must not describe and empty + set of packages.</td> + </tr> + <tr> + <td>Bug-Id</td> + <td>Identifier of a bug report that is associated with this advisory.\n + + Must be in format <code>DISTRO#YY</code>, where <code>DISTRO</code> is a unique string + describing the distribution that the bug report is filed against and <code>YY</code> + is the bug's local identifier. + + There is no restriction on the values of <code>DISTRO</code> besides the uniqueness, + but each used distribution identifier should be listed along a short + description and/or URL of the associated bug tracker in the text file +\code + ${repo}/metadata/security/bugtracker +\endcode </td> + </tr> + <tr> + <td>CVE</td> + <td>A string of one CVE IDs in the format <code>CVE-XXXX-XXXX</code>. Historically, + there have been CVE references prefixed by CAN instead of CVE. These + are explicitly permitted by this specification, but are to be treated as + deprecated.</td> + </tr> + <tr> + <td>Reference</td> + <td>URL to a public web-based advisory, announcement or (possibly) exploit. + Optionally, a descriptive string can be prepended.</td> + </tr> + <tr> + <td>Restart</td> + <td>The name of a service or init script that should be restarted by + Paludis after the vulnerable package has been replaced.</td> + </tr> + <tr> + <td>Unaffected</td> + <td>A string of one dependency atom or two ranged dependency atoms. When two + dependency atoms are given, their intersection must not describe and empty + set of packages.</td> + </tr> +</table> + +The text body shall be separated from the aforementioned header by an empty +line. The contents of the text body is not subject of this advisory. + +Paludis shall provide an eselect module to display advisory texts. + + +\section Handling Handling + +Paludis will parse security advisories when it builds the built-in +package set <code>security</code> or when it is called with command line option +<code>--list-vulnerabilities</code>. The later shall support all modifiers, which are +respected by other <code>--list</code> actions. + +All packages that match the contents of at least one <code>Affected</code> item and that +do not match any <code>Unaffected</code> item will be treated as vulnerable. Paludis shall +then search for a package in the same slot that matches at least one +<code>Unaffected</code> items and does not match any <code>Affected</code> item. If several +package versions match this criterion, Paludis shall select the highest version. +*/ diff --git a/0.8.0/doc/doxygen.conf.in b/0.8.0/doc/doxygen.conf.in new file mode 100644 index 000000000..4e12a4d73 --- /dev/null +++ b/0.8.0/doc/doxygen.conf.in @@ -0,0 +1,1223 @@ +# Doxyfile 1.4.2 + +@GENERATED_FILE@ + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = "Version @VERSION@" + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = YES + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the progam writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = "../misc/svn-version-filter.bash" + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../paludis ../paludis/args ../paludis/util ../paludis/digests ../paludis/selinux ../paludis/qa/ ../paludis/repositories ../paludis/repositories/nothing ../paludis/repositories/portage ../paludis/repositories/vdb ../paludis/repositories/fake ../paludis/repositories/cran ../paludis/repositories/virtuals ../test ../doc + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = *.hh *.doxygen + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = YES + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = ../ + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = "grep -v '^#define .*_GUARD_'" + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = header.html + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = footer.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = paludis.css + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = YES + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = DOXYGEN + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = @HAVE_DOT@ + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = NO + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = YES + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + + + diff --git a/0.8.0/doc/footer.html b/0.8.0/doc/footer.html new file mode 100644 index 000000000..8cd5215c1 --- /dev/null +++ b/0.8.0/doc/footer.html @@ -0,0 +1,12 @@ +<div class="qindex" style="text-align: center; margin-top: 1em;"> + <p>Copyright © 2005, 2006 <a href="http://ciaranm.org/">Ciaran McCreesh</a> and various others. See the <a href="Authors.html">Authors list</a> and <a href="Licence.html">Licence</a> for details and redistribution conditions.</p> + <table style="border-style: none; margin: auto;"> + <tr> + <td style="text-align: center; padding: 2px 50px;"><a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" border="0"></a></td> + <td style="text-align: center; padding: 2px 50px;"><a href="http://developer.berlios.de" title="BerliOS Developer"><img src="http://developer.berlios.de/bslogo.php?group_id=6360" border="0" alt="BerliOS Developer Logo"></a></td> + </tr> + </table> +</div> +</body> +</html> + diff --git a/0.8.0/doc/header.html b/0.8.0/doc/header.html new file mode 100644 index 000000000..e1c5daf0a --- /dev/null +++ b/0.8.0/doc/header.html @@ -0,0 +1,39 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- vim: set sw=4 sts=4 et : --> +<html> + <head> + <title>$title</title> + <link href="$relpath$paludis.css" rel="stylesheet" type="text/css"> + </head> + <body> + <div class="qindex">About Paludis: [ + <a class="qindex" href="index.html">Paludis Homepage</a> | + <a class="qindex" href="News.html">News</a> | + <a class="qindex" href="ChangeLog.html">ChangeLog</a> | + <a class="qindex" href="Licence.html">Licence</a> | + <a class="qindex" href="Authors.html">Authors</a> | + <a class="qindex" href="https://developer.berlios.de/projects/paludis/">Berlios Project</a> | + <a class="qindex" href="https://developer.berlios.de/project/showfiles.php?group_id=6360">Download</a> | + <a class="qindex" href="http://svn.pioto.org/viewvc/paludis/">SVN</a> ] + </div> + + <div class="qindex">User Documentation: [ + <a class="qindex" href="BootstrapHowto.html">Bootstrap Howto</a> | + <a class="qindex" href="MigrationHowto.html">Migration Howto</a> | + <a class="qindex" href="KnownIssues.html">Known Issues and Non-Issues</a> (<strong>Important</strong>) | + <a class="qindex" href="ConfigurationFiles.html">Configuration Files</a> | + <a class="qindex" href="PortageDifferences.html">Portage Differences</a> ] + </div> + + <div class="qindex">Code Documentation: [ + <a class="qindex" href="modules.html">Modules</a> | + <a class="qindex" href="namespaces.html">Namespaces</a> | + <a class="qindex" href="annotated.html">Classes</a> | + <a class="qindex" href="files.html">Files</a> | + <a class="qindex" href="namespacemembers.html">Namespace Members</a> | + <a class="qindex" href="functions.html">Class Members</a> | + <a class="qindex" href="globals.html">File Members</a> | + <a class="qindex" href="CodingStandards.html">Coding Standards</a> | + <a class="qindex" href="pages.html">Other Topics</a> ] + </div> + diff --git a/0.8.0/doc/paludis.css b/0.8.0/doc/paludis.css new file mode 100644 index 000000000..41d761a56 --- /dev/null +++ b/0.8.0/doc/paludis.css @@ -0,0 +1,326 @@ +body { + background-color: #eeeeee; + color: #333333; +} + +h1 { + text-align: center; + font-size: x-large; + border-bottom: 1px dashed #999999; +} + +h2 { + text-align: left; + border-bottom: 1px dashed #999999; + font-size: x-large; +} + +h3 { + font-size: large; +} + +caption { + font-weight: bold; +} + +div.qindex { + width: 100%; + background-color: #cccccc; + border: 1px solid #999999; + text-align: center; + margin: 2px; + padding: 2px; + font-size: 80%; + line-height: 140%; +} + +div.nav { + width: 100%; + background-color: #cccccc; + border: 1px solid #999999; + text-align: center; + margin: 2px; + padding: 2px; + font-size: 80%; + line-height: 140%; +} + +a:link { + text-decoration: none; + font-weight: bold; + color: #663399; +} + +a:visited { + text-decoration: none; + font-weight: bold; + color: #663399; +} + +a:hover { + text-decoration: none; + background-color: #663399; + font-weight: bold; + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { + font-weight: bold; +} + +.fragment { + font-family: monospace; +} + +pre.fragment { + border: 1px solid #cccccc; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; +} + +td.md { + background-color: #f4f4fb; + font-weight: bold; +} + +td.mdPrefix { + background-color: #F4F4FB; + color: #606060; +} + +td.mdname1 { + background-color: #f4f4fb; + font-weight: bold; + color: #602020; +} + +td.mdname { + background-color: #f4f4fb; + font-weight: bold; + color: #602020; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; + font-size: 90%; +} + +td.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #cccccc; +} + +td.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #cccccc; +} + +tr.memlist { + background-color: #f0f0f0; +} + +p.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdTable { + border: 1px solid #868686; + background-color: #F4F4FB; +} +.mdRow { + padding: 8px 10px; +} +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #eeeeff; +} +TD.tiny { font-size: 75%; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #b0b0b0; +} +TH.dirtab { background: #eeeeff; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +code { + background-color: #f5f5f5; +} + diff --git a/0.8.0/ebuild/Makefile.am b/0.8.0/ebuild/Makefile.am new file mode 100644 index 000000000..915764f1d --- /dev/null +++ b/0.8.0/ebuild/Makefile.am @@ -0,0 +1,53 @@ +MAINTAINERCLEANFILES = Makefile.in +CLEANFILES = *~ +SUBDIRS = . digests fetchers utils + +libexecprogdir = $(libexecdir)/paludis/ + +libexecprog_SCRIPTS = \ + build_functions.bash \ + builtin_fetch.bash \ + builtin_fetch_bin.bash \ + builtin_init.bash \ + builtin_init_bin.bash \ + builtin_merge.bash \ + builtin_metadata.bash \ + builtin_strip.bash \ + builtin_tidyup.bash \ + builtin_unmerge.bash \ + builtin_unpack_bin.bash \ + builtin_variable.bash \ + ebuild.bash \ + echo_functions.bash \ + kernel_functions.bash \ + eclass_functions.bash \ + install_functions.bash \ + list_functions.bash \ + multilib_functions.bash \ + pkg_config.bash \ + pkg_nofetch.bash \ + pkg_postinst.bash \ + pkg_postrm.bash \ + pkg_preinst.bash \ + pkg_prerm.bash \ + pkg_setup.bash \ + portage_stubs.bash \ + sandbox.bash \ + src_compile.bash \ + src_install.bash \ + src_test.bash \ + src_unpack.bash \ + usage_error.bash + +TESTS_ENVIRONMENT = env \ + PALUDIS_EBUILD_DIR="$(top_srcdir)/ebuild/" \ + PALUDIS_EBUILD_LOG_LEVEL="warning" \ + TEST_SCRIPT_DIR="$(srcdir)/" \ + bash $(top_srcdir)/ebuild/run_test.bash + +TESTS = echo_functions_TEST.bash list_functions_TEST.bash kernel_functions_TEST.bash +EXTRA_DIST = $(libexecprog_SCRIPTS) run_test.bash $(TESTS) + +check_SCRIPTS = run_test.bash $(TESTS) +check_PROGRAMS = + diff --git a/0.8.0/ebuild/build_functions.bash b/0.8.0/ebuild/build_functions.bash new file mode 100644 index 000000000..d4abaa91d --- /dev/null +++ b/0.8.0/ebuild/build_functions.bash @@ -0,0 +1,109 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +econf() +{ + local LOCAL_EXTRA_ECONF="${EXTRA_ECONF}" + local LOCAL_ECONF_WRAPPER="${ECONF_WRAPPER}" + + [[ -z "${ECONF_SOURCE}" ]] && ECONF_SOURCE=. + + if [[ -x "${ECONF_SOURCE}/configure" ]] ; then + if [[ -d /usr/share/gnuconfig ]] ; then + local f + for f in $(find "${WORKDIR}" -type f -name config.guess -or -name config.sub ) ; do + echo "econf: updating ${f} with /usr/share/gnuconfig/${f##*/}" + cp -f /usr/share/gnuconfig/${f##*/} ${f} + done + fi + + [[ -z "${CBUILD}" ]] || LOCAL_EXTRA_ECONF="--build=${CBUILD} ${LOCAL_EXTRA_ECONF}" + [[ -z "${CTARGET}" ]] || LOCAL_EXTRA_ECONF="--target=${CTARGET} ${LOCAL_EXTRA_ECONF}" + + # If the ebuild passed in --prefix, use that to set --libdir. KDE at least needs this. + + ECONF_PREFIX=/usr + for i in "$@"; do + if [[ ${i} == --prefix=* ]]; then + ECONF_PREFIX=${i#--prefix=} + elif [[ ${i} == --exec-prefix=* ]]; then + ECONF_PREFIX=${i#--exec-prefix=} + fi + done + + local libcmd= + if [[ -n "${ABI}" ]] ; then + local v="LIBDIR_${ABI}" + if [[ -n "${!v}" ]] ; then + libcmd="--libdir=${ECONF_PREFIX}/$(ebuild_get_libdir)" + fi + fi + + echo ${LOCAL_ECONF_WRAPPER} ${ECONF_SOURCE}/configure \ + --prefix=/usr \ + --host=${CHOST} \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --datadir=/usr/share \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + ${libcmd} "$@" ${LOCAL_EXTRA_ECONF} 1>&2 + + ${LOCAL_ECONF_WRAPPER} ${ECONF_SOURCE}/configure \ + --prefix=/usr \ + --host=${CHOST} \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --datadir=/usr/share \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + ${libcmd} "$@" ${LOCAL_EXTRA_ECONF} || die "econf failed" + + else + die "No configure script for econf" + fi +} + +einstall() +{ + if [[ -f Makefile ]] || [[ -f makefile ]] || [[ -f GNUmakefile ]] ; then + local cmd="${EINSTALL_WRAPPER} make prefix=${D}/usr" + cmd="${cmd} mandir=${D}/usr/share/man" + cmd="${cmd} infodir=${D}/usr/share/info" + cmd="${cmd} datadir=${D}/usr/share" + cmd="${cmd} sysconfdir=${D}/etc" + cmd="${cmd} localstatedir=${D}/var/lib" + cmd="${cmd} libdir=${D}/usr/$(ebuild_get_libdir)" + cmd="${cmd} ${EXTRA_EINSTALL} ${@} install" + echo "${cmd}" 1>&2 + ${cmd} || die "einstall failed" + else + die "No Makefile for einstall" + fi +} + +unpack() +{ + dounpack ${@} || die "unpack failed" +} + diff --git a/0.8.0/ebuild/builtin_fetch.bash b/0.8.0/ebuild/builtin_fetch.bash new file mode 100644 index 000000000..601329551 --- /dev/null +++ b/0.8.0/ebuild/builtin_fetch.bash @@ -0,0 +1,132 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_fetch() +{ + [[ -d "${DISTDIR}" ]] || die "DISTDIR \"${DISTDIR}\" is not a directory" + + local a nofetch unique_aa old_aa + for a in ${FLAT_SRC_URI} ; do + local aa=${a##*/} + hasq "${aa}" ${unique_aa} || unique_aa="${unique_aa} ${aa}" + + if [[ -f "${DISTDIR}/${aa}" ]] && [[ "0" != $(stat -c '%s' "${DISTDIR}/${aa}" ) ]] ; then + if [[ "${old_aa}" != "${aa}" ]] ; then + ebuild_section "Already have ${aa}" + old_aa="${aa}" + fi + else + if [[ -f "${DISTDIR}/${aa}" ]] ; then + ebuild_section "Trying to remove existing ${aa}..." + rm -f "${DISTDIR}/${aa}" + fi + + if ! hasq fetch ${RESTRICT} ; then + if [[ "${old_aa}" != "${aa}" ]] ; then + ebuild_section "Need to fetch ${aa}" + old_aa="${aa}" + fi + prg="${PALUDIS_EBUILD_DIR}/fetchers/do$(echo ${a%%://*} )" + if [[ -x "${prg}" ]] ; then + ${prg} "${a}" "${DISTDIR}/${aa}" + else + eerror "Don't know how to fetch '${a}'" + fi + else + if ! [[ "${old_aa}" != "${aa}" ]] ; then + ebuild_section "Can't fetch ${aa}" + old_aa="${aa}" + fi + fi + fi + done + + for a in ${unique_aa} ; do + [[ -f ${DISTDIR}/${a} ]] || nofetch="${nofetch} ${a}" + done + + if [[ -n "${nofetch}" ]] ; then + local c + echo + eerror "Couldn't fetch the following components:" + for c in ${nofetch} ; do + eerror " * ${c}" + done + echo + die "builtin_fetch failed" + fi + + local badfetch= + if [[ -f "${FILESDIR}/digest-${PN}-${PVR%-r0}" ]] ; then + local line items prg + while read line ; do + line=( ${line} ) + if ! hasq "${line[2]}" ${A} ; then + ebuild_section "Skipping check for ${line[2]}" + continue + fi + + prg="${PALUDIS_EBUILD_DIR}/digests/do$(echo ${line[0]} | tr \ + '[[:upper:]]' '[[:lower:]]')" + if [[ -x "${prg}" ]] ; then + ebegin "Checking ${line[0]} for ${line[2]}" + if [[ $("${prg}" "${DISTDIR}/${line[2]}" ) == "${line[1]}" ]] ; then + eend 0 + else + eend 1 + hasq "${line[2]}" ${badfetch} || badfetch="${badfetch} ${line[2]}" + fi + else + einfo "Can't check ${line[0]} for ${line[2]}" + fi + + done < "${FILESDIR}"/digest-${PN}-${PVR%-r0} + else + ebuild_section "No digest file, skipping integrity checks" + fi + + if [[ -n "${badfetch}" ]] ; then + local c + echo + eerror "Bad digests encountered for the following components:" + for c in ${badfetch} ; do + eerror " * ${c}" + done + echo + die "builtin_fetch failed" + fi +} + +ebuild_f_fetch() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${DISTDIR}" + if hasq "fetch" ${RESTRICT} ; then + ebuild_section "Skipping builtin_fetch (RESTRICT)" + elif hasq "fetch" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_fetch (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_fetch" + builtin_fetch + ebuild_section "Done builtin_fetch" + fi + SANDBOX_WRITE="${old_sandbox_write}" +} + + diff --git a/0.8.0/ebuild/builtin_fetch_bin.bash b/0.8.0/ebuild/builtin_fetch_bin.bash new file mode 100644 index 000000000..f8103f0f3 --- /dev/null +++ b/0.8.0/ebuild/builtin_fetch_bin.bash @@ -0,0 +1,82 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_fetch_bin() +{ + [[ -d "${PKGDIR}" ]] || die "PKGDIR \"${PKGDIR}\" is not a directory" + + local a nofetch unique_aa old_aa + for a in ${FLAT_BIN_URI} ; do + local aa=${a##*/} + hasq "${aa}" ${unique_aa} || unique_aa="${unique_aa} ${aa}" + + if [[ -f "${PKGDIR}/${aa}" ]] && [[ "0" != $(stat -c '%s' "${PKGDIR}/${aa}" ) ]] ; then + if [[ "${old_aa}" != "${aa}" ]] ; then + ebuild_section "Already have ${aa}" + old_aa="${aa}" + fi + else + if [[ -f "${PKGDIR}/${aa}" ]] ; then + ebuild_section "Trying to remove existing ${aa}..." + rm -f "${PKGDIR}/${aa}" + fi + + prg="${PALUDIS_EBUILD_DIR}/fetchers/do$(echo ${a%%://*} )" + if [[ -x "${prg}" ]] ; then + ${prg} "${a}" "${PKGDIR}/${aa}" + else + eerror "Don't know how to fetch '${a}'" + fi + fi + done + + for a in ${unique_aa} ; do + [[ -f ${PKGDIR}/${a} ]] || nofetch="${nofetch} ${a}" + done + + if [[ -n "${nofetch}" ]] ; then + local c + echo + eerror "Couldn't fetch the following components:" + for c in ${nofetch} ; do + eerror " * ${c}" + done + echo + die "builtin_fetch_bin failed" + fi +} + +ebuild_f_fetch_bin() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${PKGDIR}" + if hasq "fetch_bin" ${RESTRICT} ; then + ebuild_section "Skipping builtin_fetch_bin (RESTRICT)" + elif hasq "fetch_bin" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_fetch_bin (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_fetch_bin" + builtin_fetch_bin + ebuild_section "Done builtin_fetch_bin" + fi + SANDBOX_WRITE="${old_sandbox_write}" +} + + + diff --git a/0.8.0/ebuild/builtin_init.bash b/0.8.0/ebuild/builtin_init.bash new file mode 100644 index 000000000..128f1b93b --- /dev/null +++ b/0.8.0/ebuild/builtin_init.bash @@ -0,0 +1,72 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_init() +{ + export ROOT="${ROOT//+(\/)//}" + + local a + for a in P PV PR PN PVR PF CATEGORY FILESDIR ECLASSDIR PORTDIR \ + DISTDIR KV PALUDIS_TMPDIR PALUDIS_EBUILD_LOG_LEVEL PALUDIS_EBUILD_DIR \ + USERLAND KERNEL ARCH CHOST PALUDIS_COMMAND ROOT ; do + [[ -z "${!a}" ]] && die "\$${a} unset or empty" + declare -r ${a}="${!a}" + done + + for a in FILESDIR ECLASSDIR PORTDIR DISTDIR ; do + [[ -d "${!a}" ]] || die "\$${a} (\"${!a}\") not a directory" + done + + if [[ -e "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" ]] ; then + rm -fr "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" || die "Couldn't remove previous work" + fi + + export WORKDIR="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/work" + mkdir -p "${WORKDIR}" || die "Couldn't create \$WORKDIR (\"${WORKDIR}\")" + declare -r WORKDIR="${WORKDIR}" + + export T="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/temp/" + mkdir -p "${T}" || die "Couldn't create \$T (\"${T}\")" + declare -r T="${T}" + export HOME="${T}" + + export D="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/image/" + export D="${D//+(\/)//}" + mkdir -p "${D}" || die "Couldn't create \$D (\"${D}\")" + declare -r D="${D}" + + export IMAGE="${D}" + declare -r IMAGE="${IMAGE}" + + export S="${WORKDIR}/${P}" +} + +ebuild_f_init() +{ + if hasq "init" ${RESTRICT} ; then + ebuild_section "Skipping builtin_init (RESTRICT)" + elif hasq "init" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_init (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_init" + builtin_init + ebuild_section "Done builtin_init" + fi +} + diff --git a/0.8.0/ebuild/builtin_init_bin.bash b/0.8.0/ebuild/builtin_init_bin.bash new file mode 100644 index 000000000..9d1efe543 --- /dev/null +++ b/0.8.0/ebuild/builtin_init_bin.bash @@ -0,0 +1,69 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_init_bin() +{ + export ROOT="${ROOT//+(\/)//}" + + local a + for a in P PV PR PN PVR PF CATEGORY PKGDIR \ + KV PALUDIS_TMPDIR PALUDIS_EBUILD_LOG_LEVEL PALUDIS_EBUILD_DIR \ + USERLAND KERNEL ARCH CHOST PALUDIS_COMMAND ROOT ; do + [[ -z "${!a}" ]] && die "\$${a} unset or empty" + declare -r ${a}="${!a}" + done + + if [[ -e "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" ]] ; then + rm -fr "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" || die "Couldn't remove previous work" + fi + + export WORKDIR="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/work" + mkdir -p "${WORKDIR}" || die "Couldn't create \$WORKDIR (\"${WORKDIR}\")" + declare -r WORKDIR="${WORKDIR}" + + export T="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/temp/" + mkdir -p "${T}" || die "Couldn't create \$T (\"${T}\")" + declare -r T="${T}" + export HOME="${T}" + + export D="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/image/" + export D="${D//+(\/)//}" + mkdir -p "${D}" || die "Couldn't create \$D (\"${D}\")" + declare -r D="${D}" + + export IMAGE="${D}" + declare -r IMAGE="${IMAGE}" + + export S="${WORKDIR}/${P}" +} + +ebuild_f_init_bin() +{ + if hasq "init_bin" ${RESTRICT} ; then + ebuild_section "Skipping builtin_init_bin (RESTRICT)" + elif hasq "init_bin" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_init_bin (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_init_bin" + builtin_init_bin + ebuild_section "Done builtin_init_bin" + fi +} + + diff --git a/0.8.0/ebuild/builtin_merge.bash b/0.8.0/ebuild/builtin_merge.bash new file mode 100644 index 000000000..ef3103faf --- /dev/null +++ b/0.8.0/ebuild/builtin_merge.bash @@ -0,0 +1,128 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_merge() +{ + ebuild_section "Merging to '${ROOT:-/}'..." + + shopt -q dotglob + local olddotglob=$? + shopt -s dotglob + + local v=$(vdb_path) + if [[ -z "${v}" ]] ; then + v=${ROOT}/var/db/pkg + fi + local dbdir="${v}/${CATEGORY}/${PF}" + ebuild_section "Writing VDB entry to '${dbdir}'..." + install -d "${dbdir}" || die "couldn't make pkg db directory (\"${dbdir}\")" + install -d "${v}/".cache || die "couldn't make pkg db cache" + + local v VDB_FORMAT="paludis-2" COUNTER="0" + for v in CATEGORY CBUILD CHOST COUNTER DEPEND DESCRIPTION EAPI \ + FEATURES HOMEPAGE INHERITED IUSE KEYWORDS LICENSE PDEPEND PF \ + PROVIDE RDEPEND SLOT SRC_URI USE CONFIG_PROTECT CONFIG_PROTECT_MASK \ + VDB_FORMAT PKGMANAGER ; do + echo "${!v}" > "${dbdir}"/${v} || die "pkg db write ${v} failed" + ebuild_notice "debug" "Writing VDB key ${v}=${!v}" + done + for v in ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS \ + EXTRA_ECONF EXTRA_EINSTALL EXTRA_EMAKE LDFLAGS LIBCXXFLAGS \ + REPOSITORY ; do + [[ -z "${!v}" ]] && continue + echo "${!v}" > "${dbdir}"/${v} || die "pkg db write ${v} failed" + ebuild_notice "debug" "Writing VDB key ${v}=${!v}" + done + + if [[ -n ${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT} ]]; then + CONFIG_PROTECT=${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT} + fi + if [[ -n ${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT_MASK} ]]; then + CONFIG_PROTECT_MASK=${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT_MASK} + fi + + export CONFIG_PROTECT="${CONFIG_PROTECT}" + export CONFIG_PROTECT_MASK="${CONFIG_PROTECT_MASK}" + + [[ -f "${EBUILD}" ]] && cp "${EBUILD}" ${dbdir}/ + + local reinstall= + if [[ -f "${dbdir}/CONTENTS" ]] ; then + mv "${dbdir}/CONTENTS" "${dbdir}/OLDCONTENTS" || die "save contents failed" + reinstall="yes" + fi + + ebuild_notice "debug" "Writing VDB environment.bz2" + for v in ${USE_EXPAND} ; do + ebuild_notice "debug" "USE_EXPAND ${v}=${!v}" + done + ( set ; export -p | sed 's:^declare -rx:declare -x:' ) | bzip2 > ${dbdir}/environment.bz2 + > ${dbdir}/CONTENTS + + if [[ -n "${D}" ]] && [[ -d "${D}" ]] ; then + install -d "${ROOT%/}/" || die "couldn't make \${ROOT} (\"${ROOT}\")" + if [[ -d "${D}" ]] ; then + merge "${D%/}/" "${ROOT%/}/" "${dbdir}/CONTENTS" \ + || die "merge failed" + fi + fi + + if ! /bin/sh -c 'echo Good, our shell is still usable' ; then + echo "Looks like our shell broke. Trying an ldconfig to fix it..." + ldconfig -r ${ROOT} + fi + + if [[ -n "${reinstall}" ]] ; then + unmerge "${ROOT%/}/" "${dbdir}/OLDCONTENTS" \ + || die "unmerge failed" + + if ! /bin/sh -c 'echo Good, our shell is still usable' ; then + echo "Looks like our shell broke. Trying an ldconfig to fix it..." + ldconfig -r ${ROOT} + fi + + rm -f "${dbdir}/OLDCONTENTS" + fi + + [[ $olddotglob != 0 ]] && shopt -u dotglob + shopt -q dotglob + [[ $olddotglob == $? ]] || ebuild_notice "warning" "shopt dotglob restore failed" +} + +ebuild_f_merge() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + local old_sandbox_on="${SANDBOX_ON}" + [[ "$(canonicalise ${ROOT} )" != "/" ]] || SANDBOX_ON=0 + + if hasq "merge" ${RESTRICT} ; then + ebuild_section "Skipping builtin_merge (RESTRICT)" + elif hasq "merge" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_merge (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_merge" + builtin_merge + ebuild_section "Done builtin_merge" + fi + + SANDBOX_WRITE="${old_sandbox_write}" + SANDBOX_ON="${old_sandbox_on}" +} + diff --git a/0.8.0/ebuild/builtin_metadata.bash b/0.8.0/ebuild/builtin_metadata.bash new file mode 100644 index 000000000..3668c40d5 --- /dev/null +++ b/0.8.0/ebuild/builtin_metadata.bash @@ -0,0 +1,39 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +ebuild_f_metadata() +{ + local key + + for key in DEPEND RDEPEND PDEPEND IUSE SLOT SRC_URI RESTRICT LICENSE \ + KEYWORDS INHERITED PROVIDE EAPI HOMEPAGE DESCRIPTION E_IUSE \ + E_DEPEND E_RDEPEND E_PDEPEND E_KEYWORDS ; do + set -o noglob + local k=${!key} + k=${k/\\/\\\\} + k=${k/\"/\\\"} + echo "${key}=\""${k}"\"" + set +o noglob + done +} + diff --git a/0.8.0/ebuild/builtin_strip.bash b/0.8.0/ebuild/builtin_strip.bash new file mode 100644 index 000000000..29223c10c --- /dev/null +++ b/0.8.0/ebuild/builtin_strip.bash @@ -0,0 +1,57 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_strip() +{ + STRIP=${STRIP:-${CHOST}-strip} + if ! type -p -- ${STRIP} >/dev/null; then + STRIP=strip + fi + PALUDIS_STRIP_FLAGS=${PALUDIS_STRIP_FLAGS:---strip-unneeded} + + for fn in $(find "${D}" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 -or -name '*.so' -or -name '*.so.*' \)); do + local ft=$(file "${fn}") + if [[ $? != 0 || -z ${ft} ]]; then + return 1 + fi + + if [[ ${ft} == *"current ar archive"* ]]; then + echo ${STRIP} -g "${fn}" + ${STRIP} -g "${fn}" + elif [[ ${ft} == *"SB executable"* || ${ft} == *"SB shared object"* ]]; then + echo ${STRIP} ${PALUDIS_STRIP_FLAGS} "${fn}" + ${STRIP} ${PALUDIS_STRIP_FLAGS} "${fn}" + fi + done +} + +ebuild_f_strip() +{ + if hasq "strip" ${RESTRICT} ; then + ebuild_section "Skipping builtin_strip (RESTRICT)" + elif hasq "strip" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_strip (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_strip" + builtin_strip + ebuild_section "Done builtin_strip" + fi +} + diff --git a/0.8.0/ebuild/builtin_tidyup.bash b/0.8.0/ebuild/builtin_tidyup.bash new file mode 100644 index 000000000..422358192 --- /dev/null +++ b/0.8.0/ebuild/builtin_tidyup.bash @@ -0,0 +1,40 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_tidyup() +{ + if [[ -e "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" ]] ; then + echo rm -fr "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" 1>&2 + rm -fr "${PALUDIS_TMPDIR}/${CATEGORY}/${PF}" || die "Couldn't remove work" + fi +} + +ebuild_f_tidyup() +{ + if hasq "tidyup" ${RESTRICT} ; then + ebuild_section "Skipping builtin_tidyup (RESTRICT)" + elif hasq "tidyup" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_tidyup (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_tidyup" + builtin_tidyup + ebuild_section "Done builtin_tidyup" + fi +} + diff --git a/0.8.0/ebuild/builtin_unmerge.bash b/0.8.0/ebuild/builtin_unmerge.bash new file mode 100644 index 000000000..6ef569b84 --- /dev/null +++ b/0.8.0/ebuild/builtin_unmerge.bash @@ -0,0 +1,108 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_unmerge() +{ + local v=$(vdb_path) + if [[ -z "${v}" ]] ; then + v=${ROOT}/var/db/pkg + fi + local dbdir="${v}/${CATEGORY}/${PF}" entry + [[ -d "${dbdir}" ]] || die "couldn't find pkg db directory (\"${dbdir}\")" + + for v in CATEGORY CBUILD CHOST DEPEND DESCRIPTION EAPI \ + FEATURES HOMEPAGE INHERITED IUSE KEYWORDS LICENSE PDEPEND PF \ + PROVIDE RDEPEND SLOT SRC_URI USE CONFIG_PROTECT CONFIG_PROTECT_MASK \ + VDB_FORMAT ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS \ + EXTRA_ECONF EXTRA_EINSTALL EXTRA_EMAKE LDFLAGS LIBCXXFLAGS \ + REPOSITORY ; do + if [[ -f "${dbdir}/${v}" ]] ; then + eval "${v}=\$(< ${dbdir}/${v} ) || die \"Load key ${v} failed\"" + else + eval "${v}=" + fi + done + + if [[ -f ${dbdir}/CONFIG_PROTECT ]]; then + CONFIG_PROTECT="$(< ${dbdir}/CONFIG_PROTECT) ${CONFIG_PROTECT}" + if [[ -f ${dbdir}/CONFIG_PROTECT_MASK ]]; then + CONFIG_PROTECT_MASK="$(< ${dbdir}/CONFIG_PROTECT_MASK)" + fi + else + local old_CONFIG_PROTECT="${CONFIG_PROTECT:+${CONFIG_PROTECT} }/etc" + eval $(bzcat "${dbdir}/environment.bz2" | while read line; do + line=${line//\'} + if [[ ${line%%=*} == CONFIG_PROTECT ]]; then + echo "CONFIG_PROTECT='${line#*=} ${CONFIG_PROTECT}'" + elif [[ ${line%%=*} == CONFIG_PROTECT_MASK ]]; then + echo "CONFIG_PROTECT_MASK='${line#*=}'" + fi + done) + + # catalyst creates things with an empty CONFIG_PROTECT... + if [[ -z "${CONFIG_PROTECT// }" ]] ; then + ewarn "CONFIG_PROTECT from environment.bz2 is empty" + ewarn "Using a fallback of '${old_CONFIG_PROTECT}'" + CONFIG_PROTECT="${old_CONFIG_PROTECT}" + fi + fi + + if [[ -n ${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT} ]]; then + CONFIG_PROTECT=${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT} + fi + if [[ -n ${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT_MASK} ]]; then + CONFIG_PROTECT_MASK=${PALUDIS_EBUILD_OVERRIDE_CONFIG_PROTECT_MASK} + fi + + export CONFIG_PROTECT="${CONFIG_PROTECT}" + export CONFIG_PROTECT_MASK="${CONFIG_PROTECT_MASK}" + + unmerge "${ROOT}/" "${dbdir}/CONTENTS" \ + || die "unmerge failed" + + if ! /bin/sh -c 'echo Good, our shell is still usable' ; then + echo "Looks like our shell broke. Trying an ldconfig to fix it..." + ldconfig -r ${ROOT} + fi + + rm -fr "${dbdir}" +} + +ebuild_f_unmerge() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + local old_sandbox_on="${SANDBOX_ON}" + [[ "$(canonicalise ${ROOT} )" != "/" ]] || SANDBOX_ON=0 + + if hasq "unmerge" ${RESTRICT} ; then + ebuild_section "Skipping builtin_unmerge (RESTRICT)" + elif hasq "unmerge" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_unmerge (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_unmerge" + builtin_unmerge + ebuild_section "Done builtin_unmerge" + fi + + SANDBOX_WRITE="${old_sandbox_write}" + SANDBOX_ON="${old_sandbox_on}" +} + + diff --git a/0.8.0/ebuild/builtin_unpack_bin.bash b/0.8.0/ebuild/builtin_unpack_bin.bash new file mode 100644 index 000000000..6964d635d --- /dev/null +++ b/0.8.0/ebuild/builtin_unpack_bin.bash @@ -0,0 +1,50 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +builtin_unpack_bin() +{ + unpack --binary ${B} + local ebuild_dir="${IMAGE}/tmp/paludis-ebin/${SRC_REPOSITORY}/${CATEGORY}/${PF}/" + [[ -d "${ebuild_dir}" ]] || die "ebuild_dir not a directory. Invalid binary package?" + mv "${ebuild_dir}/"* "${WORKDIR}"/ + rm -fr "${IMAGE}/tmp/paludis-ebin" + export PALUDIS_LOAD_ENVIRONMENT="${WORKDIR}/environment.bz2" + ebuild_load_ebuild "${WORKDIR}/${PF}.ebuild" +} + +ebuild_f_unpack_bin() +{ + cd ${WORKDIR} || die "cd to \${WORKDIR} (\"${WORKDIR}\") failed" + + if hasq "unpack_bin" ${RESTRICT} ; then + ebuild_section "Skipping builtin_unpack_bin (RESTRICT)" + elif hasq "unpack_bin" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping builtin_unpack_bin (SKIP_FUNCTIONS)" + else + ebuild_section "Starting builtin_unpack_bin" + builtin_unpack_bin + ebuild_section "Done builtin_unpack_bin" + fi +} + + diff --git a/0.8.0/ebuild/builtin_variable.bash b/0.8.0/ebuild/builtin_variable.bash new file mode 100644 index 000000000..7bdcc488c --- /dev/null +++ b/0.8.0/ebuild/builtin_variable.bash @@ -0,0 +1,24 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +ebuild_f_variable() +{ + echo "${!PALUDIS_VARIABLE}" +} + diff --git a/0.8.0/ebuild/digests/Makefile.am b/0.8.0/ebuild/digests/Makefile.am new file mode 100644 index 000000000..8ac62cae7 --- /dev/null +++ b/0.8.0/ebuild/digests/Makefile.am @@ -0,0 +1,27 @@ +MAINTAINERCLEANFILES = Makefile.in +CLEANFILES = *~ +SUBDIRS = . + +libexecprogdir = $(libexecdir)/paludis/digests/ + +libexecprog_PROGRAMS = \ + dosha256 \ + dormd160 \ + domd5 + +dosha256_SOURCES = dosha256.cc +dosha256_LDADD = $(top_builddir)/paludis/digests/libpaludisdigests.la + +dormd160_SOURCES = dormd160.cc +dormd160_LDADD = $(top_builddir)/paludis/digests/libpaludisdigests.la + +domd5_SOURCES = domd5.cc +domd5_LDADD = $(top_builddir)/paludis/digests/libpaludisdigests.la + +TESTS_ENVIRONMENT = env \ + PALUDIS_EBUILD_DIR="$(srcdir)/ebuild/" \ + TEST_SCRIPT_DIR="$(srcdir)/" \ + bash $(top_srcdir)/test/run_test.sh + +AM_CXXFLAGS = -I$(top_srcdir) @PALUDIS_CXXFLAGS@ + diff --git a/0.8.0/ebuild/digests/domd5.cc b/0.8.0/ebuild/digests/domd5.cc new file mode 100644 index 000000000..d139f472e --- /dev/null +++ b/0.8.0/ebuild/digests/domd5.cc @@ -0,0 +1,54 @@ +/* vim: set sw=4 sts=4 et foldmethod=syntax : */ + +/* + * Copyright (c) 2006 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 + * Public License version 2, as published by the Free Software Foundation. + * + * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <paludis/digests/md5.hh> +#include <iostream> +#include <cstdlib> +#include <fstream> + +int +main(int argc, char * argv[]) +{ + if (argc >= 3) + { + std::cerr << "usage: " << argv[0] << " [filename]" << std::endl; + return EXIT_FAILURE; + } + + if (argc == 2) + { + std::ifstream f(argv[1]); + if (! f) + { + std::cerr << argv[0] << ": could not open '" << argv[1] << "'" << std::endl; + return EXIT_FAILURE; + } + paludis::MD5 sum(f); + std::cout << sum.hexsum() << std::endl; + } + else + { + paludis::MD5 sum(std::cin); + std::cout << sum.hexsum() << std::endl; + } + +} + + + diff --git a/0.8.0/ebuild/digests/dormd160.cc b/0.8.0/ebuild/digests/dormd160.cc new file mode 100644 index 000000000..47fcd7f00 --- /dev/null +++ b/0.8.0/ebuild/digests/dormd160.cc @@ -0,0 +1,53 @@ +/* vim: set sw=4 sts=4 et foldmethod=syntax : */ + +/* + * Copyright (c) 2006 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 + * Public License version 2, as published by the Free Software Foundation. + * + * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <paludis/digests/rmd160.hh> +#include <iostream> +#include <fstream> +#include <cstdlib> + +int +main(int argc, char * argv[]) +{ + if (argc >= 3) + { + std::cerr << "usage: " << argv[0] << " [filename]" << std::endl; + return EXIT_FAILURE; + } + + if (argc == 2) + { + std::ifstream f(argv[1]); + if (! f) + { + std::cerr << argv[0] << ": could not open '" << argv[1] << "'" << std::endl; + return EXIT_FAILURE; + } + paludis::RMD160 sum(f); + std::cout << sum.hexsum() << std::endl; + } + else + { + paludis::RMD160 sum(std::cin); + std::cout << sum.hexsum() << std::endl; + } + +} + + diff --git a/0.8.0/ebuild/digests/dosha256.cc b/0.8.0/ebuild/digests/dosha256.cc new file mode 100644 index 000000000..056ce5a2a --- /dev/null +++ b/0.8.0/ebuild/digests/dosha256.cc @@ -0,0 +1,52 @@ +/* vim: set sw=4 sts=4 et foldmethod=syntax : */ + +/* + * Copyright (c) 2006 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 + * Public License version 2, as published by the Free Software Foundation. + * + * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <paludis/digests/sha256.hh> +#include <iostream> +#include <cstdlib> +#include <fstream> + +int +main(int argc, char * argv[]) +{ + if (argc >= 3) + { + std::cerr << "usage: " << argv[0] << " [filename]" << std::endl; + return EXIT_FAILURE; + } + + if (argc == 2) + { + std::ifstream f(argv[1]); + if (! f) + { + std::cerr << argv[0] << ": could not open '" << argv[1] << "'" << std::endl; + return EXIT_FAILURE; + } + paludis::SHA256 sum(f); + std::cout << sum.hexsum() << std::endl; + } + else + { + paludis::SHA256 sum(std::cin); + std::cout << sum.hexsum() << std::endl; + } + +} + diff --git a/0.8.0/ebuild/ebuild.bash b/0.8.0/ebuild/ebuild.bash new file mode 100755 index 000000000..a4b629a67 --- /dev/null +++ b/0.8.0/ebuild/ebuild.bash @@ -0,0 +1,299 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +unalias -a +unset GZIP BZIP BZIP2 CDPATH GREP_OPTIONS GREP_COLOR GLOBIGNORE +eval unset LANG ${!LC_*} + +export SANDBOX_PREDICT="${SANDBOX_PREDICT+${SANDBOX_PREDICT}:}" +export SANDBOX_PREDICT="${SANDBOX_PREDICT}/proc/self/maps:/dev/console:/dev/random" +export SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}" +export SANDBOX_WRITE="${SANDBOX_WRITE}/dev/shm:/dev/stdout:/dev/stderr:/dev/null:/dev/tty" +export SANDBOX_WRITE="${SANDBOX_WRITE}:${PALUDIS_TMPDIR}:/var/cache" +export SANDBOX_WRITE="${SANDBOX_WRITE}:/proc/self/attr:/proc/self/task:/selinux/context" +export SANDBOX_ON="1" +export REAL_CHOST="${CHOST}" + +shopt -s expand_aliases +shopt -s extglob + +EBUILD_KILL_PID=$$ +alias die='diefunc "$FUNCNAME" "$LINENO"' +alias assert='_pipestatus="${PIPESTATUS[*]}"; [[ -z "${_pipestatus//[ 0]/}" ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus"' +trap 'echo "die trap: exiting with error." 1>&2 ; exit 250' 15 + +export EBUILD_PROGRAM_NAME="$0" + +diefunc() +{ + local func="$1" line="$2" + shift 2 + echo 1>&2 + echo "!!! ERROR in ${CATEGORY:-?}/${PF:-?}:" 1>&2 + echo "!!! In ${func:-?} at line ${line:-?}" 1>&2 + echo "!!! ${*:-(no message provided)}" 1>&2 + echo 1>&2 + + echo "!!! Call stack:" 1>&2 + for (( n = 1 ; n < ${#FUNCNAME[@]} ; ++n )) ; do + funcname=${FUNCNAME[${n}]} + sourcefile=${BASH_SOURCE[${n}]} + lineno=${BASH_LINENO[$(( n - 1 ))]} + echo "!!! * ${funcname} (${sourcefile}:${lineno})" 1>&2 + done + echo 1>&2 + + kill ${EBUILD_KILL_PID} + exit 249 +} + +if [[ -n "${PALUDIS_EBUILD_DIR_FALLBACK}" ]] ; then + export PATH="${PALUDIS_EBUILD_DIR_FALLBACK}/utils:${PATH}" +fi +export PATH="${PALUDIS_EBUILD_DIR}/utils:${PATH}" +EBUILD_MODULES_DIR=$(canonicalise $(dirname $0 ) ) +[[ -d ${EBUILD_MODULES_DIR} ]] || die "${EBUILD_MODULES_DIR} is not a directory" +export PALUDIS_EBUILD_MODULES_DIR="${EBUILD_MODULES_DIR}" + +ebuild_load_module() +{ + source "${EBUILD_MODULES_DIR}/${1}.bash" || die "Error loading module ${1}" +} + +ebuild_load_module echo_functions +ebuild_load_module kernel_functions +ebuild_load_module sandbox +ebuild_load_module portage_stubs +ebuild_load_module list_functions +ebuild_load_module multilib_functions +ebuild_load_module install_functions +ebuild_load_module build_functions +ebuild_load_module eclass_functions + +export PALUDIS_HOME="$(canonicalise ${PALUDIS_HOME:-${HOME}} )" + +ebuild_source_profile() +{ + if [[ -f ${1}/parent ]] ; then + while read line ; do + grep --silent '^[[:space:]]*#' <<<"${line}" && continue + grep --silent '[^[:space:]]' <<<"${line}" || continue + ebuild_source_profile $(canonicalise ${1}/${line} ) + done <${1}/parent + fi + + if [[ -f ${1}/make.defaults ]] ; then + eval "$(sed -e 's/^\([a-zA-Z0-9\-_]\+=\)/export \1/' ${1}/make.defaults )" \ + || die "Couldn't source ${1}/make.defaults" + fi + + if [[ -f ${1}/bashrc ]] ; then + source ${1}/bashrc || die "Couldn't source ${1}/bashrc" + fi +} + +save_vars="USE USE_EXPAND ${USE_EXPAND}" + +for var in ${save_vars} ; do + ebuild_notice "debug" "Saving ${var}=${!var}" + eval "export save_var_${var}='${!var}'" +done + +if [[ -n "${PALUDIS_PROFILE_DIRS}" ]] ; then + for var in ${PALUDIS_PROFILE_DIRS} ; do + ebuild_source_profile $(canonicalise "${var}") + done +elif [[ -n "${PALUDIS_PROFILE_DIR}" ]] ; then + ebuild_source_profile $(canonicalise "${PALUDIS_PROFILE_DIR}") +fi + +unset ${save_vars} + +for f in ${PALUDIS_BASHRC_FILES} ; do + if [[ -f ${f} ]] ; then + ebuild_notice "debug" "Loading bashrc file ${f}" + source ${f} + else + ebuild_notice "debug" "Skipping bashrc file ${f}" + fi +done + +for var in ${save_vars} ; do + if [[ -n ${!var} ]] ; then + die "${var} should not be set in bashrc. Aborting." + fi +done + +for var in ${save_vars} ; do + eval "export ${var}=\${save_var_${var}}" +done + +ebuild_load_ebuild() +{ + if [[ -n "${PALUDIS_LOAD_ENVIRONMENT}" ]] ; then + [[ -d ${PALUDIS_TMPDIR} ]] \ + || die "You need to create PALUDIS_TMPDIR (${PALUDIS_TMPDIR})." + bunzip2 < "${PALUDIS_LOAD_ENVIRONMENT}" > ${PALUDIS_TMPDIR}/environment-${CATEGORY}-${PF} \ + || die "Can't extract ${PALUDIS_LOAD_ENVIRONMENT}" + + sed -i \ + -e '/^diefunc ()/,/^}/d' \ + -e '/^perform_hook ()/,/^}/d' \ + -e '/^inherit ()/,/^}/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?ROOTPATH=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PATH=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?T=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PALUDIS_TMPDIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PALUDIS_EBUILD_LOG_LEVEL=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PORTDIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?FILESDIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?ECLASSDIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?DISTDIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PALUDIS_EBUILD_DIR=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PALUDIS_COMMAND=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?PALUDIS_HOME=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?ROOT=/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?SANDBOX/d' \ + -e '/^\(declare \(-[^ ]\+ \)\?\)\?LD_/d' \ + "${PALUDIS_TMPDIR}/environment-${CATEGORY}-${PF}" + + source "${PALUDIS_TMPDIR}/environment-${CATEGORY}-${PF}" &>/dev/null \ + || die "Can't load saved environment" + + rm "${PALUDIS_TMPDIR}/environment-${CATEGORY}-${PF}" + fi + + export EBUILD="${1}" + if [[ "${CATEGORY}" == "virtual" ]] ; then + if [[ -f "${1}" ]] ; then + source ${1} || die "Error sourcing ebuild '${1}'" + elif [[ -e "${1}" ]] ; then + die "'${1}' exists but is not a regular file" + fi + else + [[ -f "${1}" ]] || die "Ebuild '${1}' is not a file" + source ${1} || die "Error sourcing ebuild '${1}'" + fi + [[ ${RDEPEND-unset} == "unset" ]] && RDEPEND="${DEPEND}" + + IUSE="${IUSE} ${E_IUSE}" + DEPEND="${DEPEND} ${E_DEPEND}" + RDEPEND="${RDEPEND} ${E_RDEPEND}" + PDEPEND="${PDEPEND} ${E_PDEPEND}" + KEYWORDS="${KEYWORDS} ${E_KEYWORDS}" + [[ ${EAPI-unset} == "unset" ]] && EAPI="0" +} + +perform_hook() +{ + export HOOK=${1} + ebuild_notice "debug" "Starting hook '${HOOK}'" + + local old_sandbox_on="${SANDBOX_ON}" + export SANDBOX_ON="0" + + local hook_dir + for hook_dir in ${PALUDIS_HOOK_DIRS} ; do + [[ -d "${hook_dir}/${HOOK}" ]] || continue + local hook_file + for hook_file in "${hook_dir}/${HOOK}/"*.bash ; do + [[ -e "${hook_file}" ]] || continue + ebuild_notice "debug" "Starting hook script '${hook_file}' for '${HOOK}'" + if ! ( source "${hook_file}" ) ; then + ebuild_notice "warning" "Hook '${hook_file}' returned failure" + else + ebuild_notice "warning" "Hook '${hook_file}' returned success" + fi + done + done + + export SANDBOX_ON="${old_sandbox_on}" +} + +ebuild_main() +{ + if ! [[ -e /proc/self ]] ; then + ebuild_notice "warning" "/proc appears to be unmounted or unreadable." + ebuild_notice "warning" "This will cause problems." + fi + + local action ebuild="$1" + shift + + for action in $@ ; do + case ${action} in + metadata|variable|init|fetch|merge|unmerge|tidyup|strip|init_bin|unpack_bin|fetch_bin) + ebuild_load_module builtin_${action} + ;; + + unpack|compile|install|test) + ebuild_load_module src_${action} + ;; + + setup|config|nofetch|preinst|postinst|prerm|postrm) + ebuild_load_module pkg_${action} + ;; + + *) + ebuild_load_module usage_error + ebuild_f_usage_error "Unknown action '${action}'" + exit 1 + ;; + esac + done + + if [[ $1 == metadata ]] || [[ $1 == variable ]] ; then + perform_hook ebuild_${action}_pre + if [[ $1 != variable ]] || [[ -n "${ebuild}" ]] ; then + for f in cut tr date ; do + eval "export ebuild_real_${f}=\"$(which $f )\"" + eval "${f}() { ebuild_notice qa 'global scope ${f}' ; $(which $f ) \"\$@\" ; }" + done + PATH="" ebuild_load_ebuild "${ebuild}" + fi + if ! ebuild_f_${1} ; then + perform_hook ebuild_${action}_fail + die "${1} failed" + fi + perform_hook ebuild_${action}_post + else + if [[ "${ebuild%.ebin}" == "${ebuild}" ]] ; then + ebuild_load_ebuild "${ebuild}" + fi + for action in $@ ; do + export EBUILD_PHASE="${action}" + perform_hook ebuild_${action}_pre + if ! ebuild_f_${action} ; then + perform_hook ebuild_${action}_fail + die "${action} failed" + fi + if [[ ${action} == "init" ]] ; then + ebuild_load_ebuild "${ebuild}" + fi + perform_hook ebuild_${action}_post + done + fi +} + +ebuild_main $@ + diff --git a/0.8.0/ebuild/echo_functions.bash.in b/0.8.0/ebuild/echo_functions.bash.in new file mode 100644 index 000000000..aa6d239a2 --- /dev/null +++ b/0.8.0/ebuild/echo_functions.bash.in @@ -0,0 +1,190 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +@GENERATED_FILE@ + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +[[ -z ${PALUDIS_COLOURS} ]] && PALUDIS_COLOURS=@COLOURSCHEME@ + +COLOUR_GREEN=$'\e[32;01m' +COLOUR_YELLOW=$'\e[33;01m' +COLOUR_RED=$'\e[31;01m' +COLOUR_BLUE=$'\e[34;01m' +COLOUR_PINK=$'\e[35;01m' + +if [[ ${PALUDIS_COLOURS} == pink ]]; then + COLOUR_GOOD=${COLOUR_PINK} + COLOUR_WARN=${COLOUR_YELLOW} + COLOUR_BAD=${COLOUR_RED} + COLOUR_BRACKET=${COLOUR_PINK} +else + COLOUR_GOOD=${COLOUR_GREEN} + COLOUR_WARN=${COLOUR_YELLOW} + COLOUR_BAD=${COLOUR_RED} + COLOUR_BRACKET=${COLOUR_BLUE} +fi + +COLOUR_NORMAL=$'\e[0m' +PALUDIS_ENDCOL=$'\e[A\e['$(( ${COLUMNS:-80} - 7 ))'G' + +einfon() +{ + echo -ne " ${COLOUR_GOOD}*${COLOUR_NORMAL} $*" + PALUDIS_LAST_E_CMD=einfon +} + +einfo() +{ + einfon "$*\n" + PALUDIS_LAST_E_CMD=einfo +} + +elog() +{ + einfo "$@" + if [[ -n "${PALUDIS_ELOG_FILE}" ]] ; then + echo "$@" >> "${PALUDIS_ELOG_FILE}" + fi +} + +ewarn() +{ + echo -e " ${COLOUR_WARN}*${COLOUR_NORMAL} $*" + PALUDIS_LAST_E_CMD=ewarn +} + +eerror() +{ + echo -e " ${COLOUR_BAD}*${COLOUR_NORMAL} $*" + PALUDIS_LAST_E_CMD=eerror +} + +ebegin() +{ + einfo "$* ..." + PALUDIS_LAST_E_CMD=ebegin + PALUDIS_LAST_E_LEN=$(( 4 + ${#msg} )) +} + +_eend() +{ + local retval=${1:-0} efunc=${2:-eerror} msg + shift 2 + + if [[ ${retval} == 0 ]]; then + msg="${COLOUR_BRACKET}[ ${COLOUR_GOOD}ok${COLOUR_BRACKET} ]${COLOUR_NORMAL}" + else + if [[ -n "$*" ]]; then + ${efunc} $* + fi + msg="${COLOUR_BRACKET}[ ${COLOUR_BAD}!!${COLOUR_BRACKET} ]${COLOUR_NORMAL}" + fi + +# printf "%$(( ${COLUMNS:-80} - PALUDIS_LAST_E_LEN - 6))s%b\n" '' "${msg}" + echo -e "${PALUDIS_ENDCOL} ${msg}" + + return ${retval} +} + +eend() +{ + local retval=${1:-0} + shift + _eend ${retval} eerror "$*" + PALUDIS_LAST_E_CMD=eend + return ${retval} +} + +ewend() +{ + local retval=${1:-0} + shift + _eend ${retval} ewarn "$*" + PALUDIS_LAST_E_CMD=ewend + return ${retval} +} + +use_with() +{ + if useq "${1}" ; then + echo "--with-${2:-${1}}${3+=${3}}" + else + echo "--without-${2:-${1}}" + fi +} + +use_enable() +{ + if useq "${1}" ; then + echo "--enable-${2:-${1}}${3+=${3}}" + else + echo "--disable-${2:-${1}}" + fi +} + +ebuild_notice_level() +{ + case "$1" in + debug) + echo "1"; + ;; + + qa) + echo "2"; + ;; + + warning) + echo "3"; + ;; + + silent) + echo "4"; + ;; + + *) + echo "[WARNING.EBUILD] Bad value '$1' for qa level" 1>&2 + echo "2"; + ;; + esac +} + +ebuild_notice() +{ + local level="$1" + shift + + local level_num=$(ebuild_notice_level "${level}" ) + local min_level_num=$(ebuild_notice_level "${PALUDIS_EBUILD_LOG_LEVEL}" ) + + if [[ "${level_num}" -ge "${min_level_num}" ]] ; then + local upper_level=$(echo ${level} | ${ebuild_real_tr:-tr} '[:lower:]' '[:upper:]' ) + echo -n "${EBUILD_PROGRAM_NAME:-ebuild.bash}@$(${ebuild_real_date:-date} +%s ): " 1>&2 + echo "[${upper_level}.EBUILD] $* (from ${EBUILD:-?})" 1>&2 + fi + true +} + +ebuild_section() +{ + echo ">>> $*" +} + diff --git a/0.8.0/ebuild/echo_functions_TEST.bash b/0.8.0/ebuild/echo_functions_TEST.bash new file mode 100644 index 000000000..6e4ad2786 --- /dev/null +++ b/0.8.0/ebuild/echo_functions_TEST.bash @@ -0,0 +1,45 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License version 2, as published by the Free Software Foundation. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +use_with_TEST() +{ + export USE="foo" + test_equality "$(use_with foo )" "--with-foo" + test_equality "$(use_with foo bar )" "--with-bar" + test_equality "$(use_with foo bar baz )" "--with-bar=baz" + + export USE="oink" + test_equality "$(use_with foo )" "--without-foo" + test_equality "$(use_with foo bar )" "--without-bar" + test_equality "$(use_with foo bar baz )" "--without-bar" +} + + +use_enable_TEST() +{ + export USE="foo" + test_equality "$(use_enable foo )" "--enable-foo" + test_equality "$(use_enable foo bar )" "--enable-bar" + test_equality "$(use_enable foo bar baz )" "--enable-bar=baz" + + export USE="oink" + test_equality "$(use_enable foo )" "--disable-foo" + test_equality "$(use_enable foo bar )" "--disable-bar" + test_equality "$(use_enable foo bar baz )" "--disable-bar" +} + diff --git a/0.8.0/ebuild/eclass_functions.bash b/0.8.0/ebuild/eclass_functions.bash new file mode 100644 index 000000000..d6b32dbff --- /dev/null +++ b/0.8.0/ebuild/eclass_functions.bash @@ -0,0 +1,84 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +EXPORT_FUNCTIONS() +{ + [[ -z "${ECLASS}" ]] && die "EXPORT_FUNCTIONS called but ECLASS undefined" + + local e + for e in "$@" ; do + case "$e" in + pkg_setup|pkg_prerm|pkg_postrm|pkg_preinst|pkg_postinst) + eval "${e}() { ${ECLASS}_${e} \"\$@\" ; }" + ;; + + src_unpack|src_compile|src_install|src_test) + eval "${e}() { ${ECLASS}_${e} \"\$@\" ; }" + ;; + + *) + eval "${e}() { ${ECLASS}_${e} \"\$@\" ; }" + ebuild_notice "qa" "$e should not be in EXPORT_FUNCTIONS for ${ECLASS}" + ;; + esac + done +} + +inherit() +{ + [[ -n "${PALUDIS_SKIP_INHERIT}" ]] && return + + local e ee location= + for e in "$@" ; do + for ee in ${ECLASSDIRS:-${ECLASSDIR}} ; do + [[ -f "${ee}/${e}.eclass" ]] && location="${ee}/${e}.eclass" + done + local old_ECLASS="${ECLASS}" + export ECLASS="${e}" + + local current_IUSE="${IUSE}" current_DEPEND="${DEPEND}" + local current_RDEPEND="${RDEPEND}" current_PDEPEND="${PDEPEND}" + local current_KEYWORDS="${KEYWORDS}" + + unset IUSE DEPEND RDEPEND PDEPEND KEYWORDS + + [[ -z "${location}" ]] && die "Error finding eclass ${e}" + source "${location}" || die "Error sourcing eclass ${e}" + hasq "${ECLASS}" ${INHERITED} || export INHERITED="${INHERITED} ${ECLASS}" + + E_IUSE="${E_IUSE} ${IUSE}" + E_PDEPEND="${E_PDEPEND} ${PDEPEND}" + E_RDEPEND="${E_RDEPEND} ${RDEPEND}" + E_DEPEND="${E_DEPEND} ${DEPEND}" + E_KEYWORDS="${KEYWORDS:+${KEYWORDS} }${E_KEYWORDS}" + + IUSE="${current_IUSE}" + DEPEND="${current_DEPEND}" + RDEPEND="${current_RDEPEND}" + PDEPEND="${current_PDEPEND}" + KEYWORDS="${current_KEYWORDS}" + + export ECLASS="${old_ECLASS}" + done +} + diff --git a/0.8.0/ebuild/fetchers/Makefile.am b/0.8.0/ebuild/fetchers/Makefile.am new file mode 100644 index 000000000..8a4dd4f32 --- /dev/null +++ b/0.8.0/ebuild/fetchers/Makefile.am @@ -0,0 +1,27 @@ +MAINTAINERCLEANFILES = Makefile.in +CLEANFILES = *~ dohttp dohttps doftp +SUBDIRS = . + +libexecprogdir = $(libexecdir)/paludis/fetchers/ + +libexecprog_SCRIPTS = \ + dohttp \ + dohttps \ + doftp \ + dofile + +TESTS_ENVIRONMENT = env \ + PALUDIS_EBUILD_DIR="$(srcdir)/ebuild/" \ + TEST_SCRIPT_DIR="$(srcdir)/" \ + bash $(top_srcdir)/test/run_test.sh + +TESTS = +EXTRA_DIST = $(libexecprog_SCRIPTS) dowget.in + +check_SCRIPTS = +check_PROGRAMS = $(TESTS) + +AM_CXXFLAGS = -I$(top_srcdir) @PALUDIS_CXXFLAGS@ + +dohttp dohttps doftp : dowget.in + cat $< > $@ diff --git a/0.8.0/ebuild/fetchers/dofile b/0.8.0/ebuild/fetchers/dofile new file mode 100755 index 000000000..fd3e54bf5 --- /dev/null +++ b/0.8.0/ebuild/fetchers/dofile @@ -0,0 +1,6 @@ +#!/bin/bash + +shopt -s extglob +echo cp "/${1##file:+(/)}" "${2}" 1>&2 +cp "/${1##file:+(/)}" "${2}" + diff --git a/0.8.0/ebuild/fetchers/dowget.in b/0.8.0/ebuild/fetchers/dowget.in new file mode 100755 index 000000000..a6d800722 --- /dev/null +++ b/0.8.0/ebuild/fetchers/dowget.in @@ -0,0 +1,10 @@ +#!/bin/bash + +echo ${WGET_WRAPPER} ${LOCAL_WGET:-wget} ${EXTRA_WGET} -T 30 -t 1 -O "${2}" "${1}" 1>&2 +if ${WGET_WRAPPER} ${LOCAL_WGET:-wget} ${EXTRA_WGET} -T 30 -t 1 -O "${2}" "${1}" ; then + exit 0 +else + rm -f "${2}" + exit 1 +fi + diff --git a/0.8.0/ebuild/install_functions.bash b/0.8.0/ebuild/install_functions.bash new file mode 100644 index 000000000..4b8ab3b39 --- /dev/null +++ b/0.8.0/ebuild/install_functions.bash @@ -0,0 +1,110 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +umask 022 +export DESTTREE="/usr" +export INSDESTTREE="" +export EXEDESTTREE="" +export DOCDESTTREE="" +export INSOPTIONS="-m0644" +export EXEOPTIONS="-m0755" +export LIBOPTIONS="-m0644" +export DIROPTIONS="-m0755" +export MOPREFIX="${PN}" + +keepdir() +{ + dodir "$@" + if [[ "${1}" == "-R" ]] || [[ "${1}" == "-r" ]] ; then + shift + find "$@" -type d -printf "${D}/%p/.keep\0" | xargs -0 touch + assert "Failed to create .keep files" + else + local f + for f in "$@" ; do + touch "${D}/${f}/.keep" || die "Couldn't touch .keep in ${f}" + done + fi +} + +into() +{ + if [[ "${1}" == "/" ]] ; then + export DESTTREE= + else + export DESTTREE="${1}" + [[ -d "${D}${DESTTREE}" ]] || install -d "${D}${DESTTREE}" + fi +} + +insinto() +{ + if [[ "${1}" == "/" ]] ; then + export INSDESTTREE= + else + export INSDESTTREE="${1}" + [[ -d "${D}${INSDESTTREE}" ]] || install -d "${D}${INSDESTTREE}" + fi +} + +exeinto() +{ + if [[ "${1}" == "/" ]] ; then + export EXEDESTTREE= + else + export EXEDESTTREE="${1}" + [[ -d "${D}${EXEDESTTREE}" ]] || install -d "${D}${EXEDESTTREE}" + fi +} + +docinto() +{ + if [[ "${1}" == "/" ]] ; then + export DOCDESTTREE= + else + export DOCDESTTREE="${1}" + [[ -d "${D}usr/share/doc/${PF}/${DOCDESTTREE}" ]] || \ + install -d "${D}usr/share/doc/${PF}/${DOCDESTTREE}" + fi +} + +insopts() +{ + export INSOPTIONS="$@" +} + +diropts() +{ + export DIROPTIONS="$@" +} + +exeopts() +{ + export EXEOPTIONS="$@" +} + +libopts() +{ + export LIBOPTIONS="$@" +} + diff --git a/0.8.0/ebuild/kernel_functions.bash b/0.8.0/ebuild/kernel_functions.bash new file mode 100644 index 000000000..554df653e --- /dev/null +++ b/0.8.0/ebuild/kernel_functions.bash @@ -0,0 +1,60 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon functions.sh from Baselayout, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +KV_major() +{ + [[ -z $1 ]] && return 1 + local KV=$@ + echo ${KV%%.*} +} + +KV_minor() +{ + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo ${KV%%.*} +} + +KV_micro() +{ + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo ${KV%%[^[:digit:]]*} +} + +KV_to_int() +{ + [[ -z $1 ]] && return 1 + + local major=$(KV_major "$1") + local minor=$(KV_minor "$1") + local micro=$(KV_micro "$1") + echo $(( major * 65536 + minor * 256 + micro )) +} + +get_KV() +{ + echo $(KV_to_int "$(uname -r)") +} diff --git a/0.8.0/ebuild/kernel_functions_TEST.bash b/0.8.0/ebuild/kernel_functions_TEST.bash new file mode 100644 index 000000000..de3a74f2c --- /dev/null +++ b/0.8.0/ebuild/kernel_functions_TEST.bash @@ -0,0 +1,42 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.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 +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +KV_major_TEST() +{ + test_equality "$(KV_major 2.4.6)" "2" +} + +KV_minor_TEST() +{ + test_equality "$(KV_minor 2.6.16)" "6" + test_equality "$(KV_minor 2.6.7-gentoo-r1)" "6" + test_equality "$(KV_minor 2.4.18-rc1)" "4" +} + +KV_micro_TEST() +{ + test_equality "$(KV_micro 2.6.0)" "0" + test_equality "$(KV_micro 2.5.63-mm8)" "63" + test_equality "$(KV_micro 2.2.0-foo1)" "0" +} + +KV_to_int_TEST() +{ + test_equality "$(KV_to_int 2.6.16)" "132624" +} diff --git a/0.8.0/ebuild/list_functions.bash b/0.8.0/ebuild/list_functions.bash new file mode 100644 index 000000000..643cab6d5 --- /dev/null +++ b/0.8.0/ebuild/list_functions.bash @@ -0,0 +1,71 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +use() +{ + useq "${1}" +} + +usev() +{ + if useq "${1}" ; then + echo "${1#!}" + return 0 + else + return 1 + fi +} + +useq() +{ + if [[ "${1:0:1}" == "!" ]] ; then + ! hasq "${1#!}" "${USE}" + else + hasq "${1}" "${USE}" + fi +} + +has() +{ + hasq "${@}" +} + +hasv() +{ + if hasq "${@}" ; then + echo "${1}" + return 0 + else + return 1 + fi +} + +hasq() +{ + local x= want="$1" + shift + for x in $@ ; do + [[ "${x}" == "${want}" ]] && return 0 + done + return 1 +} diff --git a/0.8.0/ebuild/list_functions_TEST.bash b/0.8.0/ebuild/list_functions_TEST.bash new file mode 100644 index 000000000..c3ba14fbb --- /dev/null +++ b/0.8.0/ebuild/list_functions_TEST.bash @@ -0,0 +1,74 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License version 2, as published by the Free Software Foundation. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +use_TEST() +{ + export USE="foo bar" + + use foo ; test_return_code + use bar ; test_return_code + ! use baz ; test_return_code + ! use foofoo ; test_return_code + ! use fo ; test_return_code + + ! use !foo ; test_return_code + ! use !bar ; test_return_code + use !baz ; test_return_code + use !foofoo ; test_return_code + use !fo ; test_return_code +} + +usev_TEST() +{ + export USE="foo bar" + usev foo 1>/dev/null ; test_return_code + test_equality "$(usev foo)" "foo" + + usev bar 1>/dev/null ; test_return_code + test_equality "$(usev bar)" "bar" + + ! usev baz 1>/dev/null ; test_return_code + test_equality "$(usev baz)" "" + + ! usev !foo 1>/dev/null ; test_return_code + test_equality "$(usev !foo)" "" + + ! usev !bar 1>/dev/null ; test_return_code + test_equality "$(usev !bar)" "" + + ! usev baz 1>/dev/null ; test_return_code + test_equality "$(usev !baz)" "baz" +} + +useq_TEST() +{ + export USE="foo bar" + + useq foo ; test_return_code + useq bar ; test_return_code + ! useq baz ; test_return_code + ! useq foofoo ; test_return_code + ! useq fo ; test_return_code + + ! useq !foo ; test_return_code + ! useq !bar ; test_return_code + useq !baz ; test_return_code + useq !foofoo ; test_return_code + useq !fo ; test_return_code +} + diff --git a/0.8.0/ebuild/multilib_functions.bash b/0.8.0/ebuild/multilib_functions.bash new file mode 100644 index 000000000..181339609 --- /dev/null +++ b/0.8.0/ebuild/multilib_functions.bash @@ -0,0 +1,67 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +# Default values. Those used on a non-multilib profile. +export MULTILIB_ABIS=${MULTILIB_ABIS:-"default"} +export DEFAULT_ABI=${DEFAULT_ABI:-"default"} +export CFLAGS_default +export LDFLAGS_default +export CHOST_default=${CHOST_default:-${CHOST}} +export CTARGET_default=${CTARGET_default:-${CTARGET:-${CHOST_default}}} +export LIBDIR_default=${CONF_LIBDIR:-"lib"} +export CDEFINE_default + + +ebuild_get_libdir() { + local CONF_LIBDIR + if [[ -n "${CONF_LIBDIR_OVERRIDE}" ]]; then + echo ${CONF_LIBDIR_OVERRIDE} + else + ebuild_get_abi_LIBDIR + fi +} + +ebuild_get_abi_var() { + local flag=$1 + local abi + if [[ $# -gt 1 ]]; then + abi=${2} + elif [[ -n "${ABI}" ]]; then + abi=${ABI} + elif [[ -n "${DEFAULT_ABI}" ]]; then + abi=${DEFAULT_ABI} + else + abi="default" + fi + + local var="${flag}_${abi}" + echo ${!var} +} + +ebuild_get_abi_CFLAGS() { ebuild_get_abi_var CFLAGS "$@"; } +ebuild_get_abi_LDFLAGS() { ebuild_get_abi_var LDFLAGS "$@"; } +ebuild_get_abi_CHOST() { ebuild_get_abi_var CHOST "$@"; } +ebuild_get_abi_CTARGET() { ebuild_get_abi_var CTARGET "$@"; } +ebuild_get_abi_FAKE_TARGETS() { ebuild_get_abi_var FAKE_TARGETS "$@"; } +ebuild_get_abi_CDEFINE() { ebuild_get_abi_var CDEFINE "$@"; } +ebuild_get_abi_LIBDIR() { ebuild_get_abi_var LIBDIR "$@"; } diff --git a/0.8.0/ebuild/pkg_config.bash b/0.8.0/ebuild/pkg_config.bash new file mode 100644 index 000000000..d88570a8d --- /dev/null +++ b/0.8.0/ebuild/pkg_config.bash @@ -0,0 +1,28 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_config() +{ + eerror "No configuration function is defined" +} + diff --git a/0.8.0/ebuild/pkg_nofetch.bash b/0.8.0/ebuild/pkg_nofetch.bash new file mode 100644 index 000000000..d3b3757e2 --- /dev/null +++ b/0.8.0/ebuild/pkg_nofetch.bash @@ -0,0 +1,62 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_nofetch() +{ + [[ -z "${A}" ]] && return + + local f g= + for f in ${A} ; do + [[ -f "${DISTDIR}/${A}" ]] && continue + if [[ -z "${g}" ]] ; then + echo "The following files could not be fetched automatically for ${PN}:" + g=no + fi + echo "* ${f}" + done +} + +ebuild_f_nofetch() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${DISTDIR}" + if hasq "nofetch" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_nofetch (SKIP_FUNCTIONS)" + else + local a f= + for a in ${A} ; do + [[ -f "${DISTDIR}/${a}" ]] && continue + f=yes + done + + if [[ -z "${f}" ]] ; then + ebuild_section "Skipping pkg_nofetch (fully fetched already)" + else + ebuild_section "Starting pkg_nofetch" + pkg_nofetch + ebuild_section "Done pkg_nofetch" + die "Manual fetching is required" + fi + fi + SANDBOX_WRITE="${old_sandbox_write}" +} diff --git a/0.8.0/ebuild/pkg_postinst.bash b/0.8.0/ebuild/pkg_postinst.bash new file mode 100644 index 000000000..b3588d874 --- /dev/null +++ b/0.8.0/ebuild/pkg_postinst.bash @@ -0,0 +1,46 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_postinst() +{ + : +} + +ebuild_f_postinst() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + + if hasq "postinst" ${RESTRICT} ; then + ebuild_section "Skipping pkg_postinst (RESTRICT)" + elif hasq "postinst" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_postinst (SKIP_FUNCTIONS)" + else + ebuild_section "Starting pkg_postinst" + pkg_postinst + ebuild_section "Done pkg_postinst" + fi + + SANDBOX_WRITE="${old_sandbox_write}" +} + diff --git a/0.8.0/ebuild/pkg_postrm.bash b/0.8.0/ebuild/pkg_postrm.bash new file mode 100644 index 000000000..f5809cab7 --- /dev/null +++ b/0.8.0/ebuild/pkg_postrm.bash @@ -0,0 +1,47 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_postrm() +{ + : +} + +ebuild_f_postrm() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + + if hasq "postrm" ${RESTRICT} ; then + ebuild_section "Skipping pkg_postrm (RESTRICT)" + elif hasq "postrm" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_postrm (SKIP_FUNCTIONS)" + else + ebuild_section "Starting pkg_postrm" + pkg_postrm + ebuild_section "Done pkg_postrm" + fi + + SANDBOX_WRITE="${old_sandbox_write}" +} + + diff --git a/0.8.0/ebuild/pkg_preinst.bash b/0.8.0/ebuild/pkg_preinst.bash new file mode 100644 index 000000000..7a9caf4d5 --- /dev/null +++ b/0.8.0/ebuild/pkg_preinst.bash @@ -0,0 +1,46 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_preinst() +{ + : +} + +ebuild_f_preinst() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + + if hasq "preinst" ${RESTRICT} ; then + ebuild_section "Skipping pkg_preinst (RESTRICT)" + elif hasq "preinst" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_preinst (SKIP_FUNCTIONS)" + else + ebuild_section "Starting pkg_preinst" + pkg_preinst + ebuild_section "Done pkg_preinst" + fi + + SANDBOX_WRITE="${old_sandbox_write}" +} + diff --git a/0.8.0/ebuild/pkg_prerm.bash b/0.8.0/ebuild/pkg_prerm.bash new file mode 100644 index 000000000..bd4eda93a --- /dev/null +++ b/0.8.0/ebuild/pkg_prerm.bash @@ -0,0 +1,46 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_prerm() +{ + : +} + +ebuild_f_prerm() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + + if hasq "prerm" ${RESTRICT} ; then + ebuild_section "Skipping pkg_prerm (RESTRICT)" + elif hasq "prerm" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_prerm (SKIP_FUNCTIONS)" + else + ebuild_section "Starting pkg_prerm" + pkg_prerm + ebuild_section "Done pkg_prerm" + fi + + SANDBOX_WRITE="${old_sandbox_write}" +} + diff --git a/0.8.0/ebuild/pkg_setup.bash b/0.8.0/ebuild/pkg_setup.bash new file mode 100644 index 000000000..12183ed94 --- /dev/null +++ b/0.8.0/ebuild/pkg_setup.bash @@ -0,0 +1,46 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +pkg_setup() +{ + : +} + +ebuild_f_setup() +{ + local old_sandbox_write="${SANDBOX_WRITE}" + SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${ROOT%/}/" + + if hasq "setup" ${RESTRICT} ; then + ebuild_section "Skipping pkg_setup (RESTRICT)" + elif hasq "setup" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping pkg_setup (SKIP_FUNCTIONS)" + else + ebuild_section "Starting pkg_setup" + pkg_setup + ebuild_section "Done pkg_setup" + fi + + SANDBOX_WRITE="${old_sandbox_write}" +} + diff --git a/0.8.0/ebuild/portage_stubs.bash b/0.8.0/ebuild/portage_stubs.bash new file mode 100644 index 000000000..bd5f96c10 --- /dev/null +++ b/0.8.0/ebuild/portage_stubs.bash @@ -0,0 +1,85 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +has_version() +{ + ${PALUDIS_COMMAND} --has-version "$@" +} + +portageq() +{ + # \todo Make this suck less... + if [[ "$1" == "has_version" ]] ; then + if [[ "$(canonicalise $2 )" != "$(canonicalise $ROOT )" ]] ; then + eerror "Error emulating 'portageq $@':" + die "portageq has_version emulation only works on current ROOT" + else + shift ; shift + has_version "$@" + fi + elif [[ "$1" == "best_version" ]] ; then + if [[ "$(canonicalise $2 )" != "$(canonicalise $ROOT )" ]] ; then + eerror "Error emulating 'portageq $@':" + die "portageq best_version emulation only works on current ROOT" + else + shift ; shift + best_version "$@" + fi + elif [[ "$1" == "vdb_path" ]] ; then + vdb_path + else + eerror "Error emulating 'portageq $@':" + die "portageq emulation for $1 not implemented" + fi +} + +best_version() +{ + ${PALUDIS_COMMAND} --best-version "$@" +} + +vdb_path() +{ + ${PALUDIS_COMMAND} --configuration-variable installed location +} + +check_KV() +{ + die "check_KV not implemented" +} + +debug-print() +{ + : +} + +debug-print-function() +{ + : +} + +debug-print-section() +{ + : +} + diff --git a/0.8.0/ebuild/run_test.bash b/0.8.0/ebuild/run_test.bash new file mode 100644 index 000000000..b5587b9d1 --- /dev/null +++ b/0.8.0/ebuild/run_test.bash @@ -0,0 +1,47 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +shopt -s expand_aliases +shopt -s extglob +set +o posix + +export TEST_STATUS= +export PALUDIS_IN_TEST_FRAMEWORK="yes" + +test_return_code() +{ + local r="$?" + if [[ "0" == "${r}" ]] ; then + echo -n "." + else + echo -n "!{retcode: ${r}}" + export local_test_status="fail" + export TEST_STATUS="fail" + fi +} + +test_equality() +{ + if [[ "${1}" == "${2}" ]] ; then + echo -n "." + else + echo -n "!{'${1}' not equal to '${2}'}" + export local_test_status="fail" + export TEST_STATUS="fail" + fi +} + +echo "Test program ${1}:" +source "$(dirname ${1} )/ebuild.bash" || exit 200 +source "${1}" || exit 200 + +for testname in $(set | grep '_TEST *() *$' ) ; do + [[ ${testname/()} != ${testname} ]] && continue + echo -n "* ${testname%_TEST}: " + export local_test_status="" + ${testname} + [[ -z "$local_test_status" ]] && echo " OK" || echo " FAIL" +done + +[[ -z "$TEST_STATUS" ]] + diff --git a/0.8.0/ebuild/sandbox.bash b/0.8.0/ebuild/sandbox.bash new file mode 100644 index 000000000..2b03dec56 --- /dev/null +++ b/0.8.0/ebuild/sandbox.bash @@ -0,0 +1,43 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +addread() +{ + export SANDBOX_READ="${SANDBOX_READ+${SANDBOX_READ}:}${1}" +} + +addwrite() +{ + export SANDBOX_WRITE="${SANDBOX_WRITE+${SANDBOX_WRITE}:}${1}" +} + +adddeny() +{ + export SANDBOX_DENY="${SANDBOX_DENY+${SANDBOX_DENY}:}${1}" +} + +addpredict() +{ + export SANDBOX_PREDICT="${SANDBOX_PREDICT+${SANDBOX_PREDICT}:}${1}" +} + diff --git a/0.8.0/ebuild/src_compile.bash b/0.8.0/ebuild/src_compile.bash new file mode 100644 index 000000000..6f5c4d3a1 --- /dev/null +++ b/0.8.0/ebuild/src_compile.bash @@ -0,0 +1,47 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +src_compile() +{ + [[ -x ./configure ]] && econf + if [[ -f Makefile ]] || [[ -f makefile ]] || [[ -f GNUmakefile ]] ; then + emake || die "emake failed" + fi +} + +ebuild_f_compile() +{ + mkdir -p ${S} + cd ${S} || die "cd to \${S} (\"${S}\") failed" + + if hasq "compile" ${RESTRICT} ; then + ebuild_section "Skipping src_compile (RESTRICT)" + elif hasq "compile" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping src_compile (SKIP_FUNCTIONS)" + else + ebuild_section "Starting src_compile" + src_compile + ebuild_section "Done src_compile" + fi +} + diff --git a/0.8.0/ebuild/src_install.bash b/0.8.0/ebuild/src_install.bash new file mode 100644 index 000000000..1fb9b0c2e --- /dev/null +++ b/0.8.0/ebuild/src_install.bash @@ -0,0 +1,43 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +src_install() +{ + : +} + +ebuild_f_install() +{ + cd ${S} || die "cd to \${S} (\"${S}\") failed" + + if hasq "install" ${RESTRICT} ; then + ebuild_section "Skipping src_install (RESTRICT)" + elif hasq "install" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping src_install (SKIP_FUNCTIONS)" + else + ebuild_section "Starting src_install" + src_install + ebuild_section "Done src_install" + fi +} + diff --git a/0.8.0/ebuild/src_test.bash b/0.8.0/ebuild/src_test.bash new file mode 100644 index 000000000..abdc8597d --- /dev/null +++ b/0.8.0/ebuild/src_test.bash @@ -0,0 +1,59 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +src_test() +{ + if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]] ; then + echo "Makefile found, looking for potential test targets" + if make -j1 -n check ; then + echo "Found check target" + emake -j1 check || die "make check failed" + elif make -j1 -n test ; then + echo "Found test target" + emake -j1 test || die "make test failed" + else + echo "No check or test target, skipping tests" + fi + else + echo "No Makefile, skipping tests" + fi +} + +ebuild_f_test() +{ + local old_sandbox_predict="${SANDBOX_PREDICT}" + SANDBOX_PREDICT="${SANDBOX_PREDICT+${SANDBOX_PREDICT}:}/" + + if hasq "test" ${RESTRICT} ; then + ebuild_section "Skipping src_test (RESTRICT)" + elif hasq "test" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping src_test (SKIP_FUNCTIONS)" + else + ebuild_section "Starting src_test" + src_test + ebuild_section "Done src_test" + fi + + SANDBOX_PREDICT="${old_sandbox_predict}" +} + diff --git a/0.8.0/ebuild/src_unpack.bash b/0.8.0/ebuild/src_unpack.bash new file mode 100644 index 000000000..9dae9ce62 --- /dev/null +++ b/0.8.0/ebuild/src_unpack.bash @@ -0,0 +1,43 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +src_unpack() +{ + [[ -n "${A}" ]] && unpack ${A} +} + +ebuild_f_unpack() +{ + cd ${WORKDIR} || die "cd to \${WORKDIR} (\"${WORKDIR}\") failed" + + if hasq "unpack" ${RESTRICT} ; then + ebuild_section "Skipping src_unpack (RESTRICT)" + elif hasq "unpack" ${SKIP_FUNCTIONS} ; then + ebuild_section "Skipping src_unpack (SKIP_FUNCTIONS)" + else + ebuild_section "Starting src_unpack" + src_unpack + ebuild_section "Done src_unpack" + fi +} + diff --git a/0.8.0/ebuild/usage_error.bash b/0.8.0/ebuild/usage_error.bash new file mode 100644 index 000000000..41c7247df --- /dev/null +++ b/0.8.0/ebuild/usage_error.bash @@ -0,0 +1,32 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Ciaran McCreesh <ciaranm@ciaranm.org> +# +# Based in part upon ebuild.sh from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +ebuild_f_usage_error() +{ + if [[ -z ${1} ]] ; then + die "Usage error" + else + die "Usage error: ${1}" + fi +} + diff --git a/0.8.0/ebuild/utils/Makefile.am b/0.8.0/ebuild/utils/Makefile.am new file mode 100644 index 000000000..1fde88507 --- /dev/null +++ b/0.8.0/ebuild/utils/Makefile.am @@ -0,0 +1,111 @@ +MAINTAINERCLEANFILES = Makefile.in + +libexecprogdir = $(libexecdir)/paludis/utils + +if NEED_SED_WRAPPER +libexecprog_SCRIPTS_extra = sed +endif + +libexecprog_SCRIPTS = \ + canonicalise \ + dobin \ + doconfd \ + dodir \ + dodoc \ + doenvd \ + doexe \ + dohard \ + dohtml \ + doinfo \ + doinitd \ + doins \ + dolib \ + dolib.a \ + dolib.so \ + doman \ + domo \ + donewins \ + dosbin \ + dosed \ + dosym \ + dounpack \ + emake \ + fowners \ + fperms \ + getmtime \ + newbin \ + newconfd \ + newdoc \ + newenvd \ + newexe \ + newinitd \ + newins \ + newlib.a \ + newlib.so \ + newman \ + newsbin \ + prepall \ + prepallstrip \ + prepstrip \ + prepallman \ + prepman \ + prepallinfo \ + prepinfo \ + prepdocs \ + prepalldocs \ + $(libexecprog_SCRIPTS_extra) + +libexecprog_PROGRAMS = merge unmerge +AM_CXXFLAGS = -I$(top_srcdir) @PALUDIS_CXXFLAGS@ + +merge_SOURCES = merge.cc merge_common.cc merge_common.hh +merge_LDADD = \ + $(top_builddir)/paludis/util/libpaludisutil.la \ + $(top_builddir)/paludis/digests/libpaludisdigests.la \ + $(top_builddir)/paludis/selinux/libpaludisselinux.la \ + $(DYNAMIC_LD_LIBS) + +unmerge_SOURCES = unmerge.cc merge_common.cc merge_common.hh +unmerge_LDADD = \ + $(top_builddir)/paludis/util/libpaludisutil.la \ + $(top_builddir)/paludis/digests/libpaludisdigests.la + +TESTS_ENVIRONMENT = env \ + PALUDIS_EBUILD_DIR="`$(top_srcdir)/ebuild/utils/canonicalise $(top_srcdir)/ebuild/`" \ + TOP_BUILD_DIR="`$(top_srcdir)/ebuild/utils/canonicalise $(top_builddir)/`" \ + PALUDIS_EBUILD_LOG_LEVEL="silent" \ + TEST_SCRIPT_DIR="$(srcdir)/" \ + bash $(top_srcdir)/ebuild/utils/run_test.bash + +TESTS = merge_TEST.bash dobin_TEST.bash unmerge_TEST.bash +check_SCRIPTS = $(TESTS) \ + merge_TEST_setup.sh merge_TEST_cleanup.sh \ + unmerge_TEST_setup.sh unmerge_TEST_cleanup.sh + +prep_scripts = prepall prepallstrip prepallman prepallinfo prepstrip prepman prepinfo prepdocs prepalldocs + +EXTRA_DIST = $(libexecprog_SCRIPTS) $(check_SCRIPTS) run_test.bash \ + newlib.so.in newlib.a.in dolib.so.in dolib.a.in prep.in + +CLEANFILES = *~ newlib.so newlib.a dolib.so dolib.a sed $(prep_scripts) + +newlib.a : newlib.a.in + cat $< > $@ + +newlib.so : newlib.so.in + cat $< > $@ + +dolib.so : dolib.so.in + cat $< > $@ + +dolib.a : dolib.a.in + cat $< > $@ + +sed : sed.in + cat $< > $@ + +$(prep_scripts) : prep.in + cat $< > $@ + +check_PROGRAMS = + diff --git a/0.8.0/ebuild/utils/canonicalise b/0.8.0/ebuild/utils/canonicalise new file mode 100755 index 000000000..d070f3450 --- /dev/null +++ b/0.8.0/ebuild/utils/canonicalise @@ -0,0 +1,6 @@ +#!/bin/bash +case $(uname -s) in + FreeBSD) realpath $@ ;; + *) readlink -f $@ ;; +esac + diff --git a/0.8.0/ebuild/utils/dobin b/0.8.0/ebuild/utils/dobin new file mode 100755 index 000000000..506f50f0f --- /dev/null +++ b/0.8.0/ebuild/utils/dobin @@ -0,0 +1,48 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon dobin from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +if [[ ${#} -lt 1 ]]; then + echo "${0}: at least one argument needed" >&2 + exit 1 +fi + +if [[ ! -d "${D}${DESTTREE}/bin" ]]; then + install -d "${D}${DESTTREE}/bin" || exit 3 +fi + +ret=0 +for x in "$@" ; do + if [[ -x "${x}" ]]; then + install "${x}" "${D}${DESTTREE}/bin" || ret=2 + else + echo ">>> ${0}: making ${x} executable..." + install -m0755 -o root -g 0 "${x}" "${D}${DESTTREE}/bin" || ret=2 + fi +done + +exit ${ret} diff --git a/0.8.0/ebuild/utils/dobin_TEST.bash b/0.8.0/ebuild/utils/dobin_TEST.bash new file mode 100644 index 000000000..1af77004f --- /dev/null +++ b/0.8.0/ebuild/utils/dobin_TEST.bash @@ -0,0 +1,70 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 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 +# Public License version 2, as published by the Free Software Foundation. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +source ${PALUDIS_EBUILD_DIR}/install_functions.bash + +dobin_TEST() +{ + mkdir -p dobin_TEST_dir/src dobin_TEST_dir/dst ; test_return_code + + echo "one contents" > dobin_TEST_dir/src/one ; test_return_code + chmod +x dobin_TEST_dir/src/one ; test_return_code + + echo "two contents" > dobin_TEST_dir/src/two ; test_return_code + chmod +x dobin_TEST_dir/src/two ; test_return_code + + echo "three contents" > dobin_TEST_dir/src/three ; test_return_code + chmod +x dobin_TEST_dir/src/three ; test_return_code + + export D=dobin_TEST_dir/dst + ${PALUDIS_EBUILD_DIR}/utils/dobin dobin_TEST_dir/src/one &>/dev/null ; test_return_code + ${PALUDIS_EBUILD_DIR}/utils/dobin dobin_TEST_dir/src/two dobin_TEST_dir/src/three &>/dev/null ; test_return_code + + [[ -f dobin_TEST_dir/dst/usr/bin/one ]] ; test_return_code + [[ -f dobin_TEST_dir/dst/usr/bin/two ]] ; test_return_code + [[ -f dobin_TEST_dir/dst/usr/bin/three ]] ; test_return_code + + test_equality "$(< dobin_TEST_dir/dst/usr/bin/one)" "one contents" + test_equality "$(< dobin_TEST_dir/dst/usr/bin/two)" "two contents" + test_equality "$(< dobin_TEST_dir/dst/usr/bin/three)" "three contents" + + rm -fr dobin_TEST_dir +} + +dobin_fail_TEST() +{ + mkdir -p dobin_TEST_dir/src dobin_TEST_dir/dst ; test_return_code + echo "one contents" > dobin_TEST_dir/src/one ; test_return_code + echo "two contents" > dobin_TEST_dir/src/two ; test_return_code + echo "three contents" > dobin_TEST_dir/src/three ; test_return_code + + export D=dobin_TEST_dir/dst + ! ${PALUDIS_EBUILD_DIR}/utils/dobin dobin_TEST_dir/src/four &>/dev/null ; test_return_code + ! ${PALUDIS_EBUILD_DIR}/utils/dobin dobin_TEST_dir/src/one dobin_TEST_dir/src/seven &>/dev/null ; test_return_code + ! ${PALUDIS_EBUILD_DIR}/utils/dobin dobin_TEST_dir/src/eight dobin_TEST_dir/src/one &>/dev/null ; test_return_code + + [[ -f dobin_TEST_dir/dst/usr/bin/one ]] ; test_return_code + ! [[ -f dobin_TEST_dir/dst/usr/bin/four ]] ; test_return_code + ! [[ -f dobin_TEST_dir/dst/usr/bin/five ]] ; test_return_code + ! [[ -f dobin_TEST_dir/dst/usr/bin/six ]] ; test_return_code + + test_equality "$(< dobin_TEST_dir/dst/usr/bin/one)" "one contents" + + rm -fr dobin_TEST_dir +} + diff --git a/0.8.0/ebuild/utils/doconfd b/0.8.0/ebuild/utils/doconfd new file mode 100644 index 000000000..37c453cc9 --- /dev/null +++ b/0.8.0/ebuild/utils/doconfd @@ -0,0 +1,32 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon doconfd from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +export PATH="${PALUDIS_EBUILD_DIR:+${PALUDIS_EBUILD_DIR}/utils:}${PATH}" + +if [ ${#} -lt 1 ]; then + echo "${0}: at least one argument needed" >&2 + exit 1 +fi + +INSDESTTREE=/etc/conf.d/ +doins "$@" || exit 2 diff --git a/0.8.0/ebuild/utils/dodir b/0.8.0/ebuild/utils/dodir new file mode 100644 index 000000000..52b7c2090 --- /dev/null +++ b/0.8.0/ebuild/utils/dodir @@ -0,0 +1,34 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon dodir from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +ret=0 +for x in "$@"; do + install -d ${DIROPTIONS} "${D}${x}" || ret=2 +done + +exit ${ret} diff --git a/0.8.0/ebuild/utils/dodoc b/0.8.0/ebuild/utils/dodoc new file mode 100644 index 000000000..bfff299dd --- /dev/null +++ b/0.8.0/ebuild/utils/dodoc @@ -0,0 +1,55 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon dodoc from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +if [[ $# -lt 1 ]]; then + echo "${0}: at least one argument needed" >&2 + exit 1 +fi + +if [[ -z ${PALUDIS_COMPRESS} ]]; then + PALUDIS_COMPRESS="gzip -f -9" +fi + +dir="${D}usr/share/doc/${PF}/${DOCDESTTREE}" +if [[ ! -d "${dir}" ]]; then + install -d "${dir}" || exit 3 +fi + +ret=0 + +for x in "$@"; do + if [[ -s "${x}" ]]; then + install -m0644 "${x}" "${dir}" + ${PALUDIS_COMPRESS} "${dir}/${x##*/}" + elif [[ ! -e "${x}" ]]; then + echo "${0}: ${x} does not exist" >&2 + ret=2 + fi +done + +exit ${ret} diff --git a/0.8.0/ebuild/utils/doenvd b/0.8.0/ebuild/utils/doenvd new file mode 100644 index 000000000..7299776f9 --- /dev/null +++ b/0.8.0/ebuild/utils/doenvd @@ -0,0 +1,32 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon doenvd from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +export PATH="${PALUDIS_EBUILD_DIR:+${PALUDIS_EBUILD_DIR}/utils:}${PATH}" + +if [[ ${#} -lt 1 ]]; then + echo "${0}: at least one argument needed" >&2 + exit 1 +fi + +export INSDESTTREE=/etc/env.d/ +doins "$@" diff --git a/0.8.0/ebuild/utils/doexe b/0.8.0/ebuild/utils/doexe new file mode 100644 index 000000000..a67166b09 --- /dev/null +++ b/0.8.0/ebuild/utils/doexe @@ -0,0 +1,58 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon doexe from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +if [[ ! -d ${T} ]]; then + echo "${0}: \${T} not valid; aborting" >&2 + exit 247 +fi + +if [[ ${#} -lt 1 ]]; then + echo "${0}: at least one argument needed" + exit 1 +fi + +if [[ ! -d "${D}${EXEDESTTREE}" ]]; then + install -d "${D}${EXEDESTTREE}" || exit 3 +fi + +ret=0 + +for x in "$@"; do + if [[ -L ${x} ]]; then + cp "${x}" "${T}" + mysrc="${T}/$(/usr/bin/basename "${x}")" + elif [[ -d ${x} ]]; then + echo "${0}: skipping directory ${x}" >&2 + continue + else + mysrc="${x}" + fi + install ${EXEOPTIONS} "${mysrc}" "${D}${EXEDESTTREE}" || ret=2 +done + +exit ${ret} diff --git a/0.8.0/ebuild/utils/dohard b/0.8.0/ebuild/utils/dohard new file mode 100644 index 000000000..b0758e5ae --- /dev/null +++ b/0.8.0/ebuild/utils/dohard @@ -0,0 +1,34 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon dohard from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +if [[ ${#} -ne 2 ]]; then + echo "${0}: exactly two arguments needed" >&2 + exit 1 +fi + +ln -f "${D}${1}" "${D}${2}" diff --git a/0.8.0/ebuild/utils/dohtml b/0.8.0/ebuild/utils/dohtml new file mode 100644 index 000000000..09743c9ce --- /dev/null +++ b/0.8.0/ebuild/utils/dohtml @@ -0,0 +1,122 @@ +#!/bin/bash +# vim: set sw=4 sts=4 et : + +# Copyright (c) 2006 Stephen Bennett <spb@gentoo.org> +# +# Based in part upon dohtml from Portage, which is Copyright 1995-2005 +# Gentoo Foundation and distributed under the terms of the GNU General +# Public License v2. +# +# This file is part of the Paludis package manager. Paludis is free software; +# you can redistribute it and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA + +source ${PALUDIS_EBUILD_DIR}/list_functions.bash + +if [[ ! -d ${D} ]]; then + echo "${0}: \${D} not valid; aborting" >&2 + exit 247 +fi + +allowed_exts="png gif html htm jpg css jps" +disallowed_dirs="" +allowed_files="" +recurse=0 +args=( ) + +split_names() { + list=$1 + if [[ ${list} == *,* ]]; then + echo -n "${list%%,*} " + split_names ${list#*,} + else + echo ${list} + fi +} + +parse_args() { + while [[ ${#} -gt 0 ]]; do + case $1 in + -r) + recurse=1 ;; + -V) + verbose=1 ;; + -A) + allowed_exts="${allowed_exts} $(split_names $2)" + shift + ;; + -a) + allowed_exts="$(split_names $2)" + shift + ;; + -f) + allowed_files="$(split_names $2)" + shift + ;; + -x) + disallowed_dirs="$(split_names $2)" + shift + ;; + *) + args=( "${args[@]}" "$1" ) ;; + esac + shift + done +} + +install_file() { + local bn=${1} + local dn=${2} + local prefix=${3} + local ret=0 + + path=${bn} + [[ -n ${prefix} ]] && path="${prefix}/${path}" + [[ -n ${dn} ]] && path="${dn}/${path}" + + [[ -z ${DOCDESTTREE} ]] && DOCDESTTREE="html" + + dir="${D}usr/share/ |