Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Feb 2015 14:49:23 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-projects@freebsd.org
Subject:   svn commit: r378659 - projects/rework-dependency-registration/Mk/Scripts
Message-ID:  <201502081449.t18EnNdK022263@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sun Feb  8 14:49:23 2015
New Revision: 378659
URL: https://svnweb.freebsd.org/changeset/ports/378659
QAT: https://qat.redports.org/buildarchive/r378659/

Log:
  Replace realpath(1) by a code that only resolve the final symlink and leaves all
  others as is while transforming the path into an absolute path
  
  This solve the pgp dependency

Modified:
  projects/rework-dependency-registration/Mk/Scripts/actual-package-depends.sh

Modified: projects/rework-dependency-registration/Mk/Scripts/actual-package-depends.sh
==============================================================================
--- projects/rework-dependency-registration/Mk/Scripts/actual-package-depends.sh	Sun Feb  8 14:31:24 2015	(r378658)
+++ projects/rework-dependency-registration/Mk/Scripts/actual-package-depends.sh	Sun Feb  8 14:49:23 2015	(r378659)
@@ -7,6 +7,45 @@ if [ -z "${PKG_BIN}" ]; then
 	exit 1
 fi
 
+resolv_symlink() {
+	local file tgt
+	file=${1}
+	if [ ! -L ${file} ] ; then
+		echo ${file}
+		return
+	fi
+
+	tgt=`readlink ${file}`
+	case $tgt in
+	/*)
+		echo $tgt
+		return
+		;;
+	esac
+
+	file=${file%/*}/${tgt}
+	absolute_path ${file}
+}
+
+absolute_path() {
+	local file myifs target
+	file=$1
+
+	myifs=${IFS}
+	IFS='/'
+	set -- ${file}
+	IFS=${myifs}
+	for el; do
+		case $el in
+		.) continue ;;
+		'') continue ;;
+		..) target=${target%/*} ;;
+		*) target="${target}/${el}" ;;
+		esac
+	done
+	echo ${target}
+}
+
 find_dep() {
 	pattern=$1
 	case ${pattern} in
@@ -22,7 +61,8 @@ find_dep() {
 		;;
 	esac
 	if [ -n "${searchfile}" ]; then
-		${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(/bin/realpath ${searchfile} 2>/dev/null)" ||
+		echo $(resolv_symlink ${searchfile}) >&2
+		${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(resolv_symlink ${searchfile} 2>/dev/null)" ||
 			echo "actual-package-depends: dependency on ${searchfile} not registered (normal if it belongs to base)" >&2
 	fi
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201502081449.t18EnNdK022263>