From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 E8D5D1382C5 for ; Thu, 3 Jun 2021 08:21:12 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4440EE0788; Thu, 3 Jun 2021 08:21:12 +0000 (UTC) Received: from smtp.gentoo.org (smtp.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 1D2F5E0788 for ; Thu, 3 Jun 2021 08:21:12 +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 47A75340DB7 for ; Thu, 3 Jun 2021 08:21:09 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9086C78E for ; Thu, 3 Jun 2021 08:21:07 +0000 (UTC) From: "Ulrich Müller" 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" Message-ID: <1622675250.4a735a7e404a6bccbba3da5d47705c12e11220e3.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: 4a735a7e404a6bccbba3da5d47705c12e11220e3 X-VCS-Branch: eapi-8 Date: Thu, 3 Jun 2021 08:21:07 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: fd38ecaf-0404-47a4-a2ea-39ae534b33ce X-Archives-Hash: 6df88123c446b68e47bbbc4265071386 commit: 4a735a7e404a6bccbba3da5d47705c12e11220e3 Author: Ulrich Müller gentoo org> AuthorDate: Sun May 16 18:22:15 2021 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Wed Jun 2 23:07:30 2021 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=4a735a7e EAPI 8 has dosym -r Bug: https://bugs.gentoo.org/708360 Signed-off-by: Ulrich Müller 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..4e43c69 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}, the first parameter (the link target) is + converted from an absolute path to a path relative to the the second parameter (the link name). + 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