Encouraging Discourse to free their JavaScript

Dear fellow FS supporters,

Are people feeling, like I do, that we could encourage Discourse to free their JavaScript?

What do you exactly mean by that? Discourse is fully GPLv2+ as per https://github.com/discourse/discourse#copyright--license

(Also found this related discussion thread: https://meta.discourse.org/t/is-discourse-fully-free/86769 )

Hi Jan, what I mean by that is with LibreJS enabled I’m seeing an empty page on
community.fsfe.org and on https://meta.discourse.org/t/is-discourse-fully-free/86769.

I haven’t really tested LibreJS, but I think it requires License statements inside the js scripts or snippets in order to validate their license. This practice is not very common among Javascript developers (or web developers in general), but that doesn’t make their code less Free Software. Most developers place the License statement inside the source code repositories.

But, out of curiosity, it would be interesting to see the LibreJS report from your browser, in case there is something else going on that prevents your browser from rendering Discourse.

Hi Nikos,

If I don’t whitelist community.fsfe.org, then the report of LibreJS is they it blocked when I visit community.fsfe.org:

https://community.fsfe.org/assets/locales/en-2e27da89433f0c90dfb3e93a39119f3e447372278274440809e3745c792c7c4a.js

https://community.fsfe.org/assets/ember_jquery-cf9339810550f9c92505dfbb37362c58a4a8a83bcee2d99174547b01c06ed7d3.js

https://community.fsfe.org/assets/preload-store-081120a9f8cb0871483b66a95e534ce8e81f97d19c8cef978aea6c696d1feb20.js

https://community.fsfe.org/assets/vendor-3eae3eec8fba033cb1b5af6c103a5b8781caa69cf97fe7773ba89ba68980b263.js

https://community.fsfe.org/assets/application-3d2094dcf63011a3d7f3594a5aab65541389cbc4834f47104f76b32d6f7c014d.js

https://community.fsfe.org/assets/plugin-9bb7f2ce6b34def278e8508868e2fc8e4e37de02c2173ce0b4a18d3ffd2b6004.js

https://community.fsfe.org/assets/plugin-third-party-01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b.js

https://community.fsfe.org/assets/preload-application-data-0a59ccab480941aaac91f9e7fa7f77496323ae056aaa4158822dea35de319c01.js

https://community.fsfe.org/assets/browser-update-d924ff41586d6dcda055f0cfb41488724ba2e2d5271fef65ce5f480b46f9231d.js

for being eternal scripts with no known licence.

After looking into what LibreJS is and also getting a pull request for a change related to it in a project I’m active in, I’m not very happy about it.

For example, this pull request: https://github.com/opensourcedesign/opensourcedesign.github.io/pull/222 is for marking https://opensourcedesign.net “libre” for LibreJS. Some issues with that:

So LibreJS should have an automatic allowlist for open source libraries, as well as check for established standards of communicating licenses. As it is now, it just creates busywork for maintainers of open source projects.

As far as I know, they white-list a bunch of well known libraries but seem to have some problems if those are located at the domain of the web-page instead of the CDN upstream provides. Which for me is kind of conter-intuitive.

I would also appreciate it if we as the FSFE set a good example and clearly marked our Javascript as Free Software. This does not mean we need to modify the source files. We can add Web Labels to achieve the same effect: https://www.gnu.org/software/librejs/free-your-javascript.html

To me, it is not mainly about LibreJS, but more about clear communication. It is not trivial to distinguish free Javascript from non-free Javascript, neither for software, nor for humans. Clearly marking the license is what we advocate for code repositories (where having a license file is common, but we people to be more explicit, for good reasons) and so it is equally important to clearly mark the license of the software we distribute to people.

I think the best place to fix this, would be upstream so all instances of Discourse can profit from the fix.

The people who feel strongly about this should consider contributing upstream to Discourse. I don’t think we run any custom js code here.

In general I agree with Jan’s assessment. Marking javascript libraries as non-free because they lack a license header, seems like a big logical leap that goes against common practices in (free) software development.

The issue has been raised [1] at Discourse where the status quo has been defended by stating that LibreJS’s reach is so tiny.
It looks like a chicken-and-egg challenge: who will use LibreJS, because site owners don’t adapt to it, because the user base is so small.

[1] https://meta.discourse.org/t/discourse-is-not-usable-with-librejs-active-can-you-add-license-headers-please/68066