diff options
| -rw-r--r-- | scripts/makepkg.sh.in | 25 | 
1 files changed, 21 insertions, 4 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index c2f89c97..67ee22a6 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"  | 
