commit:     65808f23345eddd416362d2f3998fc45274d9bce
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 24 19:21:35 2021 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Jun 24 21:05:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65808f23

Revert "python-utils-r1.eclass: Remove _python_ln_rel"

Reverts: 1f678a8cae66480493c43739435ec7feb85c08da
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 eclass/python-utils-r1.eclass | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 7488802332f..7022d3b7d88 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -549,6 +549,46 @@ python_get_scriptdir() {
        echo "${PYTHON_SCRIPTDIR}"
 }
 
+# @FUNCTION: _python_ln_rel
+# @USAGE: <from> <to>
+# @INTERNAL
+# @DESCRIPTION:
+# Create a relative symlink.
+_python_ln_rel() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       local target=${1}
+       local symname=${2}
+
+       local tgpath=${target%/*}/
+       local sympath=${symname%/*}/
+       local rel_target=
+
+       while [[ ${sympath} ]]; do
+               local tgseg= symseg=
+
+               while [[ ! ${tgseg} && ${tgpath} ]]; do
+                       tgseg=${tgpath%%/*}
+                       tgpath=${tgpath#${tgseg}/}
+               done
+
+               while [[ ! ${symseg} && ${sympath} ]]; do
+                       symseg=${sympath%%/*}
+                       sympath=${sympath#${symseg}/}
+               done
+
+               if [[ ${tgseg} != ${symseg} ]]; then
+                       rel_target=../${rel_target}${tgseg:+${tgseg}/}
+               fi
+       done
+       rel_target+=${tgpath}${target##*/}
+
+       debug-print "${FUNCNAME}: ${symname} -> ${target}"
+       debug-print "${FUNCNAME}: rel_target = ${rel_target}"
+
+       ln -fs "${rel_target}" "${symname}"
+}
+
 # @FUNCTION: python_optimize
 # @USAGE: [<directory>...]
 # @DESCRIPTION:

Reply via email to