[pacman-dev] [PATCHv2] Add support for all bzr URLs in the PKGBUILD source array

Maxime Gauduin alucryd at gmail.com
Wed Apr 10 12:54:02 EDT 2013


This patch is a merge of "[PATCH] More verbose bzr branching error",
"[PATCH 1/2] Add support for bzr lp URLs in makepkg", "[PATCH 2/2]
Accept all bzr URLs in the source array" and "[PATCH] Fix dest dir when
using lp: URLs in the source array". It adds support for all bzr URLs,
including "lp:" URLs, in the source array. This, however, requires an
internet connection and will fall back to the current behavior for
offline builds. In that case, only the URL reported by 'bzr config
parent_location' run inside the local repo can be used.

Signed-off-by: Maxime Gauduin <alucryd at gmail.com>
---
 scripts/makepkg.sh.in | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index da620a4..7319504 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -245,6 +245,9 @@ get_filename() {
 			filename=${netfile%%#*}
 			filename=${filename%/}
 			filename=${filename##*/}
+			if [[ $proto = bzr* ]]; then
+				filename=${filename#*lp:}
+			fi
 			if [[ $proto = git* ]]; then
 				filename=${filename%%.git*}
 			fi
@@ -269,6 +272,9 @@ get_protocol() {
 		# strip leading filename
 		local proto="${1##*::}"
 		printf "%s\n" "${proto%%://*}"
+	elif [[ $1 = *lp:* ]]; then
+		local proto="${1##*::}"
+		printf "%s\n" "${proto%%lp:*}"
 	else
 		printf "%s\n" local
 	fi
@@ -471,10 +477,21 @@ download_bzr() {
 		fi
 	elif (( ! HOLDVER )); then
 		# Make sure we are fetching the right repo
-		if [[ "$url" != "$(bzr config parent_location -d $dir)"  ]] ; then
-			error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
-			plain "$(gettext "Aborting...")"
-			exit 1
+		local distant_url="$(bzr info $url 2> /dev/null | sed -n '/branch root/{s/  branch root: //p;q;}')"
+		local local_url="$(bzr config parent_location -d $dir)"
+		if [[ -n $distant_url ]]; then
+			if [[ $distant_url != "$local_url" ]]; then
+				error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
+				plain "$(gettext "Aborting...")"
+				exit 1
+			fi
+		else
+			if [[ $url != "$local_url" ]] ; then
+				error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
+				error "$(gettext "The local URL is %s")" "$local_url"
+				plain "$(gettext "Aborting...")"
+				exit 1
+			fi
 		fi
 		msg2 "$(gettext "Pulling %s ...")" "${displaylocation}"
 		cd_safe "$dir"
-- 
1.8.2



More information about the pacman-dev mailing list