conversejs / converse.js

Web-based XMPP/Jabber chat client written in JavaScript
http://conversejs.org
Mozilla Public License 2.0
3.06k stars 763 forks source link

LibreJS support #997

Open gnunicode opened 6 years ago

gnunicode commented 6 years ago

Can converse.js be made to work with LibreJS? It would be really great, considering that all of the code is libre.

--- Want to back this issue? **[Post a bounty on it!](https://app.bountysource.com/issues/54016656-librejs-support?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://app.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github).
jcbrand commented 6 years ago

I can't just put the license at the top of converse.min.js because the dependencies are also bundled and they are released under other licenses.

Looks like what's required is a JavaScript web-labels table, which specifies the license for converse.js and each of its dependencies.

https://www.gnu.org/software/librejs/manual/librejs.html#JavaScript-Web-Labels

This table can be placed on a separate HTML page and then links to it are inserted in the other pages in the site.

More info here: https://www.gnu.org/licenses/javascript-labels.html

To be honest, if you care enough about this, then I think you can do the work and make a pull request.

The work required is to identify the license for each dependency and then make the table. You can add the links if you want, but I can also do that afterwards.

gnunicode commented 6 years ago

OK. I've started work on this and I'll submit a pull request when I've completed it.

jcbrand commented 6 years ago

Wonderful, thanks.

gnunicode commented 6 years ago

https://github.com/jcbrand/converse.js/pull/1001

jcbrand commented 6 years ago

@gnunicode I merged #1001, but then afterwards noticed that you missed lots of licenses for JS dependencies that are bundled into converse.min.js

Here's a list of the files that you missed:

node_modules/otr/build/dep/crypto.js
node_modules/otr/build/dep/salsa20.js
node_modules/otr/build/dep/eventemitter.js
node_modules/otr/build/otr.js
node_modules/strophe.js/strophe.js
node_modules/strophejs-plugin-vcard/strophe.vcard.js
node_modules/strophejs-plugin-disco/strophe.disco.js
node_modules/strophejs-plugin-rsm/strophe.rsm.js
node_modules/strophejs-plugin-ping/strophe.ping.js
node_modules/snabbdom/dist/snabbdom.js
node_modules/snabbdom/dist/snabbdom-attributes.js
node_modules/snabbdom/dist/snabbdom-class.js
node_modules/snabbdom/dist/snabbdom-dataset.js
node_modules/snabbdom/dist/snabbdom-eventlisteners.js
node_modules/snabbdom/dist/snabbdom-props.js
node_modules/snabbdom/dist/snabbdom-style.js
node_modules/lodash/lodash.js
node_modules/backbone/backbone.js
node_modules/backbone.nativeview/backbone.nativeview.js
node_modules/backbone.browserStorage/backbone.browserStorage.js
node_modules/backbone.overview/dist/backbone.overview.js
node_modules/backbone.overview/dist/backbone.orderedlistview.js
node_modules/backbone.vdomview/dist/backbone.vdomview.js
node_modules/awesomplete-avoid-xss/awesomplete.js
node_modules/moment/min/moment-with-locales.js

In order to fetch them, you need to run make dev, they'll then be downloaded and available in the paths above.

gnunicode commented 6 years ago

Thanks, I will get these licenses added as soon as possible

gnunicode commented 6 years ago

Sorry there's been a bit of a delay - I've been busy but also the build system requires Chromium which is blacklisted on my distribution (Parabola) and I've had some difficulties in getting a virtual machine set up to run make dev. However I think I may be able to get all the licenses done tomorrow

jcbrand commented 6 years ago

I think the Chromium dependency is for the tests which run on chrome-headless.

As a hacky workaround, you could just remove the problematic dependency from package.json and try again (don't commit that though).

See here: https://github.com/jcbrand/converse.js/blob/master/package.json#L63

gnunicode commented 6 years ago

Thanks, it worked. I've started adding the licenses now and will create a second pull request when they're done

jcbrand commented 6 years ago

@gnunicode Are you still going to finish this task?

gnunicode commented 6 years ago

Hi, sorry I had completely forgotten about this. I do not think I will be able to though as I have other commitments at the moment.

Echolon commented 3 years ago

Hi @gnunicode

have you re-consider restart working on this?

Neustradamus commented 8 months ago

@gnunicode: Can you inform us about it?