From 21d5dedfddb290da4e9beafe3e28abcdee1b7091 Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Thu, 24 Jun 2010 10:06:36 -0500
Subject: repo-add: try symlink, then hardlink, then copy for DB file

We were seeing some issues when trying to create our new database alias
using symlinks on certain filesystems (see FS#19907). Have a fallback method
in place where we first try a symlink, then a hard link, then just copy the
database if all else fails.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 scripts/repo-add.sh.in | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'scripts')

diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 7bde6007..2838f817 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -487,7 +487,10 @@ if (( success )); then
 
 	[[ -f $REPO_DB_FILE ]] && mv -f "$REPO_DB_FILE" "${REPO_DB_FILE}.old"
 	[[ -f $tmpdir/$filename ]] && mv "$tmpdir/$filename" "$REPO_DB_FILE"
-	ln -sf "$REPO_DB_FILE" "${REPO_DB_FILE%.tar.*}"
+	dblink="${REPO_DB_FILE%.tar.*}"
+	ln -sf "$REPO_DB_FILE" "$dblink" 2>/dev/null || \
+		ln -f "$REPO_DB_FILE" "$dblink" 2>/dev/null || \
+		cp "$REPO_DB_FILE" "$dblink"
 else
 	msg "$(gettext "No packages modified, nothing to do.")"
 	exit 1
-- 
cgit v1.2.3-54-g00ecf


From d7c98d4e45f614495399636bf02bc718e4a90ab8 Mon Sep 17 00:00:00 2001
From: Thomas Bächler <thomas@archlinux.org>
Date: Mon, 28 Jun 2010 13:31:59 +0200
Subject: makepkg: Only check regular files in $srcdir check

The 'grep -R' in the $srcdir check would not only grep regular files,
but also devices, symlinks (that might potentially point outside of
$pkgdir), pipes and so on. Use find to ensure only regular files are
examined.

This should fix https://bugs.archlinux.org/task/19975

Signed-off-by: Allan McRae <allan@archlinux.org>
---
 scripts/makepkg.sh.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'scripts')

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2699f637..c4c9866c 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -980,7 +980,7 @@ check_package() {
 	done
 
 	# check for references to the build directory
-	if grep -R "${srcdir}" "${pkgdir}" &>/dev/null; then
+	if find "${pkgdir}" -type f -exec grep -q "${srcdir}" {} +; then
 		warning "$(gettext "Package contains reference to %s")" "\$srcdir"
 	fi
 }
-- 
cgit v1.2.3-54-g00ecf


From 8b23aa172f6229dd82c381704d4802d9747e118b Mon Sep 17 00:00:00 2001
From: Andres P <aepd87@gmail.com>
Date: Fri, 25 Jun 2010 18:46:45 -0430
Subject: makepkg: remove bash4-only parameter expansion in check_sanity

Signed-off-by: Andres P <aepd87@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
---
 scripts/makepkg.sh.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'scripts')

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index c4c9866c..6ad83f0b 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1250,7 +1250,7 @@ check_sanity() {
 			# evaluate any bash variables used
 			eval file=${file}
 			if [[ ! -f $file ]]; then
-				error "$(gettext "%s file (%s) does not exist.")" "${i^}" "$file"
+				error "$(gettext "%s file (%s) does not exist.")" "$i" "$file"
 				return 1
 			fi
 		done
-- 
cgit v1.2.3-54-g00ecf


From 0ea52e3a4f698ce3b1c90881a2b2eaa56625f261 Mon Sep 17 00:00:00 2001
From: Allan McRae <allan@archlinux.org>
Date: Wed, 30 Jun 2010 13:29:26 +1000
Subject: makepkg: try standard paths for coreutils du

Attempt to find "du" from coreutils in the standard paths and if
not revert to the version in the users PATH.  Using the full path
prevents issues such as FS#19932, where a different and incompatible
version of du is put earlier in the users path.

Signed-off-by: Allan McRae <allan@archlinux.org>
---
 configure.ac          | 1 +
 scripts/Makefile.am   | 1 +
 scripts/makepkg.sh.in | 2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

(limited to 'scripts')

diff --git a/configure.ac b/configure.ac
index 4faf20d9..7d4e60f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -210,6 +210,7 @@ esac
 
 AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
 AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
+AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] )
 AC_SUBST(SIZECMD)
 AC_SUBST(SEDINPLACE)
 AC_SUBST(STRIP_BINARIES)
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 330acb98..0fde3345 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -42,6 +42,7 @@ edit = sed \
 	-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
 	-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
 	-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
+	-e 's|@DUPATH[@]|$(DUPATH)|g' \
 	-e 's|@configure_input[@]|Generated from $@.in; do not edit by hand.|g'
 
 ## All the scripts depend on Makefile so that they are rebuilt when the
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 6ad83f0b..f3c72172 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -902,7 +902,7 @@ write_pkginfo() {
 	else
 		local packager="Unknown Packager"
 	fi
-	local size="$(du -sk)"
+	local size="$(@DUPATH@ -sk)"
 	size="$(( ${size%%[^0-9]*} * 1024 ))"
 
 	msg2 "$(gettext "Generating .PKGINFO file...")"
-- 
cgit v1.2.3-54-g00ecf