aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-08-05 04:43:35 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-08-05 04:43:35 +0100
commita13d7d63e7c9b24f65fdcf343cbe64e8a7076087 (patch)
treefcf637d348c09e1af9c7726dcd6267c134fe1cb4
parent129acafc8937a5143633c8e21c3e260dfb38df7e (diff)
downloadpaludis-a13d7d63e7c9b24f65fdcf343cbe64e8a7076087.tar.gz
paludis-a13d7d63e7c9b24f65fdcf343cbe64e8a7076087.tar.xz
Tinker with exheres metadata lots.
DESCRIPTION is now SUMMARY. DESCRIPTION is now for long descriptions. Added UPSTREAM_CHANGELOG, UPSTREAM_RELEASE_NOTES, UPSTREAM_DOCUMENTATION, BUGS_TO, REMOTE_IDS.
-rw-r--r--paludis/repositories/e/e_installed_repository_id.cc96
-rw-r--r--paludis/repositories/e/e_repository_TEST.cc14
-rwxr-xr-xpaludis/repositories/e/e_repository_TEST_setup.sh166
-rw-r--r--paludis/repositories/e/eapi.cc8
-rw-r--r--paludis/repositories/e/eapi.hh15
-rw-r--r--paludis/repositories/e/eapis/0.conf12
-rw-r--r--paludis/repositories/e/eapis/exheres-0.conf34
-rw-r--r--paludis/repositories/e/eapis/paludis-1.conf9
-rw-r--r--paludis/repositories/e/ebuild.cc45
-rwxr-xr-xpaludis/repositories/e/ebuild/ebuild.bash4
-rw-r--r--paludis/repositories/e/ebuild_flat_metadata_cache.cc106
-rw-r--r--paludis/repositories/e/ebuild_id.cc92
-rw-r--r--paludis/repositories/e/ebuild_id.hh12
13 files changed, 534 insertions, 79 deletions
diff --git a/paludis/repositories/e/e_installed_repository_id.cc b/paludis/repositories/e/e_installed_repository_id.cc
index 08f207d..dd8d579 100644
--- a/paludis/repositories/e/e_installed_repository_id.cc
+++ b/paludis/repositories/e/e_installed_repository_id.cc
@@ -84,13 +84,19 @@ namespace paludis
std::tr1::shared_ptr<const MetadataSpecTreeKey<DependencySpecTree> > build_dependencies;
std::tr1::shared_ptr<const MetadataSpecTreeKey<DependencySpecTree> > run_dependencies;
std::tr1::shared_ptr<const MetadataSpecTreeKey<DependencySpecTree> > post_dependencies;
- std::tr1::shared_ptr<const MetadataSpecTreeKey<RestrictSpecTree> > restrictions;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> > restrictions;
std::tr1::shared_ptr<const MetadataSpecTreeKey<FetchableURISpecTree> > src_uri;
std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > homepage;
std::tr1::shared_ptr<const MetadataValueKey<std::string> > short_description;
+ std::tr1::shared_ptr<const MetadataValueKey<std::string> > long_description;
std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Contents> > > contents;
std::tr1::shared_ptr<const MetadataTimeKey> installed_time;
std::tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > from_repositories;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_changelog;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_documentation;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_release_notes;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> > remote_ids;
+ std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> > bugs_to;
std::tr1::shared_ptr<const MetadataValueKey<std::string> > asflags;
std::tr1::shared_ptr<const MetadataValueKey<std::string> > cbuild;
@@ -278,14 +284,91 @@ EInstalledRepositoryID::need_keys_added() const
add_metadata_key(_imp->src_uri);
}
- if (! vars->description().name().empty())
- if ((_imp->dir / vars->description().name()).exists())
+ if (! vars->short_description().name().empty())
+ if ((_imp->dir / vars->short_description().name()).exists())
{
- _imp->short_description.reset(new LiteralMetadataValueKey<std::string> (vars->description().name(),
- vars->description().description(), mkt_significant, file_contents(_imp->dir / vars->description().name())));
+ _imp->short_description.reset(new LiteralMetadataValueKey<std::string> (vars->short_description().name(),
+ vars->short_description().description(), mkt_significant, file_contents(_imp->dir / vars->short_description().name())));
add_metadata_key(_imp->short_description);
}
+ if (! vars->long_description().name().empty())
+ if ((_imp->dir / vars->long_description().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->long_description().name()));
+ if (! value.empty())
+ {
+ _imp->long_description.reset(new LiteralMetadataValueKey<std::string> (vars->long_description().name(),
+ vars->long_description().description(), mkt_significant, value));
+ add_metadata_key(_imp->long_description);
+ }
+ }
+
+ if (! vars->upstream_changelog().name().empty())
+ if ((_imp->dir / vars->upstream_changelog().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->upstream_changelog().name()));
+ if (! value.empty())
+ {
+ _imp->upstream_changelog.reset(new ESimpleURIKey(_imp->environment, shared_from_this(),
+ vars->upstream_changelog().name(),
+ vars->upstream_changelog().description(), value, mkt_normal));
+ add_metadata_key(_imp->upstream_changelog);
+ }
+ }
+
+ if (! vars->upstream_release_notes().name().empty())
+ if ((_imp->dir / vars->upstream_release_notes().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->upstream_release_notes().name()));
+ if (! value.empty())
+ {
+ _imp->upstream_release_notes.reset(new ESimpleURIKey(_imp->environment, shared_from_this(),
+ vars->upstream_release_notes().name(),
+ vars->upstream_release_notes().description(), value, mkt_normal));
+ add_metadata_key(_imp->upstream_release_notes);
+ }
+ }
+
+ if (! vars->upstream_documentation().name().empty())
+ if ((_imp->dir / vars->upstream_documentation().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->upstream_documentation().name()));
+ if (! value.empty())
+ {
+ _imp->upstream_documentation.reset(new ESimpleURIKey(_imp->environment, shared_from_this(),
+ vars->upstream_documentation().name(),
+ vars->upstream_documentation().description(), value, mkt_normal));
+ add_metadata_key(_imp->upstream_documentation);
+ }
+ }
+
+ if (! vars->bugs_to().name().empty())
+ if ((_imp->dir / vars->bugs_to().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->bugs_to().name()));
+ if (! value.empty())
+ {
+ _imp->bugs_to.reset(new EPlainTextSpecKey(_imp->environment, shared_from_this(),
+ vars->bugs_to().name(),
+ vars->bugs_to().description(), value, mkt_normal));
+ add_metadata_key(_imp->bugs_to);
+ }
+ }
+
+ if (! vars->remote_ids().name().empty())
+ if ((_imp->dir / vars->remote_ids().name()).exists())
+ {
+ std::string value(file_contents(_imp->dir / vars->remote_ids().name()));
+ if (! value.empty())
+ {
+ _imp->remote_ids.reset(new EPlainTextSpecKey(_imp->environment, shared_from_this(),
+ vars->remote_ids().name(),
+ vars->remote_ids().description(), value, mkt_internal));
+ add_metadata_key(_imp->remote_ids);
+ }
+ }
+
if (! vars->homepage().name().empty())
if ((_imp->dir / vars->homepage().name()).exists())
{
@@ -582,7 +665,8 @@ EInstalledRepositoryID::short_description_key() const
const std::tr1::shared_ptr<const MetadataValueKey<std::string> >
EInstalledRepositoryID::long_description_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<std::string> >();
+ need_keys_added();
+ return _imp->long_description;
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Contents> > >
diff --git a/paludis/repositories/e/e_repository_TEST.cc b/paludis/repositories/e/e_repository_TEST.cc
index f7aa903..f78d6c8 100644
--- a/paludis/repositories/e/e_repository_TEST.cc
+++ b/paludis/repositories/e/e_repository_TEST.cc
@@ -526,6 +526,16 @@ namespace test_cases
TEST_CHECK(id2->run_dependencies_key());
id2->run_dependencies_key()->value()->accept(pr2);
TEST_CHECK_STRINGIFY_EQUAL(pr2, "foo/bar");
+
+ const std::tr1::shared_ptr<const PackageID> id3(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat-one/pkg-one-3",
+ &env, UserPackageDepSpecOptions()))))]->begin());
+
+ TEST_CHECK(id3->end_metadata() != id3->find_metadata("EAPI"));
+ TEST_CHECK(id3->short_description_key());
+ TEST_CHECK_EQUAL(id3->short_description_key()->value(), "This is the short description");
+ TEST_CHECK(id3->long_description_key());
+ TEST_CHECK_EQUAL(id3->long_description_key()->value(), "This is the long description");
}
}
}
@@ -955,7 +965,7 @@ namespace test_cases
&env, UserPackageDepSpecOptions()))))]->last());
TEST_CHECK(no_files_id);
TEST_CHECK(no_files_id->short_description_key());
- TEST_CHECK_EQUAL(no_files_id->short_description_key()->value(), "The Description");
+ TEST_CHECK_EQUAL(no_files_id->short_description_key()->value(), "The Short Description");
no_files_id->perform_action(action);
}
@@ -1938,7 +1948,7 @@ namespace test_cases
&env, UserPackageDepSpecOptions()))))]->last());
TEST_CHECK(id);
TEST_CHECK(id->short_description_key());
- TEST_CHECK_EQUAL(id->short_description_key()->value(), "The Description");
+ TEST_CHECK_EQUAL(id->short_description_key()->value(), "The Short Description");
id->perform_action(action);
}
diff --git a/paludis/repositories/e/e_repository_TEST_setup.sh b/paludis/repositories/e/e_repository_TEST_setup.sh
index 3bcbe31..c14db30 100755
--- a/paludis/repositories/e/e_repository_TEST_setup.sh
+++ b/paludis/repositories/e/e_repository_TEST_setup.sh
@@ -169,6 +169,22 @@ LICENSE="GPL-2"
KEYWORDS="test"
DEPEND="foo/bar"
END
+cat <<"END" > cat-one/pkg-one/pkg-one-3.ebuild || exit 1
+EAPI="exheres-0"
+SUMMARY="This is the short description"
+DESCRIPTION="This is the long description"
+HOMEPAGE="http://example.com/"
+SRC_URI=""
+SLOT="0"
+MYOPTIONS=""
+LICENSE="GPL-2"
+PLATFORMS="test"
+BUGS_TO="fred@example.com joe@example.com"
+UPSTREAM_CHANGELOG="http://example.com/foo"
+UPSTREAM_RELEASE_NOTES="http://example.com/bar"
+UPSTREAM_DOCUMENTATION="http://example.com/baz"
+REMOTE_IDS="freshmeat:fnord"
+END
cat <<END > eclass/mine.eclass
DEPEND="bar/baz"
END
@@ -415,7 +431,8 @@ cat <<END > profiles/profile/make.defaults
END
mkdir -p packages/cat/no-files
cat <<END > packages/cat/no-files/no-files-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -426,7 +443,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/fetched-files
cat <<END > packages/cat/fetched-files/fetched-files-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="file:///var/empty/already-fetched.txt"
SLOT="0"
@@ -437,7 +455,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/fetchable-files
cat <<END > packages/cat/fetchable-files/fetchable-files-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="file:///$(dirname $(pwd ) )/fetchable/fetchable-1.txt"
SLOT="0"
@@ -448,7 +467,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/arrow-files
cat <<END > packages/cat/arrow-files/arrow-files-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="file:///$(dirname $(pwd ) )/fetchable/fetchable-1.txt -> arrowed.txt"
SLOT="0"
@@ -459,7 +479,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/unfetchable-files
cat <<END > packages/cat/unfetchable-files/unfetchable-files-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="file:///var/empty/unfetchable-file.txt"
SLOT="0"
@@ -470,7 +491,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/no-files-restricted
cat <<END > packages/cat/no-files-restricted/no-files-restricted-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -481,7 +503,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/fetched-files-restricted
cat <<END > packages/cat/fetched-files-restricted/fetched-files-restricted-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="manual: file:///var/empty/already-fetched.txt"
SLOT="0"
@@ -492,7 +515,8 @@ DEPENDENCIES=""
END
mkdir -p packages/cat/fetchable-files-restricted
cat <<END > packages/cat/fetchable-files-restricted/fetchable-files-restricted-1.exheres-0 || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI="manual: file:///$(dirname $(pwd ) )/fetchable/fetchable-2.txt"
SLOT="0"
@@ -1128,7 +1152,8 @@ OPTIONS="weasel spinach"
END
mkdir -p "packages/cat/in-ebuild-die"
cat <<END > packages/cat/in-ebuild-die/in-ebuild-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1142,7 +1167,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/in-subshell-die"
cat <<END > packages/cat/in-subshell-die/in-subshell-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1156,7 +1182,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/success"
cat <<END > packages/cat/success/success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1170,7 +1197,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/expatch-success"
cat <<"END" > packages/cat/expatch-success/expatch-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1188,7 +1216,8 @@ src_prepare() {
END
mkdir -p "packages/cat/expatch-die"
cat <<END > packages/cat/expatch-die/expatch-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1202,7 +1231,8 @@ src_prepare() {
END
mkdir -p "packages/cat/nonfatal-expatch-fail"
cat <<END > packages/cat/nonfatal-expatch-fail/nonfatal-expatch-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1216,7 +1246,8 @@ src_prepare() {
END
mkdir -p "packages/cat/nonfatal-expatch-die"
cat <<END > packages/cat/nonfatal-expatch-die/nonfatal-expatch-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1230,7 +1261,8 @@ src_prepare() {
END
mkdir -p "packages/cat/unpack-die"
cat <<END > packages/cat/unpack-die/unpack-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1245,7 +1277,8 @@ src_unpack() {
END
mkdir -p "packages/cat/nonfatal-unpack-fail"
cat <<END > packages/cat/nonfatal-unpack-fail/nonfatal-unpack-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1260,7 +1293,8 @@ src_unpack() {
END
mkdir -p "packages/cat/nonfatal-unpack-die"
cat <<END > packages/cat/nonfatal-unpack-die/nonfatal-unpack-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1275,7 +1309,8 @@ src_unpack() {
END
mkdir -p "packages/cat/econf-fail"
cat <<END > packages/cat/econf-fail/econf-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1289,7 +1324,8 @@ src_configure() {
END
mkdir -p "packages/cat/nonfatal-econf"
cat <<END > packages/cat/nonfatal-econf/nonfatal-econf-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1303,7 +1339,8 @@ src_configure() {
END
mkdir -p "packages/cat/nonfatal-econf-die"
cat <<END > packages/cat/nonfatal-econf-die/nonfatal-econf-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1317,7 +1354,8 @@ src_configure() {
END
mkdir -p "packages/cat/emake-fail"
cat <<END > packages/cat/emake-fail/emake-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1331,7 +1369,8 @@ src_compile() {
END
mkdir -p "packages/cat/nonfatal-emake"
cat <<END > packages/cat/nonfatal-emake/nonfatal-emake-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1345,7 +1384,8 @@ src_compile() {
END
mkdir -p "packages/cat/nonfatal-emake-die"
cat <<END > packages/cat/nonfatal-emake-die/nonfatal-emake-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1359,7 +1399,8 @@ src_compile() {
END
mkdir -p "packages/cat/keepdir-success"
cat <<END > packages/cat/keepdir-success/keepdir-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1373,7 +1414,8 @@ src_install() {
END
mkdir -p "packages/cat/keepdir-fail"
cat <<"END" > packages/cat/keepdir-fail/keepdir-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1389,7 +1431,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-keepdir"
cat <<"END" > packages/cat/nonfatal-keepdir/nonfatal-keepdir-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1405,7 +1448,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-keepdir-die"
cat <<"END" > packages/cat/nonfatal-keepdir-die/nonfatal-keepdir-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1421,7 +1465,8 @@ src_install() {
END
mkdir -p "packages/cat/einstall-fail"
cat <<END > packages/cat/einstall-fail/einstall-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1435,7 +1480,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-einstall"
cat <<END > packages/cat/nonfatal-einstall/nonfatal-einstall-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1449,7 +1495,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-einstall-die"
cat <<END > packages/cat/nonfatal-einstall-die/nonfatal-einstall-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1463,7 +1510,8 @@ src_install() {
END
mkdir -p "packages/cat/dobin-success"
cat <<END > packages/cat/dobin-success/dobin-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1481,7 +1529,8 @@ src_install() {
END
mkdir -p "packages/cat/dobin-fail"
cat <<END > packages/cat/dobin-fail/dobin-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1495,7 +1544,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-dobin-success"
cat <<END > packages/cat/nonfatal-dobin-success/nonfatal-dobin-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Lnog Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1513,7 +1563,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-dobin-fail"
cat <<END > packages/cat/nonfatal-dobin-fail/nonfatal-dobin-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1527,7 +1578,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-dobin-die"
cat <<END > packages/cat/nonfatal-dobin-die/nonfatal-dobin-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1541,7 +1593,8 @@ src_install() {
END
mkdir -p "packages/cat/fperms-success"
cat <<END > packages/cat/fperms-success/fperms-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1559,7 +1612,8 @@ src_install() {
END
mkdir -p "packages/cat/fperms-fail"
cat <<END > packages/cat/fperms-fail/fperms-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1573,7 +1627,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-fperms-success"
cat <<END > packages/cat/nonfatal-fperms-success/nonfatal-fperms-success-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1591,7 +1646,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-fperms-fail"
cat <<END > packages/cat/nonfatal-fperms-fail/nonfatal-fperms-fail-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1605,7 +1661,8 @@ src_install() {
END
mkdir -p "packages/cat/nonfatal-fperms-die"
cat <<END > packages/cat/nonfatal-fperms-die/nonfatal-fperms-die-1.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1619,7 +1676,8 @@ src_install() {
END
mkdir -p "packages/cat/best-version"
cat <<'END' > packages/cat/best-version/best-version-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1662,7 +1720,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/has-version"
cat <<'END' > packages/cat/has-version/has-version-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1682,7 +1741,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/match"
cat <<'END' > packages/cat/match/match-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
@@ -1699,11 +1759,14 @@ END
mkdir -p "packages/cat/ever"
cat <<'END' > packages/cat/ever/ever-1.3.ebuild || exit 1
if ever at_least 2 ; then
- DESCRIPTION="Really Not The Description"
+ DESCRIPTION="Really Not The Long Description"
+ SUMMARY="Really Not The Short Description"
elif ever at_least 1.2.3 ; then
- DESCRIPTION="The Description"
+ DESCRIPTION="The Long Description"
+ SUMMARY="The Short Description"
else
- DESCRIPTION="Not The Description"
+ DESCRIPTION="Not The Long Description"
+ SUMMARY="Not The Short Description"
fi
HOMEPAGE="http://example.com/"
@@ -1725,7 +1788,8 @@ pkg_setup() {
END
mkdir -p "packages/cat/econf-phase"
cat <<'END' > packages/cat/econf-phase/econf-phase-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
@@ -1746,7 +1810,8 @@ src_compile() {
END
mkdir -p "packages/cat/econf-vars"
cat <<'END' > packages/cat/econf-vars/econf-vars-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+DESCRIPTION="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
@@ -1774,7 +1839,8 @@ END2
END
mkdir -p "packages/cat/expand-vars"
cat <<"END" > packages/cat/expand-vars/expand-vars-0.ebuild || exit 1
-DESCRIPTION="The Description"
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
HOMEPAGE="http://example.com/"
SRC_URI=""
SLOT="0"
diff --git a/paludis/repositories/e/eapi.cc b/paludis/repositories/e/eapi.cc
index cb1079f..0731e0d 100644
--- a/paludis/repositories/e/eapi.cc
+++ b/paludis/repositories/e/eapi.cc
@@ -96,22 +96,28 @@ namespace
std::tr1::shared_ptr<const EAPIEbuildMetadataVariables> make_ebuild_metadata_variables(const KeyValueConfigFile & k)
{
return make_shared_ptr(new EAPIEbuildMetadataVariables(make_named_values<EAPIEbuildMetadataVariables>(
+ value_for<n::bugs_to>(make_metadata_variable(k, "bugs_to")),
value_for<n::build_depend>(make_metadata_variable(k, "build_depend")),
value_for<n::dependencies>(make_metadata_variable(k, "dependencies")),
- value_for<n::description>(make_metadata_variable(k, "description")),
value_for<n::eapi>(make_metadata_variable(k, "eapi")),
value_for<n::homepage>(make_metadata_variable(k, "homepage")),
value_for<n::inherited>(make_metadata_variable(k, "inherited")),
value_for<n::iuse>(make_metadata_variable(k, "iuse")),
value_for<n::keywords>(make_metadata_variable(k, "keywords")),
value_for<n::license>(make_metadata_variable(k, "license")),
+ value_for<n::long_description>(make_metadata_variable(k, "long_description")),
value_for<n::minimum_flat_cache_size>(destringify_key<int>(k, "flat_cache_minimum_size")),
value_for<n::pdepend>(make_metadata_variable(k, "pdepend")),
value_for<n::provide>(make_metadata_variable(k, "provide")),
+ value_for<n::remote_ids>(make_metadata_variable(k, "remote_ids")),
value_for<n::restrictions>(make_metadata_variable(k, "restrict")),
value_for<n::run_depend>(make_metadata_variable(k, "run_depend")),
+ value_for<n::short_description>(make_metadata_variable(k, "short_description")),
value_for<n::slot>(make_metadata_variable(k, "slot")),
value_for<n::src_uri>(make_metadata_variable(k, "src_uri")),
+ value_for<n::upstream_changelog>(make_metadata_variable(k, "upstream_changelog")),
+ value_for<n::upstream_documentation>(make_metadata_variable(k, "upstream_documentation")),
+ value_for<n::upstream_release_notes>(make_metadata_variable(k, "upstream_release_notes")),
value_for<n::use>(make_metadata_variable(k, "use"))
)));
}
diff --git a/paludis/repositories/e/eapi.hh b/paludis/repositories/e/eapi.hh
index ad2ab88..4b808e0 100644
--- a/paludis/repositories/e/eapi.hh
+++ b/paludis/repositories/e/eapi.hh
@@ -40,6 +40,7 @@ namespace paludis
struct binary_from_env_variables;
struct bracket_merged_variables;
struct breaks_portage;
+ struct bugs_to;
struct build_depend;
struct can_be_pbin;
struct dependencies;
@@ -88,6 +89,7 @@ namespace paludis
struct iuse_flag_parse_options;
struct keywords;
struct license;
+ struct long_description;
struct merger_options;
struct metadata_key;
struct minimum_flat_cache_size;
@@ -100,6 +102,7 @@ namespace paludis
struct pipe_commands;
struct provide;
struct rdepend_defaults_to_depend;
+ struct remote_ids;
struct require_use_expand_in_iuse;
struct restrict_fetch;
struct restrict_mirror;
@@ -110,6 +113,7 @@ namespace paludis
struct save_base_variables;
struct save_unmodifiable_variables;
struct save_variables;
+ struct short_description;
struct slot;
struct source_merged_variables;
struct src_uri;
@@ -119,6 +123,9 @@ namespace paludis
struct tools_options;
struct unpack_fix_permissions;
struct unpack_unrecognised_is_fatal;
+ struct upstream_changelog;
+ struct upstream_documentation;
+ struct upstream_release_notes;
struct uri_labels;
struct use;
struct use_expand_separator;
@@ -233,22 +240,28 @@ namespace paludis
struct EAPIEbuildMetadataVariables
{
+ NamedValue<n::bugs_to, EAPIMetadataVariable> bugs_to;
NamedValue<n::build_depend, EAPIMetadataVariable> build_depend;
NamedValue<n::dependencies, EAPIMetadataVariable> dependencies;
- NamedValue<n::description, EAPIMetadataVariable> description;
NamedValue<n::eapi, EAPIMetadataVariable> eapi;
NamedValue<n::homepage, EAPIMetadataVariable> homepage;
NamedValue<n::inherited, EAPIMetadataVariable> inherited;
NamedValue<n::iuse, EAPIMetadataVariable> iuse;
NamedValue<n::keywords, EAPIMetadataVariable> keywords;
NamedValue<n::license, EAPIMetadataVariable> license;
+ NamedValue<n::long_description, EAPIMetadataVariable> long_description;
NamedValue<n::minimum_flat_cache_size, int> minimum_flat_cache_size;
NamedValue<n::pdepend, EAPIMetadataVariable> pdepend;
NamedValue<n::provide, EAPIMetadataVariable> provide;
+ NamedValue<n::remote_ids, EAPIMetadataVariable> remote_ids;
NamedValue<n::restrictions, EAPIMetadataVariable> restrictions;
NamedValue<n::run_depend, EAPIMetadataVariable> run_depend;
+ NamedValue<n::short_description, EAPIMetadataVariable> short_description;
NamedValue<n::slot, EAPIMetadataVariable> slot;
NamedValue<n::src_uri, EAPIMetadataVariable> src_uri;
+ NamedValue<n::upstream_changelog, EAPIMetadataVariable> upstream_changelog;
+ NamedValue<n::upstream_documentation, EAPIMetadataVariable> upstream_documentation;
+ NamedValue<n::upstream_release_notes, EAPIMetadataVariable> upstream_release_notes;
NamedValue<n::use, EAPIMetadataVariable> use;
};
diff --git a/paludis/repositories/e/eapis/0.conf b/paludis/repositories/e/eapis/0.conf
index 33faa29..5c38dd1 100644
--- a/paludis/repositories/e/eapis/0.conf
+++ b/paludis/repositories/e/eapis/0.conf
@@ -126,7 +126,7 @@ ebuild_config = \
: tidyupmisc
description_build_depend = Build dependencies
-description_description = Description
+description_short_description = Description
description_eapi = EAPI
description_homepage = Homepage
description_inherited = Inherited
@@ -143,7 +143,7 @@ description_use =
description_dependencies =
metadata_build_depend = DEPEND
-metadata_description = DESCRIPTION
+metadata_short_description = DESCRIPTION
metadata_eapi = EAPI
metadata_homepage = HOMEPAGE
metadata_inherited = INHERITED
@@ -161,7 +161,8 @@ metadata_dependencies =
flat_cache_minimum_size = 15
flat_cache_build_depend = 0
-flat_cache_description = 7
+flat_cache_short_description = 7
+flat_cache_long_description = -1
flat_cache_eapi = 14
flat_cache_dependencies = -1
flat_cache_homepage = 5
@@ -176,6 +177,11 @@ flat_cache_run_depend = 1
flat_cache_slot = 2
flat_cache_src_uri = 3
flat_cache_use = -1
+flat_cache_bugs_to = -1
+flat_cache_remote_ids = -1
+flat_cache_upstream_changelog = -1
+flat_cache_upstream_release_notes = -1
+flat_cache_upstream_documentation = -1
env_use = USE
env_use_expand = USE_EXPAND
diff --git a/paludis/repositories/e/eapis/exheres-0.conf b/paludis/repositories/e/eapis/exheres-0.conf
index dfa1d43..0b0d9a9 100644
--- a/paludis/repositories/e/eapis/exheres-0.conf
+++ b/paludis/repositories/e/eapis/exheres-0.conf
@@ -25,7 +25,7 @@ ignore_pivot_env_functions =
ignore_pivot_env_variables =
vdb_from_env_variables = \
- CATEGORY CHOST DEPENDENCIES DESCRIPTION EAPI \
+ CATEGORY CHOST DEPENDENCIES SUMMARY EAPI \
HOMEPAGE INHERITED MYOPTIONS PLATFORMS LICENSE PF \
SLOT SRC_URI OPTIONS CONFIG_PROTECT CONFIG_PROTECT_MASK \
VDB_FORMAT PKGMANAGER SUBOPTIONS
@@ -33,14 +33,16 @@ vdb_from_env_variables = \
vdb_from_env_unless_empty_variables = \
ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS \
EXTRA_ECONF EXTRA_EINSTALL EXTRA_EMAKE LDFLAGS LIBCXXFLAGS \
- REPOSITORY RESTRICT
+ REPOSITORY RESTRICT BUGS_TO REMOTE_IDS UPSTREAM_CHANGELOG \
+ UPSTREAM_RELEASE_NOTES UPSTREAM_DOCUMENTATION DESCRIPTION
binary_from_env_variables = \
CHOST DEPENDENCIES DESCRIPTION EAPI HOMEPAGE INHERITED MYOPTIONS PLATFORMS LICENSE \
SLOT SRC_URI OPTIONS GENERATED_USING GENERATED_TIME SUBOPTIONS \
ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS \
EXTRA_ECONF EXTRA_EINSTALL EXTRA_EMAKE LDFLAGS LIBCXXFLAGS \
- GENERATED_FROM_REPOSITORY PLATFORMS BINARY_PLATFORMS
+ GENERATED_FROM_REPOSITORY PLATFORMS BINARY_PLATFORMS \
+ SUMMARY BUGS_TO REMOTE_IDS UPSTREAM_CHANGELOG UPSTREAM_RELEASE_NOTES UPSTREAM_DOCUMENTATION
non_empty_variables = \
P PV PR PN PVR PF CATEGORY build:FILESDIR build:EXLIBSDIRS build:FETCHEDDIR build:REPODIR \
@@ -137,7 +139,8 @@ metadata_src_uri = SRC_URI
metadata_restrict = RESTRICT
metadata_homepage = HOMEPAGE
metadata_license = LICENSE
-metadata_description = DESCRIPTION
+metadata_short_description = SUMMARY
+metadata_long_description = DESCRIPTION
metadata_keywords = PLATFORMS
metadata_inherited = INHERITED
metadata_iuse = MYOPTIONS
@@ -146,9 +149,15 @@ metadata_provide =
metadata_eapi = EAPI
metadata_dependencies = DEPENDENCIES
metadata_use =
+metadata_bugs_to = BUGS_TO
+metadata_remote_ids = REMOTE_IDS
+metadata_upstream_changelog = UPSTREAM_CHANGELOG
+metadata_upstream_release_notes = UPSTREAM_RELEASE_NOTES
+metadata_upstream_documentation = UPSTREAM_DOCUMENTATION
description_build_depend =
-description_description = Description
+description_short_description = Summary
+description_long_description = Description
description_eapi = EAPI
description_homepage = Homepage
description_inherited = Inherited
@@ -163,10 +172,16 @@ description_slot = Slot
description_src_uri = Source URI
description_use = Selected option flags
description_dependencies = Dependencies
+description_bugs_to = Bugs to
+description_remote_ids = Remote IDs
+description_upstream_changelog = Upstream changelog
+description_upstream_release_notes = Upstream release notes
+description_upstream_documentation = Upstream documentation
-flat_cache_minimum_size = 15
+flat_cache_minimum_size = 18
flat_cache_build_depend = -1
-flat_cache_description = 7
+flat_cache_short_description = 7
+flat_cache_long_description = 11
flat_cache_eapi = 14
flat_cache_dependencies = 1
flat_cache_homepage = 5
@@ -181,6 +196,11 @@ flat_cache_run_depend = -1
flat_cache_slot = 2
flat_cache_src_uri = 3
flat_cache_use = -1
+flat_cache_bugs_to = 12
+flat_cache_remote_ids = 13
+flat_cache_upstream_changelog = 15
+flat_cache_upstream_release_notes = 16
+flat_cache_upstream_documentation = 17
env_use = OPTIONS
env_use_expand = SUBOPTIONS
diff --git a/paludis/repositories/e/eapis/paludis-1.conf b/paludis/repositories/e/eapis/paludis-1.conf
index 5559de5..4a8f066 100644
--- a/paludis/repositories/e/eapis/paludis-1.conf
+++ b/paludis/repositories/e/eapis/paludis-1.conf
@@ -166,7 +166,8 @@ description_dependencies =
flat_cache_minimum_size = 15
flat_cache_build_depend = 0
-flat_cache_description = 7
+flat_cache_short_description = 7
+flat_cache_long_description = -1
flat_cache_eapi = 14
flat_cache_dependencies = -1
flat_cache_homepage = 5
@@ -181,6 +182,12 @@ flat_cache_run_depend = 1
flat_cache_slot = 2
flat_cache_src_uri = 3
flat_cache_use = -1
+flat_cache_use = -1
+flat_cache_bugs_to = -1
+flat_cache_remote_ids = -1
+flat_cache_upstream_changelog = -1
+flat_cache_upstream_release_notes = -1
+flat_cache_upstream_documentation = -1
env_use = USE
env_use_expand = USE_EXPAND
diff --git a/paludis/repositories/e/ebuild.cc b/paludis/repositories/e/ebuild.cc
index ac46393..70c4dc6 100644
--- a/paludis/repositories/e/ebuild.cc
+++ b/paludis/repositories/e/ebuild.cc
@@ -392,9 +392,15 @@ EbuildMetadataCommand::load(const std::tr1::shared_ptr<const EbuildID> & id)
const EAPIEbuildMetadataVariables & m(*id->eapi()->supported()->ebuild_metadata_variables());
- if (! m.description().name().empty())
- id->load_short_description(m.description().name(), m.description().description(), get(keys, m.description().name()));
+ if (! m.short_description().name().empty())
+ id->load_short_description(m.short_description().name(), m.short_description().description(), get(keys, m.short_description().name()));
+ if (! m.long_description().name().empty())
+ {
+ std::string value(get(keys, m.long_description().name()));
+ if (! value.empty())
+ id->load_long_description(m.long_description().name(), m.long_description().description(), value);
+ }
if (! m.dependencies().name().empty())
{
@@ -469,6 +475,41 @@ EbuildMetadataCommand::load(const std::tr1::shared_ptr<const EbuildID> & id)
if (! m.use().name().empty())
id->load_use(m.use().name(), m.use().description(), get(keys, m.use().name()));
+
+ if (! m.upstream_changelog().name().empty())
+ {
+ std::string value(get(keys, m.upstream_changelog().name()));
+ if (! value.empty())
+ id->load_upstream_changelog(m.upstream_changelog().name(), m.upstream_changelog().description(), value);
+ }
+
+ if (! m.upstream_documentation().name().empty())
+ {
+ std::string value(get(keys, m.upstream_documentation().name()));
+ if (! value.empty())
+ id->load_upstream_documentation(m.upstream_documentation().name(), m.upstream_documentation().description(), value);
+ }
+
+ if (! m.upstream_release_notes().name().empty())
+ {
+ std::string value(get(keys, m.upstream_release_notes().name()));
+ if (! value.empty())
+ id->load_upstream_release_notes(m.upstream_release_notes().name(), m.upstream_release_notes().description(), value);
+ }
+
+ if (! m.bugs_to().name().empty())
+ {
+ std::string value(get(keys, m.bugs_to().name()));
+ if (! value.empty())
+ id->load_bugs_to(m.bugs_to().name(), m.bugs_to().description(), value);
+ }
+
+ if (! m.remote_ids().name().empty())
+ {
+ std::string value(get(keys, m.remote_ids().name()));
+ if (! value.empty())
+ id->load_remote_ids(m.remote_ids().name(), m.remote_ids().description(), value);
+ }
}
EbuildVariableCommand::EbuildVariableCommand(const EbuildCommandParams & p,
diff --git a/paludis/repositories/e/ebuild/ebuild.bash b/paludis/repositories/e/ebuild/ebuild.bash
index 78a00ee..60dffe4 100755
--- a/paludis/repositories/e/ebuild/ebuild.bash
+++ b/paludis/repositories/e/ebuild/ebuild.bash
@@ -31,7 +31,9 @@ EBUILD_METADATA_VARIABLES="DEPEND RDEPEND PDEPEND IUSE SRC_URI RESTRICT \
LICENSE KEYWORDS INHERITED PROVIDE HOMEPAGE DESCRIPTION DEPENDENCIES \
E_IUSE E_DEPEND E_RDEPEND E_PDEPEND PLATFORMS \
MYOPTIONS E_MYOPTIONS E_DEPENDENCIES BINARY_KEYWORDS BINARY_URI \
- GENERATED_USING GENERATED_TIME BINARY_PLATFORMS"
+ GENERATED_USING GENERATED_TIME BINARY_PLATFORMS REMOTE_IDS \
+ SUMMARY BUGS_TO UPSTREAM_DOCUMENTATION UPSTREAM_CHANGELOG \
+ UPSTREAM_RELEASE_NOTES"
unset -v ${EBUILD_METADATA_VARIABLES} ${PALUDIS_EBUILD_MUST_NOT_SET_VARIABLES}
# These can be set by C++
EBUILD_METADATA_VARIABLES="${EBUILD_METADATA_VARIABLES} SLOT EAPI OPTIONS USE"
diff --git a/paludis/repositories/e/ebuild_flat_metadata_cache.cc b/paludis/repositories/e/ebuild_flat_metadata_cache.cc
index f0ce4ef..0ad3366 100644
--- a/paludis/repositories/e/ebuild_flat_metadata_cache.cc
+++ b/paludis/repositories/e/ebuild_flat_metadata_cache.cc
@@ -132,9 +132,20 @@ EbuildFlatMetadataCache::load(const std::tr1::shared_ptr<const EbuildID> & id)
if (! m.license().name().empty())
id->load_license(m.license().name(), m.license().description(), lines.at(m.license().flat_cache_index()));
- if (-1 != m.description().flat_cache_index())
- if (! m.description().name().empty())
- id->load_short_description(m.description().name(), m.description().description(), lines.at(m.description().flat_cache_index()));
+ if (-1 != m.short_description().flat_cache_index())
+ if (! m.short_description().name().empty())
+ id->load_short_description(m.short_description().name(),
+ m.short_description().description(),
+ lines.at(m.short_description().flat_cache_index()));
+
+ if (-1 != m.long_description().flat_cache_index())
+ if (! m.long_description().name().empty())
+ {
+ std::string value(lines.at(m.long_description().flat_cache_index()));
+ if (! value.empty())
+ id->load_long_description(m.long_description().name(),
+ m.long_description().description(), value);
+ }
if (-1 != m.keywords().flat_cache_index())
if (! m.keywords().name().empty())
@@ -159,6 +170,51 @@ EbuildFlatMetadataCache::load(const std::tr1::shared_ptr<const EbuildID> & id)
if (-1 != m.use().flat_cache_index())
if (! m.use().name().empty())
id->load_use(m.use().name(), m.use().description(), lines.at(m.use().flat_cache_index()));
+
+ if (-1 != m.upstream_changelog().flat_cache_index())
+ if (! m.upstream_changelog().name().empty())
+ {
+ std::string value(lines.at(m.upstream_changelog().flat_cache_index()));
+ if (! value.empty())
+ id->load_upstream_changelog(m.upstream_changelog().name(),
+ m.upstream_changelog().description(), value);
+ }
+
+ if (-1 != m.upstream_documentation().flat_cache_index())
+ if (! m.upstream_documentation().name().empty())
+ {
+ std::string value(lines.at(m.upstream_documentation().flat_cache_index()));
+ if (! value.empty())
+ id->load_upstream_documentation(m.upstream_documentation().name(),
+ m.upstream_documentation().description(), value);
+ }
+
+ if (-1 != m.upstream_release_notes().flat_cache_index())
+ if (! m.upstream_release_notes().name().empty())
+ {
+ std::string value(lines.at(m.upstream_release_notes().flat_cache_index()));
+ if (! value.empty())
+ id->load_upstream_release_notes(m.upstream_release_notes().name(),
+ m.upstream_release_notes().description(), value);
+ }
+
+ if (-1 != m.bugs_to().flat_cache_index())
+ if (! m.bugs_to().name().empty())
+ {
+ std::string value(lines.at(m.bugs_to().flat_cache_index()));
+ if (! value.empty())
+ id->load_bugs_to(m.bugs_to().name(),
+ m.bugs_to().description(), value);
+ }
+
+ if (-1 != m.remote_ids().flat_cache_index())
+ if (! m.remote_ids().name().empty())
+ {
+ std::string value(lines.at(m.remote_ids().flat_cache_index()));
+ if (! value.empty())
+ id->load_remote_ids(m.remote_ids().name(),
+ m.remote_ids().description(), value);
+ }
}
}
else
@@ -311,7 +367,7 @@ EbuildFlatMetadataCache::save(const std::tr1::shared_ptr<const EbuildID> & id)
else
cache << std::endl;
}
- else if (x == m.description().flat_cache_index())
+ else if (x == m.short_description().flat_cache_index())
{
if (id->short_description_key())
cache << normalise(id->short_description_key()->value()) << std::endl;
@@ -357,6 +413,48 @@ EbuildFlatMetadataCache::save(const std::tr1::shared_ptr<const EbuildID> & id)
{
cache << normalise(id->eapi()->name()) << std::endl;
}
+ else if (x == m.long_description().flat_cache_index())
+ {
+ if (id->long_description_key())
+ cache << normalise(id->long_description_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
+ else if (x == m.bugs_to().flat_cache_index())
+ {
+ if (id->bugs_to_key())
+ cache << flatten(id->bugs_to_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
+ else if (x == m.remote_ids().flat_cache_index())
+ {
+ if (id->remote_ids_key())
+ cache << flatten(id->remote_ids_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
+ else if (x == m.upstream_changelog().flat_cache_index())
+ {
+ if (id->upstream_changelog_key())
+ cache << flatten(id->upstream_changelog_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
+ else if (x == m.upstream_documentation().flat_cache_index())
+ {
+ if (id->upstream_documentation_key())
+ cache << flatten(id->upstream_documentation_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
+ else if (x == m.upstream_release_notes().flat_cache_index())
+ {
+ if (id->upstream_release_notes_key())
+ cache << flatten(id->upstream_release_notes_key()->value()) << std::endl;
+ else
+ cache << std::endl;
+ }
else
cache << std::endl;
}
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index c0d19e9..511e52e 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -74,6 +74,7 @@ namespace paludis
mutable std::tr1::shared_ptr<const LiteralMetadataValueKey<FSEntry> > fs_location;
mutable std::tr1::shared_ptr<const LiteralMetadataValueKey<std::string> > short_description;
+ mutable std::tr1::shared_ptr<const LiteralMetadataValueKey<std::string> > long_description;
mutable std::tr1::shared_ptr<const EDependenciesKey> build_dependencies;
mutable std::tr1::shared_ptr<const EDependenciesKey> run_dependencies;
mutable std::tr1::shared_ptr<const EDependenciesKey> post_dependencies;
@@ -88,6 +89,11 @@ namespace paludis
mutable std::tr1::shared_ptr<const EUseKey> use;
mutable std::tr1::shared_ptr<EMutableRepositoryMaskInfoKey> repository_mask;
mutable std::tr1::shared_ptr<EMutableRepositoryMaskInfoKey> profile_mask;
+ mutable std::tr1::shared_ptr<const EPlainTextSpecKey> remote_ids;
+ mutable std::tr1::shared_ptr<const EPlainTextSpecKey> bugs_to;
+ mutable std::tr1::shared_ptr<const ESimpleURIKey> upstream_changelog;
+ mutable std::tr1::shared_ptr<const ESimpleURIKey> upstream_documentation;
+ mutable std::tr1::shared_ptr<const ESimpleURIKey> upstream_release_notes;
std::tr1::shared_ptr<DependencyLabelSequence> build_dependencies_labels;
std::tr1::shared_ptr<DependencyLabelSequence> run_dependencies_labels;
@@ -571,7 +577,8 @@ EbuildID::short_description_key() const
const std::tr1::shared_ptr<const MetadataValueKey<std::string> >
EbuildID::long_description_key() const
{
- return std::tr1::shared_ptr<const MetadataValueKey<std::string> >();
+ need_keys_added();
+ return _imp->long_description;
}
const std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const Contents> > >
@@ -654,6 +661,14 @@ EbuildID::load_short_description(const std::string & r, const std::string & h, c
}
void
+EbuildID::load_long_description(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->long_description.reset(new LiteralMetadataValueKey<std::string> (r, h, mkt_normal, v));
+ add_metadata_key(_imp->long_description);
+}
+
+void
EbuildID::load_build_depend(const std::string & r, const std::string & h, const std::string & v) const
{
Lock l(_imp->mutex);
@@ -752,6 +767,46 @@ EbuildID::load_inherited(const std::string & r, const std::string & h, const std
add_metadata_key(_imp->inherited);
}
+void
+EbuildID::load_upstream_changelog(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->upstream_changelog.reset(new ESimpleURIKey(_imp->environment, shared_from_this(), r, h, v, mkt_normal));
+ add_metadata_key(_imp->upstream_changelog);
+}
+
+void
+EbuildID::load_upstream_documentation(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->upstream_documentation.reset(new ESimpleURIKey(_imp->environment, shared_from_this(), r, h, v, mkt_normal));
+ add_metadata_key(_imp->upstream_documentation);
+}
+
+void
+EbuildID::load_upstream_release_notes(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->upstream_release_notes.reset(new ESimpleURIKey(_imp->environment, shared_from_this(), r, h, v, mkt_normal));
+ add_metadata_key(_imp->upstream_release_notes);
+}
+
+void
+EbuildID::load_bugs_to(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->bugs_to.reset(new EPlainTextSpecKey(_imp->environment, shared_from_this(), r, h, v, mkt_normal));
+ add_metadata_key(_imp->bugs_to);
+}
+
+void
+EbuildID::load_remote_ids(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->remote_ids.reset(new EPlainTextSpecKey(_imp->environment, shared_from_this(), r, h, v, mkt_internal));
+ add_metadata_key(_imp->remote_ids);
+}
+
namespace
{
struct SupportsActionQuery :
@@ -906,3 +961,38 @@ EbuildID::contained_in_key() const
return std::tr1::shared_ptr<const MetadataValueKey<std::tr1::shared_ptr<const PackageID> > >();
}
+const std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> >
+EbuildID::remote_ids_key() const
+{
+ need_keys_added();
+ return _imp->remote_ids;
+}
+
+const std::tr1::shared_ptr<const MetadataSpecTreeKey<PlainTextSpecTree> >
+EbuildID::bugs_to_key() const
+{
+ need_keys_added();
+ return _imp->bugs_to;
+}
+
+const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> >
+EbuildID::upstream_changelog_key() const
+{
+ need_keys_added();
+ return _imp->upstream_changelog;
+}
+
+const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> >
+EbuildID::upstream_documentation_key() const
+{
+ need_keys_added();
+ return _imp->upstream_documentation;
+}
+
+const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> >
+EbuildID::upstream_release_notes_key() const
+{
+ need_keys_added();
+ return _imp->upstream_release_notes;
+}
+
diff --git a/paludis/repositories/e/ebuild_id.hh b/paludis/repositories/e/ebuild_id.hh
index a09c871..df76ca4 100644
--- a/paludis/repositories/e/ebuild_id.hh
+++ b/paludis/repositories/e/ebuild_id.hh
@@ -89,6 +89,12 @@ namespace paludis
virtual const std::tr1::shared_ptr<const MetadataValueKey<bool> > transient_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;
+ const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_changelog_key() const;
+ const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_documentation_key() const;
+ const std::tr1::shared_ptr<const MetadataSpecTreeKey<SimpleURISpecTree> > upstream_release_notes_key() const;
+
virtual bool arbitrary_less_than_comparison(const PackageID &) const
PALUDIS_ATTRIBUTE((warn_unused_result));
@@ -113,6 +119,12 @@ namespace paludis
void load_inherited(const std::string &, const std::string &, const std::string &) const;
void load_keywords(const std::string &, const std::string &, const std::string &) const;
void load_restrict(const std::string &, const std::string &, const std::string &) const;
+ void load_long_description(const std::string &, const std::string &, const std::string &) const;
+ void load_upstream_changelog(const std::string &, const std::string &, const std::string &) const;
+ void load_upstream_documentation(const std::string &, const std::string &, const std::string &) const;
+ void load_upstream_release_notes(const std::string &, const std::string &, const std::string &) const;
+ void load_bugs_to(const std::string &, const std::string &, const std::string &) const;
+ void load_remote_ids(const std::string &, const std::string &, const std::string &) const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;