From f9adb7bfa495cd46f01bb2c9b72ceea9b603b888 Mon Sep 17 00:00:00 2001 From: Ulrich Müller Date: Mon, 29 May 2023 15:12:21 +0200 Subject: metadata-cache.tex: Document the md5-dict cache format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ulrich Müller --- metadata-cache.tex | 36 ++++++++++++++++++++++++++++++------ pms.bib | 11 +++++++++++ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/metadata-cache.tex b/metadata-cache.tex index d69ecdd..9ff7086 100644 --- a/metadata-cache.tex +++ b/metadata-cache.tex @@ -3,16 +3,19 @@ \section{Directory Contents} -The \t{metadata/cache} directory, if it exists, contains directories whose names are the same as -categories in the repository. Each subdirectory may optionally contain one file per package version -in that category, named \t{-}, in the format described below. +The \t{metadata/cache} or \t{metadata/md5-cache} directories, if either of them exists, contain +directories whose names are the same as categories in the repository. Each subdirectory may +optionally contain one file per package version in that category, named \t{-}, +in one of the formats described below. The metadata cache may be incomplete or non-existent, and may contain additional bogus entries. -\section{Cache File Format} +\section{Legacy Cache File Format} +\label{sec:legacy-cache} -Each cache file contains the textual values of various metadata keys, one per line, in the following -order. Other lines may be present following these; their meanings are not defined here. +The legacy cache file format is used in the \t{metadata/cache} directory. Each cache file contains +the textual values of various metadata keys, one per line, in the following order. Other lines may +be present following these; their meanings are not defined here. \begin{compactenum} \item Build-time dependencies (\t{DEPEND}) @@ -47,6 +50,27 @@ Any future EAPI that uses this cache format will continue to place the EAPI valu such a concept makes sense for that EAPI, and will place a value that is clearly not a supported EAPI on line~15 if it does~not. +\section{md5-dict Cache File Format} + +The ``md5-dict'' cache file format is used in the \t{metadata/md5-cache} directory. Each cache file +contains \t{=} pairs, one per line, in arbitrary order. The keys are the same as those +listed in section~\ref{sec:legacy-cache} except the \t{INHERITED} key. In addition, keys \t{_md5_} +and \t{_eclasses_} contain values as defined below. + +\begin{description} +\item[_md5_] The MD5 checksum of the ebuild for the package version. + +\item[_eclasses_] A list of \i{name-checksum} pairs for all eclasses directly or indirectly +inherited by the ebuild, in arbitrary order, where \i{name} is the eclass name and \i{checksum} +is the MD5 checksum of the eclass. Pairs are separated from each other by single tab characters, +as are \i{name} and \i{checksum} in each pair. +\end{description} + +All MD5 checksums are computed and formatted as described in RFC~1321~\cite{rfc1321}. + +Other keys may be present; their meanings are not defined here. Lines with an empty value can be +omitted. + % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : %%% Local Variables: diff --git a/pms.bib b/pms.bib index bef07c1..ac60c44 100644 --- a/pms.bib +++ b/pms.bib @@ -52,3 +52,14 @@ month = Oct, url = {https://www.gentoo.org/glep/glep-0074.html} } + +@techreport{rfc1321, + author = {Ronald L. Rivest}, + title = {The {MD5} message-digest algorithm}, + type = {RFC}, + number = 1321, + institution = {RFC Editor}, + year = 1992, + month = Apr, + url = {https://www.rfc-editor.org/rfc/rfc1321} +} -- cgit v1.2.3-65-gdbad