From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1289388-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 2E06B1382C5
	for <garchives@archives.gentoo.org>; Wed,  2 Jun 2021 19:44:43 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 47CEEE0849;
	Wed,  2 Jun 2021 19:44:42 +0000 (UTC)
Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 202AAE0849
	for <gentoo-commits@lists.gentoo.org>; Wed,  2 Jun 2021 19:44:42 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id A012E340DCC
	for <gentoo-commits@lists.gentoo.org>; Wed,  2 Jun 2021 19:44:40 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id C9A96733
	for <gentoo-commits@lists.gentoo.org>; Wed,  2 Jun 2021 19:44:38 +0000 (UTC)
From: "Ulrich Müller" <ulm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" <ulm@gentoo.org>
Message-ID: <1622662983.21f91f86303e3d405fe5cf127529c517107a5ed5.ulm@gentoo>
Subject: [gentoo-commits] proj/pms:eapi-8 commit in: /
X-VCS-Repository: proj/pms
X-VCS-Files: eapi-differences.tex pkg-mgr-commands.tex
X-VCS-Directories: /
X-VCS-Committer: ulm
X-VCS-Committer-Name: Ulrich Müller
X-VCS-Revision: 21f91f86303e3d405fe5cf127529c517107a5ed5
X-VCS-Branch: eapi-8
Date: Wed,  2 Jun 2021 19:44:38 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: f3179fbe-f1d5-4782-b56a-1c850608872a
X-Archives-Hash: 3abcd96dc40d3430793bc816a8ce96fa

commit:     21f91f86303e3d405fe5cf127529c517107a5ed5
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 18:22:15 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  2 19:43:03 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=21f91f86

EAPI 8 has dosym -r

Bug: https://bugs.gentoo.org/708360
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 39 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index bbb8957..8cfc442 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -293,6 +293,9 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} &
 \t{domo} destination path & \compactfeatureref{domo-path} &
     \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\
 
+\t{dosym -r} & \compactfeatureref{dosym-relative} &
+    No & No & No & No & Yes \\
+
 \t{new*} support stdin & \compactfeatureref{newfoo-stdin} &
     No & Yes & Yes & Yes & Yes \\
 
@@ -517,6 +520,7 @@ EAPI 8 is EAPI 7 with the following changes:
 \item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}.
 \item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}.
 \item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}.
+\item \t{dosym} can create relative paths, \featureref{dosym-relative}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{8}

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 817b52b..7621ca3 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -599,9 +599,28 @@ the current phase function has returned.
 
 \item[dosbin] As \t{dobin}, but installs to \t{DESTTREE/sbin}.
 
-\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first. If
-    the directory containing the new link does not exist, creates it. Failure behaviour is EAPI
-    dependent as per section~\ref{sec:failure-behaviour}.
+\item[dosym] Creates a symbolic link named as for its second parameter, pointing to the first.
+    If the directory containing the new link does not exist, creates it.
+
+    \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} as supporting creation
+    of relative paths, when called with option \t{-r}, resolves the first parameter relative to the
+    directory part of the second parameter. The algorithm must return a result identical to the one
+    returned by the function in listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from
+    GNU coreutils version~8.32. Specifying option \t{-r} together with a relative path as first
+    (target) parameter is an error.
+
+    Failure behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
+
+\begin{listing}[h]
+\caption{Create a relative path for \t{dosym -r}} \label{lst:dosym-r}
+\begin{verbatim}
+dosym_relative_path() {
+    local link=$(realpath -m -s "/${2#/}")
+    local linkdir=$(dirname "${link}")
+    realpath -m -s --relative-to="${linkdir}" "$1"
+}
+\end{verbatim}
+\end{listing}
 
 \item[fowners] Acts as for \t{chown}, but takes paths relative to the image directory. Failure
     behaviour is EAPI dependent as per section~\ref{sec:failure-behaviour}.
@@ -729,6 +748,20 @@ the current phase function has returned.
     \end{tabular}
 \end{centertable}
 
+\ChangeWhenAddingAnEAPI{8}
+\begin{centertable}{EAPIs supporting \t{dosym -r}}
+    \label{tab:dosym-r}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{\t{dosym} supports creation of relative paths?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6, 7  & No  \\
+      8                       & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 \subsection{Commands affecting install destinations}
 The following commands are used to set the various destination trees and options used by the above
 installation commands. They must be shell functions or aliases, due to the need to set variables