diff options
author | 2011-02-04 22:07:54 +0000 | |
---|---|---|
committer | 2011-02-04 22:07:54 +0000 | |
commit | e91a83397adaad38a7ac9b60d315db481cc3fff2 (patch) | |
tree | 95a5847a8467bc7e5f073c5833edcb58e2c4a49e | |
parent | 3caef7b22c4eaee861f0f655d5c1650652b7d2c6 (diff) | |
download | paludis-e91a83397adaad38a7ac9b60d315db481cc3fff2.tar.gz paludis-e91a83397adaad38a7ac9b60d315db481cc3fff2.tar.xz |
Bye bye reconcilio
24 files changed, 47 insertions, 1156 deletions
diff --git a/.gitignore b/.gitignore index 2cc5fe738..602114296 100644 --- a/.gitignore +++ b/.gitignore @@ -140,7 +140,6 @@ paludis-*.*.*.tar.bz2 /doc/clients/index.html /doc/clients/instruo.html /doc/clients/paludis.html -/doc/clients/reconcilio.html /doc/clients/toplinks.html.part /doc/configuration/bashrc.html /doc/configuration/bashrc.html.part @@ -504,7 +503,6 @@ paludis-*.*.*.tar.bz2 /src/clients/cave/cave /src/clients/instruo/instruo /src/clients/paludis/paludis -/src/clients/reconcilio/reconcilio /stamp-h1 /test/test_fail_TEST /test/test_pass_TEST diff --git a/bash-completion/Makefile.am b/bash-completion/Makefile.am index a7cb8606e..2e1b30d61 100644 --- a/bash-completion/Makefile.am +++ b/bash-completion/Makefile.am @@ -1,6 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in noinst_DATA = paludis adjutrix \ - accerso instruo reconcilio \ + accerso instruo \ cave EXTRA_DIST = $(noinst_DATA) diff --git a/bash-completion/reconcilio b/bash-completion/reconcilio deleted file mode 100644 index 7c777cf78..000000000 --- a/bash-completion/reconcilio +++ /dev/null @@ -1,159 +0,0 @@ -# Bash completion function for reconcilio -# 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. - -_reconcilio() { - local cur prev opts - - local action_opts general_opts deplist_opts - local linkage_opts install_opts all_opts - - COMPREPLY=() - cur=${COMP_WORDS[COMP_CWORD]} - prev=${COMP_WORDS[COMP_CWORD-1]} - - action_opts="--fix-linkage \ - --version -V \ - --help -h" - general_opts="--log-level \ - --no-colour \ - --no-color \ - --environment -E \ - --exact \ - --resume-command-template \ - --compact \ - --no-compact" - deplist_opts="--dl-reinstall \ - --dl-reinstall-scm \ - --dl-upgrade \ - --dl-new-slots \ - --dl-downgrade \ - --dl-deps-default \ - --dl-installed-deps-pre \ - --dl-installed-deps-runtime \ - --dl-installed-deps-post \ - --dl-uninstalled-deps-pre \ - --dl-uninstalled-deps-runtime \ - --dl-uninstalled-deps-post \ - --dl-uninstalled-deps-suggested \ - --dl-suggested \ - --dl-circular \ - --dl-blocks \ - --dl-override-masks \ - --dl-fall-back" - install_opts="--pretend -p \ - --no-config-protection \ - --fetch -f \ - --no-safe-resume \ - --show-reasons \ - --show-use-descriptions \ - --show-package-descriptions \ - --continue-on-failure \ - ${deplist_opts}" - linkage_opts="--library \ - ${install_opts}" - - all_opts="${action_opts} ${general_opts} ${linkage_opts} ${install_opts} ${deplist_opts}" - - local x - for x in "${COMP_WORDS[@]}" ; do - case "${x}" in - --fix-linkage) - action="linkage" - break - ;; - --version|-V|--help|-h) - action="info" - break - ;; - esac - done - - case "${cur}" in - -*) - local opts= - [[ -z "${action}" ]] && action="all" - opts="${action}_opts" - - COMPREPLY=($(compgen -W "${general_opts} ${!opts}" -- "${cur}")) - return 0 - ;; - *) - case "${prev}" in - ## Enum operators - --log-level) - COMPREPLY=($(compgen -W "debug qa warning silent" -- "${cur}")) - return 0 - ;; - --show-reasons) - COMPREPLY=($(compgen -W "none summary full" -- "${cur}")) - return 0 - ;; - --show-use-descriptions) - COMPREPLY=($(compgen -W "none new changed all" -- "${cur}")) - return 0 - ;; - --show-package-descriptions) - COMPREPLY=($(compgen -W "none new all" -- "${cur}")) - return 0 - ;; - --continue-on-failure) - COMPREPLY=($(compgen -W "if-fetch-only never if-satisfied if-independent always" -- "${cur}")) - return 0 - ;; - - --dl-reinstall) - COMPREPLY=($(compgen -W "never always if-use-changed" -- "${cur}")) - return 0 - ;; - --dl-reinstall-scm) - COMPREPLY=($(compgen -W "never always daily weekly" -- "${cur}")) - return 0 - ;; - --dl-upgrade|--dl-new-slots) - COMPREPLY=($(compgen -W "always as-needed" -- "${cur}")) - return 0 - ;; - --dl-downgrade) - COMPREPLY=($(compgen -W "as-needed warning error" -- "${cur}")) - return 0 - ;; - --dl-deps-default|--dl-installed-deps-pre|--dl-installed-deps-runtime|--dl-installed-deps-post|--dl-uninstalled-deps-pre|--dl-uninstalled-deps-runtime|--dl-uninstalled-deps-post|--dl-uninstalled-deps-suggested) - COMPREPLY=($(compgen -W "pre pre-or-post post try-post discard" -- "${cur}")) - return 0 - ;; - - --dl-suggested) - COMPREPLY=($(compgen -W "show install discard" -- "${cur}")) - return 0 - ;; - --dl-circular) - COMPREPLY=($(compgen -W "error discard" -- "${cur}")) - return 0 - ;; - --dl-blocks) - COMPREPLY=($(compgen -W "accumulate error discard" -- "${cur}")) - return 0 - ;; - --dl-override-masks) - COMPREPLY=($(compgen -W "none tilde-keyword unkeyworded repository license" -- "${cur}")) - return 0 - ;; - --dl-fall-back) - COMPREPLY=($(compgen -W "as-needed-except-targets as-needed never" -- "${cur}")) - return 0 - ;; - *) - case "${action}" in - --fix-linkage) - return 0 - ;; - esac - ;; - esac - ;; - esac -} -complete -F _reconcilio reconcilio diff --git a/configure.ac b/configure.ac index 51aeba0d6..16aa8e0d3 100644 --- a/configure.ac +++ b/configure.ac @@ -1513,26 +1513,25 @@ AC_DEFINE_UNQUOTED([DEFAULT_DISTRIBUTION], "$DEFAULT_DISTRIBUTION", [Default dis dnl }}} dnl {{{ clients -ALL_CLIENTS="accerso adjutrix appareo cave instruo paludis reconcilio" +ALL_CLIENTS="accerso adjutrix appareo cave instruo paludis" ALL_CLIENTS_HTML="" for a in $ALL_CLIENTS ; do ALL_CLIENTS_HTML="$ALL_CLIENTS_HTML $a.html" done -DEFAULT_CLIENTS="adjutrix cave paludis reconcilio" +DEFAULT_CLIENTS="adjutrix cave paludis" AC_MSG_CHECKING([which clients to build...]) AC_ARG_WITH([clients], [ --with-clients=foo,bar,... Build the specified clients: all All available clients - default Equivalent to adjutrix,cave,paludis,reconcilio + default Equivalent to adjutrix,cave,paludis accerso A fetch / mirror client adjutrix A tool for tree querying appareo A tool for generating manifests cave The modular Paludis client instruo A metadata generation client - paludis The Paludis console client - reconcilio A linkage repair tool], + paludis The Paludis console client], [clients="`echo $with_clients | tr ',' ' '`"], [clients="$DEFAULT_CLIENTS"]) clients=`echo $clients | tr ' ' '\n' \ @@ -1801,7 +1800,6 @@ AC_OUTPUT( src/clients/cave/Makefile src/clients/instruo/Makefile src/clients/paludis/Makefile - src/clients/reconcilio/Makefile src/output/Makefile test/Makefile vim/Makefile diff --git a/doc/clients/Makefile.am b/doc/clients/Makefile.am index d4b25423b..025753317 100644 --- a/doc/clients/Makefile.am +++ b/doc/clients/Makefile.am @@ -166,16 +166,6 @@ instruo.html : header.html.part footer.html.part fi ; } && \ cat footer.html.part ; } > $@ -reconcilio.html : header.html.part footer.html.part - { cat header.html.part && { \ - if test -x $(top_builddir)/src/clients/reconcilio/man-reconcilio ; then \ - $(top_builddir)/src/clients/reconcilio/man-reconcilio --html ; \ - else \ - echo "<h1>reconcilio</h1>"; \ - echo "<p>Sorry, documentation was generated without support for the reconcilio client.</p>" ; \ - fi ; } && \ - cat footer.html.part ; } > $@ - header.html.part : $(srcdir)/../header.html.part.in toplinks.html.part sed \ -e 's,###TOPURI###,../,g' \ diff --git a/doc/clients/index.html.part b/doc/clients/index.html.part index b79129f46..56677df6f 100644 --- a/doc/clients/index.html.part +++ b/doc/clients/index.html.part @@ -13,7 +13,6 @@ <ul> <li><a href="paludis.html">paludis</a>, the original console package management client.</li> - <li><a href="reconcilio.html">reconcilio</a>, a tool for rebuilding packages with broken linkage.</li> </ul> <p>For ebuild developers and distribution maintainers:</p> diff --git a/doc/clients/toplinks.html.part.in b/doc/clients/toplinks.html.part.in index 4c0da6bfc..1ff046ab1 100644 --- a/doc/clients/toplinks.html.part.in +++ b/doc/clients/toplinks.html.part.in @@ -36,7 +36,7 @@ </td> <td class="currentpage"> - <a href="###TOPURI###clients/reconcilio.html">reconcilio</a> + </td> <td class="currentpage"> diff --git a/doc/index.html.part.in b/doc/index.html.part.in index 1d0d01b6b..884e18d06 100644 --- a/doc/index.html.part.in +++ b/doc/index.html.part.in @@ -88,7 +88,6 @@ the exheres repository format.</p> <ul> <li><a href="clients/paludis.html">paludis</a>, the original console package management client.</li> - <li><a href="clients/reconcilio.html">reconcilio</a>, a tool for rebuilding packages with broken linkage.</li> </ul> <p>For ebuild developers and distribution maintainers:</p> diff --git a/paludis/broken_linkage_configuration.cc b/paludis/broken_linkage_configuration.cc index d888633db..924228464 100644 --- a/paludis/broken_linkage_configuration.cc +++ b/paludis/broken_linkage_configuration.cc @@ -84,7 +84,7 @@ namespace std::string str(source.operator() (varname)); /* silly 4.3 ICE */ if (! str.empty()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Got " << varname << "=\"" + str << "\""; tokenise<delim_kind::AnyOfTag, delim_mode::DelimiterTag>(str, ":", "", create_inserter<T_>(std::back_inserter(vec))); } @@ -98,7 +98,7 @@ namespace std::string str(source.operator() (varname)); /* silly 4.3 ICE */ if (! str.empty()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Got " << varname << "=\"" << str << "\""; tokenise_whitespace(str, create_inserter<T_>(std::back_inserter(vec))); } @@ -133,7 +133,7 @@ namespace std::sort(vec.begin(), vec.end(), comparator); vec.erase(std::unique(vec.begin(), vec.end()), vec.end()); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Final " << varname << "=\"" << join(vec.begin(), vec.end(), " ") << "\""; } @@ -177,10 +177,10 @@ namespace } else if (equals_ci("hwdep", tokens.at(0))) // XXX - Log::get_instance()->message("reconcilio.broken_linkage_finder.etc_ld_so_conf.hwdep", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.etc_ld_so_conf.hwdep", ll_warning, lc_context) << "'hwdep' line in '" << file << "' is not supported"; else if (std::string::npos != it->find('=')) - Log::get_instance()->message("reconcilio.broken_linkage_finder.etc_ld_so_conf.equals", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.etc_ld_so_conf.equals", ll_warning, lc_context) << "'=' line in '" << file << "' is not supported"; else @@ -189,7 +189,7 @@ namespace } else if (file_stat.exists()) - Log::get_instance()->message("reconcilio.broken_linkage_finder.etc_ld_so_conf.not_a_file", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.etc_ld_so_conf.not_a_file", ll_warning, lc_context) << "'" << file << "' exists but is not a regular file"; } } @@ -213,7 +213,7 @@ BrokenLinkageConfiguration::BrokenLinkageConfiguration(const FSPath & root) : std::sort(_imp->ld_so_conf.begin(), _imp->ld_so_conf.end(), FSPathComparator()); _imp->ld_so_conf.erase(std::unique(_imp->ld_so_conf.begin(), _imp->ld_so_conf.end()), _imp->ld_so_conf.end()); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Final ld.so.conf contents is \"" << join(_imp->ld_so_conf.begin(), _imp->ld_so_conf.end(), " ") << "\""; } @@ -275,12 +275,12 @@ Imp<BrokenLinkageConfiguration>::load_from_etc_revdep_rebuild(const FSPath & roo from_string(fromfile, "SEARCH_DIRS_MASK", search_dirs_mask); } else - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_context) << "'" << *it << "' is not a regular file"; } } else if (etc_revdep_rebuild_stat.exists()) - Log::get_instance()->message("reconcilio.broken_linkage_finder.etc_revdep_rebuild.not_a_directory", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.etc_revdep_rebuild.not_a_directory", ll_warning, lc_context) << "'" << etc_revdep_rebuild << "' exists but is not a directory"; } @@ -310,7 +310,7 @@ Imp<BrokenLinkageConfiguration>::load_from_etc_profile_env(const FSPath & root) from_colon_string(fromfile, "ROOTPATH", search_dirs); } else if (etc_profile_env_stat.exists()) - Log::get_instance()->message("reconcilio.broken_linkage_finder.etc_profile_env.not_a_file", ll_warning, lc_context) + Log::get_instance()->message("broken_linkage_finder.etc_profile_env.not_a_file", ll_warning, lc_context) << "'" << etc_profile_env << "' exists but is not a regular file"; } @@ -329,7 +329,7 @@ Imp<BrokenLinkageConfiguration>::load_from_etc_ld_so_conf(const FSPath & root) if (res.begin() != res.end()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.got", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.got", ll_debug, lc_context) << "Got " << join(res.begin(), res.end(), " "); std::copy(res.begin(), res.end(), create_inserter<FSPath>(std::back_inserter(search_dirs))); std::copy(res.begin(), res.end(), create_inserter<FSPath>(std::back_inserter(ld_so_conf))); @@ -349,22 +349,22 @@ Imp<BrokenLinkageConfiguration>::add_defaults() "/lib*/modules"); static const std::string default_ld_so_conf("/lib /usr/lib"); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Got LD_LIBRARY_MASK=\"" << default_ld_library_mask << "\""; tokenise_whitespace( default_ld_library_mask, std::back_inserter(ld_library_mask)); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Got SEARCH_DIRS=\"" << default_search_dirs << "\""; tokenise_whitespace( default_search_dirs, create_inserter<FSPath>(std::back_inserter(search_dirs))); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Got SEARCH_DIRS_MASK=\"" << default_search_dirs_mask << "\""; tokenise_whitespace( default_search_dirs_mask, create_inserter<FSPath>(std::back_inserter(search_dirs_mask))); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Default ld.so.conf contents is \"" << default_ld_so_conf << "\""; tokenise_whitespace( default_ld_so_conf, create_inserter<FSPath>(std::back_inserter(ld_so_conf))); diff --git a/paludis/broken_linkage_finder.cc b/paludis/broken_linkage_finder.cc index babdda646..9e81c203c 100644 --- a/paludis/broken_linkage_finder.cc +++ b/paludis/broken_linkage_finder.cc @@ -163,7 +163,7 @@ BrokenLinkageFinder::BrokenLinkageFinder(const Environment * env, const std::sha std::find_if(search_dirs_pruned.begin(), search_dirs_pruned.end(), ParentOf(*it))) search_dirs_pruned.push_back(*it); - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "After resolving symlinks and pruning subdirectories, SEARCH_DIRS=\"" << join(search_dirs_pruned.begin(), search_dirs_pruned.end(), " ") << "\""; @@ -177,7 +177,7 @@ BrokenLinkageFinder::BrokenLinkageFinder(const Environment * env, const std::sha for (std::set<FSPath>::const_iterator it(_imp->extra_lib_dirs.begin()), it_end(_imp->extra_lib_dirs.end()); it_end != it; ++it) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.config", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.config", ll_debug, lc_context) << "Need to check for extra libraries in '" << (env->preferred_root_key()->value() / *it) << "'"; std::for_each(indirect_iterator(_imp->checkers.begin()), indirect_iterator(_imp->checkers.end()), std::bind(&LinkageChecker::add_extra_lib_dir, _1, env->preferred_root_key()->value() / *it)); @@ -206,7 +206,7 @@ Imp<BrokenLinkageFinder>::search_directory(const FSPath & directory) dir = dir.dirname(); if (config.dir_is_masked(dir)) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.skipping", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.skipping", ll_debug, lc_context) << "Skipping '" << directory << "' because '" << dir << "' is search-masked"; return; } @@ -217,7 +217,7 @@ Imp<BrokenLinkageFinder>::search_directory(const FSPath & directory) if (with_root.stat().is_directory()) walk_directory(with_root); else - Log::get_instance()->message("reconcilio.broken_linkage_finder.missing", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.missing", ll_debug, lc_context) << "'" << directory << "' is missing or not a directory"; } @@ -229,12 +229,12 @@ Imp<BrokenLinkageFinder>::walk_directory(const FSPath & directory) FSPath without_root(directory.strip_leading(env->preferred_root_key()->value())); if (config.dir_is_masked(without_root)) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.masked", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.masked", ll_debug, lc_context) << "'" << directory << "' is search-masked"; return; } - Log::get_instance()->message("reconcilio.broken_linkage_finder.entering", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.entering", ll_debug, lc_context) << "Entering directory '" << directory << "'"; { Lock l(mutex); @@ -248,7 +248,7 @@ Imp<BrokenLinkageFinder>::walk_directory(const FSPath & directory) } catch (const FSError & ex) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); } } @@ -281,13 +281,13 @@ Imp<BrokenLinkageFinder>::check_file(const FSPath & file) if (indirect_iterator(checkers.end()) == std::find_if(indirect_iterator(checkers.begin()), indirect_iterator(checkers.end()), std::bind(&LinkageChecker::check_file, _1, file))) - Log::get_instance()->message("reconcilio.broken_linkage_finder.unrecognised", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.unrecognised", ll_debug, lc_context) << "'" << file << "' is not a recognised file type"; } } catch (const FSError & ex) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); } } diff --git a/paludis/elf_linkage_checker.cc b/paludis/elf_linkage_checker.cc index 256b15588..4ddf5cf4d 100644 --- a/paludis/elf_linkage_checker.cc +++ b/paludis/elf_linkage_checker.cc @@ -168,7 +168,7 @@ Imp<ElfLinkageChecker>::check_elf(const FSPath & file, std::istream & stream) ElfObject<ElfType_> elf(stream); if (ET_EXEC != elf.get_type() && ET_DYN != elf.get_type()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.not_interesting", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.not_interesting", ll_debug, lc_context) << "File is not an executable or shared library"; return true; } @@ -197,7 +197,7 @@ Imp<ElfLinkageChecker>::check_elf(const FSPath & file, std::istream & stream) const std::string & req((*ent_str)()); if (check_libraries.empty() || check_libraries.end() != check_libraries.find(req)) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.depends", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.depends", ll_debug, lc_context) << "File depends on " << req; needed[arch][req].push_back(file); } @@ -207,7 +207,7 @@ Imp<ElfLinkageChecker>::check_elf(const FSPath & file, std::istream & stream) } catch (const InvalidElfFileError & e) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.invalid", ll_warning, lc_no_context) + Log::get_instance()->message("broken_linkage_finder.invalid", ll_warning, lc_no_context) << "'" << file << "' appears to be invalid or corrupted: " << e.message(); } @@ -223,7 +223,7 @@ Imp<ElfLinkageChecker>::handle_library(const FSPath & file, const ElfArchitectur if (range.first != range.second) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.known_symlinks_are", + Log::get_instance()->message("broken_linkage_finder.known_symlinks_are", ll_debug, lc_context) << "Known symlinks are " << join(second_iterator(range.first), second_iterator(range.second), " "); std::transform(second_iterator(range.first), second_iterator(range.second), @@ -241,7 +241,7 @@ ElfLinkageChecker::note_symlink(const FSPath & link, const FSPath & target) std::map<FSPath, ElfArchitecture, FSPathComparator>::const_iterator it(_imp->seen.find(target)); if (_imp->seen.end() != it) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.note_symlink", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.note_symlink", ll_debug, lc_context) << "'" << link << "' is a symlink to known library '" << target << "'"; _imp->libraries[it->second].push_back(link.basename()); } @@ -299,7 +299,7 @@ ElfLinkageChecker::need_breakage_added( FSPath file(dereference_with_root(*dir_it / missing_it->first, _imp->root)); if (! file.stat().is_regular_file()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.missing", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.missing", ll_debug, lc_context) << "'" << file << "' is missing or not a regular file"; continue; } @@ -310,12 +310,12 @@ ElfLinkageChecker::need_breakage_added( if (! (_imp->check_extra_elf<Elf32Type>(file, stream, missing_it->second) || _imp->check_extra_elf<Elf64Type>(file, stream, missing_it->second))) - Log::get_instance()->message("reconcilio.broken_linkage_finder.not_an_elf", ll_debug, lc_no_context) + Log::get_instance()->message("broken_linkage_finder.not_an_elf", ll_debug, lc_no_context) << "'" << file << "' is not an ELF file"; } catch (const SafeIFStreamError & e) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_no_context) + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_no_context) << "Error opening '" << file << "': '" << e.message() << "' (" << e.what() << ")"; continue; } @@ -346,17 +346,17 @@ Imp<ElfLinkageChecker>::check_extra_elf(const FSPath & file, std::istream & stre ElfObject<ElfType_> elf(stream); if (ET_DYN == elf.get_type()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.is_library", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.is_library", ll_debug, lc_context) << "'" << file << "' is a library"; arches.erase(ElfArchitecture(elf)); } else - Log::get_instance()->message("reconcilio.broken_linkage_finder.is_not_library", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.is_not_library", ll_debug, lc_context) << "'" << file << "' is not a library"; } catch (const InvalidElfFileError & e) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.invalid", ll_warning, lc_no_context) + Log::get_instance()->message("broken_linkage_finder.invalid", ll_warning, lc_no_context) << "'" << file << "' appears to be invalid or corrupted: " << e.message(); } diff --git a/paludis/libtool_linkage_checker.cc b/paludis/libtool_linkage_checker.cc index 8359487e1..5508dfa91 100644 --- a/paludis/libtool_linkage_checker.cc +++ b/paludis/libtool_linkage_checker.cc @@ -106,14 +106,14 @@ LibtoolLinkageChecker::check_file(const FSPath & file) } catch (const ConfigFileError & ex) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_context) << ex.message(); + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_context) << ex.message(); return true; } deps.erase(std::remove_if(deps.begin(), deps.end(), IsNotAbsolutePath()), deps.end()); if (deps.empty()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.no_libtool", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.no_libtool", ll_debug, lc_context) << "No libtool library dependencies found"; return true; } @@ -126,7 +126,7 @@ LibtoolLinkageChecker::check_file(const FSPath & file) FSPath dep(_imp->root / *it); if (! dereference_with_root(dep, _imp->root).stat().is_regular_file()) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.dependency_missing", + Log::get_instance()->message("broken_linkage_finder.dependency_missing", ll_debug, lc_context) << "Dependency '" << *it << "' is missing or not a regular file in '" << _imp->root << "'"; @@ -135,13 +135,13 @@ LibtoolLinkageChecker::check_file(const FSPath & file) } else - Log::get_instance()->message("reconcilio.broken_linkage_finder.dependency_exists", ll_debug, lc_context) + Log::get_instance()->message("broken_linkage_finder.dependency_exists", ll_debug, lc_context) << "Dependency '" << *it << "' exists in '" << _imp->root << "'"; } catch (const FSError & ex) { - Log::get_instance()->message("reconcilio.broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); + Log::get_instance()->message("broken_linkage_finder.failure", ll_warning, lc_no_context) << ex.message(); } } diff --git a/src/clients/reconcilio/Makefile.am b/src/clients/reconcilio/Makefile.am deleted file mode 100644 index aa673a2cf..000000000 --- a/src/clients/reconcilio/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -include $(top_srcdir)/misc/common-makefile.am - -AM_CXXFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src \ - @PALUDIS_CXXFLAGS@ @PALUDIS_CXXFLAGS_VISIBILITY@ - -SUBDIRS = . - -bin_PROGRAMS = reconcilio -noinst_PROGRAMS = man-reconcilio -man_MANS = reconcilio.1 - -reconcilio.1 : man-reconcilio - ./man-reconcilio > $@ - -man_reconcilio_SOURCES = \ - man_reconcilio.cc \ - command_line.hh \ - command_line.cc - -man_reconcilio_LDADD = \ - $(top_builddir)/paludis/args/legacy/libpaludisargslegacy_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/libpaludis_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/args/libpaludisargs_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/util/libpaludisutil_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/src/output/liboutput.a \ - $(DYNAMIC_LD_LIBS) - -reconcilio_SOURCES = \ - command_line.hh command_line.cc \ - fix_linkage.hh fix_linkage.cc \ - install.hh install.cc \ - reconcilio.cc - -reconcilio_LDADD = \ - $(top_builddir)/paludis/libpaludis_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/args/legacy/libpaludisargslegacy_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/args/libpaludisargs_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/util/libpaludisutil_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/src/output/liboutput.a \ - $(DYNAMIC_LD_LIBS) - -TESTS = - -EXTRA_DIST = \ - $(man_MANS) \ - $(TESTS) - -DISTCLEANFILES = $(man_MANS) $(noinst_DATA) - diff --git a/src/clients/reconcilio/broken_linkage_finder/Makefile.am b/src/clients/reconcilio/broken_linkage_finder/Makefile.am deleted file mode 100644 index f9eb30127..000000000 --- a/src/clients/reconcilio/broken_linkage_finder/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -include $(top_srcdir)/misc/common-makefile.am - -AM_CXXFLAGS = -I$(top_srcdir) @PALUDIS_CXXFLAGS@ @PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST@ @PALUDIS_CXXFLAGS_NO_WSHADOW@ - -SUBDIRS = . - -noinst_LIBRARIES = libbrokenlinkagefinder.a - -libbrokenlinkagefinder_a_SOURCES = \ - broken_linkage_finder.cc broken_linkage_finder.hh \ - configuration.cc configuration.hh \ - linkage_checker.cc linkage_checker.hh \ - libtool_linkage_checker.cc libtool_linkage_checker.hh \ - elf_linkage_checker.cc elf_linkage_checker.hh - -TESTS = configuration_TEST -check_PROGRAMS = $(TESTS) - -EXTRA_DIST = \ - configuration_TEST_setup.sh configuration_TEST_cleanup.sh - -configuration_TEST_SOURCES = configuration_TEST.cc -configuration_TEST_LDADD = \ - libbrokenlinkagefinder.a \ - $(top_builddir)/paludis/libpaludis_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/util/libpaludisutil_@PALUDIS_PC_SLOT@.la \ - $(top_builddir)/paludis/util/test_extras.o \ - $(top_builddir)/test/libtest.a -configuration_TEST_CXXFLAGS = $(AM_CXXFLAGS) @PALUDIS_CXXFLAGS_NO_DEBUGGING@ - diff --git a/src/clients/reconcilio/command_line.cc b/src/clients/reconcilio/command_line.cc deleted file mode 100644 index b742af2b9..000000000 --- a/src/clients/reconcilio/command_line.cc +++ /dev/null @@ -1,112 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "command_line.hh" - -#include <paludis/util/singleton-impl.hh> - -using namespace paludis; - -template class Singleton<CommandLine>; - -CommandLine::CommandLine() : - ArgsHandler(), - - action_args(main_options_section(), "Actions", - "Selects which basic action to perform. At most one action should " - "be specified."), - a_fix_linkage(&action_args, "fix-linkage", '\0', "Search for and rebuild packages linked against non-existant libraries (default)", false), - a_version(&action_args, "version", 'V', "Display program version", false), - a_help(&action_args, "help", 'h', "Display program help", false), - - general_args(main_options_section(), "General options", - "Options which are relevant for most or all actions."), - a_log_level(&general_args, "log-level", '\0'), - a_no_colour(&general_args, "no-colour", '\0', "Do not use colour", false), - a_no_color(&a_no_colour, "no-color"), - a_force_colour(&general_args, "force-colour", '\0', "Force the use of colour", false), - a_force_color(&a_force_colour, "force-color"), - a_environment(&general_args, "environment", 'E', "Environment specification (class:suffix, both parts optional)"), - a_exact(&general_args, "exact", '\0', "Rebuild the same package version that is currently installed", true), - a_resume_command_template(&general_args, "resume-command-template", '\0', - "Save the resume command to a file. If the filename contains 'XXXXXX', use mkstemp(3) to generate the filename"), - a_compact(&general_args, "compact", '\0', "Display output using one line per entry", true), - - fix_linkage_args(main_options_section(), "Fix Linkage options", - "Options which are relevant for --fix-linkage."), - a_library(&fix_linkage_args, "library", '\0', "Only rebuild packages linked against this library, even if it exists"), - - install_args(main_options_section(), "Install options", - "Options which are relevant for the install process."), - dl_args(main_options_section()) -{ - add_usage_line("[ --fix-linkage ] [fix linkage options]"); - add_usage_line("--help"); - - // XXX destinations support - install_args.a_destinations.remove(); - install_args.a_preserve_world.remove(); - install_args.a_preserve_world.set_specified(true); - install_args.a_add_to_world_spec.remove(); - - dl_args.dl_reinstall_targets.remove(); - dl_args.dl_upgrade.set_default_arg("as-needed"); - dl_args.dl_new_slots.set_default_arg("as-needed"); - - add_environment_variable("RECONCILIO_OPTIONS", "Default command-line options."); - - add_example( - "reconcilio --pretend", - "Find and display any packages that appear to have broken linkage. (Requires read access to " - "files to be checked, so best run as root.)"); - add_example( - "reconcilio --pretend --exact", - "The same, but try to reinstall exact versions, even if an upgrade is available."); - add_example( - "reconcilio --pretend --library 'libXi.so.6", - "Find and display any packages that need a named library."); - - add_note("Reconcilio is deprecated. Use 'cave fix-linkage' instead."); -} - -std::string -CommandLine::app_name() const -{ - return "reconcilio"; -} - -std::string -CommandLine::app_synopsis() const -{ - return "A deprecated client for rebuilding packages with broken linkage."; -} - -std::string -CommandLine::app_description() const -{ - return - "Reconcilio is a deprecated linkage fixing client for Paludis. 'cave fix-linkage' should " - "be used instead."; -} - -CommandLine::~CommandLine() -{ -} - - diff --git a/src/clients/reconcilio/command_line.hh b/src/clients/reconcilio/command_line.hh deleted file mode 100644 index fcd09ae2a..000000000 --- a/src/clients/reconcilio/command_line.hh +++ /dev/null @@ -1,70 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef PALUDIS_GUARD_RECONCILIO_COMMAND_LINE_HH -#define PALUDIS_GUARD_RECONCILIO_COMMAND_LINE_HH - -#include <paludis/util/singleton.hh> - -#include <paludis/args/args.hh> -#include <paludis/args/legacy/dep_list_args_group.hh> -#include <paludis/args/legacy/install_args_group.hh> -#include <paludis/args/log_level_arg.hh> - -class CommandLine : - public paludis::args::ArgsHandler, - public paludis::Singleton<CommandLine> -{ - friend class paludis::Singleton<CommandLine>; - - private: - CommandLine(); - ~CommandLine(); - - public: - virtual std::string app_name() const; - virtual std::string app_synopsis() const; - virtual std::string app_description() const; - - paludis::args::ArgsGroup action_args; - paludis::args::SwitchArg a_fix_linkage; - paludis::args::SwitchArg a_version; - paludis::args::SwitchArg a_help; - - paludis::args::ArgsGroup general_args; - paludis::args::LogLevelArg a_log_level; - paludis::args::SwitchArg a_no_colour; - paludis::args::AliasArg a_no_color; - paludis::args::SwitchArg a_force_colour; - paludis::args::AliasArg a_force_color; - paludis::args::StringArg a_environment; - paludis::args::SwitchArg a_exact; - paludis::args::StringArg a_resume_command_template; - paludis::args::SwitchArg a_compact; - - paludis::args::ArgsGroup fix_linkage_args; - paludis::args::StringArg a_library; - - paludis::args::InstallArgsGroup install_args; - paludis::args::DepListArgsGroup dl_args; -}; - -#endif - - diff --git a/src/clients/reconcilio/fix_linkage.cc b/src/clients/reconcilio/fix_linkage.cc deleted file mode 100644 index 6c5152cdb..000000000 --- a/src/clients/reconcilio/fix_linkage.cc +++ /dev/null @@ -1,140 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "command_line.hh" -#include "fix_linkage.hh" -#include "install.hh" - -#include <paludis/util/join.hh> -#include <paludis/util/log.hh> -#include <paludis/util/sequence.hh> -#include <paludis/util/stringify.hh> -#include <paludis/util/make_named_values.hh> - -#include <paludis/broken_linkage_finder.hh> -#include <paludis/dep_spec.hh> -#include <paludis/user_dep_spec.hh> -#include <paludis/name.hh> -#include <paludis/package_id.hh> -#include <paludis/version_requirements.hh> -#include <paludis/metadata_key.hh> -#include <paludis/partially_made_package_dep_spec.hh> - -#include <src/output/colour.hh> - -#include <iostream> - -using namespace paludis; - -int -do_fix_linkage(const std::shared_ptr<Environment> & env) -{ - Context ctx("When performing the Fix Linkage action:"); - - std::string library(CommandLine::get_instance()->a_library.argument()); - auto libraries(std::make_shared<Sequence<std::string>>()); - if (! library.empty()) - libraries->push_back(library); - - if (library.empty()) - std::cout << "Searching for broken packages... " << std::flush; - else - std::cout << "Searching for packages that depend on " << library << "... " << std::flush; - BrokenLinkageFinder finder(env.get(), libraries); - std::cout << std::endl; - - if (finder.begin_broken_packages() == finder.end_broken_packages()) - { - if (library.empty()) - std::cout << "No broken packages found" << std::endl; - else - std::cout << "No packages that depend on " << library << " found" << std::endl; - } - else - { - if (library.empty()) - std::cout << std::endl << colour(cl_heading, "Broken packages:") << std::endl; - else - std::cout << std::endl << colour(cl_heading, "Packages that depend on " + library + ":") << std::endl; - } - - std::shared_ptr<Sequence<std::string> > targets(std::make_shared<Sequence<std::string>>()); - for (BrokenLinkageFinder::BrokenPackageConstIterator pkg_it(finder.begin_broken_packages()), - pkg_it_end(finder.end_broken_packages()); pkg_it_end != pkg_it; ++pkg_it) - { - std::cout << std::endl; - - std::string pkgname(stringify((*pkg_it)->name())); - std::string fullname((*pkg_it)->canonical_form(idcf_full)); - std::string::size_type pos(fullname.find(pkgname)); - if (std::string::npos != pos) - fullname.replace(pos, pkgname.length(), colour(cl_package_name, pkgname)); - std::cout << "* " << fullname << std::endl; - - for (BrokenLinkageFinder::BrokenFileConstIterator file_it(finder.begin_broken_files(*pkg_it)), - file_it_end(finder.end_broken_files(*pkg_it)); file_it_end != file_it; ++file_it) - { - std::cout << " " << *file_it; - if (library.empty()) - std::cout << " (requires " - << join(finder.begin_missing_requirements(*pkg_it, *file_it), - finder.end_missing_requirements(*pkg_it, *file_it), - " ") << ")"; - std::cout << std::endl; - } - - PartiallyMadePackageDepSpec part_spec({ }); - part_spec.package((*pkg_it)->name()); - if ((*pkg_it)->slot_key()) - part_spec.slot_requirement(std::make_shared<UserSlotExactRequirement>((*pkg_it)->slot_key()->value())); - - if (CommandLine::get_instance()->a_exact.specified()) - part_spec.version_requirement(make_named_values<VersionRequirement>( - n::version_operator() = vo_equal, - n::version_spec() = (*pkg_it)->version())); - - targets->push_back(stringify(PackageDepSpec(part_spec))); - } - - std::shared_ptr<const PackageID> orphans; - if (finder.begin_broken_files(orphans) != finder.end_broken_files(orphans)) - { - if (library.empty()) - std::cout << std::endl << "The following broken files are not owned by any installed package:" << std::endl; - else - std::cout << std::endl << "The following files that depend on " << library << " are not owned by any installed package:" << std::endl; - - for (BrokenLinkageFinder::BrokenFileConstIterator file_it(finder.begin_broken_files(orphans)), - file_it_end(finder.end_broken_files(orphans)); file_it_end != file_it; ++file_it) - { - std::cout << " " << *file_it; - if (library.empty()) - std::cout << " (requires " - << join(finder.begin_missing_requirements(orphans, *file_it), - finder.end_missing_requirements(orphans, *file_it), - " ") << ")"; - std::cout << std::endl; - } - } - - if (! targets->empty()) - return do_install(env, targets); - return 0; -} - diff --git a/src/clients/reconcilio/fix_linkage.hh b/src/clients/reconcilio/fix_linkage.hh deleted file mode 100644 index c4697f912..000000000 --- a/src/clients/reconcilio/fix_linkage.hh +++ /dev/null @@ -1,28 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef PALUDIS_GUARD_RECONCILIO_FIX_LINKAGE_HH -#define PALUDIS_GUARD_RECONCILIO_FIX_LINKAGE_HH - -#include <paludis/environment-fwd.hh> -#include <memory> - -int do_fix_linkage(const std::shared_ptr<paludis::Environment> &); - -#endif diff --git a/src/clients/reconcilio/install.cc b/src/clients/reconcilio/install.cc deleted file mode 100644 index 449649dde..000000000 --- a/src/clients/reconcilio/install.cc +++ /dev/null @@ -1,153 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2005, 2006, 2007, 2008 Ciaran McCreesh - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "install.hh" -#include "command_line.hh" - -#include <paludis/util/sequence-impl.hh> -#include <src/output/console_install_task.hh> -#include <functional> -#include <algorithm> -#include <iostream> - -using namespace paludis; - -namespace -{ - class OurInstallTask : - public ConsoleInstallTask - { - private: - std::shared_ptr<Environment> _env; - - public: - OurInstallTask(const std::shared_ptr<Environment> & env, const DepListOptions & options, - const std::shared_ptr<const DestinationsSet> & destinations) : - ConsoleInstallTask(env.get(), options, destinations), - _env(env) - { - } - - virtual bool want_full_install_reasons() const - { - return CommandLine::get_instance()->install_args.want_full_install_reasons(); - } - - virtual bool want_tags_summary() const - { - return CommandLine::get_instance()->install_args.want_tags_summary(); - } - - virtual bool want_install_reasons() const - { - return CommandLine::get_instance()->install_args.want_install_reasons(); - } - - virtual bool want_unchanged_use_flags() const - { - return CommandLine::get_instance()->install_args.want_unchanged_use_flags(); - } - - virtual bool want_changed_use_flags() const - { - return CommandLine::get_instance()->install_args.want_changed_use_flags(); - } - - virtual bool want_new_use_flags() const - { - return CommandLine::get_instance()->install_args.want_new_use_flags(); - } - - virtual bool want_use_summary() const - { - return CommandLine::get_instance()->install_args.want_use_summary(); - } - - virtual bool want_compact() const - { - return CommandLine::get_instance()->a_compact.specified(); - } - - virtual bool want_suggestions() const - { - return false; - } - - virtual bool want_new_descriptions() const - { - return CommandLine::get_instance()->install_args.want_new_descriptions(); - } - - virtual bool want_existing_descriptions() const - { - return CommandLine::get_instance()->install_args.want_existing_descriptions(); - } - - virtual std::string make_resume_command(const bool undo_failures) const - { - std::string serialisation(serialise(undo_failures)); - if (serialisation.empty()) - return ""; - - std::string resume_command = environment()->paludis_command() + " --install"; - - resume_command.append(CommandLine::get_instance()->install_args.resume_command_fragment(*this)); - resume_command.append(CommandLine::get_instance()->dl_args.resume_command_fragment(*this)); - resume_command.append(" --serialised " + serialised_format()); - resume_command.append(" "); - resume_command.append(serialisation); - - return resume_command; - } - - void show_resume_command() const - { - if (CommandLine::get_instance()->install_args.a_fetch.specified() || - CommandLine::get_instance()->install_args.a_pretend.specified()) - return; - - ConsoleInstallTask::show_resume_command(CommandLine::get_instance()->a_resume_command_template.argument()); - } - }; -} - -int -do_install(const std::shared_ptr<Environment> & env, const std::shared_ptr<const Sequence<std::string> > & targets) -{ - using namespace std::placeholders; - - DepListOptions options; - CommandLine::get_instance()->dl_args.populate_dep_list_options(env.get(), options); - CommandLine::get_instance()->install_args.populate_dep_list_options(env.get(), options); - - OurInstallTask task(env, options, CommandLine::get_instance()->install_args.destinations(env.get())); - CommandLine::get_instance()->install_args.populate_install_task(env.get(), task); - CommandLine::get_instance()->dl_args.populate_install_task(env.get(), task); - - if (! task.try_to_set_targets_from_user_specs(targets)) - return task.exit_status(); - - std::cout << std::endl; - task.execute(); - std::cout << std::endl; - - return task.exit_status(); -} - diff --git a/src/clients/reconcilio/install.hh b/src/clients/reconcilio/install.hh deleted file mode 100644 index b88e2ffe4..000000000 --- a/src/clients/reconcilio/install.hh +++ /dev/null @@ -1,31 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef PALUDIS_GUARD_RECONCILIO_INSTALL_HH -#define PALUDIS_GUARD_RECONCILIO_INSTALL_HH - -#include <paludis/util/sequence-fwd.hh> -#include <paludis/environment-fwd.hh> -#include <memory> -#include <string> - -int do_install(const std::shared_ptr<paludis::Environment> &, - const std::shared_ptr<const paludis::Sequence<std::string> > &); - -#endif diff --git a/src/clients/reconcilio/man_reconcilio.cc b/src/clients/reconcilio/man_reconcilio.cc deleted file mode 100644 index 91c443319..000000000 --- a/src/clients/reconcilio/man_reconcilio.cc +++ /dev/null @@ -1,78 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2006, 2007, 2009 Ciaran McCreesh - * - * 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 "command_line.hh" -#include <paludis/args/man.hh> - -#include <iostream> -#include <cstdlib> - -using std::cout; -using std::endl; - -namespace -{ - struct ManCommandLine : - paludis::args::ArgsHandler - { - paludis::args::ArgsGroup group; - paludis::args::SwitchArg a_html; - - ManCommandLine() : - group(main_options_section(), "", ""), - a_html(&group, "html", '\0', "", false) - { - } - - virtual std::string app_name() const - { - return ""; - } - - virtual std::string app_description() const - { - return ""; - } - - virtual std::string app_synopsis() const - { - return ""; - } - }; -} - -int -main(int argc, char * argv[]) -{ - ManCommandLine cmdline; - cmdline.run(argc, argv, "", "", ""); - - if (cmdline.a_html.specified()) - { - paludis::args::HtmlWriter hw(cout); - paludis::args::generate_doc(hw, CommandLine::get_instance()); - } - else - { - paludis::args::ManWriter mw(cout); - paludis::args::generate_doc(mw, CommandLine::get_instance()); - } - - return EXIT_SUCCESS; -} diff --git a/src/clients/reconcilio/reconcilio.cc b/src/clients/reconcilio/reconcilio.cc deleted file mode 100644 index 532dfd750..000000000 --- a/src/clients/reconcilio/reconcilio.cc +++ /dev/null @@ -1,173 +0,0 @@ -/* vim: set sw=4 sts=4 et foldmethod=syntax : */ - -/* - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh - * Copyright (c) 2007 David Leverton - * - * This file is part of the Paludis package manager. Paludis is free software; - * you can redistribute it and/or modify it under the terms of the GNU General - * Public License version 2, as published by the Free Software Foundation. - * - * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "command_line.hh" -#include "fix_linkage.hh" - -#include <paludis/util/system.hh> -#include <paludis/util/join.hh> -#include <paludis/util/log.hh> - -#include <paludis/about.hh> -#include <paludis/environment_factory.hh> -#include <paludis/args/do_help.hh> - -#include <src/output/colour.hh> - -#include <iostream> -#include <cstdlib> - -using namespace paludis; - -namespace -{ - struct DoVersion - { - }; - - void display_version() - { - std::cout << "reconcilio, part of " << PALUDIS_PACKAGE << " " << PALUDIS_VERSION_MAJOR << "." - << PALUDIS_VERSION_MINOR << "." << PALUDIS_VERSION_MICRO << PALUDIS_VERSION_SUFFIX; - if (! std::string(PALUDIS_GIT_HEAD).empty()) - std::cout << " git " << PALUDIS_GIT_HEAD; - std::cout << std::endl; - } -} - -int -main(int argc, char *argv[]) -{ - std::string options(paludis::getenv_with_default("RECONCILIO_OPTIONS", "")); - if (! options.empty()) - options = "(" + options + ") "; - options += join(argv + 1, argv + argc, " "); - - Context context(std::string("In program ") + argv[0] + " " + options + ":"); - - Log::get_instance()->message("reconcilio.deprecated", ll_warning, lc_context) - << "Reconcilio is deprecated. Use 'cave fix-linkage' instead."; - - try - { - CommandLine::get_instance()->run(argc, argv, "reconcilio", "RECONCILIO_OPTIONS", "RECONCILIO_CMDLINE"); - - if (CommandLine::get_instance()->a_help.specified()) - throw args::DoHelp(); - if (CommandLine::get_instance()->a_version.specified()) - throw DoVersion(); - - Log::get_instance()->set_program_name(argv[0]); - if (CommandLine::get_instance()->a_log_level.specified()) - Log::get_instance()->set_log_level(CommandLine::get_instance()->a_log_level.option()); - - set_use_colour(! CommandLine::get_instance()->a_no_colour.specified()); - set_force_colour(CommandLine::get_instance()->a_force_colour.specified()); - - std::string paludis_command("paludis"); - - if (CommandLine::get_instance()->a_environment.specified()) - paludis_command.append(" --" + CommandLine::get_instance()->a_environment.long_name() + " " + - CommandLine::get_instance()->a_environment.argument()); - - paludis_command.append(" --" + CommandLine::get_instance()->a_log_level.long_name() + " " + - CommandLine::get_instance()->a_log_level.argument()); - - if (CommandLine::get_instance()->a_resume_command_template.specified()) - paludis_command.append(" --" + CommandLine::get_instance()->a_resume_command_template.long_name() + " " - + CommandLine::get_instance()->a_resume_command_template.argument()); - - if (CommandLine::get_instance()->a_no_color.specified()) - paludis_command.append(" --" + CommandLine::get_instance()->a_no_color.long_name()); - - if (CommandLine::get_instance()->a_force_color.specified()) - paludis_command.append(" --" + CommandLine::get_instance()->a_force_color.long_name()); - - paludis_command.append(CommandLine::get_instance()->install_args.paludis_command_fragment()); - paludis_command.append(CommandLine::get_instance()->dl_args.paludis_command_fragment()); - - std::shared_ptr<Environment> env(EnvironmentFactory::get_instance()->create( - CommandLine::get_instance()->a_environment.argument())); - env->set_paludis_command(paludis_command); - - return do_fix_linkage(env); - } - - catch (const DoVersion &) - { - display_version(); - std::cout << std::endl; - std::cout << "Paludis comes with ABSOLUTELY NO WARRANTY. Paludis is free software, and you" << std::endl; - std::cout << "are welcome to redistribute it under the terms of the GNU General Public" << std::endl; - std::cout << "License, version 2." << std::endl; - - return EXIT_SUCCESS; - } - - catch (const args::ArgsError & e) - { - std::cerr << "Usage error: " << e.message() << std::endl; - std::cerr << "Try " << argv[0] << " --help" << std::endl; - return EXIT_FAILURE; - } - - catch (const args::DoHelp & h) - { - if (h.message.empty()) - { - std::cout << "Usage: " << argv[0] << " [options]" << std::endl; - std::cout << std::endl; - std::cout << *CommandLine::get_instance(); - return EXIT_SUCCESS; - } - else - { - std::cerr << "Usage error: " << h.message << std::endl; - std::cerr << "Try " << argv[0] << " --help" << std::endl; - return EXIT_FAILURE; - } - } - - catch (const Exception & e) - { - std::cout << std::endl; - std::cerr << "Unhandled exception:" << std::endl - << " * " << e.backtrace("\n * ") - << e.message() << " (" << e.what() << ")" << std::endl; - return EXIT_FAILURE; - } - - catch (const std::exception & e) - { - std::cout << std::endl; - std::cerr << "Unhandled exception:" << std::endl - << " * " << e.what() << std::endl; - return EXIT_FAILURE; - } - - catch (...) - { - std::cout << std::endl; - std::cerr << "Unhandled exception:" << std::endl - << " * Unknown exception type. Ouch..." << std::endl; - return EXIT_FAILURE; - } -} - diff --git a/zsh-completion/Makefile.am b/zsh-completion/Makefile.am index e6d2aaf3c..8648b3c00 100644 --- a/zsh-completion/Makefile.am +++ b/zsh-completion/Makefile.am @@ -1,5 +1,5 @@ MAINTAINERCLEANFILES = Makefile.in -noinst_DATA = _paludis _adjutrix _paludis_packages _reconcilio _cave +noinst_DATA = _paludis _adjutrix _paludis_packages _cave EXTRA_DIST = $(noinst_DATA) AUTOMAKE_OPTIONS = 1.11 parallel-tests diff --git a/zsh-completion/_reconcilio b/zsh-completion/_reconcilio deleted file mode 100644 index 180f6ab86..000000000 --- a/zsh-completion/_reconcilio +++ /dev/null @@ -1,70 +0,0 @@ -#compdef reconcilio -# -# vim: set et sw=4 sts=4 ts=4 ft=zsh : -# ZSH completion for adjutrix -# Written by Baptiste Daroussin <baptux at free.fr> -_reconcilio() { - local actions action_options general_options fix_linkage_options install_options deplist_descriptions deplist_options - actions=( - --fix-linkage - --version -V - --help -h - ) - general_options=( - '--log-level[Specify the log level]:log level:((debug\:"Show debug output (noisy)" qa\:"Show QA messages and warnings only (default)" warning\:"Show warnings only" silent\:"Suppress all log messages (UNSAFE)"))' - '(--no-colour --no-color)'{--no-colour,--no-color}"[Do not use colour]" - "(--environment -E)"{-E,--environment}"[Environment specification]" - "--exact[Rebuild the same package version that is currently installed]" - "(--verbose, -v)"{-v,--verbose}"[Display more detailed output]" - "--resume-command-template[Save the resume command to a file]:file:_files" - "--compact[Display output using one line per entry]" - ) - fix_linkage_options=( - "--library[Only rebuild packages linked against this library, even if it exists]" - ) - install_options=( - "(--pretend -p)"{--pretend,-p}"[Pretend only]" - "(--fetch -f)"{--fetch,-f}"[Only fetch sources; don\'t install anything]" - "--no-safe-resume[Do not allow interrupted downloads to be resumed]" - "--show-reasons[Show why packages are being (un)installed]:Verbosity:((none\:Don\'t\ show\ any\ information summary\:Show\ a\ summary full\:Show\ full\ output))" - "--show-use-descriptions[Show descriptions of USE flags]:Which:((none\:Don\'t\ show\ any\ descriptions new\:Show\ for\ new\ use\ flags changed\:Show\ for\ new\ and\ changed\ flags all\:Show for all flags))" - "--show-package-descriptions[Show package descriptions]:When:((none\:Don\'t\ show\ any\ descriptions new\:Show\ descriptions\ for\ new\ packages all\:Show\ descriptions\ for\ all\ packages))" - "--continue-on-failure[Whether to continue after a fetch or install error]:When:((if-fetch-only\:If\ fetching\ only never\:Never if-satisfied\:If\ remaining\ packages\ dependencies\ are\ satisfied if-independent\:If\ independent\ of\ failed\ and\ skipped\ packages always\:Always))" - ) - deplist_descriptions=' - pre\:"As pre dependencies" - pre-or-post\:"As pre dependencies, or post dependencies where needed" - post\:"As post dependencies" - try-post\:"As post dependencies, with no error for failures" - discard\:"Discard (default)"' - deplist_options=( - "--dl-blocks[How to handle blocks]:How:(accumulate error discard)" - "--dl-override-masks[Zero or more mask kinds that can be overridden as necessary]:What:(none tilde-keyword unkeyworded profile repository license)" - "--dl-suggested[How to handle suggested dependencies]:How:(show install discard)" - "--dl-downgrade[When to downgrade packages]:When:(as-needed warning error)" - "--dl-reinstall[When to reinstall packages]:When:(never always if-use-changed)" - "--dl-reinstall-scm[When to reinstall scm packages]:When:(never always daily weekly)" - "--dl-reinstall-targets[When to reinstall targets]:When:(auto never always)" - "--dl-upgrade[When to upgrade packages]:When:(always as-needed)" - "--dl-deps-default[Override default behaviour for all dependency classes]:How:(($deplist_descriptions))" - "--dl-installed-deps-pre[How to handle pre dependencies for installed packages]:How:(($deplist_descriptions))" - "--dl-installed-deps-runtime[How to handle runtime dependencies for installed packages]:How:(($deplist_descriptions))" - "--dl-installed-deps-post[How to handle post dependencies for installed packages]:How:(($deplist_descriptions))" - "--dl-uninstalled-deps-pre[How to handle pre dependencies for uninstalled packages]:How:(($deplist_descriptions))" - "--dl-uninstalled-deps-post[How to handle post dependencies for uninstalled packages]:How:(($deplist_descriptions))" - "--dl-uninstalled-deps-runtime[How to handle runtime dependencies for uninstalled packages]:How:(($deplist_descriptions))" - "--dl-uninstalled-deps-suggested[How to handle suggested dependencies for uninstalled packages]:How:(($deplist_descriptions))" - "--dl-circular[How to handle circular dependencies]:How:(error discard)" - "--dl-fall-back[When to fall back to installed packages]:When:(as-needed-except-targets as-needed never)" - "--dl-new-slots[When to pull in new slots (works with --dl-upgrade)]:When:(always as-needed)" - ) - action_options=( - "($actions)--fix-linkage[Search for and rebuild packages linked against non-existant libraries]" - "(: -)"{--version,-V}"[Display program version]" - "(: -)"{--help,-h}"[Display program help]" - ) - _arguments -s \ - $general_options[@] $fix_linkage_options[@] $install_options[@] $deplist_options[@] $action_options[@] && return 0 -} - -_reconcilio "$@" |