Closed Bug 430138 Opened 16 years ago Closed 16 years ago

Use ExtJS 2.1.0 to fix a UI bug in CSS grids on Firefox 3

Categories

(Testopia :: General, defect)

defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: LpSolit, Assigned: gregaryh)

References

()

Details

ExtJS 2.1.0 has been released yesterday, which fixes a bug when viewing grids with Firefox 3 (columns are not correctly aligned). This is a major problem for all users using Firefox 3 and Testopia should use this new release asap.
Extjs 2.1 was moved from LGPL to GPL. I need to work out the legal issues. Anyone know a good open source lawyer that would give some pro bono advice?
Greg: the Foundation has lawyers available to meet all your lawyer needs.

The GPL and the MPL are incompatible; you can't used GPLed code in an MPLed app. So you either need to persuade them to change back, or ask the person who authored the particular fix if you can pinch it for your copy of 2.0 under the LGPL.

Also, you really should have checked with the licensing team even before including LGPLed code. How exactly is Testopia using ExtJS? Where in the tree is it checked in?

Gerv
(In reply to comment #2)
> Greg: the Foundation has lawyers available to meet all your lawyer needs.
> 
> The GPL and the MPL are incompatible; you can't used GPLed code in an MPLed
> app. So you either need to persuade them to change back, or ask the person who
> authored the particular fix if you can pinch it for your copy of 2.0 under the
> LGPL.

Not much chance of that, 

 
> Also, you really should have checked with the licensing team even before
> including LGPLed code. How exactly is Testopia using ExtJS? 

Extjs is an AJAX Javascript library. Testopia completely relies on it for all UI rendering.

> Where in the tree is it checked in?

It isn't. I just include it as part of the tarball that I release Testopia under. As I read it, an MPL App can require the use of GPL code so long as it is not distributed together (meaning end user has to download and install it themselves). This wasn't the case with LGPL as I understood it. But perhaps I am wrong there, not being a lawyer.

According to the GPL site, it is also possible to add a dual license provision allowing users to select their license. I am weighing this, but need to know more. Who should I contact?
Greg,

This page:
http://extjs.com/products/license-faq.php
suggests that the ExtJS licence for versions before it went GPL was not actually LGPL - it was LGPL with some proprietary components. That would mean that Testopia using previous versions of ExtJS is not free software.

Because copyright licences cover only copying, it might be technically possible to do what you suggest to combine MPLed and GPL-v3ed code. But the reach of the law is long. For example, the GPLv3 does not give you the right to even make ExtJS available separately yourself. You would need to tell people to get it from the source website. And you could not make or distribute any modifications to it. The person receiving the whole app would lose their licence, and so while they would be permitted to run the combined program, they could not propagate or copy it in any way - for example, backing up their server.

You don't want to go down that route.

> According to the GPL site, it is also possible to add a dual license provision
> allowing users to select their license. I am weighing this, but need to know
> more. Who should I contact?

If you mean dual-licensing the Testopia code, then you would need to contact all the copyright holders and seek their permission. I don't know how many people that is - perhaps you do. Are any parts of Testopia derived from Bugzilla code, or was it all written from scratch?

For the reasons given above, there's not much point in a dual license. You would be better off switching to straight GPLv3.

Gerv
(In reply to comment #4)
> Greg,
> 
> This page:
> http://extjs.com/products/license-faq.php
> suggests that the ExtJS licence for versions before it went GPL was not
> actually LGPL - it was LGPL with some proprietary components. That would mean
> that Testopia using previous versions of ExtJS is not free software.

As I understand it, it meant that if you modified their graphics you were in trouble. 

> Because copyright licences cover only copying, it might be technically possible
> to do what you suggest to combine MPLed and GPL-v3ed code.
> But the reach of the
> law is long. For example, the GPLv3 does not give you the right to even make
> ExtJS available separately yourself. You would need to tell people to get it
> from the source website. And you could not make or distribute any modifications
> to it. The person receiving the whole app would lose their licence, and so
> while they would be permitted to run the combined program, they could not
> propagate or copy it in any way - for example, backing up their server.
> 
> You don't want to go down that route.
> 

I have not made any modifications to Extjs code in any manner. My code makes calls via the published API into their code. As this code is required to render the user interface in Testopia, I also include it, unmodified, in the Testopia tarball as a means of reducing the complexity of installation. It is not checked in with the Testopia source on Mozilla's CVS server.

> > According to the GPL site, it is also possible to add a dual license provision
> > allowing users to select their license. I am weighing this, but need to know
> > more. Who should I contact?
> 
> If you mean dual-licensing the Testopia code, then you would need to contact
> all the copyright holders and seek their permission. I don't know how many
> people that is - perhaps you do. Are any parts of Testopia derived from
> Bugzilla code, or was it all written from scratch?

There are a couple places where Testopia has copied Bugzilla code, but that is all server side and does not in any way directly interact with the Ext code. 

> For the reasons given above, there's not much point in a dual license. You
> would be better off switching to straight GPLv3.
 
Perhaps it would be possible to release the templates as GPL3 and leave the back-end MPL?

So the questions I need very specific answers to:
1. Currently Testopia (an MPL EXTENSION to an MPL application, namely Bugzilla) uses and bundles unmodified Ext JS library 2.0 code licensed under LGPL or some flavor thereof. Is this legal? If not, which parts specifically are not? Is an MPL application not allowed to reference LGPL code? Is it just illegal to distribute (i.e. make available for others to download)? Is it illegal to use?

2. If we move to Ext 2.1, which uses GPL, is the above legal or illegal? Is there anyway of resolving it if it is not legal, short of completely replacing Ext? 

3. If Testopia changes to GPL, what are the implications to Bugzilla since it is an extension to Bugzilla? 
(In reply to comment #5) 
> As I understand it, it meant that if you modified their graphics you were in
> trouble. 

Quite so. And that makes the graphics not open source.

The problem here is that the licensing statements are in conflict; see:
http://mjg59.livejournal.com/84586.html?thread=714090#t714090
I think mjg is right - the version of ExtJS that you can download from his site is fully under the LGPL. So we could fix the "not open source" problem to start with, by you switching to use that copy.

> I have not made any modifications to Extjs code in any manner. My code makes
> calls via the published API into their code. As this code is required to render
> the user interface in Testopia, I also include it, unmodified, in the Testopia
> tarball as a means of reducing the complexity of installation. It is not
> checked in with the Testopia source on Mozilla's CVS server.

This is fine if it's under the LGPL. But if it's under the GPL, all this may be true, but it's not relevant. You and your customers need a copyright license from the ExtJS developers to make and distribute copies, even if you don't make modifications. You don't have that licence if you don't obey the terms of the GPLv3 - which you can't, really, because the Testopia code is MPLed.

The fact that it's required to render the Testopia UI is very unfortunate, but doesn't change the licensing situation.

> > If you mean dual-licensing the Testopia code, then you would need to contact
> > all the copyright holders and seek their permission. I don't know how many
> > people that is - perhaps you do. Are any parts of Testopia derived from
> > Bugzilla code, or was it all written from scratch?
> 
> There are a couple places where Testopia has copied Bugzilla code, but that is
> all server side and does not in any way directly interact with the Ext code.

You can't really have the server side as one licence and the client side as another, because they are closely intertwined (I strongly suspect). The server side generates the client side.
 
> Perhaps it would be possible to release the templates as GPL3 and leave the
> back-end MPL?

I suspect they are too closely connected for that. Read the GPLv3 definitions of how far its scope extends.

> So the questions I need very specific answers to:
> 1. Currently Testopia (an MPL EXTENSION to an MPL application, namely Bugzilla)
> uses and bundles unmodified Ext JS library 2.0 code licensed under LGPL or some
> flavor thereof. Is this legal? 

It depends on how closely they are connected, i.e. whether ExtJS is actually a "library" under the LGPL's definition. If you are using it in the way the authors expect, and they have placed it under the LGPL for such use, then there's probably no problem there.

(This assumes that you start using the fully-LGPL version of ExtJS.)

> If not, which parts specifically are not? Is an
> MPL application not allowed to reference LGPL code? 

It is, as long as it's a "library". (This is not a restriction imposed by the MPL, but by the LGPL.)

> 2. If we move to Ext 2.1, which uses GPL, is the above legal or illegal? 

Illegal.

> Is
> there anyway of resolving it if it is not legal, short of completely replacing
> Ext? 

Because Testopia extends Bugzilla, it doesn't make much sense to have Testopia under the GPL if Bugzilla is under the MPL. So to make it all work with a GPLed ExtJS, you'd need to relicense the lot. And that's unlikely to happen.

> 3. If Testopia changes to GPL, what are the implications to Bugzilla since it
> is an extension to Bugzilla? 

You would no longer be able to ship the two together, for one. Copying code between the two would become impossible. It would be a highly confused licensing situation which is best avoided.

However, all is not necessarily lost. Give me a week or two to look into some options. In the mean time, you could do two things:

1) Download ExtJS from the URL above and start shipping that version, making Testopia fully open source;
2) Look into hacking that version of ExtJS to fix the bug you are concerned about.

Gerv
I have spoken with the Ext JS licensing representative and they are willing to grant a FLOSS exception for use by this project. I will post the relevant information when I receive it from them.
Greg: that's encouraging news. I was planning to get in touch with the ExtJS team as well.

We need to be very careful to make sure that an exception meets our requirements. Please don't commit to anything until I've been able to look at what they are proposing. We've had several occasions in the past where we've come to grief because people have "worked something out" for some code which hasn't, in fact, been suitable.

Thanks,

Gerv
A draft of the FLOSS exception is available at http://extjs.com/products/floss-exception.php and they are soliciting feedback. 
The draft exception appears to allow use and distribution of Ext JS in Testopia and Bugzilla. I've arked the Ext JS contact for clarification on a few points and have suggested a few ways to enhance the agreement, as the agreement appears based on the MySQL exception, which was written for GPL v2 and is outdated for GPL v3.

Once we are satisfied, we may wish to run this past Harry Friedman (who is a lawyer working with the Mozilla Foundation.)
Status: NEW → ASSIGNED
There appears to be an updated version available at that link. 
It seems that the new version posted is their final version. They now link to it from their licensing home page. 

Are we satisfied with this? Can we move forward?
I am satisfied that the exception meets our needs.

Additionally, supporting this, we have email from the ExtJS folks confirming that they want us to be able to use ExtJS with Testopia via the exception.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
This bug isn't fix as long as the issue reported in comment 0 is not fixed. Testopia still doesn't use ExtJS 2.1.0.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
As per the exception, we will upgrade to 2.2
Blocks: 438797
Done
Status: REOPENED → RESOLVED
Closed: 16 years ago16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.