aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-05-15 13:13:57 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-05-15 13:13:57 +0100
commitf28437f74b29a7a382be8c78983950f5b821e4aa (patch)
tree3821c0433b28627ace9dd0d4d56cb9cf249d1e9c
parent0bcf854fd2a2e7a5f1d1840f3b982739b76cfabd (diff)
downloadpaludis-f28437f74b29a7a382be8c78983950f5b821e4aa.tar.gz
paludis-f28437f74b29a7a382be8c78983950f5b821e4aa.tar.xz
transient_key -> behaviours_key
-rw-r--r--paludis/dep_list.cc3
-rw-r--r--paludis/package_id.hh19
-rw-r--r--paludis/report_task.cc3
-rw-r--r--paludis/repositories/accounts/accounts_id.cc4
-rw-r--r--paludis/repositories/accounts/accounts_id.hh4
-rw-r--r--paludis/repositories/accounts/installed_accounts_id.cc27
-rw-r--r--paludis/repositories/accounts/installed_accounts_id.hh4
-rw-r--r--paludis/repositories/cran/cran_package_id.cc6
-rw-r--r--paludis/repositories/cran/cran_package_id.hh4
-rw-r--r--paludis/repositories/e/e_installed_repository_id.cc6
-rw-r--r--paludis/repositories/e/e_installed_repository_id.hh4
-rw-r--r--paludis/repositories/e/ebuild_id.cc6
-rw-r--r--paludis/repositories/e/ebuild_id.hh4
-rw-r--r--paludis/repositories/fake/fake_package_id.cc38
-rw-r--r--paludis/repositories/fake/fake_package_id.hh5
-rw-r--r--paludis/repositories/gems/gem_specification.cc6
-rw-r--r--paludis/repositories/gems/gem_specification.hh4
-rw-r--r--paludis/repositories/repository/repository_id.cc26
-rw-r--r--paludis/repositories/repository/repository_id.hh2
-rw-r--r--paludis/repositories/unavailable/unavailable_package_id.cc6
-rw-r--r--paludis/repositories/unavailable/unavailable_package_id.hh2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_id.cc6
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_id.hh2
-rw-r--r--paludis/repositories/unpackaged/installed_id.cc26
-rw-r--r--paludis/repositories/unpackaged/installed_id.hh4
-rw-r--r--paludis/repositories/unpackaged/unpackaged_id.cc6
-rw-r--r--paludis/repositories/unpackaged/unpackaged_id.hh4
-rw-r--r--paludis/repositories/unwritten/unwritten_id.cc6
-rw-r--r--paludis/repositories/unwritten/unwritten_id.hh4
-rw-r--r--paludis/repositories/virtuals/package_id.cc6
-rw-r--r--paludis/repositories/virtuals/package_id.hh4
-rw-r--r--paludis/resolver/decider.cc9
-rw-r--r--paludis/resolver/resolver_TEST_blockers.cc4
-rw-r--r--ruby/package_id.cc6
34 files changed, 165 insertions, 105 deletions
diff --git a/paludis/dep_list.cc b/paludis/dep_list.cc
index 9bd4150..2fc9972 100644
--- a/paludis/dep_list.cc
+++ b/paludis/dep_list.cc
@@ -496,7 +496,8 @@ DepList::AddVisitor::visit(const DependencySpecTree::NodeType<PackageDepSpec>::T
}
if (! best_visible_candidate && ! already_installed->empty() &&
- (*already_installed->last())->transient_key() && (*already_installed->last())->transient_key()->value() &&
+ (*already_installed->last())->behaviours_key() &&
+ (*already_installed->last())->behaviours_key()->value()->end() != (*already_installed->last())->behaviours_key()->value()->find("transient") &&
(dl_target_package != d->_imp->opts->target_type() || ! d->is_top_level_target(**already_installed->last())))
{
Log::get_instance()->message("dep_list.no_visible.transient", ll_debug, lc_context) << "No visible packages matching '"
diff --git a/paludis/package_id.hh b/paludis/package_id.hh
index 71907fd..ee25f11 100644
--- a/paludis/package_id.hh
+++ b/paludis/package_id.hh
@@ -307,18 +307,25 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const = 0;
/**
- * The transient_key, if non-zero, indicates whether this
- * PackageID's originating repository is volatile.
- */
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const = 0;
-
- /**
* The choices_key, if non-zero, contains zero or more
* MetadataValueKey<std::tr1::shared_ptr<const Choice> > child
* keys holding choice information for this ID.
*/
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const = 0;
+ /**
+ * The behaviours_key may contain strings indicating that the PackageID
+ * behaves in a particular way.
+ *
+ * Strings with recognised meanings currently are:
+ *
+ * - "transient", saying that an installed ID's origin is expected not to exist
+ * - "used", saying that an installed ID should not be treated as unused
+ *
+ * \since 0.48
+ */
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const = 0;
+
///\}
///\name Actions
diff --git a/paludis/report_task.cc b/paludis/report_task.cc
index 9c310be..283db30 100644
--- a/paludis/report_task.cc
+++ b/paludis/report_task.cc
@@ -201,7 +201,8 @@ ReportTask::execute()
if ((*v)->from_repositories_key())
{
- is_missing = ! ((*v)->transient_key() && (*v)->transient_key()->value());
+ is_missing = ! ((*v)->behaviours_key() && (*v)->behaviours_key()->value()->end() !=
+ (*v)->behaviours_key()->value()->find("transient"));
for (Set<std::string>::ConstIterator o((*v)->from_repositories_key()->value()->begin()),
o_end((*v)->from_repositories_key()->value()->end()) ;
diff --git a/paludis/repositories/accounts/accounts_id.cc b/paludis/repositories/accounts/accounts_id.cc
index 0745840..36d8122 100644
--- a/paludis/repositories/accounts/accounts_id.cc
+++ b/paludis/repositories/accounts/accounts_id.cc
@@ -403,8 +403,8 @@ AccountsID::fs_location_key() const
return _imp->fs_location_key;
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-AccountsID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+AccountsID::behaviours_key() const
{
return make_null_shared_ptr();
}
diff --git a/paludis/repositories/accounts/accounts_id.hh b/paludis/repositories/accounts/accounts_id.hh
index 998f9d5..f023fcf 100644
--- a/paludis/repositories/accounts/accounts_id.hh
+++ b/paludis/repositories/accounts/accounts_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 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
@@ -80,7 +80,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
virtual const std::tr1::shared_ptr<const MetadataSpecTreeKey<DependencySpecTree> > dependencies_key() const;
diff --git a/paludis/repositories/accounts/installed_accounts_id.cc b/paludis/repositories/accounts/installed_accounts_id.cc
index 56d22c8..a4213f8 100644
--- a/paludis/repositories/accounts/installed_accounts_id.cc
+++ b/paludis/repositories/accounts/installed_accounts_id.cc
@@ -57,7 +57,8 @@ namespace paludis
const VersionSpec version;
const std::tr1::shared_ptr<const Repository> repository;
- const std::tr1::shared_ptr<const LiteralMetadataValueKey<bool> > transient_key;
+ static const std::tr1::shared_ptr<Set<std::string> > behaviours_set;
+ const std::tr1::shared_ptr<const LiteralMetadataStringSetKey> behaviours_key;
mutable Mutex mutex;
mutable std::tr1::shared_ptr<const AccountsDepKey> dependencies_key;
@@ -71,19 +72,33 @@ namespace paludis
name(q),
version("0", VersionSpecOptions()),
repository(r),
- transient_key(new LiteralMetadataValueKey<bool>("transient", "Transient", mkt_internal, true)),
+ behaviours_key(new LiteralMetadataStringSetKey("behaviours", "Behaviours", mkt_internal,
+ behaviours_set)),
is_user(u)
{
}
};
}
+namespace
+{
+ std::tr1::shared_ptr<Set<std::string> > make_behaviours()
+ {
+ std::tr1::shared_ptr<Set<std::string> > result(new Set<std::string>);
+ result->insert("transient");
+ result->insert("used");
+ return result;
+ }
+}
+
+const std::tr1::shared_ptr<Set<std::string> > Implementation<InstalledAccountsID>::behaviours_set = make_behaviours();
+
InstalledAccountsID::InstalledAccountsID(const Environment * const e,
const QualifiedPackageName & q, const std::tr1::shared_ptr<const Repository> & r, const bool u) :
PrivateImplementationPattern<InstalledAccountsID>(new Implementation<InstalledAccountsID>(e, q, r, u)),
_imp(PrivateImplementationPattern<InstalledAccountsID>::_imp)
{
- add_metadata_key(_imp->transient_key);
+ add_metadata_key(_imp->behaviours_key);
}
InstalledAccountsID::~InstalledAccountsID()
@@ -320,10 +335,10 @@ InstalledAccountsID::fs_location_key() const
return make_null_shared_ptr();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-InstalledAccountsID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+InstalledAccountsID::behaviours_key() const
{
- return _imp->transient_key;
+ return _imp->behaviours_key;
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > >
diff --git a/paludis/repositories/accounts/installed_accounts_id.hh b/paludis/repositories/accounts/installed_accounts_id.hh
index 4ef80ae..1ac2b84 100644
--- a/paludis/repositories/accounts/installed_accounts_id.hh
+++ b/paludis/repositories/accounts/installed_accounts_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 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
@@ -78,7 +78,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
virtual const std::tr1::shared_ptr<const MetadataSpecTreeKey<DependencySpecTree> > dependencies_key() const;
diff --git a/paludis/repositories/cran/cran_package_id.cc b/paludis/repositories/cran/cran_package_id.cc
index 2a7709f..1d2b394 100644
--- a/paludis/repositories/cran/cran_package_id.cc
+++ b/paludis/repositories/cran/cran_package_id.cc
@@ -546,10 +546,10 @@ CRANPackageID::fs_location_key() const
return _imp->fs_location_key;
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-CRANPackageID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+CRANPackageID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > >
diff --git a/paludis/repositories/cran/cran_package_id.hh b/paludis/repositories/cran/cran_package_id.hh
index fa1b688..eeef318 100644
--- a/paludis/repositories/cran/cran_package_id.hh
+++ b/paludis/repositories/cran/cran_package_id.hh
@@ -2,7 +2,7 @@
/*
* Copyright (c) 2006 Danny van Dyk
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -76,7 +76,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<PackageIDSequence> > contains_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > > contained_in_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
diff --git a/paludis/repositories/e/e_installed_repository_id.cc b/paludis/repositories/e/e_installed_repository_id.cc
index c9e9978..db854f0 100644
--- a/paludis/repositories/e/e_installed_repository_id.cc
+++ b/paludis/repositories/e/e_installed_repository_id.cc
@@ -720,10 +720,10 @@ EInstalledRepositoryID::license_key() const
return _imp->keys->license;
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-EInstalledRepositoryID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+EInstalledRepositoryID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
diff --git a/paludis/repositories/e/e_installed_repository_id.hh b/paludis/repositories/e/e_installed_repository_id.hh
index fa1bd39..5063798 100644
--- a/paludis/repositories/e/e_installed_repository_id.hh
+++ b/paludis/repositories/e/e_installed_repository_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -91,7 +91,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > defined_phases_key() const;
virtual const std::tr1::shared_ptr<const MetadataSpecTreeKey<LicenseSpecTree> > license_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index 390fcd7..df0d217 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -698,10 +698,10 @@ EbuildID::raw_use_expand_hidden_key() const
return _imp->raw_use_expand_hidden;
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-EbuildID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+EbuildID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataSpecTreeKey<LicenseSpecTree> >
diff --git a/paludis/repositories/e/ebuild_id.hh b/paludis/repositories/e/ebuild_id.hh
index f72b8c5..8ddf0cc 100644
--- a/paludis/repositories/e/ebuild_id.hh
+++ b/paludis/repositories/e/ebuild_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -97,7 +97,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > raw_use_expand_hidden_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > defined_phases_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
const std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> > remote_ids_key() const;
const std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> > bugs_to_key() const;
diff --git a/paludis/repositories/fake/fake_package_id.cc b/paludis/repositories/fake/fake_package_id.cc
index 707ccb4..aa84ff4 100644
--- a/paludis/repositories/fake/fake_package_id.cc
+++ b/paludis/repositories/fake/fake_package_id.cc
@@ -719,8 +719,10 @@ namespace paludis
std::tr1::shared_ptr<FakeMetadataSpecTreeKey<FetchableURISpecTree> > src_uri;
std::tr1::shared_ptr<FakeMetadataSpecTreeKey<SimpleURISpecTree> > homepage;
std::tr1::shared_ptr<FakeMetadataChoicesKey> choices;
- std::tr1::shared_ptr<FakeMetadataValueKey<bool> > transient;
std::tr1::shared_ptr<FakeMetadataValueKey<long> > hitchhiker;
+ std::tr1::shared_ptr<LiteralMetadataStringSetKey> behaviours;
+
+ std::tr1::shared_ptr<Set<std::string> > behaviours_set;
std::tr1::shared_ptr<Mask> unsupported_mask;
mutable bool has_masks;
@@ -737,6 +739,7 @@ namespace paludis
suggested_dependencies_labels(new DependenciesLabelSequence),
slot(new LiteralMetadataValueKey<SlotName>("SLOT", "Slot", mkt_internal, SlotName("0"))),
keywords(new FakeMetadataKeywordSetKey("KEYWORDS", "Keywords", "test", mkt_normal, id, env)),
+ behaviours_set(new Set<std::string>),
has_masks(false)
{
build_dependencies_labels->push_back(make_shared_ptr(new DependenciesBuildLabel("DEPEND",
@@ -1041,8 +1044,8 @@ FakePackageID::need_keys_added() const
_imp->choices.reset(new FakeMetadataChoicesKey(_imp->env, shared_from_this()));
- _imp->transient.reset(new FakeMetadataValueKey<bool>("TRANSIENT", "Transient",
- mkt_internal, false));
+ _imp->behaviours.reset(new LiteralMetadataStringSetKey("BEHAVIOURS", "Behaviours",
+ mkt_internal, _imp->behaviours_set));
_imp->hitchhiker.reset(new FakeMetadataValueKey<long>("HITCHHIKER", "Hitchhiker",
mkt_internal, 42));
@@ -1057,7 +1060,7 @@ FakePackageID::need_keys_added() const
add_metadata_key(_imp->provide);
add_metadata_key(_imp->license);
add_metadata_key(_imp->choices);
- add_metadata_key(_imp->transient);
+ add_metadata_key(_imp->behaviours);
add_metadata_key(_imp->hitchhiker);
}
}
@@ -1305,20 +1308,6 @@ FakePackageID::size_of_all_distfiles_key() const
return std::tr1::shared_ptr<const MetadataValueKey<long> >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-FakePackageID::transient_key() const
-{
- need_keys_added();
- return _imp->transient;
-}
-
-const std::tr1::shared_ptr<FakeMetadataValueKey<bool> >
-FakePackageID::transient_key()
-{
- need_keys_added();
- return _imp->transient;
-}
-
const std::tr1::shared_ptr<FakeMetadataValueKey<long> >
FakePackageID::hitchhiker_key()
{
@@ -1374,6 +1363,19 @@ FakePackageID::slot_key() const
return _imp->slot;
}
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+FakePackageID::behaviours_key() const
+{
+ need_keys_added();
+ return _imp->behaviours;
+}
+
+const std::tr1::shared_ptr<Set<std::string> >
+FakePackageID::behaviours_set()
+{
+ return _imp->behaviours_set;
+}
+
template class FakeMetadataSpecTreeKey<LicenseSpecTree>;
template class FakeMetadataSpecTreeKey<ProvideSpecTree>;
template class FakeMetadataSpecTreeKey<PlainTextSpecTree>;
diff --git a/paludis/repositories/fake/fake_package_id.hh b/paludis/repositories/fake/fake_package_id.hh
index 20d1ac1..dbb31bf 100644
--- a/paludis/repositories/fake/fake_package_id.hh
+++ b/paludis/repositories/fake/fake_package_id.hh
@@ -289,7 +289,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
@@ -307,9 +307,10 @@ namespace paludis
const std::tr1::shared_ptr<FakeMetadataSpecTreeKey<FetchableURISpecTree> > fetches_key();
const std::tr1::shared_ptr<FakeMetadataSpecTreeKey<SimpleURISpecTree> > homepage_key();
const std::tr1::shared_ptr<FakeMetadataChoicesKey> choices_key();
- const std::tr1::shared_ptr<FakeMetadataValueKey<bool> > transient_key();
const std::tr1::shared_ptr<FakeMetadataValueKey<long> > hitchhiker_key();
+ const std::tr1::shared_ptr<Set<std::string> > behaviours_set();
+
void set_slot(const SlotName &);
///\}
diff --git a/paludis/repositories/gems/gem_specification.cc b/paludis/repositories/gems/gem_specification.cc
index b8c602d..37d6c4b 100644
--- a/paludis/repositories/gems/gem_specification.cc
+++ b/paludis/repositories/gems/gem_specification.cc
@@ -444,10 +444,10 @@ GemSpecification::contained_in_key() const
return std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-GemSpecification::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+GemSpecification::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<SlotName> >
diff --git a/paludis/repositories/gems/gem_specification.hh b/paludis/repositories/gems/gem_specification.hh
index c7025f8..a0273e7 100644
--- a/paludis/repositories/gems/gem_specification.hh
+++ b/paludis/repositories/gems/gem_specification.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -112,7 +112,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/repository/repository_id.cc b/paludis/repositories/repository/repository_id.cc
index 6172967..a8515bf 100644
--- a/paludis/repositories/repository/repository_id.cc
+++ b/paludis/repositories/repository/repository_id.cc
@@ -47,24 +47,38 @@ namespace paludis
const VersionSpec version;
const RepositoryRepository * const repo;
- const std::tr1::shared_ptr<LiteralMetadataValueKey<bool> > transient_key;
+ const std::tr1::shared_ptr<LiteralMetadataStringSetKey> behaviours_key;
+ static const std::tr1::shared_ptr<Set<std::string> > behaviours_set;
Implementation(const RepositoryIDParams & e) :
env(e.environment()),
name(e.name()),
version("0", VersionSpecOptions()),
repo(e.repository()),
- transient_key(new LiteralMetadataValueKey<bool>("transient", "transient", mkt_internal, true))
+ behaviours_key(new LiteralMetadataStringSetKey("behaviours", "behaviours", mkt_internal, behaviours_set))
{
}
};
}
+namespace
+{
+ std::tr1::shared_ptr<Set<std::string> > make_behaviours()
+ {
+ std::tr1::shared_ptr<Set<std::string> > result(new Set<std::string>);
+ result->insert("transient");
+ result->insert("used");
+ return result;
+ }
+}
+
+const std::tr1::shared_ptr<Set<std::string> > Implementation<RepositoryID>::behaviours_set = make_behaviours();
+
RepositoryID::RepositoryID(const RepositoryIDParams & entry) :
PrivateImplementationPattern<RepositoryID>(new Implementation<RepositoryID>(entry)),
_imp(PrivateImplementationPattern<RepositoryID>::_imp)
{
- add_metadata_key(_imp->transient_key);
+ add_metadata_key(_imp->behaviours_key);
}
RepositoryID::~RepositoryID()
@@ -180,10 +194,10 @@ RepositoryID::fs_location_key() const
return std::tr1::shared_ptr<const MetadataValueKey<FSEntry> >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-RepositoryID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+RepositoryID::behaviours_key() const
{
- return _imp->transient_key;
+ return _imp->behaviours_key;
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >
diff --git a/paludis/repositories/repository/repository_id.hh b/paludis/repositories/repository/repository_id.hh
index 398c60e..a44a984 100644
--- a/paludis/repositories/repository/repository_id.hh
+++ b/paludis/repositories/repository/repository_id.hh
@@ -90,7 +90,7 @@ namespace paludis
contents_key() const;
const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/unavailable/unavailable_package_id.cc b/paludis/repositories/unavailable/unavailable_package_id.cc
index 0d209b8..7c8ff09 100644
--- a/paludis/repositories/unavailable/unavailable_package_id.cc
+++ b/paludis/repositories/unavailable/unavailable_package_id.cc
@@ -221,10 +221,10 @@ UnavailablePackageID::fs_location_key() const
return std::tr1::shared_ptr<const MetadataValueKey<FSEntry> >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-UnavailablePackageID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+UnavailablePackageID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >
diff --git a/paludis/repositories/unavailable/unavailable_package_id.hh b/paludis/repositories/unavailable/unavailable_package_id.hh
index fa55eb3..6b155e6 100644
--- a/paludis/repositories/unavailable/unavailable_package_id.hh
+++ b/paludis/repositories/unavailable/unavailable_package_id.hh
@@ -104,7 +104,7 @@ namespace paludis
contents_key() const;
const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/unavailable/unavailable_repository_id.cc b/paludis/repositories/unavailable/unavailable_repository_id.cc
index 44f27cf..854d0be 100644
--- a/paludis/repositories/unavailable/unavailable_repository_id.cc
+++ b/paludis/repositories/unavailable/unavailable_repository_id.cc
@@ -284,10 +284,10 @@ UnavailableRepositoryID::fs_location_key() const
return std::tr1::shared_ptr<const MetadataValueKey<FSEntry> >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-UnavailableRepositoryID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+UnavailableRepositoryID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >
diff --git a/paludis/repositories/unavailable/unavailable_repository_id.hh b/paludis/repositories/unavailable/unavailable_repository_id.hh
index 89d1bcf..66a9f4c 100644
--- a/paludis/repositories/unavailable/unavailable_repository_id.hh
+++ b/paludis/repositories/unavailable/unavailable_repository_id.hh
@@ -104,7 +104,7 @@ namespace paludis
contents_key() const;
const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/unpackaged/installed_id.cc b/paludis/repositories/unpackaged/installed_id.cc
index d152979..2b1f3fb 100644
--- a/paludis/repositories/unpackaged/installed_id.cc
+++ b/paludis/repositories/unpackaged/installed_id.cc
@@ -404,6 +404,9 @@ namespace paludis
std::tr1::shared_ptr<InstalledUnpackagedStringKey> description_key;
std::tr1::shared_ptr<InstalledUnpackagedDependencyKey> build_dependencies_key;
std::tr1::shared_ptr<InstalledUnpackagedDependencyKey> run_dependencies_key;
+ std::tr1::shared_ptr<LiteralMetadataStringSetKey> behaviours_key;
+
+ static const std::tr1::shared_ptr<Set<std::string> > behaviours_set;
Implementation(
const Environment * const e,
@@ -424,7 +427,8 @@ namespace paludis
build_dependencies_labels(new DependenciesLabelSequence),
run_dependencies_labels(new DependenciesLabelSequence),
slot_key(new LiteralMetadataValueKey<SlotName> ("slot", "Slot", mkt_internal, s)),
- fs_location_key(new InstalledUnpackagedFSEntryKey(l))
+ fs_location_key(new InstalledUnpackagedFSEntryKey(l)),
+ behaviours_key(new LiteralMetadataStringSetKey("behaviours", "behaviours", mkt_internal, behaviours_set))
{
build_dependencies_labels->push_back(make_shared_ptr(new DependenciesBuildLabel("build_dependencies",
return_literal_function(true))));
@@ -460,6 +464,18 @@ namespace paludis
};
}
+namespace
+{
+ std::tr1::shared_ptr<Set<std::string> > make_behaviours()
+ {
+ std::tr1::shared_ptr<Set<std::string> > result(new Set<std::string>);
+ result->insert("transient");
+ return result;
+ }
+}
+
+const std::tr1::shared_ptr<Set<std::string> > Implementation<InstalledUnpackagedID>::behaviours_set = make_behaviours();
+
InstalledUnpackagedID::InstalledUnpackagedID(const Environment * const e, const QualifiedPackageName & q,
const VersionSpec & v, const SlotName & s, const RepositoryName & n, const FSEntry & l,
const std::string &, const FSEntry & ro, const NDBAM * const d) :
@@ -480,6 +496,7 @@ InstalledUnpackagedID::InstalledUnpackagedID(const Environment * const e, const
add_metadata_key(_imp->build_dependencies_key);
if (_imp->run_dependencies_key)
add_metadata_key(_imp->run_dependencies_key);
+ add_metadata_key(_imp->behaviours_key);
}
InstalledUnpackagedID::~InstalledUnpackagedID()
@@ -691,11 +708,10 @@ InstalledUnpackagedTransientKey::pretty_print() const
return stringify(value());
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-InstalledUnpackagedID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+InstalledUnpackagedID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >(
- new InstalledUnpackagedTransientKey("transient", "Transient", mkt_internal, true));
+ return _imp->behaviours_key;
}
namespace
diff --git a/paludis/repositories/unpackaged/installed_id.hh b/paludis/repositories/unpackaged/installed_id.hh
index 638dc01..32f6c02 100644
--- a/paludis/repositories/unpackaged/installed_id.hh
+++ b/paludis/repositories/unpackaged/installed_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -76,7 +76,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Contents> > > contents_key() const;
virtual const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/unpackaged/unpackaged_id.cc b/paludis/repositories/unpackaged/unpackaged_id.cc
index 6f6c426..d181132 100644
--- a/paludis/repositories/unpackaged/unpackaged_id.cc
+++ b/paludis/repositories/unpackaged/unpackaged_id.cc
@@ -292,10 +292,10 @@ UnpackagedID::slot_key() const
return _imp->slot_key;
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-UnpackagedID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+UnpackagedID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
bool
diff --git a/paludis/repositories/unpackaged/unpackaged_id.hh b/paludis/repositories/unpackaged/unpackaged_id.hh
index 00daa1b..cee02df 100644
--- a/paludis/repositories/unpackaged/unpackaged_id.hh
+++ b/paludis/repositories/unpackaged/unpackaged_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -73,7 +73,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Contents> > > contents_key() const;
virtual const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/unwritten/unwritten_id.cc b/paludis/repositories/unwritten/unwritten_id.cc
index 01710c4..d21bb73 100644
--- a/paludis/repositories/unwritten/unwritten_id.cc
+++ b/paludis/repositories/unwritten/unwritten_id.cc
@@ -211,10 +211,10 @@ UnwrittenID::fs_location_key() const
return std::tr1::shared_ptr<const MetadataValueKey<FSEntry> >();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-UnwrittenID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+UnwrittenID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >
diff --git a/paludis/repositories/unwritten/unwritten_id.hh b/paludis/repositories/unwritten/unwritten_id.hh
index e8d0c20..a5c29f7 100644
--- a/paludis/repositories/unwritten/unwritten_id.hh
+++ b/paludis/repositories/unwritten/unwritten_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 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
@@ -109,7 +109,7 @@ namespace paludis
contents_key() const;
const std::tr1::shared_ptr<const MetadataTimeKey> installed_time_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/repositories/virtuals/package_id.cc b/paludis/repositories/virtuals/package_id.cc
index 3a4c591..25781e8 100644
--- a/paludis/repositories/virtuals/package_id.cc
+++ b/paludis/repositories/virtuals/package_id.cc
@@ -543,10 +543,10 @@ VirtualsPackageID::slot_key() const
return _imp->virtual_for->value()->slot_key();
}
-const std::tr1::shared_ptr<const MetadataValueKey<bool> >
-VirtualsPackageID::transient_key() const
+const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
+VirtualsPackageID::behaviours_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<bool> >();
+ return make_null_shared_ptr();
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > >
diff --git a/paludis/repositories/virtuals/package_id.hh b/paludis/repositories/virtuals/package_id.hh
index 51592f3..de3c99b 100644
--- a/paludis/repositories/virtuals/package_id.hh
+++ b/paludis/repositories/virtuals/package_id.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -105,7 +105,7 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<PackageIDSequence> > contains_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > > contained_in_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
- virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+ virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > behaviours_key() const;
virtual const std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories_key() const;
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Choices> > > choices_key() const;
diff --git a/paludis/resolver/decider.cc b/paludis/resolver/decider.cc
index 68351b7..718ac36 100644
--- a/paludis/resolver/decider.cc
+++ b/paludis/resolver/decider.cc
@@ -1390,7 +1390,8 @@ Decider::_try_to_find_decision_for(
else if (existing_id && ! installable_id)
{
/* there's nothing installable. this may or may not be ok. */
- bool is_transient(existing_id->transient_key() && existing_id->transient_key()->value());
+ bool is_transient(existing_id->behaviours_key() && existing_id->behaviours_key()->value()->end() !=
+ existing_id->behaviours_key()->value()->find("transient"));
switch (resolution->constraints()->strictest_use_existing())
{
@@ -1487,7 +1488,8 @@ Decider::_try_to_find_decision_for(
}
}
- bool is_transient(existing_id->transient_key() && existing_id->transient_key()->value());
+ bool is_transient(existing_id->behaviours_key() && existing_id->behaviours_key()->value()->end() !=
+ existing_id->behaviours_key()->value()->find("transient"));
/* we've got existing and installable. do we have any reason not to pick the existing id? */
const std::tr1::shared_ptr<Decision> existing(new ExistingNoChangeDecision(
@@ -1688,7 +1690,8 @@ Decider::_get_unmatching_constraints(
if (existing)
{
- bool is_transient(id->transient_key() && id->transient_key()->value());
+ bool is_transient(id->behaviours_key() && id->behaviours_key()->value()->end() !=
+ id->behaviours_key()->value()->find("transient"));
decision.reset(new ExistingNoChangeDecision(
id,
true,
diff --git a/paludis/resolver/resolver_TEST_blockers.cc b/paludis/resolver/resolver_TEST_blockers.cc
index 22fdd68..dd6cbda 100644
--- a/paludis/resolver/resolver_TEST_blockers.cc
+++ b/paludis/resolver/resolver_TEST_blockers.cc
@@ -116,7 +116,7 @@ namespace test_cases
ResolverBlockersTestCase("unfixable" + std::string(t ? " transient" : "")),
transient(t)
{
- install("unfixable", "a-pkg", "1")->transient_key()->set_value(transient);
+ install("unfixable", "a-pkg", "1")->behaviours_set()->insert(transient ? "transient" : "");
}
void run()
@@ -157,7 +157,7 @@ namespace test_cases
transient(t)
{
allowed_to_remove_names->insert(QualifiedPackageName("remove/a-pkg"));
- install("remove", "a-pkg", "1")->transient_key()->set_value(transient);
+ install("remove", "a-pkg", "1")->behaviours_set()->insert(transient ? "transient" : "");
}
void run()
diff --git a/ruby/package_id.cc b/ruby/package_id.cc
index 6c1b555..712126c 100644
--- a/ruby/package_id.cc
+++ b/ruby/package_id.cc
@@ -2,7 +2,7 @@
/*
* Copyright (c) 2007, 2008 Richard Brown
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 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
@@ -541,8 +541,8 @@ namespace
&KeyValue<MetadataValueKey<std::tr1::shared_ptr<const Choices> >, &PackageID::choices_key>::fetch)), 0);
rb_define_method(c_package_id, "slot_key", RUBY_FUNC_CAST((
&KeyValue<MetadataValueKey<SlotName>, &PackageID::slot_key>::fetch)), 0);
- rb_define_method(c_package_id, "transient_key", RUBY_FUNC_CAST((
- &KeyValue<MetadataValueKey<bool>, &PackageID::transient_key>::fetch)), 0);
+ rb_define_method(c_package_id, "behaviours_key", RUBY_FUNC_CAST((
+ &KeyValue<MetadataCollectionKey<Set<std::string> >, &PackageID::behaviours_key>::fetch)), 0);
/*
* Document-module: Paludis::PackageIDCanonicalForm