CQ issue: LGPL content distributed with Electron

https://dev.eclipse.org/ipzilla/show_bug.cgi?id=18717#c37

In short a library bundled with Electron is of LGPL license: libffmpeg. Looks like it comes from Chromium, and is downloaded as a post-install script for the “electron” npm module, that we depend-on.

I think that in this case, if required, we should go forward and request an exception from the Eclipse board; the alternative is to remove the dependency and so give-up on having native (Electron) Theia applications.

[original thread by Marc Dumais]

Update: Electron has previously been granted an exception, to be distributed by/with the Eclipse Orion project. Sharon will look into the details and see if the exception would also cover our case.

[Santhosh Hari]

Do we have an example of embedding theia inside an angular app ?

[Santhosh Hari]

I couldn’t find any such examples

@santhosh-hari please start a new thread/conversation for this distinct subject

[Rob Moran]

Considering the removal of Electron in Theia is pretty disastrous for us. @marc-dumais please let me know if I can help justify having this support kept. I wonder how google license this package in Chrome and whether it’s actually Electron distributing it in our case, not Theia?

@thegecko +1 : My understanding is that the Foundation is being extra careful with anything *GPL. In this case, IIUC, there is not copyright issue so long as the requirements of the LGPL are respected (LGPL library dynamically linked-to (it is), proper attribution, source code provided or offer of providing it, …).

I think it does not really matter where the LGPL library comes from, if it gets pulled when a Theia developer runs “yarn” to build a Theia application, we are considered to be distributing it.

The fact that this exception was previously granted for another project is a good clue that it’s possible, so I am not worried. BTW, Electron is also important to us, as some of our users want to just use a “desktop” application.

[Rob Moran]

I’m not 100% sure ffmpeg is bundled with Electron any more. This thread seems to suggest that it’s an optional .so file that end users have to build into electron in order to use it: https://github.com/electron/libchromiumcontent/issues/174

Hi Rob! I think at the time they were bundling a static version of libffmpeg, that could not easily be replaced. Since then they have changed it to a dynamic library that can be, and also has the advantage of being usable from non-*GPL code while complying with the LGPL. (see this, linked from the issue you reference above: https://github.com/electron/libchromiumcontent/pull/279)

I installed the latest Electron, 4.0.8, and confirmed that libffmpeg is still bundled:

$ find . -name libffmpeg.so
./node_modules/electron/dist/libffmpeg.so

Update: I was asked to break-out the Electron dependency in a separate CQ. Here it is: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=19253

On the CQ, there is a question asked about Theia’s usage of Electron. I will try responding, but would welcome others also giving feedback. For convenience, here it is: “What is the value that Theia brings in the local scenario in comparison to VSCode?”

What is the value that Theia brings in the local scenario in comparison to VSCode?

You cannot build white-labeled products like ARM Mbed Studio with VS Code.

for enterprises who used to build custom products based on Eclipse RCP there is a lot of value in it

btw i wanted to make Electron dev dependency, so that it is not installed by default, i.e. for cloud cases and clients who needs it would need to include it explicitly in app package.json

but i guess it won’t help with CQ