aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-02-04 22:07:54 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-02-04 22:07:54 +0000
commite91a83397adaad38a7ac9b60d315db481cc3fff2 (patch)
tree95a5847a8467bc7e5f073c5833edcb58e2c4a49e
parent3caef7b22c4eaee861f0f655d5c1650652b7d2c6 (diff)
downloadpaludis-e91a83397adaad38a7ac9b60d315db481cc3fff2.tar.gz
paludis-e91a83397adaad38a7ac9b60d315db481cc3fff2.tar.xz
Bye bye reconcilio
-rw-r--r--.gitignore2
-rw-r--r--bash-completion/Makefile.am2
-rw-r--r--bash-completion/reconcilio159
-rw-r--r--configure.ac10
-rw-r--r--doc/clients/Makefile.am10
-rw-r--r--doc/clients/index.html.part1
-rw-r--r--doc/clients/toplinks.html.part.in2
-rw-r--r--doc/index.html.part.in1
-rw-r--r--paludis/broken_linkage_configuration.cc30
-rw-r--r--paludis/broken_linkage_finder.cc18
-rw-r--r--paludis/elf_linkage_checker.cc22
-rw-r--r--paludis/libtool_linkage_checker.cc10
-rw-r--r--src/clients/reconcilio/Makefile.am49
-rw-r--r--src/clients/reconcilio/broken_linkage_finder/Makefile.am30
-rw-r--r--src/clients/reconcilio/command_line.cc112
-rw-r--r--src/clients/reconcilio/command_line.hh70
-rw-r--r--src/clients/reconcilio/fix_linkage.cc140
-rw-r--r--src/clients/reconcilio/fix_linkage.hh28
-rw-r--r--src/clients/reconcilio/install.cc153
-rw-r--r--src/clients/reconcilio/install.hh31
-rw-r--r--src/clients/reconcilio/man_reconcilio.cc78
-rw-r--r--src/clients/reconcilio/reconcilio.cc173
-rw-r--r--zsh-completion/Makefile.am2
-rw-r--r--zsh-completion/_reconcilio70
24 files changed, 47 insertions, 1156 deletions
diff --git a/.gitignore b/.gitignore
index 2cc5fe7..6021142 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 a7cb860..2e1b30d 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 7c777cf..0000000
--- 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 51aeba0..16aa8e0 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 d4b2542..0257533 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 b79129f..56677df 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 4c0da6b..1ff046a 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>
+ &nbsp;
</td>
<td class="currentpage">
diff --git a/doc/index.html.part.in b/doc/index.html.part.in
index 1d0d01b..884e18d 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 d888633..9242284 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 babdda6..9e81c20 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 256b155..4ddf5cf 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 8359487..5508dfa 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 aa673a2..0000000
--- 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 f9eb301..0000000
--- 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 b742af2..0000000
--- 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 fcd09ae..0000000
--- 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 6c5152c..0000000
--- 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 c4697f9..0000000
--- 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 449649d..0000000
--- 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 b88e2ff..0000000
--- 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 91c4433..0000000
--- 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 532dfd7..0000000
--- 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 e6d2aaf..8648b3c 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 180f6ab..0000000
--- 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 "$@"