[pacman-dev] [PATCH] makepkg: do not download VCS sources unless needed

Allan McRae allan at archlinux.org
Sun Jul 15 10:00:37 EDT 2012


VCS sources are not needed for --geninteg or --source operations.
This also prevents VCS downloads outputting to stdout, which
prevented piping -g output to the PKGBUILD.

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

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 93587b3..8ab621a 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -511,6 +511,11 @@ download_svn() {
 download_sources() {
 	msg "$(gettext "Retrieving Sources...")"
 
+	local GET_VCS=1
+	if [[ $1 == "fast" ]]; then
+		GET_VCS=0
+	fi
+
 	pushd "$SRCDEST" &>/dev/null
 
 	local netfile
@@ -525,10 +530,10 @@ download_sources() {
 				download_file "$netfile"
 				;;
 			git*)
-				download_git "$netfile"
+				(( GET_VCS )) && download_git "$netfile"
 				;;
 			svn*)
-				download_svn "$netfile"
+				(( GET_VCS )) && download_svn "$netfile"
 				;;
 			*)
 				error "$(gettext "Unknown download protocol: %s")" "$proto"
@@ -2377,7 +2382,7 @@ if (( GENINTEG )); then
 	mkdir -p "$srcdir"
 	chmod a-s "$srcdir"
 	cd_safe "$srcdir"
-	download_sources
+	download_sources fast
 	generate_checksums
 	exit 0 # $E_OK
 fi
@@ -2519,10 +2524,11 @@ if (( SOURCEONLY )); then
 	mkdir -p "$srcdir"
 	chmod a-s "$srcdir"
 	cd_safe "$srcdir"
-	if ( (( ! SKIPCHECKSUMS )) || \
-			( (( ! SKIPPGPCHECK )) && source_has_signatures ) ) || \
-			(( SOURCEONLY == 2 )); then
+	if (( SOURCEONLY == 2 )); then
 		download_sources
+	elif ( (( ! SKIPCHECKSUMS )) || \
+			( (( ! SKIPPGPCHECK )) && source_has_signatures ) ); then
+		download_sources fast
 	fi
 	check_source_integrity
 	cd_safe "$startdir"
-- 
1.7.11.2



More information about the pacman-dev mailing list