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
