summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Mueller <ulm@gentoo.org>2009-12-14 18:36:42 (GMT)
committerChristian Faulhammer <fauli@gentoo.org>2010-01-11 20:38:28 (GMT)
commit51690686a39149f89a64b80b5d6074cc56c46e1a (patch)
tree5f670305fe6e4860fe210a9f9f01c2a8cc5c7d28
parentFix spelling of "unofficial". (diff)
downloadpms-51690686a39149f89a64b80b5d6074cc56c46e1a.zip
pms-51690686a39149f89a64b80b5d6074cc56c46e1a.tar.gz
pms-51690686a39149f89a64b80b5d6074cc56c46e1a.tar.bz2
Preserve modification times of regular files in EAPI 3.
See bug 264130 and council meetings of 2009-10-12 and 2009-12-07. Signed-off-by: Ulrich Mueller <ulm@gentoo.org>
-rw-r--r--eapi-differences.tex4
-rw-r--r--merge.tex43
2 files changed, 45 insertions, 2 deletions
diff --git a/eapi-differences.tex b/eapi-differences.tex
index f3b63c7..179d9f7 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -142,6 +142,9 @@ Controllable compression & \compactfeatureref{controllable-compress} &
\t{default} function & \compactfeatureref{default-func} &
No & No & Yes & Yes & Yes \\
+File mtimes preserved & \compactfeatureref{mtime-preserve} &
+ Undefined & Undefined & Undefined & Yes & Yes \\
+
\end{longtable}
\end{landscape}
@@ -184,6 +187,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..e798f2d 100644
--- a/merge.tex
+++ b/merge.tex
@@ -60,8 +60,47 @@ 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.
+
+When preserving, the seconds part of every regular file's mtime must
+be preserved exactly. The sub-second part must either be set to zero,
+or set to the greatest value supported by the operating system and
+filesystem that is not greater than the sub-second part of the
+original time.
+
+For any given destination filesystem, the package manager must ensure
+that for any two preserved files $a$, $b$ in that filesystem the
+relation $\mbox{mtime}(a) \leq \mbox{mtime}(b)$ still holds, if it
+held under the original image directory.
+
+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}