summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2015-03-23 12:28:01 +0100
committerUlrich Müller <ulm@gentoo.org>2015-11-08 20:29:20 +0100
commit1d699b5c40d334adc62fdb2e079851d8814b384b (patch)
tree7822393770f571ff790bc1e228ca0518cde32461
parentEAPI 6: unpack matches filename extensions case-insensitively. (diff)
downloadpms-1d699b5c40d334adc62fdb2e079851d8814b384b.tar.gz
pms-1d699b5c40d334adc62fdb2e079851d8814b384b.tar.bz2
pms-1d699b5c40d334adc62fdb2e079851d8814b384b.zip
EAPI 6 has einstalldocs.
This also adds support for an empty DOCS variable and for directories in DOCS. Bug: 459692 Bug: 463736 Bug: 481980
-rw-r--r--eapi-differences.tex4
-rw-r--r--pkg-mgr-commands.tex48
2 files changed, 52 insertions, 0 deletions
diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0756581..b9734e4 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -230,6 +230,9 @@ Controllable compression & \compactfeatureref{docompress} &
\t{default} function & \compactfeatureref{default-func} &
* & Yes & Yes & Yes & Yes \\
+\t{einstalldocs} & \compactfeatureref{einstalldocs} &
+ No & No & No & No & Yes \\
+
File mtimes preserved & \compactfeatureref{mtime-preserve} &
Undefined & Yes & Yes & Yes & Yes \\
@@ -348,6 +351,7 @@ EAPI 6 is EAPI 5 with the following changes:
\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{einstalldocs} support, \featureref{einstalldocs}.
\end{compactitem}
\ChangeWhenAddingAnEAPI{6}
diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 6b4ecb9..6d08673 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -930,8 +930,42 @@ has returned.
section~\ref{sec:default-phase-funcs}). Must not be called if the \t{default\_} function does
not exist for the current phase in the current EAPI\@. Only available in EAPIs listed in
table~\ref{tab:default-function-table}.
+
+\item[einstalldocs] \featurelabel{einstalldocs} Takes no arguments. Installs the files specified
+ by the \t{DOCS} and \t{HTML\_DOCS} variables or a default set of files, according to
+ Algorithm~\ref{alg:einstalldocs}. If called using \t{nonfatal} and any of the called commands
+ returns a non-zero exit status, returns immediately with the same exit status. Only available
+ in EAPIs listed in table~\ref{tab:einstalldocs} as supporting \t{einstalldocs}.
\end{description}
+\begin{algorithm}
+\caption{einstalldocs logic} \label{alg:einstalldocs}
+\begin{algorithmic}[1]
+\STATE save the value of the install directory for \t{dodoc}
+\STATE set the install directory for \t{dodoc} to \t{/usr/share/doc/\$\{PF\}}
+\IF{the DOCS variable is a non-empty array}
+ \STATE call \t{dodoc -r "\$\{DOCS[@]\}"}
+\ELSIF{the DOCS variable is a non-empty scalar}
+ \STATE call \t{dodoc -r \$\{DOCS\}}
+\ELSIF{the DOCS variable is unset}
+ \FORALL{$d$ matching the filename expansion of \t{README*} \t{ChangeLog} \t{AUTHORS} \t{NEWS}
+ \t{TODO} \t{CHANGES} \t{THANKS} \t{BUGS} \t{FAQ} \t{CREDITS} \t{CHANGELOG}}
+ \IF{file $d$ exists and has a size greater than zero}
+ \STATE call \t{dodoc} with $d$ as argument
+ \ENDIF
+ \ENDFOR
+\ENDIF
+\STATE set the install directory for \t{dodoc} to \t{/usr/share/doc/\$\{PF\}/html}
+\IF{the HTML\_DOCS variable is a non-empty array}
+ \STATE call \t{dodoc -r "\$\{HTML\_DOCS[@]\}"}
+\ELSIF{the HTML\_DOCS variable is a non-empty scalar}
+ \STATE call \t{dodoc -r \$\{HTML\_DOCS\}}
+\ENDIF
+\STATE restore the value of the install directory for \t{dodoc}
+\RETURN shell true (0)
+\end{algorithmic}
+\end{algorithm}
+
\ChangeWhenAddingAnEAPI{6}
\begin{centertable}{EAPIs supporting the \t{default} function}
\label{tab:default-function-table}
@@ -946,6 +980,20 @@ has returned.
\end{tabular}
\end{centertable}
+\ChangeWhenAddingAnEAPI{6}
+\begin{centertable}{EAPIs supporting \t{einstalldocs}}
+ \label{tab:einstalldocs}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{1}{c}{\textbf{EAPI}} &
+ \multicolumn{1}{c}{\textbf{Supports \t{einstalldocs}?}} \\
+ \midrule
+ 0, 1, 2, 3, 4, 5 & No \\
+ 6 & Yes \\
+ \bottomrule
+ \end{tabular}
+\end{centertable}
+
\subsubsection{Debug Commands}
The following commands are available for debugging. Normally all of these commands should be no ops;
a package manager may provide a special debug mode where these commands instead do something.