[pacman-dev] [PATCH] makepkg: compare paths using bash test

Allan McRae allan at archlinux.org
Mon Oct 4 04:55:51 EDT 2010


Compare paths using bash's "-ef" rather than by string tests as this
takes symlinks into account.  This will prevent issues similar to those
in FS#20922 if (e.g.) $PKGDEST is a symlink to $startdir.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 scripts/makepkg.sh.in |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ccf4213..e9a82a9 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1061,7 +1061,7 @@ create_package() {
 		exit 1 # TODO: error code
 	fi
 
-	if (( ! ret )) && [[ "$PKGDEST" != "${startdir}" ]]; then
+	if (( ! ret )) && [[ "$PKGDEST" -ef "${startdir}" ]]; then
 		ln -sf "${pkg_file}" "${pkg_file/$PKGDEST/$startdir}"
 		ret=$?
 	fi
@@ -1142,7 +1142,7 @@ create_srcpackage() {
 		exit 1 # TODO: error code
 	fi
 
-       if (( ! ret )) && [[ "$SRCPKGDEST" != "${startdir}" ]]; then
+       if (( ! ret )) && [[ "$SRCPKGDEST" -ef "${startdir}" ]]; then
            ln -sf "${pkg_file}" "${pkg_file/$SRCPKGDEST/$startdir}"
            ret=$?
        fi
@@ -1704,7 +1704,7 @@ fi
 
 if (( CLEANCACHE )); then
 	#fix flyspray feature request #5223
-	if [[ -n $SRCDEST && $SRCDEST != $startdir ]]; then
+	if [[ -n $SRCDEST && $SRCDEST -ef "${startdir}" ]]; then
 		msg "$(gettext "Cleaning up ALL files from %s.")" "$SRCDEST"
 		echo -n "$(gettext "    Are you sure you wish to do this? ")"
 		echo -n "$(gettext "[y/N]")"
-- 
1.7.3.1



More information about the pacman-dev mailing list