Remix.run Logo
duskwuff 6 days ago

GPL also gets incredibly ambiguous when it's applied to anything that isn't software written in a language like C for a personal computer. (What does "linking" even mean with respect to a Javascript library, for instance?)

account42 5 days ago | parent | next [-]

It's only unclear if you are trying to skirt the spirit of the GPL.

People who aren't trying to get freebies from he commons without paying back never had a problem with the GPL.

pabs3 6 days ago | parent | prev | next [-]

Just think about the goals of the GPL (software freedom for users), and its easy to see what you should do. Make it practical for a user to obtain and modify the source form (non-minified, non-transpiled, non-concatenated TypeScript/JavaScript/etc) of the library, build the version ran by the web browser, and replace the original with their modified version. Source maps can make part of that easier too. Progressive enhancement helps. Clean frontend/backend separation helps.

duskwuff 6 days ago | parent [-]

The "goals" of the license are irrelevant. What matters from a legal perspective is the text of the license, and every time that text sets legal conditions which reference specific technologies like "linking", "object code", or "interface definition files" which don't apply to all programming languages, a lawyer's blood pressure rises.

anikom15 5 days ago | parent [-]

Intent is relevant in law, especially when text is insufficient to determine a clear meaning.

notpushkin 6 days ago | parent | prev | next [-]

> For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

So I think it would cover pretty much any JS library usage, except maybe if you just drop in a widget and don’t interact with it in any way.

muragekibicho 6 days ago | parent | prev [-]

Exactly. I was building a WASM lib using Emscripten and this was the exact question I could not answer