Stream: git-wasmtime

Topic: wasmtime / issue #8165 Curl install fails with 404


view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 09:16):

hschne opened issue #8165:

This is similar to #7377. The installation script fails with a 404 - at least for me.

curl https://wasmtime.dev/install.sh -sSf | bash
curl: option -w: blank argument where content is expected
curl: try 'curl --help' for more information
  Installing latest version of Wasmtime ()
    Checking for existing Wasmtime installation
    Fetching archive for Linux, version
https://github.com/bytecodealliance/wasmtime/releases/download//wasmtime--x86_64-linux.tar.xz
curl: (22) The requested URL returned error: 404

Error: Could not download Wasmtime version ''. See https://github.com/bytecodealliance/wasmtime/releases for a list of available releases

The root cause is a faulty (?) curl command when retrieving the latest release version.

curl -w '' "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | \
    tr -d '\n' | \
    sed 's/.*tag_name": *"//' | \
    sed 's/".*//'
curl: option -w: blank argument where content is expected

Possibly, this is due to some specifics on my system, or maybe something recently changed with cURL. For reference:

$ curl --version
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0
Release-Date: 2024-01-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

For me, removing the -m '' resolves the issue. I'd love to fix this upstream, but I haven't found where I could modify the install script. I'd be happy to work on this myself or close this issue if nobody else faces this :slightly_smiling_face:

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 14:46):

alexcrichton commented on issue #8165:

Looks like this -w flag (assuming your last comment about -m '' is a typo), was added in https://github.com/bytecodealliance/wasmtime.dev/pull/19. I don't necessarily know enough about the curl CLI myself, but @tpyle might?

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 15:11):

tpyle commented on issue #8165:

Hi @hschne,

What version of curl are you using? (curl --version should show you).

The -w flag should work fine if the contents are empty. All it does it add (or in this case, remove) some text from the end of the output.

It may also be what OS you're on, can you provide the output of uname -a?

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 16:11):

hschne edited issue #8165:

This is similar to #7377. The installation script fails with a 404 - at least for me.

curl https://wasmtime.dev/install.sh -sSf | bash
curl: option -w: blank argument where content is expected
curl: try 'curl --help' for more information
  Installing latest version of Wasmtime ()
    Checking for existing Wasmtime installation
    Fetching archive for Linux, version
https://github.com/bytecodealliance/wasmtime/releases/download//wasmtime--x86_64-linux.tar.xz
curl: (22) The requested URL returned error: 404

Error: Could not download Wasmtime version ''. See https://github.com/bytecodealliance/wasmtime/releases for a list of available releases

The root cause is a faulty (?) curl command when retrieving the latest release version.

curl -w '' "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | \
    tr -d '\n' | \
    sed 's/.*tag_name": *"//' | \
    sed 's/".*//'
curl: option -w: blank argument where content is expected

Possibly, this is due to some specifics on my system, or maybe something recently changed with cURL. For reference:

$ curl --version
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0
Release-Date: 2024-01-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

For me, removing the -w '' resolves the issue. I'd love to fix this upstream, but I haven't found where I could modify the install script. I'd be happy to work on this myself or close this issue if nobody else faces this :slightly_smiling_face:

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 16:13):

hschne commented on issue #8165:

@alexcrichton That -m was a typo, fixed.

@tpyle The Curl version is curl 8.6.0, the output was already in the original issue description. I use Arch Btw. Jokes aside, output of uname.

uname -a
Linux gamma 6.7.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000 x86_64 GNU/Linux

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 16:41):

tpyle commented on issue #8165:

Sorry, my bad. Totally missed that!

It looks like curl had a change in https://github.com/curl/curl/pull/12620 that makes it so an empty -w argument causes that error to appear (it was introduced in 8.6.0, every other version of linux I've used is on a version prior to that).

I guess we'd have to change the script to handle that. The get_latest_release function is just returning the latest tag name, so we could do something like curl -I https://github.com/bytecodealliance/wasmtime/releases/latest and just parse out the location header that's sent back to retrieve the tab (although this would rely on github maintaining this functionality), or just fix the tr/sed commands afterwards to correctly grab the tag even if there's noise after the message.

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 16:42):

tpyle edited a comment on issue #8165:

Sorry, my bad. Totally missed that!

It looks like curl had a change in https://github.com/curl/curl/pull/12620 that makes it so an empty -w argument causes that error to appear (it was introduced in 8.6.0, every other version of linux I've used is unfortunately on a version prior to that).

I guess we'd have to change the script to handle that. The get_latest_release function is just returning the latest tag name, so we could do something like curl -I https://github.com/bytecodealliance/wasmtime/releases/latest and just parse out the location header that's sent back to retrieve the tab (although this would rely on github maintaining this functionality), or just fix the tr/sed commands afterwards to correctly grab the tag even if there's noise after the message.

view this post on Zulip Wasmtime GitHub notifications bot (Mar 18 2024 at 22:09):

tpyle commented on issue #8165:

I had filed an issue on curl (https://github.com/curl/curl/issues/13144), where someone posted a workaround. I have a PR (https://github.com/bytecodealliance/wasmtime.dev/pull/24) which addresses this

view this post on Zulip Wasmtime GitHub notifications bot (Mar 19 2024 at 03:13):

alexcrichton closed issue #8165:

This is similar to #7377. The installation script fails with a 404 - at least for me.

curl https://wasmtime.dev/install.sh -sSf | bash
curl: option -w: blank argument where content is expected
curl: try 'curl --help' for more information
  Installing latest version of Wasmtime ()
    Checking for existing Wasmtime installation
    Fetching archive for Linux, version
https://github.com/bytecodealliance/wasmtime/releases/download//wasmtime--x86_64-linux.tar.xz
curl: (22) The requested URL returned error: 404

Error: Could not download Wasmtime version ''. See https://github.com/bytecodealliance/wasmtime/releases for a list of available releases

The root cause is a faulty (?) curl command when retrieving the latest release version.

curl -w '' "https://api.github.com/repos/bytecodealliance/wasmtime/releases/latest" | \
    tr -d '\n' | \
    sed 's/.*tag_name": *"//' | \
    sed 's/".*//'
curl: option -w: blank argument where content is expected

Possibly, this is due to some specifics on my system, or maybe something recently changed with cURL. For reference:

$ curl --version
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0
Release-Date: 2024-01-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

For me, removing the -w '' resolves the issue. I'd love to fix this upstream, but I haven't found where I could modify the install script. I'd be happy to work on this myself or close this issue if nobody else faces this :slightly_smiling_face:

view this post on Zulip Wasmtime GitHub notifications bot (Mar 19 2024 at 03:13):

alexcrichton commented on issue #8165:

Should be fixed by https://github.com/bytecodealliance/wasmtime.dev/pull/24


Last updated: Dec 23 2024 at 12:05 UTC