@@ -, +, @@ See Council meetings of 2009-10-12 and 2009-12-07. --- eapi-differences.tex | 4 ++++ merge.tex | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) --- a/eapi-differences.tex +++ a/eapi-differences.tex @@ -261,6 +261,9 @@ Controllable compression & \compactfeatureref{controllable-compress} & No & No & \t{default} function & \compactfeatureref{default-func} & No & No & \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{No} &}{} Yes & Yes & Yes \\ +File mtimes preserved & \compactfeatureref{mtime-preserve} & Undefined & Undefined & + \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{Undefined} &}{} Undefined & Yes & Yes \\ + \end{longtable} \end{landscape} @@ -327,6 +330,7 @@ EAPI 2 is EAPI 1 with the following changes: EAPI 3 is EAPI 2 with the following changes: \begin{compactitem} +\item File modification times are preserved, \featureref{mtime-preserve}. \item (to be completed) \end{compactitem} --- a/merge.tex +++ a/merge.tex @@ -60,8 +60,44 @@ as follows: set*id bit set. \end{compactitem} -On SELinux systems, the SELinux context must also be preserved. Other file attributes, including -modification time, may be discarded. +On SELinux systems, the SELinux context must also be preserved. Other +file attributes may be discarded. + +\subsection{File modification times} + +\featurelabel{mtime-preserve} +In EAPIs listed in table~\ref{tab:mtime-preserve}, the package manager +must preserve modification times of regular files. This includes files +being compressed before merging. Exceptions to this are files newly +created by the package manager and binary object files being stripped +of symbols. + +The integer seconds part of the modification time is guaranteed to be +preserved. The package manager may also preserve sub-second +timestamps; in this case, the full precision available with the +underlying operating system, filesystems, and programming language +must be used. Timestamps of all files installed in the same +destination filesystem must be handled in a consistent way, especially +their ordering must be preserved. + +In other EAPIs, the behaviour with respect to file modification times +is undefined. + +\begin{centertable}{Preservation of file modification times (mtimes)} + \label{tab:mtime-preserve} + \begin{tabular}{ l l } + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{mtimes preserved?}} \\ + \midrule + \t{0} & Undefined \\ + \t{1} & Undefined \\ + \t{2} & Undefined \\ + \t{3} & Yes \\ + \t{4} & Yes \\ + \bottomrule + \end{tabular} +\end{centertable} \subsection{Configuration File Protection} \label{sec:config-protect} --