From edd44df686b4ec983a327cabc5035106addb274f Mon Sep 17 00:00:00 2001
From: Carlos Santos <unixmania@gmail.com>
Date: Mon, 16 Sep 2019 22:22:37 -0300
Subject: [PATCH] install: support old ln versions without the -r option

Oldish enterprise-class Linux distributions have outdated versions of
coreutils whose ln command do not support the -r option. Also non-Linux
systems like FreeBSD don't support that option. Use a shell script that
mimics the missing functionality.

The script creates minimalist relative paths, like ln -r does, but in
order to simplify the logic, it requires that the arguments be absolute
paths and do not end with '/'. This is enough for our purposes.

Add configuration logic to detect if ln supports the -r option, based on
the logic used by Autoconf to check if ln supports the -s option.

Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
 Makefile.am     |  6 ++--
 configure.ac    |  2 ++
 ln-srf          | 49 ++++++++++++++++++++++++++
 m4/ac_ln_srf.m4 | 91 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 145 insertions(+), 3 deletions(-)
 create mode 100755 ln-srf
 create mode 100644 m4/ac_ln_srf.m4

diff --git a/Makefile.am b/Makefile.am
index 76b81de5..beb2882e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -988,11 +988,11 @@ install-exec-hook:
 	$(INSTALL) -d -m 755 $(DESTDIR)$(pkgfilterdir)
 	$(INSTALL) -d -m 755 $(DESTDIR)$(pkgbackenddir)
 if ENABLE_FOOMATIC
-	$(LN_S) -r -f $(DESTDIR)$(pkgfilterdir)/foomatic-rip $(DESTDIR)$(bindir)
+	$(LN_SRF) $(DESTDIR)$(pkgfilterdir)/foomatic-rip $(DESTDIR)$(bindir)
 endif
 if ENABLE_DRIVERLESS
-	$(LN_S) -r -f $(DESTDIR)$(pkgppdgendir)/driverless $(DESTDIR)$(bindir)
-	$(LN_S) -r -f $(DESTDIR)$(pkgppdgendir)/driverless $(DESTDIR)$(pkgbackenddir)
+	$(LN_SRF) $(DESTDIR)$(pkgppdgendir)/driverless $(DESTDIR)$(bindir)
+	$(LN_SRF) $(DESTDIR)$(pkgppdgendir)/driverless $(DESTDIR)$(pkgbackenddir)
 endif
 if ENABLE_BRAILLE
 	$(LN_S) -f imagetobrf $(DESTDIR)$(pkgfilterdir)/imagetoubrl
diff --git a/configure.ac b/configure.ac
index d5a539b6..fbcf829a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,6 +58,8 @@ AM_ICONV
 AC_PROG_CPP
 AC_PROG_INSTALL
 AC_PROG_LN_S
+AS_LN_SRF_PREPARE
+AC_PROG_LN_SRF
 AC_PROG_MAKE_SET
 AC_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG([0.20])
diff --git a/ln-srf b/ln-srf
new file mode 100755
index 00000000..f395a760
--- /dev/null
+++ b/ln-srf
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# Author: Carlos Santos <unixmania@gmail.com>
+# This file is in public domain.
+#
+
+error() {
+	echo "$@" 1>&2
+	exit 1
+}
+
+src="$1"
+dst="$2"
+
+check_path() {
+	case "$2" in
+		*/../*|*/./*|*/.|*/..) error "$1 path '$2' must be absolute";;
+		*/) error "$1 path '$2' must not end with '/'";;
+		/?*) ;;
+		*) error "$1 path '$2' must start with '/'";;
+	esac
+}
+
+check_path "source" "$src"
+check_path "destination" "$dst"
+
+# strip leading '/'
+src=${src#/*}
+tmp=${dst#/*}
+
+s_prefix=${src%%/*}
+d_prefix=${tmp%%/*}
+
+# strip leading common
+while [ "$s_prefix" = "$d_prefix" ]; do
+	src="${src#$s_prefix/}"
+	tmp="${tmp#$d_prefix/}"
+	s_prefix=${src%%/*}
+	d_prefix=${tmp%%/*}
+done
+
+s_prefix="../"
+while [ -n "$d_prefix" ] && [ "$tmp" != "$d_prefix" ]; do
+	s_prefix="../$s_prefix"
+	tmp="${tmp#$d_prefix/}"
+	d_prefix=${tmp%%/*}
+done
+
+ln -s -f "$s_prefix$src" "$dst"
diff --git a/m4/ac_ln_srf.m4 b/m4/ac_ln_srf.m4
new file mode 100644
index 00000000..204b3439
--- /dev/null
+++ b/m4/ac_ln_srf.m4
@@ -0,0 +1,91 @@
+# Adapted from Autoconf Version 2.63 (GPLv2).
+#
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception, the Free Software Foundation gives unlimited
+# permission to copy, distribute and modify the configure scripts that
+# are the output of Autoconf.  You need not follow the terms of the GNU
+# General Public License when using or distributing such scripts, even
+# though portions of the text of Autoconf appear in them.  The GNU
+# General Public License (GPL) does govern all other use of the material
+# that constitutes the Autoconf program.
+#
+# Certain portions of the Autoconf source text are designed to be copied
+# (in certain cases, depending on the input) into the output of
+# Autoconf.  We call these the "data" portions.  The rest of the Autoconf
+# source text consists of comments plus executable code that decides which
+# of the data portions to output in any given case.  We call these
+# comments and executable code the "non-data" portions.  Autoconf never
+# copies any of the non-data portions into its output.
+#
+# This special exception to the GPL applies to versions of Autoconf
+# released by the Free Software Foundation.  When you make and
+# distribute a modified version of Autoconf, you may extend this special
+# exception to the GPL to apply to your modified version as well, *unless*
+# your modified version has the potential to copy into its output some
+# of the text that was the non-data portion of the version that you started
+# with.  (In other words, unless your change moves or copies text from
+# the non-data portions to the data portions.)  If your modification has
+# such potential, you must delete any notice of this special exception
+# to the GPL from your modified version.
+
+# AS_LN_SRF_PREPARE
+# ------------------------------------
+m4_defun([AS_LN_SRF_PREPARE],
+[rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s -r conf$$.file conf$$ 2>/dev/null; then
+    as_ln_srf='ln -s -r -f'
+  elif ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_srf='./ln-srf'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pRf'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_srf='cp -pRf'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_srf=ln
+  else
+    as_ln_srf='cp -pRf'
+  fi
+else
+  as_ln_srf='cp -pRf'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+])# AS_LN_SRF_PREPARE
+
+# AC_PROG_LN_SRF
+# --------------------------------
+AC_DEFUN([AC_PROG_LN_SRF],
+[AC_MSG_CHECKING([whether ln -s -r -f works])
+AC_SUBST([LN_SRF], [$as_ln_srf])dnl
+if test "$LN_SRF" = "ln -s -r -f"; then
+  AC_MSG_RESULT([yes])
+else
+  AC_MSG_RESULT([no, using $LN_SRF])
+fi
+])# AC_PROG_LN_SRF
-- 
2.18.1

