From cf98fb1d774cb059e664c0123791fcf3636044a6 Mon Sep 17 00:00:00 2001 From: Ulrich Mueller Date: Fri, 11 Dec 2009 09:49:45 +0100 Subject: [PATCH] Preserve modification times of regular files in EAPI 3. See Council meetings of 2009-10-12 and 2009-12-07. Signed-off-by: Ulrich Mueller --- eapi-differences.tex | 4 ++++ merge.tex | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index e73f96d..55f3741 100644 --- a/eapi-differences.tex +++ b/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} diff --git a/merge.tex b/merge.tex index 91db3fb..94605eb 100644 --- a/merge.tex +++ b/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} -- 1.6.5.5