Subject: [bug#77653] [PATCH 0/4] Add WASM toolchain, wasi-libc, and browser WASM sandbox support

From: Ian Eure <[email-masked]>
Date: Fri, 02 May 2025 15:48:23 -0700

Hi Maxim,

Maxim Cournoyer <[email-masked]> writes:

> Hi,
>
> Ian Eure <[email-masked]> writes:
>
>> Hi Maxim, Z572,
>>
>> Maxim Cournoyer <[email-masked]> writes:
>>
>>> Hi Ian,
>>>
>>>
>>> Thanks for picking it up!  Nice series.  I've left a few 
>>> hopefully
>>> useful comments.  Could you please prepare a v2 taking them 
>>> into
>>> account?
>>
>> Sorry about the delay on this.  I appreciate the feedback and 
>> have a
>> v2 in decent shape that incorporates nearly all the feedback 
>> from the
>> two of you.
>>
>> Unfortunately, this work is currently blocked due to unclear 
>> licensing
>> of the WASI specification, which wasi-libc includes a copy of 
>> via Git
>
> WASI specification sounds like non-functional data more than 
> code,
> right?  If that's correct, then it shouldn't be an impediment to 
> having
> this merged in GNU Guix (though of course having this licensing 
> issue
> fixed upstream would be nice), as the GNU FSDG has an exception 
> for
> non-functional data, as long as is freely distributable.  See 
> the
> 'Non-functional Data' paragraph, specifically:

The stuff in the WASI repo is used to generate api.h in 
wasi-libc[1].  Since it’s already in there, maybe we don’t need to 
package the WASI repo or fetch the submodule at all.

>> It can be included in a free system distribution as long as its
>> license gives you permission to copy and redistribute, both for
>> commercial and non-commercial purposes.

The issue is that it’s unclear whether it has a user license at 
all.  The only licensing information in the project is two 
sentences saying[2]:

    Copyright © 2019-2023 the Contributors to the WASI 
    Specification,
    published by the WebAssembly Community Group under the W3C
    Community Contributor License Agreement (CLA). A 
    human-readable
    summary is available.

The CLA itself covers contributions into the project.  While 
section 12.8 has some language about the terms it can be provided 
under, a specific license laying out those terms is not provided. 
It also appears to cover the Specification, which is the final 
work product, which hasn’t been published yet.  Section 5 also 
allows contributions to be withdrawn up to 45 days after being 
contributed, which makes it incompatible with the GPL’s "Basic 
Permissions," which states:

    All rights granted under this License are granted for the term 
    of
    copyright on the Program, and are irrevocable provided the 
    stated
    conditions are met.

I’ll see if wasi-libc builds without the WASI module and go from 
there.

Thanks,

  -- Ian

[1]: 
https://github.com/WebAssembly/wasi-libc/blob/main/libc-bottom-half/headers/public/wasi/api.h
[2]: https://github.com/WebAssembly/WASI/blob/main/LICENSE.md