commit:     f04dae7728b558ba10b99d1b4979054825fbb0d6
Author:     Daniel M. Weeks <dan <AT> danweeks <DOT> net>
AuthorDate: Wed Jan  6 18:35:37 2021 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Jan 10 03:22:43 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f04dae77

Make digests available to fetch command

This makes it possible for the fetch command to utilize a
protocol/service that identifies files by their hash.

Closes: https://github.com/gentoo/portage/pull/655
Signed-off-by: Daniel M. Weeks <dan <AT> danweeks.net>
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/package/ebuild/fetch.py |  6 ++++++
 man/make.conf.5                     | 14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/lib/portage/package/ebuild/fetch.py 
b/lib/portage/package/ebuild/fetch.py
index 7be9d0239..e0fecaf23 100644
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@ -1291,6 +1291,12 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0,
                                                "FILE":    
os.path.basename(download_path)
                                        }
 
+                                       try:
+                                               variables['DIGESTS'] = " 
".join(["%s:%s" % (k.lower(), v)
+                                                       for k, v in 
mydigests[myfile].items() if k != 'size'])
+                                       except KeyError:
+                                               pass
+
                                        for k in ("DISTDIR", 
"PORTAGE_SSH_OPTS"):
                                                v = mysettings.get(k)
                                                if v is not None:

diff --git a/man/make.conf.5 b/man/make.conf.5
index 494d5a212..f6eae6f60 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -1,4 +1,4 @@
-.TH "MAKE.CONF" "5" "Sep 2020" "Portage VERSION" "Portage"
+.TH "MAKE.CONF" "5" "Jan 2021" "Portage VERSION" "Portage"
 .SH "NAME"
 make.conf \- custom settings for Portage
 .SH "SYNOPSIS"
@@ -746,6 +746,18 @@ the internet.  It must contain the full path to the 
executable as well as the
 place\-holders \\${DISTDIR}, \\${FILE} and \\${URI}.  The command should be
 written to place the fetched file at \\${DISTDIR}/\\${FILE}.
 Also see \fBRESUMECOMMAND\fR.
+.RS
+.TP
+.B Optional FETCHCOMMAND Placeholders
+.TS
+l l l
+___
+l l l.
+Placeholder    Meaning Example
+
+\\${DIGESTS}   Space separated list of file digests    blake2b <hexdigest> 
sha512 <hexdigest>
+.TE
+.RE
 .TP
 .B FFLAGS FCFLAGS
 Use these variables to set the desired optimization/CPU instruction settings

Reply via email to