summaryrefslogtreecommitdiffstats
path: root/package/systemd/0002-install-don-t-use-ln-relative.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/systemd/0002-install-don-t-use-ln-relative.patch')
-rw-r--r--package/systemd/0002-install-don-t-use-ln-relative.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/package/systemd/0002-install-don-t-use-ln-relative.patch b/package/systemd/0002-install-don-t-use-ln-relative.patch
new file mode 100644
index 0000000000..e76ce4378a
--- /dev/null
+++ b/package/systemd/0002-install-don-t-use-ln-relative.patch
@@ -0,0 +1,76 @@
+From ecf3b9baaebda1d9182c22dc504e32ed275d4abb Mon Sep 17 00:00:00 2001
+From: Adam Duskett <Adamduskett@outlook.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]
+Signed-off-by: Adam Duskett <Adamduskett@outlook.com>
+---
+ meson.build | 2 +-
+ tools/meson-make-symlink.sh | 3 ++-
+ units/meson-add-wants.sh | 5 +++--
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index ddc061c..614201a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -531,7 +531,7 @@ foreach prog : progs
+ endforeach
+
+ if run_command('ln', '--relative', '--help').returncode() != 0
+- error('ln does not support --relative')
++ message('ln does not support --relative')
+ endif
+
+ ############################################################
+diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
+index 47a5e70..e9002ad 100755
+--- a/tools/meson-make-symlink.sh
++++ b/tools/meson-make-symlink.sh
+@@ -7,5 +7,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 dfd287e..8c08283 100755
+--- a/units/meson-add-wants.sh
++++ b/units/meson-add-wants.sh
+@@ -13,7 +13,7 @@ case "$target" in
+ ;;
+ esac
+
+-unitpath="${DESTDIR:-}${unitdir}/${unit}"
++unitpath="${unitdir}/${unit}"
+
+ case "$target" in
+ */)
+@@ -24,4 +24,5 @@ case "$target" in
+ ;;
+ esac
+
+-ln -vfs --relative "$unitpath" "$dir"
++dds="$( dirname `printf "%s" "${dir#${DESTDIR:-}}" |sed -r -e 's:/+[^/]+:../:g; s:/$::'` )"
++ln -vfs "$dds$unitpath" "$dir"
+--
+2.14.3
+
OpenPOWER on IntegriCloud