kumquat-buildroot/package/systemd/0001-install-don-t-use-ln-relative.patch
Adam Duskett 819cfcf7aa Standardize Adam Duskett's email address
Globally change Adam Duskett's email address to aduskett@gmail.com.

Note that one or two of the patches may have been applied upstream with
the old email address, but in that case those patches will anyway be
removed when bumping.

Signed-off-by: Adam Duskett <Aduskett@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2019-07-04 00:10:47 +02:00

81 lines
2.7 KiB
Diff

From 7f4a12d25bbb5859d266f32f7a3d794bb62c354e Mon Sep 17 00:00:00 2001
From: Adam Duskett <aduskett@gmail.com>
Date: Sun, 31 Dec 2017 12:46:04 -0500
Subject: [PATCH] install: don't use ln --relative
Oldish enterprise-class distributions have too old versions of
coreutils, with ln not supporting --relative.
So we fake it.
ln --relative would create minimalist relative paths, but they are not
trivial to generate. Instead, we always create paths relative to the
root, i.e.:
ln -s --relative /usr/bin/foo /usr/sbin/foo
would create: /usr/sbin/foo -> ../bin/foo
while we do : /usr/sbin/foo -> ../../usr/bin/foo
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[aduskett@gmail.com: Added meson.build section and dirname wrapper in add-wants]
[aduskett@gmail.com: Update for systemd v237]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
[tpiepho@impinj.com: Fix add-wants wrapper]
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
---
meson.build | 2 +-
tools/meson-make-symlink.sh | 3 ++-
units/meson-add-wants.sh | 6 ++++--
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/meson.build b/meson.build
index 04331dd41..359042c04 100644
--- a/meson.build
+++ b/meson.build
@@ -628,7 +628,7 @@ endforeach
conf.set_quoted('TELINIT', get_option('telinit-path'))
if run_command('ln', '--relative', '--help').returncode() != 0
- error('ln does not support --relative (added in coreutils 8.16)')
+ message('ln does not support --relative (added in coreutils 8.16)')
endif
############################################################
diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
index 501cd43d4..25e7f89fd 100755
--- a/tools/meson-make-symlink.sh
+++ b/tools/meson-make-symlink.sh
@@ -8,5 +8,6 @@ mkdir -vp "$(dirname "${DESTDIR:-}$2")"
if [ "$(dirname $1)" = . ]; then
ln -vfs -T "$1" "${DESTDIR:-}$2"
else
- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
+ dds="$( dirname "$2" |sed -r -e 's:/+[^/]+:../:g; s:/$::' )"
+ ln -vfs -T "${dds}$1" "${DESTDIR:-}$2"
fi
diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh
index 70f7172ae..bb8155075 100755
--- a/units/meson-add-wants.sh
+++ b/units/meson-add-wants.sh
@@ -14,7 +14,7 @@ case "$target" in
;;
esac
-unitpath="${DESTDIR:-}${unitdir}/${unit}"
+unitpath="${unitdir}/${unit}"
case "$target" in
*/)
@@ -25,4 +25,6 @@ case "$target" in
;;
esac
-ln -vfs --relative "$unitpath" "$dir"
+[ ! -d "${dir}" ] && linkdir=`dirname "${dir}"` || linkdir="${dir}"
+dds="$(printf "%s" "${linkdir#${DESTDIR:-}}" |sed -r -e 's:/+[^/]+:../:g; s:/$::')"
+ln -vfs "$dds$unitpath" "$dir"
--
2.14.4