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]>
---
 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/"
-- 
2.24.0

Reply via email to