summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metadata-cache.tex36
-rw-r--r--pms.bib11
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{<package>-<version>}, 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{<package>-<version>},
+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{<key>=<value>} 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}
+}