[pacman-dev] [PATCH] makepkg: Allow using sources with :: in them

Allan McRae allan at archlinux.org
Sun May 4 01:52:19 EDT 2014


On 29/04/14 05:16, William Giokas wrote:
> Git has the ability to use helper applications for interfacing with hg,
> and from what we had before, the following url::
> 
>   foo::git+hg::http://foo.bar/foobar
> 

This patch looks fine at first glance.  But for examples like that, why
would you not use the hg source directly in the PKGBUILD? What is the
advantage?

> would get converted to something along the lines of:
> 
>   filename: foo
>   URL: http://foo.bar/foobar
> 
> and the 'git+hg' part would essentially be ignored when it's getting set
> up in the 'get_protocol' and 'get_downloadclient' functions. With this
> patch it is possible to have a source link with '::' in it, however it
> is not possible to have a filename with '::', which is the current
> behavior.
> ---
>  scripts/makepkg.sh.in | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index d8cdc88..7d6ecfa 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -275,10 +275,10 @@ get_url() {
>  get_protocol() {
>  	if [[ $1 = *://* ]]; then
>  		# strip leading filename
> -		local proto="${1##*::}"
> +		local proto="${1#*::}"
>  		printf "%s\n" "${proto%%://*}"
>  	elif [[ $1 = *lp:* ]]; then
> -		local proto="${1##*::}"
> +		local proto="${1#*::}"
>  		printf "%s\n" "${proto%%lp:*}"
>  	else
>  		printf "%s\n" local
> @@ -293,7 +293,7 @@ get_downloadclient() {
>  	for i in "${DLAGENTS[@]}"; do
>  		local handler="${i%%::*}"
>  		if [[ $proto = "$handler" ]]; then
> -			local agent="${i##*::}"
> +			local agent="${i#*::}"
>  			break
>  		fi
>  	done
> 



More information about the pacman-dev mailing list