On 26/11/19 10:07 am, Eli Schwartz wrote:
> In commit 9c817b654996249b8022e189ee7e2692f4668431 we made these sources
> extendable, and heuristically determined the correct extraction
> functions to use. But our fallback for protos that didn't have an exact
> extract_* function didn't take into account that 'extract_file' matches
> an actual proto... so we passed the netfile in while the function
> expected a file.
> 
> Solution: the function should expect a netfile too, thereby allowing us
> to delay an attempted resolution of netfile -> file, to the one case
> where it is actually used. This makes us slightly more efficient in the
> non-file case, makes our functions a bit more consistent, and makes
> file:// extraction work again.
> 
> Fixes FS#64648
> 
> Signed-off-by: Eli Schwartz <[email protected]>
> ---

Looks fine to me.

A

>  scripts/libmakepkg/source.sh.in      | 3 +--
>  scripts/libmakepkg/source/file.sh.in | 3 ++-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/libmakepkg/source.sh.in b/scripts/libmakepkg/source.sh.in
> index 16db14af..4eaf6269 100644
> --- a/scripts/libmakepkg/source.sh.in
> +++ b/scripts/libmakepkg/source.sh.in
> @@ -75,12 +75,11 @@ extract_sources() {
>  
>       get_all_sources_for_arch 'all_sources'
>       for netfile in "${all_sources[@]}"; do
> -             local file=$(get_filename "$netfile")
>               local proto=$(get_protocol "$netfile")
>               if declare -f extract_$proto > /dev/null; then
>                       extract_$proto "$netfile"
>               else
> -                     extract_file "$file"
> +                     extract_file "$netfile"
>               fi
>       done
>  }
> diff --git a/scripts/libmakepkg/source/file.sh.in 
> b/scripts/libmakepkg/source/file.sh.in
> index 7297a1c6..df4256f7 100644
> --- a/scripts/libmakepkg/source/file.sh.in
> +++ b/scripts/libmakepkg/source/file.sh.in
> @@ -83,8 +83,9 @@ download_file() {
>  }
>  
>  extract_file() {
> -     local file=$1
> +     local netfile=$1
>  
> +     local file=$(get_filename "$netfile")
>       local filepath=$(get_filepath "$file")
>       rm -f "$srcdir/${file}"
>       ln -s "$filepath" "$srcdir/"
> 

Reply via email to