aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-07-24 17:06:51 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-07-24 17:06:51 +0000
commit978adb459ba9e681d3368b184ff2249afea352bc (patch)
treeb5f7719a362b79b35c02c79130724d2512464b70
parentbe6f556318fe2910513eb03350b86353c67cfa3c (diff)
downloadpaludis-978adb459ba9e681d3368b184ff2249afea352bc.tar.gz
paludis-978adb459ba9e681d3368b184ff2249afea352bc.tar.xz
Fix a few cran things
-rw-r--r--paludis/repositories/cran/Makefile.am29
-rw-r--r--paludis/repositories/cran/cran_dep_parser.cc8
-rw-r--r--paludis/repositories/cran/cran_dep_parser.hh37
-rw-r--r--paludis/repositories/cran/cran_dep_parser_TEST.cc72
-rw-r--r--paludis/repositories/cran/cran_installed_repository.cc117
-rw-r--r--paludis/repositories/cran/cran_installed_repository.hh13
-rw-r--r--paludis/repositories/cran/cran_package_id.cc1
-rw-r--r--paludis/repositories/cran/cran_repository.cc8
-rw-r--r--paludis/repositories/cran/cran_repository.hh10
9 files changed, 149 insertions, 146 deletions
diff --git a/paludis/repositories/cran/Makefile.am b/paludis/repositories/cran/Makefile.am
index 8a2db6b..c6efe14 100644
--- a/paludis/repositories/cran/Makefile.am
+++ b/paludis/repositories/cran/Makefile.am
@@ -41,17 +41,13 @@ libpaludiscranrepository_la_SOURCES = \
registration.cc \
$(paludis_repositories_cran_include_HEADERS)
-if ! MONOLITHIC
-
libpaludiscranrepository_la_LIBADD = \
$(top_builddir)/paludis/repositories/libpaludisrepositories.la \
$(top_builddir)/paludis/libpaludis.la \
$(top_builddir)/paludis/util/libpaludisutil.la \
$(DYNAMIC_LD_LIBS)
-endif
-
-TESTS = cran_dep_parser_TEST cran_repository_TEST
+TESTS = cran_dep_parser_TEST cran_repository_TEST cran_installed_repository_TEST
cran_dep_parser_TEST_SOURCES = cran_dep_parser_TEST.cc
@@ -60,6 +56,17 @@ cran_dep_parser_TEST_LDADD= \
$(top_builddir)/test/libtest.a \
libpaludiscranrepository.la
+cran_installed_repository_TEST_SOURCES = cran_installed_repository_TEST.cc
+
+cran_installed_repository_TEST_LDADD = \
+ $(top_builddir)/paludis/util/test_extras.o \
+ $(top_builddir)/test/libtest.a \
+ libpaludiscranrepository.la \
+ $(top_builddir)/paludis/libpaludis.la \
+ $(top_builddir)/paludis/util/libpaludisutil.la \
+ $(top_builddir)/paludis/environments/test/libpaludistestenvironment.la \
+ $(DYNAMIC_LD_LIBS)
+
cran_repository_TEST_SOURCES = cran_repository_TEST.cc
cran_repository_TEST_LDADD = \
@@ -71,8 +78,6 @@ cran_repository_TEST_LDADD = \
$(top_builddir)/paludis/environments/test/libpaludistestenvironment.la \
$(DYNAMIC_LD_LIBS)
-cran_repository_TEST_CXXFLAGS = -I$(top_srcdir) $(AM_CXXFLAGS)
-
EXTRA_DIST = \
cran_repository_TEST.cc \
cran_repository_TEST_setup.sh \
@@ -82,7 +87,10 @@ EXTRA_DIST = \
cran_repository-sr.cc \
cran_installed_repository.sr \
cran_installed_repository-sr.hh \
- cran_installed_repository-sr.cc
+ cran_installed_repository-sr.cc \
+ cran_installed_repository_TEST.cc \
+ cran_installed_repository_TEST_setup.sh \
+ cran_installed_repository_TEST_cleanup.sh
BUILT_SOURCES = \
cran_repository-sr.hh \
@@ -91,12 +99,13 @@ BUILT_SOURCES = \
cran_installed_repository-sr.cc
check_PROGRAMS = $(TESTS)
-check_SCRIPTS = cran_repository_TEST_setup.sh cran_repository_TEST_cleanup.sh
+check_SCRIPTS = \
+ cran_repository_TEST_setup.sh cran_repository_TEST_cleanup.sh \
+ cran_installed_repository_TEST_setup.sh cran_installed_repository_TEST_cleanup.sh
TESTS_ENVIRONMENT = env \
CRAN_BASH_DIR="$(top_srcdir)/paludis/repositories/cran/cran/" \
PALUDIS_SKIP_CONFIG="yes" \
- PALUDIS_EAPIS_DIR="$(top_srcdir)/paludis/eapis/" \
PALUDIS_DISTRIBUTIONS_DIR="$(top_srcdir)/paludis/distributions/" \
TEST_SCRIPT_DIR="$(srcdir)/" \
PALUDIS_REPOSITORY_SO_DIR="$(top_builddir)/paludis/repositories" \
diff --git a/paludis/repositories/cran/cran_dep_parser.cc b/paludis/repositories/cran/cran_dep_parser.cc
index 2b66fa9..ab14123 100644
--- a/paludis/repositories/cran/cran_dep_parser.cc
+++ b/paludis/repositories/cran/cran_dep_parser.cc
@@ -18,7 +18,6 @@
*/
#include <paludis/dep_spec.hh>
-#include <paludis/eapi.hh>
#include <paludis/repositories/cran/cran_dep_parser.hh>
#include <paludis/repositories/cran/cran_package_id.hh>
#include <paludis/util/visitor-impl.hh>
@@ -34,13 +33,10 @@
using namespace paludis;
tr1::shared_ptr<DependencySpecTree::ConstItem>
-CRANDepParser::parse(const std::string & s, const EAPI & e)
+cranrepository::parse_depends(const std::string & s)
{
Context context("When parsing CRAN 'Depends:' string: '" + s + "':");
- if (! e.supported)
- throw InternalError(PALUDIS_HERE, "Got bad EAPI '" + e.name + "' for a CRAN package");
-
tr1::shared_ptr<ConstTreeSequence<DependencySpecTree, AllDepSpec> > result(
new ConstTreeSequence<DependencySpecTree, AllDepSpec>(tr1::shared_ptr<AllDepSpec>(new AllDepSpec)));
@@ -84,7 +80,7 @@ CRANDepParser::parse(const std::string & s, const EAPI & e)
spec_string = range + name + "-" + version;
tr1::shared_ptr<TreeLeaf<DependencySpecTree, PackageDepSpec> > spec(
new TreeLeaf<DependencySpecTree, PackageDepSpec>(tr1::shared_ptr<PackageDepSpec>(
- new PackageDepSpec(spec_string, e.supported->package_dep_spec_parse_mode))));
+ new PackageDepSpec(spec_string, pds_pm_permissive))));
result->add(spec);
}
diff --git a/paludis/repositories/cran/cran_dep_parser.hh b/paludis/repositories/cran/cran_dep_parser.hh
index 93d5f7b..0618e1e 100644
--- a/paludis/repositories/cran/cran_dep_parser.hh
+++ b/paludis/repositories/cran/cran_dep_parser.hh
@@ -1,26 +1,35 @@
+/* vim: set sw=4 sts=4 et foldmethod=syntax : */
+
+/*
+ * Copyright (c) 2006 Danny van Dyk <kugelfang@gentoo.org>
+ * Copyright (c) 2007 Ciaran McCreesh <ciaranm@ciaranm.org>
+ *
+ * This file is part of the Paludis package manager. Paludis is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU General
+ * 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_PALUDIS_CRAN_DEP_PARSER_HH
#define PALUDIS_GUARD_PALUDIS_CRAN_DEP_PARSER_HH 1
#include <paludis/dep_spec-fwd.hh>
-#include <paludis/eapi-fwd.hh>
#include <string>
namespace paludis
{
- /**
- * The CRANDepParser conversts a string representation of a CRAN Depends:
- * specification into a DepSpec instance.
- *
- * \ingroup grpdepparser
- */
- struct PALUDIS_VISIBLE CRANDepParser
+ namespace cranrepository
{
- /**
- * Parse function.
- */
- static tr1::shared_ptr<DependencySpecTree::ConstItem> parse(const std::string & s,
- const EAPI &);
- };
+ tr1::shared_ptr<DependencySpecTree::ConstItem> parse_depends(const std::string & s) PALUDIS_VISIBLE;
+ }
}
#endif
diff --git a/paludis/repositories/cran/cran_dep_parser_TEST.cc b/paludis/repositories/cran/cran_dep_parser_TEST.cc
index 3dda117..a75e96e 100644
--- a/paludis/repositories/cran/cran_dep_parser_TEST.cc
+++ b/paludis/repositories/cran/cran_dep_parser_TEST.cc
@@ -19,12 +19,10 @@
#include <paludis/dep_spec.hh>
#include <paludis/dep_spec_flattener.hh>
-#include <paludis/dep_spec_pretty_printer.hh>
#include <paludis/repositories/cran/cran_dep_parser.hh>
#include <paludis/environments/test/test_environment.hh>
#include <paludis/util/system.hh>
#include <paludis/util/visitor-impl.hh>
-#include <paludis/eapi.hh>
#include <libwrapiter/libwrapiter_forward_iterator.hh>
#include <test/test_framework.hh>
#include <test/test_runner.hh>
@@ -32,36 +30,76 @@
using namespace test;
using namespace paludis;
-/** \file
- * Test cases for CRANRepository.
- *
- */
+namespace
+{
+ struct Stringifier :
+ ConstVisitor<DependencySpecTree>
+ {
+ std::ostringstream s;
+
+ void visit_leaf(const PackageDepSpec & p)
+ {
+ s << p << " ";
+ }
+
+ void visit_leaf(const BlockDepSpec &)
+ {
+ s << "!!!BLOCK!!!";
+ }
+
+ void visit_sequence(const AllDepSpec &,
+ DependencySpecTree::ConstSequenceIterator cur,
+ DependencySpecTree::ConstSequenceIterator end)
+ {
+ s << "ALL(";
+ std::for_each(cur, end, accept_visitor(*this));
+ s << ")";
+ }
+
+ void visit_sequence(const AnyDepSpec &,
+ DependencySpecTree::ConstSequenceIterator cur,
+ DependencySpecTree::ConstSequenceIterator end)
+ {
+ s << "ANY(";
+ std::for_each(cur, end, accept_visitor(*this));
+ s << ")";
+ }
+
+ void visit_sequence(const UseDepSpec &,
+ DependencySpecTree::ConstSequenceIterator cur,
+ DependencySpecTree::ConstSequenceIterator end)
+ {
+ s << "USE(";
+ std::for_each(cur, end, accept_visitor(*this));
+ s << ")";
+ }
+ };
+}
namespace test_cases
{
- /**
- * \test Test CRANDepParser::parse to parse well formed CRAN Depends: strings.
- *
- */
struct CRANDepParserTest : TestCase
{
CRANDepParserTest() : TestCase("DepParser") { }
void run()
{
- DepSpecPrettyPrinter d1(0, false), d2(0, false), d3(0, false);
+ Stringifier d1, d2, d3;
+
// test R dependency
std::string dep1("R (>= 2.0.0)");
- CRANDepParser::parse(dep1, *EAPIData::get_instance()->eapi_from_string("CRAN-1"))->accept(d1);
- TEST_CHECK_EQUAL(stringify(d1), ">=dev-lang/R-2.0.0");
+ cranrepository::parse_depends(dep1)->accept(d1);
+ TEST_CHECK_EQUAL(d1.s.str(), ">=dev-lang/R-2.0.0 ");
+
// test varying whitespaces
std::string dep2("testpackage1 \t(<1.9)");
- CRANDepParser::parse(dep2, *EAPIData::get_instance()->eapi_from_string("CRAN-1"))->accept(d2);
- TEST_CHECK_EQUAL(stringify(d2), "<cran/testpackage1-1.9");
+ cranrepository::parse_depends(dep2)->accept(d2);
+ TEST_CHECK_EQUAL(d2.s.str(), "<cran/testpackage1-1.9 ");
+
// test for package-name and version normalisation
std::string dep3("R.matlab (>= 2.3-1)");
- CRANDepParser::parse(dep3, *EAPIData::get_instance()->eapi_from_string("CRAN-1"))->accept(d3);
- TEST_CHECK_EQUAL(stringify(d3), ">=cran/R-matlab-2.3.1");
+ cranrepository::parse_depends(dep3)->accept(d3);
+ TEST_CHECK_EQUAL(d3.s.str(), ">=cran/R-matlab-2.3.1 ");
}
} test_cran_dep_parser;
}
diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc
index eb0ecae..b94286b 100644
--- a/paludis/repositories/cran/cran_installed_repository.cc
+++ b/paludis/repositories/cran/cran_installed_repository.cc
@@ -21,11 +21,12 @@
#include <paludis/hashed_containers.hh>
#include <paludis/environment.hh>
#include <paludis/util/private_implementation_pattern-impl.hh>
-#include <paludis/eapi.hh>
#include <paludis/repository_info.hh>
#include <paludis/dep_spec.hh>
#include <paludis/dep_tag.hh>
+#include <paludis/config_file.hh>
#include <paludis/set_file.hh>
+#include <paludis/action.hh>
#include <paludis/repositories/cran/cran_package_id.hh>
#include <paludis/repositories/cran/cran_dep_parser.hh>
#include <paludis/repositories/cran/cran_installed_repository.hh>
@@ -48,6 +49,7 @@
#include <functional>
#include <algorithm>
+#include <fstream>
using namespace paludis;
@@ -150,25 +152,20 @@ Implementation<CRANInstalledRepository>::need_ids() const
CRANInstalledRepository::CRANInstalledRepository(const CRANInstalledRepositoryParams & p) :
Repository(RepositoryName("cran_installed"),
RepositoryCapabilities::create()
- .mask_interface(0)
- .installable_interface(0)
.installed_interface(this)
.sets_interface(this)
.syncable_interface(0)
- .uninstallable_interface(this)
.use_interface(0)
.world_interface(this)
.environment_variable_interface(0)
.mirrors_interface(0)
.virtuals_interface(0)
.provides_interface(0)
- .config_interface(0)
.destination_interface(this)
.licenses_interface(0)
.e_interface(0)
.qa_interface(0)
.make_virtuals_interface(0)
- .pretend_interface(0)
.hook_interface(0)
.manifest_interface(0),
"cran_installed"),
@@ -495,80 +492,56 @@ CRANInstalledRepository::invalidate()
_imp.reset(new Implementation<CRANInstalledRepository>(_imp->params));
}
-#if 0
void
CRANInstalledRepository::add_string_to_world(const std::string & n) const
{
- bool found(false);
+ Context context("When adding '" + n + "' to world file '" + stringify(_imp->params.world) + "':");
- if (_imp->world_file.exists())
+ if (! _imp->params.world.exists())
{
- LineConfigFile world(_imp->world_file, LineConfigFileOptions());
-
- for (LineConfigFile::Iterator line(world.begin()), line_end(world.end()) ;
- line != line_end ; ++line)
- if (*line == n)
- {
- found = true;
- break;
- }
+ std::ofstream f(stringify(_imp->params.world).c_str());
+ if (! f)
+ {
+ Log::get_instance()->message(ll_warning, lc_no_context, "Cannot create world file '"
+ + stringify(_imp->params.world) + "'");
+ return;
+ }
}
- if (! found)
- {
- std::ofstream world(stringify(_imp->world_file).c_str(), std::ios::out | std::ios::app);
- if (! world)
- Log::get_instance()->message(ll_warning, lc_no_context, "Cannot append to world file '"
- + stringify(_imp->world_file) + "', skipping world update");
- else
- world << n << std::endl;
- }
+ SetFile world(SetFileParams::create()
+ .file_name(_imp->params.world)
+ .type(sft_simple)
+ .parse_mode(pds_pm_unspecific)
+ .tag(tr1::shared_ptr<DepTag>())
+ .environment(_imp->params.environment));
+ world.add(n);
+ world.rewrite();
}
void
CRANInstalledRepository::remove_string_from_world(const std::string & n) const
{
- std::list<std::string> world_lines;
-
- if (_imp->world_file.exists())
- {
- std::ifstream world_file(stringify(_imp->world_file).c_str());
-
- if (! world_file)
- {
- Log::get_instance()->message(ll_warning, lc_no_context, "Cannot read world file '"
- + stringify(_imp->world_file) + "', skipping world update");
- return;
- }
-
- std::string line;
- while (std::getline(world_file, line))
- {
- if (strip_leading(strip_trailing(line, " \t"), "\t") != n)
- world_lines.push_back(line);
- else
- Log::get_instance()->message(ll_debug, lc_context, "Removing line '"
- + line + "' from world file '" + stringify(_imp->world_file));
- }
- }
-
- std::ofstream world_file(stringify(_imp->world_file).c_str());
+ Context context("When removing '" + n + "' from world file '" + stringify(_imp->params.world) + "':");
- if (! world_file)
+ if (_imp->params.world.exists())
{
- Log::get_instance()->message(ll_warning, lc_no_context, "Cannot write world file '"
- + stringify(_imp->world_file) + "', skipping world update");
- return;
+ SetFile world(SetFileParams::create()
+ .file_name(_imp->params.world)
+ .type(sft_simple)
+ .parse_mode(pds_pm_unspecific)
+ .tag(tr1::shared_ptr<DepTag>())
+ .environment(_imp->params.environment));
+
+ world.remove(n);
+ world.rewrite();
}
-
- std::copy(world_lines.begin(), world_lines.end(),
- std::ostream_iterator<std::string>(world_file, "\n"));
}
bool
-CRANInstalledRepository::is_suitable_destination_for(const PackageDatabaseEntry & e) const
+CRANInstalledRepository::is_suitable_destination_for(const PackageID & e) const
{
- return _imp->env->package_database()->fetch_repository(e.repository)->format() == "cran";
+ std::string f(e.repository()->format());
+ return f == "cran";
}
void
@@ -594,7 +567,6 @@ CRANInstalledRepository::remove_from_world(const SetName & n) const
{
remove_string_from_world(stringify(n));
}
-#endif
FSEntry
CRANInstalledRepository::root() const
@@ -614,27 +586,14 @@ CRANInstalledRepository::want_pre_post_phases() const
return true;
}
-#if 0
void
CRANInstalledRepository::merge(const MergeOptions & m)
{
- tr1::shared_ptr<const FSEntryCollection> bashrc_files(_imp->env->bashrc_files());
+ Context context("When merging '" + stringify(*m.package_id) + "' at '" + stringify(m.image_dir)
+ + "' to repository '" + stringify(name()) + "':");
- Command cmd = Command(LIBEXECDIR "/paludis/cran.bash merge")
- .with_setenv("IMAGE", stringify(m.image_dir))
- .with_setenv("PN", stringify(m.package.name.package))
- .with_setenv("PV", stringify(m.package.version))
- .with_setenv("PALUDIS_CRAN_LIBRARY", stringify(_imp->location))
- .with_setenv("PALUDIS_EBUILD_DIR", std::string(LIBEXECDIR "/paludis/"))
- .with_setenv("PALUDIS_EBUILD_LOG_LEVEL", stringify(Log::get_instance()->log_level()))
- .with_setenv("PALUDIS_BASHRC_FILES", join(bashrc_files->begin(), bashrc_files->end(), " "))
- .with_setenv("ROOT", stringify(root()))
- .with_setenv("REPOSITORY", stringify(m.package.repository));
-
- if (0 != run_command(cmd))
- throw PackageInstallActionError("Couldn't merge '" + stringify(m.package) + "' to '" +
- stringify(name()) + "'");
+ if (! is_suitable_destination_for(*m.package_id))
+ throw InstallActionError("Not a suitable destination for '" + stringify(*m.package_id) + "'");
}
-#endif
diff --git a/paludis/repositories/cran/cran_installed_repository.hh b/paludis/repositories/cran/cran_installed_repository.hh
index 92f7de0..8a758a3 100644
--- a/paludis/repositories/cran/cran_installed_repository.hh
+++ b/paludis/repositories/cran/cran_installed_repository.hh
@@ -47,7 +47,6 @@ namespace paludis
class PALUDIS_VISIBLE CRANInstalledRepository :
public Repository,
public RepositoryInstalledInterface,
- public RepositoryUninstallableInterface,
public RepositorySetsInterface,
public RepositoryWorldInterface,
public RepositoryDestinationInterface,
@@ -55,6 +54,8 @@ namespace paludis
{
private:
void need_ids() const;
+ void add_string_to_world(const std::string & n) const;
+ void remove_string_from_world(const std::string &) const;
protected:
/* Repository */
@@ -76,14 +77,7 @@ namespace paludis
virtual bool do_has_category_named(const CategoryNamePart &) const
PALUDIS_ATTRIBUTE((warn_unused_result));
- /* RepositoryInstalledInterface */
-
- virtual time_t do_installed_time(const PackageID &)
- const PALUDIS_ATTRIBUTE((warn_unused_result));
-
- /* RepositoryUninstallableInterface */
-
- virtual void do_uninstall(const tr1::shared_ptr<const PackageID> &, const UninstallOptions &) const;
+ virtual bool do_some_ids_might_support_action(const SupportsActionTestBase &) const;
/* RepositorySetsInterface */
@@ -109,6 +103,7 @@ namespace paludis
~CRANInstalledRepository();
virtual void invalidate();
+ virtual void invalidate_masks();
/* RepositoryInstalledInterface */
diff --git a/paludis/repositories/cran/cran_package_id.cc b/paludis/repositories/cran/cran_package_id.cc
index d062c2f..438b17d 100644
--- a/paludis/repositories/cran/cran_package_id.cc
+++ b/paludis/repositories/cran/cran_package_id.cc
@@ -21,7 +21,6 @@
#include <paludis/repositories/cran/cran_package_id.hh>
#include <paludis/repositories/cran/cran_dep_parser.hh>
#include <paludis/config_file.hh>
-#include <paludis/eapi.hh>
#include <paludis/util/log.hh>
#include <paludis/util/strip.hh>
#include <paludis/util/stringify.hh>
diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc
index 2ad11a1..ec8249b 100644
--- a/paludis/repositories/cran/cran_repository.cc
+++ b/paludis/repositories/cran/cran_repository.cc
@@ -29,6 +29,7 @@
#include <paludis/util/dir_iterator.hh>
#include <paludis/util/set.hh>
#include <paludis/util/sequence.hh>
+#include <paludis/util/options.hh>
#include <paludis/util/fs_entry.hh>
#include <paludis/util/iterator.hh>
#include <paludis/util/join.hh>
@@ -93,12 +94,9 @@ Implementation<CRANRepository>::~Implementation()
CRANRepository::CRANRepository(const CRANRepositoryParams & p) :
Repository(CRANRepository::fetch_repo_name(stringify(p.location)),
RepositoryCapabilities::create()
- .mask_interface(0)
- .installable_interface(this)
.installed_interface(0)
.sets_interface(this)
.syncable_interface(this)
- .uninstallable_interface(0)
.use_interface(0)
.world_interface(0)
.environment_variable_interface(0)
@@ -107,10 +105,8 @@ CRANRepository::CRANRepository(const CRANRepositoryParams & p) :
.provides_interface(0)
.destination_interface(0)
.virtuals_interface(0)
- .config_interface(0)
.licenses_interface(0)
.e_interface(0)
- .pretend_interface(0)
.qa_interface(0)
.hook_interface(0)
.manifest_interface(0),
@@ -219,6 +215,7 @@ CRANRepository::fetch_repo_name(const std::string & location)
return RepositoryName("cran-" + modified_location);
}
+#if 0
void
CRANRepository::do_install(const tr1::shared_ptr<const PackageID> & id_uncasted, const InstallOptions & o) const
{
@@ -305,6 +302,7 @@ CRANRepository::do_install(const tr1::shared_ptr<const PackageID> & id_uncasted,
return;
}
+#endif
tr1::shared_ptr<SetSpecTree::ConstItem>
CRANRepository::do_package_set(const SetName & s) const
diff --git a/paludis/repositories/cran/cran_repository.hh b/paludis/repositories/cran/cran_repository.hh
index 8cc497b..8872152 100644
--- a/paludis/repositories/cran/cran_repository.hh
+++ b/paludis/repositories/cran/cran_repository.hh
@@ -24,6 +24,8 @@
#include <paludis/repository.hh>
#include <paludis/util/fs_entry.hh>
#include <paludis/util/private_implementation_pattern.hh>
+#include <paludis/util/map-fwd.hh>
+#include <paludis/environment-fwd.hh>
#include <string>
/** \file
@@ -46,7 +48,6 @@ namespace paludis
*/
class PALUDIS_VISIBLE CRANRepository :
public Repository,
- public RepositoryInstallableInterface,
public RepositorySyncableInterface,
public RepositorySetsInterface,
private PrivateImplementationPattern<CRANRepository>
@@ -60,10 +61,6 @@ namespace paludis
*/
static RepositoryName fetch_repo_name(const std::string & location);
- /* RepositoryInstallableInterface */
-
- virtual void do_install(const tr1::shared_ptr<const PackageID> &, const InstallOptions &) const;
-
/* RepositorySyncableInterface */
virtual tr1::shared_ptr<SetSpecTree::ConstItem> do_package_set(const SetName &) const;
@@ -93,6 +90,8 @@ namespace paludis
const QualifiedPackageName &) const
PALUDIS_ATTRIBUTE((warn_unused_result));
+ virtual bool do_some_ids_might_support_action(const SupportsActionTestBase &) const;
+
public:
/**
* Constructor.
@@ -112,6 +111,7 @@ namespace paludis
virtual ~CRANRepository();
virtual void invalidate();
+ virtual void invalidate_masks();
};
/**