commit:     b4b880d199461c33bf4a99e0157455b522bef5ce
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 16 19:06:08 2015 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Feb 16 19:06:08 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=b4b880d1

EAPI 6: unpack supports absolute and relative paths.

See bug 483244.

---
 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 35 +++++++++++++++++++++--------------
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 44e383a..d29da60 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -204,6 +204,9 @@ Controllable compression & \compactfeatureref{docompress} &
 \t{usex} & \compactfeatureref{usex} &
     No & No & No & Yes & Yes \\
 
+\t{unpack} absolute paths & \compactfeatureref{unpack-absolute} &
+    No & No & No & No & Yes \\
+
 \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -329,6 +332,7 @@ EAPI 6 is EAPI 5 with the following changes:
 \item \t{failglob} is enabled in global scope, \featureref{failglob}.
 \item \t{einstall} banned, \featureref{banned-commands}.
 \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, 
\featureref{nonfatal-die}.
+\item \t{unpack} supports absolute and relative paths, 
\featureref{unpack-absolute}.
 \item \t{unpack} supports \t{.txz}, \featureref{unpack-extensions}.
 \item \t{unpack} matches filename extensions case-insensitively, 
\featureref{unpack-ignore-case}.
 \item \t{get\_libdir} support, \featureref{get-libdir}.

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 2fee628..5fd3d62 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -799,9 +799,15 @@ has returned.
     the current working directory itself) have permissions \t{a+r,u+w,go-w} 
and that all directories
     under the current working directory additionally have permissions \t{a+x}.
 
-    All arguments to \t{unpack} must be either a filename without path, in 
which case \t{unpack}
-    looks in \t{DISTDIR} for the file, or start with the string \t{./}, in 
which case \t{unpack}
-    uses the argument as a path relative to the working directory.
+    Arguments to \t{unpack} are interpreted as follows:
+    \begin{itemize}
+    \item A filename without path (i.\,e., not containing any slash) is looked 
up in \t{DISTDIR}.
+    \item An argument starting with the string \t{./} is a path relative to 
the working directory.
+    \item \featurelabel{unpack-absolute} Otherwise, for EAPIs listed in
+        table~\ref{tab:unpack-behaviour-table} as supporting absolute and 
relative paths, the
+        argument is interpreted as a literal path (absolute, or relative to 
the working directory);
+        for EAPIs listed as \e{not} supporting such paths, \t{unpack} shall 
abort the build process.
+    \end{itemize}
 
     Any unrecognised file format shall be skipped silently. If unpacking a 
supported file format
     fails, \t{unpack} shall abort the build process.
@@ -838,7 +844,7 @@ has returned.
     being in the system set or via dependencies.
 
     \featurelabel{unpack-ignore-case} \t{unpack} matches filename extensions 
in a case-insensitive
-    manner, for EAPIs listed such in table~\ref{tab:unpack-ignore-case-table}.
+    manner, for EAPIs listed such in table~\ref{tab:unpack-behaviour-table}.
 
 \ChangeWhenAddingAnEAPI{6}
 \begin{centertable}{\t{unpack} extensions for EAPIs} 
\label{tab:unpack-extensions-table}
@@ -860,20 +866,21 @@ has returned.
 \end{centertable}
 
 \ChangeWhenAddingAnEAPI{6}
-\begin{centertable}{EAPIs with case-insensitive filename matching in 
\t{unpack}}
-    \label{tab:unpack-ignore-case-table}
-    \begin{tabular}{ l l }
+\begin{centertable}{\t{unpack} behaviour for EAPIs}
+    \label{tab:unpack-behaviour-table}
+    \begin{tabular}{ l l l }
         \toprule
             \multicolumn{1}{c}{\textbf{EAPI}} &
+            \multicolumn{1}{c}{\textbf{Supports absolute and relative paths?}} 
&
             \multicolumn{1}{c}{\textbf{Case-insensitive matching?}} \\
             \midrule
-    \t{0} & No \\
-    \t{1} & No \\
-    \t{2} & No \\
-    \t{3} & No \\
-    \t{4} & No \\
-    \t{5} & No \\
-    \t{6} & Yes \\
+    \t{0} & No & No \\
+    \t{1} & No & No \\
+    \t{2} & No & No \\
+    \t{3} & No & No \\
+    \t{4} & No & No \\
+    \t{5} & No & No \\
+    \t{6} & Yes & Yes \\
     \bottomrule
     \end{tabular}
 \end{centertable}

Reply via email to