From ed0dd177c63bb7758e8633ffe26de2a8bc315d1b Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 7 Mar 2016 19:11:31 +0300 Subject: Display sha256sum on the package version details page --- brep/mod-package-version-details.cxx | 3 ++- brep/package | 7 ++++++- brep/package.cxx | 4 +++- brep/package.xml | 1 + brep/page | 14 ++++++++++++++ brep/page.cxx | 11 +++++++++++ 6 files changed, 37 insertions(+), 3 deletions(-) (limited to 'brep') diff --git a/brep/mod-package-version-details.cxx b/brep/mod-package-version-details.cxx index cbf9c86..992b829 100644 --- a/brep/mod-package-version-details.cxx +++ b/brep/mod-package-version-details.cxx @@ -161,7 +161,7 @@ handle (request& rq, response& rs) : P_DESCRIPTION (*d, options_->package_description (), url (!full, id))); - assert (pkg->location); + assert (pkg->location && pkg->sha256sum); s << TABLE(CLASS="proplist", ID="version") << TBODY @@ -175,6 +175,7 @@ handle (request& rq, response& rs) << TR_LOCATION (pkg->internal_repository.object_id (), root) << TR_DOWNLOAD (pkg->internal_repository.load ()->location.string () + "/" + pkg->location->string ()) + << TR_SHA256SUM (*pkg->sha256sum) << ~TBODY << ~TABLE diff --git a/brep/package b/brep/package index fa129f3..67f0e31 100644 --- a/brep/package +++ b/brep/package @@ -132,7 +132,7 @@ namespace brep std::chrono::nanoseconds::period>::value, "The following timestamp ODB mapping is invalid"); - // As it pointed out in butl/timestamp we will overflow in year 2262 but + // As it pointed out in butl/timestamp we will overflow in year 2262, but // by that time some larger basic type will be available for mapping. // #pragma db map type(timestamp) as(uint64_t) \ @@ -470,6 +470,7 @@ namespace brep dependencies_type, requirements_type, optional location, + optional sha256sum, shared_ptr); // Create external package object. @@ -506,6 +507,10 @@ namespace brep // optional location; + // Present only for internal packages. + // + optional sha256sum; + vector> other_repositories; // Database mapping. diff --git a/brep/package.cxx b/brep/package.cxx index 1f93a56..d1bbe21 100644 --- a/brep/package.cxx +++ b/brep/package.cxx @@ -62,6 +62,7 @@ namespace brep dependencies_type dp, requirements_type rq, optional lc, + optional sh, shared_ptr rp) : id (move (nm), vr), version (move (vr)), @@ -78,7 +79,8 @@ namespace brep dependencies (move (dp)), requirements (move (rq)), internal_repository (move (rp)), - location (move (lc)) + location (move (lc)), + sha256sum (move (sh)) { assert (internal_repository->internal); } diff --git a/brep/package.xml b/brep/package.xml index 6abbf1d..14598a5 100644 --- a/brep/package.xml +++ b/brep/package.xml @@ -87,6 +87,7 @@ + diff --git a/brep/page b/brep/page index 4f97ef8..512c11a 100644 --- a/brep/page +++ b/brep/page @@ -293,6 +293,20 @@ namespace brep const string& url_; }; + // Generates sha256sum element. + // + class TR_SHA256SUM + { + public: + TR_SHA256SUM (const string& s): sha256sum_ (s) {} + + void + operator() (xml::serializer&) const; + + private: + const string& sha256sum_; + }; + // Generates comment element. // class SPAN_COMMENT diff --git a/brep/page.cxx b/brep/page.cxx index 27e1b2a..689ee20 100644 --- a/brep/page.cxx +++ b/brep/page.cxx @@ -481,6 +481,17 @@ namespace brep << ~TR; } + // TR_SHA256SUM + // + void TR_SHA256SUM:: + operator() (serializer& s) const + { + s << TR(CLASS="sha256") + << TH << "sha256" << ~TH + << TD << SPAN(CLASS="value") << sha256sum_ << ~SPAN << ~TD + << ~TR; + } + // SPAN_COMMENT // void SPAN_COMMENT:: -- cgit v1.1