[pacman-dev] [PATCH] Replace usage of "cp -s" with the more portable "ln -s"

Sebastian Nowicki sebnow at gmail.com
Tue May 20 13:51:38 EDT 2008

The "-s" argument does not exist on BSD, and neither does
"--remove-destination". This patch replaces the calls to
"cp -s --remove-destination" with the equivalent "rm -f" and "ln -s"
calls, in order to increase portability.

Signed-off-by: Sebastian Nowicki <sebnow at gmail.com>
 scripts/makepkg.sh.in |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index f56bcda..9da3687 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -435,11 +435,13 @@ download_sources() {
 		local file=$(strip_url "$netfile")
 		if [ -f "$startdir/$file" ]; then
 			msg2 "$(gettext "Found %s in build dir")" "$file"
-			cp -s --remove-destination "$startdir/$file" "$srcdir/"
+			rm -f "$srcdir/$file"
+			ln -s "$startdir/$file" "$srcdir/"
 		elif [ -f "$SRCDEST/$file" ]; then
 			msg2 "$(gettext "Using cached copy of %s")" "$file"
-			cp -s --remove-destination "$SRCDEST/$file" "$srcdir/"
+			rm -f "$srcdir/$file"
+			ln -s "$SRCDEST/$file" "$srcdir/"
@@ -464,7 +466,8 @@ download_sources() {
 		if echo "$dlclient" | grep -q "%o" ; then
 			mv -f "$SRCDEST/$file.part" "$SRCDEST/$file"
-		cp -s --remove-destination "$SRCDEST/$file" "$srcdir/"
+		rm -f "$srcdir/$file"
+		ln -s "$SRCDEST/$file" "$srcdir/"
 	popd &>/dev/null

More information about the pacman-dev mailing list