diff options
Diffstat (limited to 'paludis')
35 files changed, 143 insertions, 0 deletions
diff --git a/paludis/repositories/accounts/accounts_repository.cc b/paludis/repositories/accounts/accounts_repository.cc index af15ca74d..a336ad98f 100644 --- a/paludis/repositories/accounts/accounts_repository.cc +++ b/paludis/repositories/accounts/accounts_repository.cc @@ -291,6 +291,12 @@ AccountsRepository::regenerate_cache() const { } +const bool +AccountsRepository::is_unimportant() const +{ + return false; +} + bool AccountsRepository::has_category_named(const CategoryNamePart & c) const { diff --git a/paludis/repositories/accounts/accounts_repository.hh b/paludis/repositories/accounts/accounts_repository.hh index c2eb767fd..7562aec23 100644 --- a/paludis/repositories/accounts/accounts_repository.hh +++ b/paludis/repositories/accounts/accounts_repository.hh @@ -120,6 +120,7 @@ namespace paludis ///\name Repository content queries ///\{ + virtual const bool is_unimportant() const; virtual bool has_category_named(const CategoryNamePart & c) const; virtual bool has_package_named(const QualifiedPackageName & q) const; virtual std::tr1::shared_ptr<const CategoryNamePartSet> category_names() const; diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc index 5dc56bf55..fc240b41d 100644 --- a/paludis/repositories/cran/cran_installed_repository.cc +++ b/paludis/repositories/cran/cran_installed_repository.cc @@ -196,6 +196,12 @@ CRANInstalledRepository::has_category_named(const CategoryNamePart & c) const return (CategoryNamePart("cran") == c); } +const bool +CRANInstalledRepository::is_unimportant() const +{ + return false; +} + bool CRANInstalledRepository::has_package_named(const QualifiedPackageName & q) const { diff --git a/paludis/repositories/cran/cran_installed_repository.hh b/paludis/repositories/cran/cran_installed_repository.hh index 08d42e7ee..e335c937e 100644 --- a/paludis/repositories/cran/cran_installed_repository.hh +++ b/paludis/repositories/cran/cran_installed_repository.hh @@ -140,6 +140,8 @@ namespace paludis virtual bool has_category_named(const CategoryNamePart &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + virtual const bool is_unimportant() const; + virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; virtual bool sync(const std::tr1::shared_ptr<OutputManager> &) const; diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc index f662393a2..e9507fc23 100644 --- a/paludis/repositories/cran/cran_repository.cc +++ b/paludis/repositories/cran/cran_repository.cc @@ -510,6 +510,12 @@ namespace }; } +const bool +CRANRepository::is_unimportant() const +{ + return false; +} + bool CRANRepository::some_ids_might_support_action(const SupportsActionTestBase & a) const { diff --git a/paludis/repositories/cran/cran_repository.hh b/paludis/repositories/cran/cran_repository.hh index 158ee1078..73d7c0649 100644 --- a/paludis/repositories/cran/cran_repository.hh +++ b/paludis/repositories/cran/cran_repository.hh @@ -147,6 +147,8 @@ namespace paludis const QualifiedPackageName &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + virtual const bool is_unimportant() const; + virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; /* Keys */ diff --git a/paludis/repositories/e/e_installed_repository.cc b/paludis/repositories/e/e_installed_repository.cc index 38af704db..e11f9e806 100644 --- a/paludis/repositories/e/e_installed_repository.cc +++ b/paludis/repositories/e/e_installed_repository.cc @@ -162,6 +162,12 @@ EInstalledRepository::perform_hook(const Hook & hook) return make_named_values<HookResult>(value_for<n::max_exit_status>(0), value_for<n::output>("")); } +const bool +EInstalledRepository::is_unimportant() const +{ + return false; +} + std::tr1::shared_ptr<const CategoryNamePartSet> EInstalledRepository::unimportant_category_names() const { diff --git a/paludis/repositories/e/e_installed_repository.hh b/paludis/repositories/e/e_installed_repository.hh index b9c92ba90..9c6d9dba7 100644 --- a/paludis/repositories/e/e_installed_repository.hh +++ b/paludis/repositories/e/e_installed_repository.hh @@ -77,6 +77,8 @@ namespace paludis virtual std::tr1::shared_ptr<const CategoryNamePartSet> unimportant_category_names() const; + virtual const bool is_unimportant() const; + virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; HookResult perform_hook(const Hook & hook) diff --git a/paludis/repositories/e/e_repository.cc b/paludis/repositories/e/e_repository.cc index 50065104a..edfa25973 100644 --- a/paludis/repositories/e/e_repository.cc +++ b/paludis/repositories/e/e_repository.cc @@ -981,6 +981,12 @@ ERepository::unimportant_category_names() const return result; } +const bool +ERepository::is_unimportant() const +{ + return false; +} + namespace { struct SupportsActionQuery diff --git a/paludis/repositories/e/e_repository.hh b/paludis/repositories/e/e_repository.hh index af0fddfc7..32964774d 100644 --- a/paludis/repositories/e/e_repository.hh +++ b/paludis/repositories/e/e_repository.hh @@ -150,6 +150,7 @@ namespace paludis PALUDIS_ATTRIBUTE((warn_unused_result)); virtual std::tr1::shared_ptr<const CategoryNamePartSet> unimportant_category_names() const; + virtual const bool is_unimportant() const; /** * Update GLEP 42 news files. diff --git a/paludis/repositories/e/exndbam_repository.cc b/paludis/repositories/e/exndbam_repository.cc index 0cd9a7788..ad4fc4c10 100644 --- a/paludis/repositories/e/exndbam_repository.cc +++ b/paludis/repositories/e/exndbam_repository.cc @@ -255,6 +255,12 @@ ExndbamRepository::has_category_named(const CategoryNamePart & c) const return _imp->ndbam.has_category_named(c); } +const bool +ExndbamRepository::is_unimportant() const +{ + return false; +} + ExndbamRepositoryConfigurationError::ExndbamRepositoryConfigurationError( const std::string & msg) throw () : ConfigurationError("Exndbam repository configuration error: " + msg) diff --git a/paludis/repositories/e/exndbam_repository.hh b/paludis/repositories/e/exndbam_repository.hh index aa2f6b7e2..fea14ee64 100644 --- a/paludis/repositories/e/exndbam_repository.hh +++ b/paludis/repositories/e/exndbam_repository.hh @@ -108,6 +108,8 @@ namespace paludis virtual bool has_category_named(const CategoryNamePart &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + virtual const bool is_unimportant() const; + /* Keys */ virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; diff --git a/paludis/repositories/e/vdb_repository.cc b/paludis/repositories/e/vdb_repository.cc index 35c4b45d0..9509293d5 100644 --- a/paludis/repositories/e/vdb_repository.cc +++ b/paludis/repositories/e/vdb_repository.cc @@ -231,6 +231,12 @@ VDBRepository::has_package_named(const QualifiedPackageName & q) const return cat_iter->second->end() != cat_iter->second->find(q); } +const bool +VDBRepository::is_unimportant() const +{ + return false; +} + std::tr1::shared_ptr<const CategoryNamePartSet> VDBRepository::category_names() const { diff --git a/paludis/repositories/e/vdb_repository.hh b/paludis/repositories/e/vdb_repository.hh index f1a682ac7..e72edf610 100644 --- a/paludis/repositories/e/vdb_repository.hh +++ b/paludis/repositories/e/vdb_repository.hh @@ -157,6 +157,8 @@ namespace paludis virtual bool has_category_named(const CategoryNamePart &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + virtual const bool is_unimportant() const; + /* Keys */ virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > location_key() const; diff --git a/paludis/repositories/fake/fake_installed_repository.cc b/paludis/repositories/fake/fake_installed_repository.cc index a4b5ce241..17b496abe 100644 --- a/paludis/repositories/fake/fake_installed_repository.cc +++ b/paludis/repositories/fake/fake_installed_repository.cc @@ -192,6 +192,12 @@ FakeInstalledRepository::some_ids_might_support_action(const SupportsActionTestB return a.accept_returning<bool>(q); } +const bool +FakeInstalledRepository::is_unimportant() const +{ + return false; +} + const std::tr1::shared_ptr<const MetadataValueKey<std::string> > FakeInstalledRepository::format_key() const { diff --git a/paludis/repositories/fake/fake_installed_repository.hh b/paludis/repositories/fake/fake_installed_repository.hh index adb76ffa5..db3d8b862 100644 --- a/paludis/repositories/fake/fake_installed_repository.hh +++ b/paludis/repositories/fake/fake_installed_repository.hh @@ -88,6 +88,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + /* Keys */ virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > location_key() const; diff --git a/paludis/repositories/fake/fake_repository.cc b/paludis/repositories/fake/fake_repository.cc index 2572237d3..370846043 100644 --- a/paludis/repositories/fake/fake_repository.cc +++ b/paludis/repositories/fake/fake_repository.cc @@ -140,6 +140,12 @@ FakeRepository::some_ids_might_support_action(const SupportsActionTestBase & a) return a.accept_returning<bool>(q); } +const bool +FakeRepository::is_unimportant() const +{ + return false; +} + const std::tr1::shared_ptr<const MetadataValueKey<std::string> > FakeRepository::format_key() const { diff --git a/paludis/repositories/fake/fake_repository.hh b/paludis/repositories/fake/fake_repository.hh index a1fb2f06b..a93151ed0 100644 --- a/paludis/repositories/fake/fake_repository.hh +++ b/paludis/repositories/fake/fake_repository.hh @@ -81,6 +81,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + /* Keys */ virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; diff --git a/paludis/repositories/gems/gems_repository.cc b/paludis/repositories/gems/gems_repository.cc index 148acb741..1c2526079 100644 --- a/paludis/repositories/gems/gems_repository.cc +++ b/paludis/repositories/gems/gems_repository.cc @@ -325,6 +325,12 @@ GemsRepository::some_ids_might_support_action(const SupportsActionTestBase & a) return a.accept_returning<bool>(q); } +const bool +GemsRepository::is_unimportant() const +{ + return false; +} + void GemsRepository::need_keys_added() const { diff --git a/paludis/repositories/gems/gems_repository.hh b/paludis/repositories/gems/gems_repository.hh index 657a46eac..92bf5d573 100644 --- a/paludis/repositories/gems/gems_repository.hh +++ b/paludis/repositories/gems/gems_repository.hh @@ -84,6 +84,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + virtual bool sync(const std::tr1::shared_ptr<OutputManager> &) const; /* Keys */ diff --git a/paludis/repositories/gems/installed_gems_repository.cc b/paludis/repositories/gems/installed_gems_repository.cc index f65689aa5..7b86b2106 100644 --- a/paludis/repositories/gems/installed_gems_repository.cc +++ b/paludis/repositories/gems/installed_gems_repository.cc @@ -348,6 +348,12 @@ InstalledGemsRepository::some_ids_might_support_action(const SupportsActionTestB return a.accept_returning<bool>(q); } +const bool +InstalledGemsRepository::is_unimportant() const +{ + return false; +} + void InstalledGemsRepository::need_keys_added() const { diff --git a/paludis/repositories/gems/installed_gems_repository.hh b/paludis/repositories/gems/installed_gems_repository.hh index 9c80467b8..8bc437ab9 100644 --- a/paludis/repositories/gems/installed_gems_repository.hh +++ b/paludis/repositories/gems/installed_gems_repository.hh @@ -99,6 +99,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + virtual bool sync(const std::tr1::shared_ptr<OutputManager> &) const; /* Keys */ diff --git a/paludis/repositories/unavailable/unavailable_repository.cc b/paludis/repositories/unavailable/unavailable_repository.cc index a136a71a5..219d32601 100644 --- a/paludis/repositories/unavailable/unavailable_repository.cc +++ b/paludis/repositories/unavailable/unavailable_repository.cc @@ -111,6 +111,12 @@ UnavailableRepository::can_be_favourite_repository() const return false; } +const bool +UnavailableRepository::is_unimportant() const +{ + return true; +} + void UnavailableRepository::_add_metadata_keys() { diff --git a/paludis/repositories/unavailable/unavailable_repository.hh b/paludis/repositories/unavailable/unavailable_repository.hh index 99be86da5..1b24e9a16 100644 --- a/paludis/repositories/unavailable/unavailable_repository.hh +++ b/paludis/repositories/unavailable/unavailable_repository.hh @@ -73,6 +73,8 @@ namespace paludis virtual bool can_be_favourite_repository() const; + virtual const bool is_unimportant() const; + virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > location_key() const; virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > installed_root_key() const; diff --git a/paludis/repositories/unpackaged/installed_repository.cc b/paludis/repositories/unpackaged/installed_repository.cc index 8d532145e..359521efe 100644 --- a/paludis/repositories/unpackaged/installed_repository.cc +++ b/paludis/repositories/unpackaged/installed_repository.cc @@ -215,6 +215,12 @@ InstalledUnpackagedRepository::some_ids_might_support_action(const SupportsActio return test.accept_returning<bool>(v); } +const bool +InstalledUnpackagedRepository::is_unimportant() const +{ + return false; +} + namespace { std::pair<uid_t, gid_t> diff --git a/paludis/repositories/unpackaged/installed_repository.hh b/paludis/repositories/unpackaged/installed_repository.hh index a2397bd76..a5b46cb51 100644 --- a/paludis/repositories/unpackaged/installed_repository.hh +++ b/paludis/repositories/unpackaged/installed_repository.hh @@ -102,6 +102,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + /* Keys */ virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; diff --git a/paludis/repositories/unpackaged/unpackaged_repository.cc b/paludis/repositories/unpackaged/unpackaged_repository.cc index 1c5e03c49..055a37e73 100644 --- a/paludis/repositories/unpackaged/unpackaged_repository.cc +++ b/paludis/repositories/unpackaged/unpackaged_repository.cc @@ -169,6 +169,12 @@ UnpackagedRepository::some_ids_might_support_action(const SupportsActionTestBase return _imp->id->supports_action(test); } +const bool +UnpackagedRepository::is_unimportant() const +{ + return false; +} + void UnpackagedRepository::invalidate() { diff --git a/paludis/repositories/unpackaged/unpackaged_repository.hh b/paludis/repositories/unpackaged/unpackaged_repository.hh index 43a0289a6..1dd96b6e9 100644 --- a/paludis/repositories/unpackaged/unpackaged_repository.hh +++ b/paludis/repositories/unpackaged/unpackaged_repository.hh @@ -101,6 +101,8 @@ namespace paludis virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const; + virtual const bool is_unimportant() const; + virtual bool sync(const std::tr1::shared_ptr<OutputManager> &) const; /* Keys */ diff --git a/paludis/repositories/unwritten/unwritten_repository.cc b/paludis/repositories/unwritten/unwritten_repository.cc index 0f950af6e..a4bab6df8 100644 --- a/paludis/repositories/unwritten/unwritten_repository.cc +++ b/paludis/repositories/unwritten/unwritten_repository.cc @@ -105,6 +105,12 @@ UnwrittenRepository::~UnwrittenRepository() { } +const bool +UnwrittenRepository::is_unimportant() const +{ + return true; +} + bool UnwrittenRepository::can_be_favourite_repository() const { diff --git a/paludis/repositories/unwritten/unwritten_repository.hh b/paludis/repositories/unwritten/unwritten_repository.hh index 0e7946afc..44d1231ed 100644 --- a/paludis/repositories/unwritten/unwritten_repository.hh +++ b/paludis/repositories/unwritten/unwritten_repository.hh @@ -70,6 +70,8 @@ namespace paludis UnwrittenRepository(const UnwrittenRepositoryParams &); ~UnwrittenRepository(); + virtual const bool is_unimportant() const; + virtual bool can_be_favourite_repository() const; virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > format_key() const; diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.cc b/paludis/repositories/virtuals/installed_virtuals_repository.cc index 8a2e21a0d..be83fc9be 100644 --- a/paludis/repositories/virtuals/installed_virtuals_repository.cc +++ b/paludis/repositories/virtuals/installed_virtuals_repository.cc @@ -246,6 +246,12 @@ InstalledVirtualsRepository::can_be_favourite_repository() const return false; } +const bool +InstalledVirtualsRepository::is_unimportant() const +{ + return false; +} + namespace { struct SupportsActionQuery diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.hh b/paludis/repositories/virtuals/installed_virtuals_repository.hh index 3c0ab9d39..91776394c 100644 --- a/paludis/repositories/virtuals/installed_virtuals_repository.hh +++ b/paludis/repositories/virtuals/installed_virtuals_repository.hh @@ -82,6 +82,8 @@ namespace paludis virtual bool can_be_favourite_repository() const; + virtual const bool is_unimportant() const; + HookResult perform_hook(const Hook &) PALUDIS_ATTRIBUTE((warn_unused_result)); diff --git a/paludis/repositories/virtuals/virtuals_repository.cc b/paludis/repositories/virtuals/virtuals_repository.cc index 5970e35b4..fcfb89eca 100644 --- a/paludis/repositories/virtuals/virtuals_repository.cc +++ b/paludis/repositories/virtuals/virtuals_repository.cc @@ -346,6 +346,12 @@ VirtualsRepository::can_be_favourite_repository() const return false; } +const bool +VirtualsRepository::is_unimportant() const +{ + return false; +} + namespace { struct SupportsActionQuery diff --git a/paludis/repositories/virtuals/virtuals_repository.hh b/paludis/repositories/virtuals/virtuals_repository.hh index 640cef934..2071554d2 100644 --- a/paludis/repositories/virtuals/virtuals_repository.hh +++ b/paludis/repositories/virtuals/virtuals_repository.hh @@ -82,6 +82,8 @@ namespace paludis virtual bool can_be_favourite_repository() const; + virtual const bool is_unimportant() const; + /* Repository */ virtual std::tr1::shared_ptr<const PackageIDSequence> package_ids( diff --git a/paludis/repository.hh b/paludis/repository.hh index 3c410ff7e..86638172b 100644 --- a/paludis/repository.hh +++ b/paludis/repository.hh @@ -350,6 +350,15 @@ namespace paludis virtual std::tr1::shared_ptr<const CategoryNamePartSet> unimportant_category_names() const; /** + * Are we unimportant? + * + * In disambiguation, anything gets preferred over packages from unimportant repositories. + * + * \since 0.46 + */ + virtual const bool is_unimportant() const = 0; + + /** * Fetch categories that contain a named package. */ virtual std::tr1::shared_ptr<const CategoryNamePartSet> category_names_containing_package( |