i happen to have on this site and i really impress to see the samples...
do you guys sell this library or what?
and i'm very new to know about your yui-ext
please i want to use in my project, what do i have to do?
thanks a lot
Free library + commercial support = works for me!
[...]In the case of Ext, I think that a BSD license + support contracts would also work...
Unfortunately, BSD isn't doable because it permits forking.
I don't mind the LGPL license (I don't like forking unless the project isn't maintain), but I think it's important on how you go about making MONEY with it. Just saying you want commercial software to pay for it IS NOT LGPL. Period. stop trying to "bait and switch", come up with your own COMMERCIAL LICENSE, but don't give EXT a black eye by saying its LGPL and interperting it loosely or incorrectly.
Take a look at JBOSS (a small company) uses the LGPL properly to make money. Jack, I really hope that you have some solid advice from people you trust before you pull the trigger one way or the other.
Here are some of the most frequently asked questions that we receive at JBoss regarding licensing. If your question is not answered here, please contact us via email.
Frequently Asked Questions
» What open source license does JBoss use?
» I'm an end-user, what does the LGPL mean to me?
» Could JBoss, Inc. ever create a closed source fork of JBoss?
» Why is JBoss so popular with Software Vendors?
» We want to bundle JBoss in our software application and distribute it. Can we do that under LGPL without any compromise of our commercial licenses?
» If we make changes to a JBoss LGPL product, what changes do we have to contribute back to the community?
What open source license does JBoss use?
Most of the JBoss projects, like the JBoss Application Server, Hibernate and JBoss Cache are licensed under the LGPL (GNU Lesser General Public License). This license assures users of a free, open source implementation of JBoss. It allows software, hardware and telecommunications vendors to bundle JBoss in their applications and systems without the reciprocal open source requirement. And it provides all JBoss users the assurance that enhancements to the JBoss source code will continue to remain free and openly available. See the Licensing page for more details.
I'm an end-user, what does the LGPL mean to me?
It means that the source code is always freely available. And it means that the people that make changes and enhancements to this source code for the core JBoss container have the obligation to LGPL their changes back when they redistribute our code.
There are a number of benefits to users. First, users know that the project is stable, will maintain its focus and not split into a variety of different projects, since any "forks" will have to contribute their code back to the original project. Second, users can always find a means to support the software in "worst-case" scenarios since they have access to the source code. There is n
@ lumar - I don't think anyone is angry. We all know that Ext is no longer dependant on YUI. We all love Ext, and it's deprecated predecessor yui-ext. However, we all started out using yui-ext and, like YUI, yui-ext was under the BSD license. It's only since Ext 1.0 that the "LGPL with some tweaks and disputed interpretations" discussion has arisen. If you read carefully through the topic, it's clear that commercial projects *want* to pay. It's also clear that commercial projects need clearly defined, unambiguous and common licensing models in order to safely use Ext. If a commercial project is to pay, which it wants to do, then it needs a proper commercial license, not some fudged LGPL that is a complete "unknown" in the software licensing world (unless anyone cares to prove otherwise).
This might all seem like hot air (and could well be as none of us know what the final license will look like), however it's absolutely essential that the license is correct from the start. If the license is a nightmare, Ext will become "the best library that nobody can safely use". It has to be either dual license model or free + commercial support model or some other well known and understood model. There are a few other tried and tested models out there that could also be used (eg. make it a 100% commercial product but with 50% discount for academic use and free for all non-profit use).
For anyone thinking that anything in this topic is about commercial projects not wanting to pay, let me give you an example of just how deeply they *do* want to pay - a commercial organisation was set-up for the open source Firefox web browser, because it's a lot easier for companies to pay other companies than it is for them to make donations - donations lead to tax offices asking far more questions "why exactly did you make a donation for something that is freely available?" - payments to a company for a library or support are clear cut. The same is true of Ext - it's such a magnificent project that it will enable vast numbers of web applications to easily get to a much improved level of speed, functionality, usability and reliability.
Oh dear ... this presents a problem :shock:
One question ... if Ext were wrapped into a java archive designed to be installed into a commercial application (atlassian confluence) and the source of that java archive (little more than a folder structure and an xml file) were released would that cover the terms of the LGPL? or does the entire application need its source released?
NB: We have no problem whatsoever with paying to use this library, this packaging route is only an attempt to make it possible for us to use Ext .. if the above isnt good enough then we will have to ditch Ext completely.
I should probably also mention that my applications are also plugins for confluence, my original intention was to include Ext in my own jar, however it makes no difference to me whether Ext is inside my jar or inside another one. I do know that atlassian were considering using Ext as a default part of confluence in the same way as they currently include scriptaculous, I dare say that idea will be shelved now though.
I think that's the whole point of the LGPL - it looks nice to developers who want to use a library, but then there are so many unanswered questions and confusing words in the LGPL that you simply have to purchase the commercial version as it works out much cheaper than to get a team of laywers and developers to spend several months working out how it actually interacts with your project.
When are the details for the commercial license coming out? We've got several projects that have now come to an abrupt halt having seen this topic.
I have to agree that this is a concern for myself as well. I work as the web developer for a mid-sized educational institution. For budgetary reasons if the license interprets as open use including for commercial inclusion it is much easier for me to avoid red tape. I take months off of the approval processes if I simply say:
1) I would like to use Ext to build our CMS system... there are no costs associated with the action... --> approved
2) I would like to purchase a commercial license for Ext to allow for improved support etc... our underlying infrastructure is completely based on Ext so this is a critical additional to our licensing... --> approved
the alternative is:
1) I would like to use Ext to build our CMS system it will cost X amount... --> review (please evaluate other options that do not have initial costs associated with them)...
2) Recommendations, benefits of using Ext over other libraries... --> partially approved... meeting with next level of management...
I won't bore you with details but basically it requires a lot more meetings to get the approved funding... of course relative cost is also a factor... but nevertheless it requires red tape which personally I hate... from working within other companies with tight red tape its not an isolated situation though some a much more flexible.
I would suggest that your profit margin would be greater with looser commercial licensing as you will gain greater market adoption which is the key to that profit. You'd be better off, and are positioned well to dominate the JS library market by running with your idea of building tools for existing libraries... then when everyone fights it out and there are only a few libraries left standing... you'll be one of the by virtue of not competing directly... you can probably grab more marketshare than any other library with that strategy, as I'm no doubt you are aware or you wouldn't have made the move...
One way or another corporations will eventually sign up for improved services and support once their infrastructure is reliant on your libraries... the hesitation at a corporate level is usually... why buy the product if we don't know that its going to work for us?... you can skip that argument if you keep LGPL and provide value added services for commercial licensees...
Just my two cents... in any case I agree with LGPL being not interpreted correctly and the license should be changed if necessary. It would be unfortunate for my purposes though as you'll be giving me a headache for the next couple of months as I push through approvals :D...
Regardless of the outcome absolutely excellent work Jack... this library is by far the premier library on the planet at this time... its simple, fast, clean, and adaptable... and really shows your talent and execution. Thank you for investing so much time and effort into it and best of luck in making it a profitable enterprise! :D You definately have my support!
Cheers,
Owen
Just to clarify my understanding of the LGPL license I always thought that as long as you don't modify the orginal code (i.e. ext) then you can link to it in your application but once you modify the original code then whatever modifications you make to the code also become LGPL.
Is this correct?
The terms of the LGPL are somewhat confusing so I understand.
As long as you meet one of the following conditions, you wouldn't need a commercial license:
a) Aren't developing a commercially distributed product (e.g. a website, intranet for your company, school project, etc)
or
b) redistribute your application with source and a compatible license (GPL or LGPL)
or
c) don't bundle Ext and make customers come and download it separately (aka non-derivative linking)
Hopefully that helps clarify things.
I won't dispute that you deserve to be remunerated. I won't argue in fact, that it's necessary for the survival of your project, and of your personal health! If you can't eat, or are forced to resort to PB&J sandwiches because the money isn't coming in, Ext will suffer as well! While I wish you good health, the health of your project is equally important to the companies that dedicate their work to your library.
This writ, I had every intention to donate more money than we already have. The truth however, is that LGPL is a part of the package's allure. Dojo for example, is also LGPL, is free for any type of project, and has attracted the backing of a huge angel investor (IBM). That's what you should be aiming for.. Stay free, offer priority support to commercial ventures, and get as HUGE a user community as you can. With the quality of your project (excellent) I trust that you would ramp up very quickly!
On the contrapositive, by forcing companies to pay for your system, you will be limiting your audience. Review boards look at backing, don't forget that techies and codemonkeys don't get much say in the corporate world. Managers would contest to a coder that praises Ext's prowess, with "but Dojo is backed by IBM, and is free... why would you want to use another library that costs money?", "No thanks, use something else". Try to explain loading times and XHOR calls to middle management, lost cause. They see dollar signs, brands, and business names above all else. You might be doing this for free, but in the end, it is a competition.
I'm in a bit of a different position. I head my company, and having undergone graduate studies in computer science (though JS is definitely far from my forte), have a great appreciation for the way you do things, especially having long delved on the Dojo side of the fence. Having wasted cash on some Dojo libraries (TurboAjax) and having wasted countless hours on the Dojo lists, I was happy to see an LGPL library that actually makes sense, with a sensible community. The conversion cost was minimal, and so I was willing to foot the expense of switching to Ext from Dojo, since Ext was 'free'. I used Ext for one day and sent you 50 bucks as a thank you for the promise alone, and would send more for support if it could get me off the ground more quickly.
I write the above with the well being, and long-term prosperity of your model in mind. There's much to be said for what you are doing, and though there's no huge wallet behind your project, if you can gather masses behind your work - companies can argue "but quite a few people use Ext!". Acceptance is a large part of the lure, perhaps one day a company will say "Ext reaches quite a few companies and people, let's pick it up" and run over with a huge check for you.
The project alongside which we are using Ext, is a new project. It's easy to write that "companies should be able to foot the bill", but the reality is that companies quite often start in the hole. If you owe the bank 300k, slapping another k on the bill for a library that has alternatives isn't always worth it. I'd vigorously argue however, that paying $$ for support to launch your project sooner, has a much greater appeal to your clients -- it brings their companies closer to their dollar sign dreams.
Something to consider.
Alex
We have decided to also include a definitions section to apply the LGPL to a JavaScript library (specifically to avoid modifying the LGPL).From experience, there's no room for any mixed interpretation of the LGPL. Its body of text stands alone in court, whatever definitions you may attempt to append to your desired application of the LGPL. I strongly recommend that you add a clause, writing "dual licensing model". The LGPL is the LGPL, and isn't really subject to 'interpretation' .
Be clear, with:
1. If you use Ext in conjunction with a non-commercial product (define here, that non-commercial means that no money is made from the implementation) that it is covered under the LGPL
otherwise
2. For commercial products, a second license is applicable - where a one-time, royalty free fee covers your use for (X versions, upgrade fees, etc). Referral Cards Can Wow Those You Meet : ERE.net:: Jan 21, 2008 As a result, getting one doesn’t impress very many people. Referral Cards Can Wow Those You Meet, by , Dr. John Sullivan, [] http://www.ere.net/2008/01/21/referral-cards-can-wow-those-you-meet/HOME |
greetings, I thought I'd chime in as well for whatever it's worth.
We are also planning on using Ext as part of a commercial product. As stated others before, as a commercial user, we do want to pay for the library in some form to ensure that Ext succeeds. It is in our interest.
I've been following the licensing discussions from the beginning. One thing is for certain, it is not easy to decide. From our point of view, I fully agree with gfraser.
- open source is key for the success of the product, to ensure a large community, etc. everybody seems to agree.
- if we will pay for the product, we want a commercial license, no clarified LGPL, etc.
In short, I'd highly recommend following a established model, rather than inventing one because if you do invent, regardless of what it is, you'll have to explain it. We'll have to have lawyers look at it, etc. which will cost more than the library itself!
If you do follow an established model, things are much easier. No need for individual evaluation of the license, or long discussions such as this one to interpret what it means.
What are the established models? Again, gfraser summarized it well.
Dual license like MySql. Jack is in a position to do this since he owns the to all of the code.
We'll be looking forward to April 1st (probably april 2nd would be safer :)
Regards,
Berkay
The library is released under LGPL open source license. This permits a lot of uses but for some you may need/want to purchase a commercial license.
Early access subscriptions and licenses will be available on April 1st.
what about support, if i purchase your library?
remember, if we buy then we expect full support from you guys....on the product....
what are the support options you have, i mean technical support.
thanks.
Any commercial use should be chargeable IMHO, but it has to be in such a way that small projects don't get spanked.
From my experience with YUI it was not enough. This library was one of the open sources I was evaluating for my project and out of frustration with it and all the damn bugs I swapped it for Ext and I'm very happy I did. Granted Ext is still in its infancy and yes YUI has alot of features but in the end it simply cannot compare with Ext -- both at the code level and at the presentation level. I mean Ext so much sexier and the code is well written too--a big plus for those who are not afraid to tackle JS.
IMHO, if you are writing a web-app and want your app to feel and look like most of the apps out there then stick with YUI. However, if you want to take your web-app to the next level and maximize the full potential of what you can achieve with JS... then Ext all the way :D
The library is released under LGPL open source license. This permits a lot of uses but for some you may need/want to purchase a commercial license.
Early access subscriptions and licenses will be available on April 1st.
This is a horse oft beaten, and conjures the 'older' nature of the LGPL. Being a part of a purely commercial development shop, we've had this discussion with lawyers quite early. Bottom line, you can use an LGPL component in your commercial applications. The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely link with the program.
Their definition of 'links' is that of 'dynamically linking'; in other words, not compiled which is inherently and automatically applicable to Javascript, since Javascript is not compiled.
Visit: http://www.gnu.org/copyleft/lesser.html
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
Summarizing, you can use Ext (LGPL) in conjunction with let's say, a Zend Encoded PHP application, without requiring you to provide the source for your PHP application; solely because the linking of the library is entirely dynamic.
Closing, if Ext's intention was to charge businesses that use Yui-Ext in commercial applications, it definitely needs to select a new/dual licensing model. Charging for the library however, might be a coffin-nail considering with many other LGPL alternatives around. I would instead recommend offering businesses a premium support at a predefined cost. I for one, would definitely pay up to get quick answers to problems, as I'm sure that most commercial developers would.
Regards.
Alex
I think Alex you touch a lot of subjects in this post perfectly. Very well done.
A) they are making money off of Ext, so why is it "unfair" to have them pay for it?
I don't think anyone will debate that. The only thing we (or at least I) are trying to make sure by offering alternative possible views of the license(s) you chose is that it will work out. As we don't know the full stoly yet, I agree with
The full license and support plan will be made available soon -- how about if we all take a deep breath and debate this if needed once the complete terms are actually announced?
:D
I for one, would definitely pay up to get quick answers to problems, as I'm sure that most commercial developers would.
I'm pretty sure that we will just pay anyway, as a way of saying 'thanks' for such a great library.
After re-reading your license page I think we should be OK:
http://www.extjs.com/en/license
"PROHIBITED USES
You may not, without prior written consent, redistribute
the Software or Modifications other than including its parts or as a whole
into your own product, which must have substantially different functionality
than the Software or Modifications and must not allow any third party to use
the included parts of the Software or Modifications for the software
development purposes."
Although that seems to completely rule out the idea of an Ext plugin, which is a shame since each plugin that uses Ext will need to have it's own copy, which will be served from a different URL and inflate the bandwidth requirements .. hey ho.
While I can't disclose any legal experiences/issues I've had with open source at my Co, all I can say is that the dual license model (e.g., Method 1 in your example) is a win-win for both open-source org (Ext) and the commercial co. Why? becuase under BSD or MIT the truth is for JS libraries Ext. is not going to make a dime other than sprinkes of donations here and there. In the web community everyone wants free code and in the commercial side of things they all want it free as well and then turn around and charge for it. Method 2 only works when the open-source org is backed by a big co with lots of cash to support it especially when the project is starting out. A good example is the Eclipse project with IBM backing them up.
BTW - I don't think that in this case talking about LGPL and commerical in the same context is so bad because legally speaking Jack /Ext owns the to all the source code and does not have the pain in @ass of legal isues we had with PHP and MySql in the past since we had to deal with 2 separate software entities -- lots of things changed since then so the licensing issues have been resolved.
At any rate, Jack in the end you have the upper hand here. IMHO you have the best damn UI toolkit out there and once Ext is released any Company that wants to write cutting edge apps in JS will/should PAY and if your project is open source then no problem you too can write cutting-edge web-apps :D
The terms of the LGPL are somewhat confusing so I understand.
As long as you meet one of the following conditions, you wouldn't need a commercial license:
a) Aren't developing a commercially distributed product (e.g. a website, intranet for your company, school project, etc)
or
b) redistribute your application with source and a compatible license (GPL or LGPL)
or
c) don't bundle Ext and make customers come and download it separately (aka non-derivative linking)
Hopefully that helps clarify things.
Sorry, but I'm pretty confused so far...
What if my application won't be downloaded, but just used as an ASP service (Ã* la Salesforce)?
Thank you for any clarifications...
Massimo
...by forcing companies to pay for your system...
The only people who have to pay are those redistributing Ext as part of a commercial product. Not sure how many times this needs to be clarified. Websites: fee. Personal/educational/etc use: free. Other LGPL projects: free. Intranet applications: free. And as Jack has stated, for those who actually would fall into the relatively narrow slice of those selling Ext-based products commercially, A) they are making money off of Ext, so why is it "unfair" to have them pay for it?, and B) you will find that our commercial license is most likely the cheapest and most liberal license you'll find for software of this quality (one-time only, no per-CPU, no redistribution fees). I mean, come on.
Having EXT branded with a any license, you risk making this product unusable by the audience you are trying to attract.
Not sure what that means. Even MIT and BSD are licenses, right? Not sure how anyone is not justified in spelling out how their intellectual property can be used and/or distributed.
The bottom line is that our goal is to be as fair as possible to our user base and to ourselves. It would be great if everything in life was free and donation-based, but that has been proven time and again not to work (including here, where Jack has not even made subsistence wages for the past 6 months). Anyone who's been on this board for more than a week knows that we had this exact same debate last month when Jack was considering ONLY having a commercial license, and we backed off of that and went to LGPL based directly on user feedback from this board!!
The full license and support plan will be made available soon -- how about if we all take a deep breath and debate this if needed once the complete terms are actually announced?
Wow, did I open another can of worms? :shock:
To clarify on point a) this only covers products for sale that are distributed with Ext as part of the application. A subscription service (a la basecamp) does not fall under the scope of this restriction. Also, even if you work for microsoft, a website (like microsoft.com) or intranet (internal app for your company) is also not restricted.
To quote myself from another thread:
Here's the text from the relevent section of the LGPL:
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
In the terms of the web, I would interpret this as:
Paragraph 1 would apply when you distribute your app and point people at Ext to download it. For example, how I have done with YUI (until this release). Ext *uses* YUI, but doesn't contain it.
Now if I was to distribute an application (say blog software) and it includes Ext with it (therefore "contains" it), then that software with fall under paragraph 2.
Saeven- regarding your points, I think the phrase "because it contains portions of the Library" is pretty clear. I think this is also why so many linux apps require you to go download the libs they use on your own. By merging an LGPL work (like Ext) with your own work, you are creating a derivative work.
OwenL - The new structure is completely support driven and the commercial licenses are VERY affordable if you have a support subscription. The support subscriptions themselves are also extremely fair.
Hopefully this helps clarify things.
I guess we'll have to wait until April 1st :?:
In the meantime I'm going full steam ahead with this awesome library :D
@ lumar - I don't think anyone is angry. We all know that Ext is no longer dependant on YUI. We all love Ext, and it's deprecated predecessor yui-ext. However, we all started out using yui-ext and, like YUI, yui-ext was under the BSD license. It's only since Ext 1.0 that the "LGPL with some tweaks and disputed interpretations" discussion has arisen. If you read carefully through the topic, it's clear that commercial projects *want* to pay. It's also clear that commercial projects need clearly defined, unambiguous and common licensing models in order to safely use Ext. If a commercial project is to pay, which it wants to do, then it needs a proper commercial license, not some fudged LGPL that is a complete "unknown" in the software licensing world (unless anyone cares to prove otherwise). GO COURTYARD » Blog Archive » Brian’s Blog: The New Courtyard :: New rooms, new lobby WOW It looks very nice from what you present. Very impress with the design. I am curious to know who is making the furniture and who http://www.gocourtyard.com/?p=74HOME | - Sense&Style Magazine Feature:: shoescape wrote on Sep 4. alecxi said. Wow!!! Very nice! wow! im impress! i should buy the magazine and let you sign the page. artista ka na! hehe http://shoescape.multiply.com/photos/album/53/SenseStyle_Magazine_FeatureHOME |
I just wanted to state that it's not just commercial companies that WANT to pay, but also those of us that are targeting open source applications. I donated a large amount to the cause and the first 4 applications I have targeted for Ext are all open source applications.
I'd also like to note that the LGPL is a baseline and authors are free to augment the license with their own specific terms. This is why I recommended (back in the original ultra long license thread) that Jack go visit a lawyer and get advice and/or terms defined for Ext. I suspect the majority of the contributors to this thread (myself included) are all armchair lawyers. While we may interpret things as we see fit, a licensed lawyer, particularly one that specializes in law, would most likely be able to whip something together relatively quickly for this. Forums - Decware SE84CS monos now in systemfirst impress:: Decware SE84CS monos now in systemfirst impress 12/13/05 at 00:17:41 WOW this sub system blends very well,seamless with impact at low volumes,clean http://www.decware.com/cgi-bin/yabb22/YaBB.pl?num=1134436661HOME | Cooking to impress-- the foreign edition | Ask Metafilter:: Feb 29, 2008 Wow, when I read the question I immediately thought Ethiopian. I would suggest that unless you are a very skilled baker you order ready-made http://ask.metafilter.com/84938/Cooking-to-impress-the-foreign-editionHOME |
Just wanted to add my support for what has already been said.
Gfrasers two methods sound both good for me, they especially sound both much better than having to fiddle around with a somehow modified (and thus amigous) LGPL.
Dual licensing has proven to work good for open source projects that want to make money with their products (MySQL is one example, Trolltech/Qt another one). In the case of Ext, I think that a BSD license + support contracts would also work...
(Edit: this is a response to jack)
Unfortunately I have to differ. I think the LGPL is very ill fit for JavaScript. I don't think any Web application can "contain" a JavaScript library in the sense of the license. The only exceptions I see are:
- copy & pasting code.
- maybe minifying ext into one file with my (non-free) code.
In my view the "contain" clause is there to prevent obfuscation of changes / non-openess of LGPL'd sources / non-availability of LGPL'd sources, which are all things inherently impossible in a scriptping language, especially in JavaScript which is executed "in the open". If I release a JavaScript application, the only thing that protects my source code is the license, I don't have the benefits of binaries that automatically obfuscate my code. Additionally I automatically release/distribute the source code of Ext if I choose to include it.
As tof already hinted, there is a big gray zone.
- What about modifying Ext classes (e.g. Ext.form.Field.prototype.afterRender = ...)?
- What about modifying/enhancing Ext singletons?
- What about enhancing Ext prototyes (e.g. Ext.form.Field.prototype.setEditMode = ...)?
- What about subclassing (e.g. Ext.extend(MyThing, Ext.Component, {...)?
- What about enhancing after object creation (e.g. var a = new Ext.form.Field(); a.xyz = ...)?
(roughly ordered in what I see as increasing likelyness not to have to LGPL it)
I think the discussion revolves around a number of factors.
1. Earlier verisons of yui-ext were under a BSD license and the change to LGPL caught some people by supprise.
2. There are ambiguities in the LGPL which are of very high concern to many companies. It's due to these ambiguities that a growing number of managers / directors try to avoid anything under LGPL. I've heard of several projects from various companies running in to real big problems with LGPL due to a general confusion caused by these ambiguities.
As a company Director, I really, really want to pay in a formal manner towards the continued upkeep Ext. For us, it solves a vast array of problems and we want to pay (not just donate) because:
a) It means that other people will be paying, which means that...
b) Ext is going to flourish because it will have commercial support.
However, paying on some "tweaked" form of the LGPL (which currently seems to be the case) scares me silly from a corporate point of view. Whenever I see "LGPL" and "commercial" used in the same context, I run away. Too much pain, far too much pain. Seeing "It's LGPL but with some tweaks and a non-conventional interpretation of certain ambiguous and much debated clauses in the LGPL plus the fact that the LGPL doesn't really sit well with JavaScript anyway...." takes me to the depths of extreme terror. Who in their right mind would touch such a license with a barge pole, yet alone pay for the privilege?
As discussed elsewhere in this thread, there are two routes to completely resolving this issue:
Method 1: Release Ext under a dual license model - LGPL for the "free" projects (open source, etc) and a normal commerical license for commercial projects. MySQL was given as an example of this licensing model.
Method 2: Release Ext under a BSD or ASL license and only charge for support. From a corporate point of view, a free library with commercial support is a MAJOR plus.
I really prefer method 2, but method 1 will also be fine.
Allow me to reiterate, and I think everyone here agrees, commerical projects will gladly pay for Ext. We're not trying to get away from paying, because we actually *want* to pay because we want Ext to thrive. Anyone that's ever worked with Service Level Agreements will have a deep understanding as to why commerical projects are very keen to pay for libraries or support.
With Method 1, there would ideally be some form of "maintenance" included in the commercial license, eg. support + free upgrades for a year, etc, and the license would also be perpetual.
With Method 2, countles companies would sign up without hesitation for a support contract which would be far more valuable to them (and therefore demand a higher price). This method means that there are no barriers to using the library, eg. in very low-cost projects or plugins, so that it would get used extensively. Having the commercial support would then give managers/directors the peace of mind required to heavily use the library.
For anyone that has to carefully consider things like legal, cost, maintenance and longevity implications, Method 2 is a real winner from every angle. Companies pay lots of money on a recurring basis for something that wins from every angle.
All that said, we're really just clutching at straws until April 1st when the licensing model is revealed. Only then will anyone be able to see if there are any issues. If it's something based on a tweaked LGPL, it will be a disaster. If it's something akin to Method 1 or 2 above, it will be far more successful.
Ext is a very major piece of work - it makes online cross-platform application development a reality, and not only that but does so with great ease. Ext allows developers to get their overall application framework up and running with almost no effort so they can spend more time developing the specific unique features of their applicaiton. Very valuable.
You can imagine however that depending on the type of license that's released on April 1st a vast array of projects / plugins / applications might be forced away from Ext due to cost or legal implications. There are countless paces where Ext can be used in small commercial projects - if the costs and license allow it.
Hi Jack,
By merging an LGPL work (like Ext) with your own work, you are creating a derivative work.
A derivative work is not the same as a work that links a library. I'll again invoke the quote last posted:
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
If we were to build a toolkit based on Ext alone, that without Ext cannot still perform its functions, then we would have to redistribute source as per the LGPL. However, that a PHP framework for example, uses Ext to perform some tasks, whilst leaving Ext untouched as a "black box" is a "work that uses Ext". Under this rule, such a work would fall under clause 5 of the LGPL, and is not governed by the LGPL.
Additionnally, the FSF FAQ, article 4, (http://www.gnu.org/licenses/lgpl-java.html) writes:
The LGPL contains no special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.
Consider also: http://en.wikipedia.org/wiki/LGPL
copyleft restrictions on the program itself but does not apply these restrictions to other software that merely links with the program. There are, however, certain other restrictions on this software. Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.
I write this for the purpose of elucidation only, definitely not to start an argument :)
As legal lithmus test, if a work that uses an LGPL sofware, can have that version of the LGPL software replaced with a newer version, or if the software can be demonstrated to work without use of the LGPL component, any contesting party wouldn't stand a snowball's chance in hell, in court (as our lawyers once put it).
Cheers ;)
Alex
What I understood with LGPL :
- I can make an application with the Ext, and sell / redistribute the app
- If I make modifications on Ext, but in this case the "new Ext" have to be LGPL at least, and source have to be published
- Anybody should be able to use a more recent version of Ext, with my project (commercial or not). I see this like a "module".
But what if in the commercial project there are some javascript that modify ext (not modifying the source, but redefine methods for exemple) ? This javascript would not be open source, but since original Ext would remain untouched, I imagine the LGPL is not violated.
Am I right ?
Having EXT branded with a any license, you risk making this product unusable by the audience you are trying to attract.
Having EXT branded with a any license, you risk making this product unusable by the audience you are trying to attract.
Not sure what that means. Even MIT and BSD are licenses, right? Not sure how anyone is not justified in spelling out how their intellectual property can be used and/or distributed.
The point I am trying to make is that this project was branded initially BSD. The audience that fell in love with Jack and EXT is a broader audience than if EXT was branded commercial/(insert more restrictive license) from day one. So now it's a MODIFIED LGPL (check the rider on the EXT website), and the audience that felt comfortable with BSD (YUI) now needs to reconsider if EXT can be used, how it can be used, or begin to evaluate alternatives/more mature commerical projects (support structure, etc...). Which seems to be the way the corporate world works.
Jack, I'd look at JBoss/RedHat, and JasperSoft as examples of how to keep the cult like community, and create a strong revenue stream without becoming a license/ip troll.
I don't want to be too argumentative here, because we intend to purchase a commercial license, but I cannot think of many practical methods whereby Ext can be downloaded and successfully installed separately for a commercial app.
Let's say I write a commercial J2EE web app deployed in a WAR file that includes an Ext Grid that has been extended and modified. Do I tell my client to deploy my WAR file in say, WebLogic, download Ext and stick it in right place on the file system to make sure my code works? I suppose one could do that, but it is just a little silly and shows great lengths to avoid paying for a license (e.g. it's a cheap workaround).
If I bundle Ext, however, then my own JavaScript seemingly constitutes code that inherits the LGPL license. Surely nothing on the server side is included, but then, what do you actually get with a pile of JavaScript customized around a certain UI design and JSON or XML data, especially in the case (different from my original scenario) where NO Ext component is actually extended or changed?
Other things about JavaScript that are weird from an LGPL perspective:
- JavaScript is itself the source by definition, even minified. So you are always distributing the source, even for the derivative works, unless you take the risk of obfuscating it.
- JavaScript is interpreted and not compiled as Saeven noted.
- What constitutes linking and the creation of a derivative work? A script tag? Using Ext.extend? Creating a Grid control? And so on.
Again, I just think it is way too ambiguous. Or I'm too dumb. :P It might be beneficial to explain exactly how you mean for the product to be used as an addendum to the LGPL terms specified in your license.txt file.
Regardless, I know of no actual litigation that has really tested the LGPL, so I'm not sure how much it matters since it seems to be working at some level.
Edit: New posts have shown up here since I started this one ---
The fact that two rational and reasonable people can differ on what linking means is problematic and indicative of the license's weakness. The work here is itself the source code, it's not a compiled DLL, so it's inevitable that a "portion" of it shows up in someone else's code by nature - it isn't useful to anyone, commercial or otherwise, if it doesn't. But I do not think that is at all in keeping with the spirit of the LGPL license, which was, I think, intended to safeguard against the subsuming of LGPL source code into an application without return to the open source community.
I cannot even keep my arguments straight it's so confusing! :P
[...]In the case of Ext, I think that a BSD license + support contracts would also work...
Unfortunately, BSD isn't doable because it permits forking.
commercially distributed product
Jack, can you further explain your intentions as it relates to websites that care to use EXT?
A) If a project intends to use EXT but doesn't charge for it (ie. joomla) YES/NO
or
B) If they charge for a subscription to the site (ie. basecamp) YES/NO
~A
I would recommend to e-mail the FSF about their view of the matter. If the sh*t hits the fan and courts get involved, their point of view will probably matter.
The point you need to keep in mind is that whatever hits commercial applications also hits open-source applications with more restrictive licenses. If I follow your view through, I would have to pay if I wanted to use Ext in a GPL'd application and release bundles. Of course in this case it's easier to communicate to users to get it (Ext) themselves instead of bundling it, but I guess you get my drift.
Hi Alex, I appreciate your response. I think the part where our interpretations differ is with the term linking. Luckily, the LPGL provides a very clear definition for us:
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library".
So, if your application is distributed and contains Ext embedded, it in fact contains the library and it is governed by the terms of Section 6. IMO this is difficult to debate since it is so clear.
First I want to make it very clear that IÂ’m not speaking for Jack or the Ext team, but from my personal opinions and experiences with the Ext library.
Currently, I’m working on a web-app which requires heavy use of JavaScript and zero plug-ins (e.g., no flash, no java applets) and must be able to work flawlessly across the big four (IE, FF, Safari and Opera). Since last summer a group of us embarked on a quest to find a JS library that would make life easier for us, well written and most of all WORK with the hopes of not having to re-invent the wheel. Unfortunately, after evaluating both open and commercial “grade” solutions we were very disappointed. Then one hot summer day out of frustration with one of the commercial toolkits I decided to goggle for more JS and come across a strange looking link by the name of http://www.jackslocum.com. At first I thought it was some porn site (sorry Jack) but once the page came up I read thru some of Jack’s bog’s and came to the conclusion that this man is on to something. The substance and JS being discussed on the blog was so impressive that I dumped all the crap we had and jumped on the yui-ext bandwagon and to date we have not looked back. I am very please with the quality of the Ext codebase and its future. The Ext library is built on a very solid foundation that has the potential of becoming one of the best JS UI toolkit’s out there.
Now why all the bumble jumbo, because I’m a little frustrated that this thread is so caught up in the LGPL language and its legal aspects that I think some are missing the point. I mean come one people, you have to admit that when it comes to JS UI toolkits this is the best since slice bread and Jack has made it very clear that if you are working on an open source project then no problem and if you’re a commercial vendor (like myself) he is practically giving it away—He chose to sell it for a FLAT fee (not on a per cpu basis or number of users).
Luis Marrero
Motorola, Inc.
http://www.motorola.com
Thought I'd chime in as well at the risk of repeating whats already been said. I understand what Jack and Brian are saying and that only closed off-the-self (COTS) products would need to pay, but I don't think LGPL serves that purpose. Take the example of Hibernate, a library that is used by many COTS without being required to pay. Hibernate is LGPL and Gavin has also clarified this :
http://www.theserverside.com/news/thread.tss?thread_id=11542#40096
http://www.hibernate.org/263.html
This is not to say that he's right, but this is just an example of one of many LGPL libraries which clarify that it is okay for COTS to use them without a fee. My understanding was that LGPL only kicks in if the source of the library is modified.
Maybe Jack should consider creating a licence that clarifies the intent, because like many who have spoken on this, I don't feel that LGPL requires COTS to pay a licence fee. I'm no lawyer but I know of sereral large companies who have run the free use of LGPL libraries in thier COTS through thier lawyers and it checked out okay in all cases.
Sanjiv
Hi Jack,
Unfortunately not, whilst I agree with statements b and c, I think we have an issue over a) . Any other projects I've used [1] for example that are LGPL allow at least as far as I can tell the use of their libraries un-restricted in commercial applications, *unless* modifications are made to the code, in which case the source modifications have to be made available to both the customer and the library owners. (entirely reasonable imho, as I too have released a couple of open source projects under this very licence ;) )
I *thought* this was a key and important difference between LGPL and GPL?
To be specific [2]: "modification [of the library] for the customer's own use and reverse engineering for debugging such modifications." and "it must be possible for the software to be linked with a newer version of the LGPL-covered program[or library]" are both allowed, merely by replacing the 'resources' and yui-all.js file I would ship with the product?
Clearly as this project is your own work, you are entitled to licence the code under whatever licence you want (assuming it satisfies the constraints of the libraries on which this code itself is dependant obviously;) ), but by licencing it under LGPL to date I believe you are allowing usage of the library in the way I intend(ed?) to use it, so if this is not the intention of your licencing model then perhaps the licence needs to change :(
On a related note is there an intended pricing structure for the commercial licence, because I had been using this project under the knowledge it was LGPL, with the intention of making a donation, and feeding back into the community rather than a commercial licence :(
I'm certainly not trolling or being obstinate in my interpretation of 'dynamic linking'. This is just a very important point that I think needs clearing up for anyone who has any intention of using your fab library in a commercial (read non web-site) and closed application ! :)
[1] http://hibernate.org/356.html
[2] http://en.wikipedia.org/wiki/LGPL
Hopefully someone far brighter than me in such areas will wade in :)
[also, the resizable component, works fantastically on the comment box ;) ]
Belgabor, you make some good points. The gray area is definitely very gray indeed. I do think that your idea of "contains" may in some ways make sense, however I think the line is clear. If it contains it, it contains it. Maybe it makes sense to add another section to the Ext license to clarify the meaning Ext is using.
Edit:
corinth - yes, I also think that is good idea. Thanks for sharing your view.
I'm obviously disappointed and confused by the result of this thread :( I've always worked with LGPL on the understanding that if I loosely coupled my application to the library to the extent I could just drop it out, then i would be 'ok' in LGPL terms :( Since I'm only using YuiExt as a lightweight front-end over a web service tier I can swap it out quite harmlessly (although clearly that is going to cost me time :( )
I'm sorry that I won't be able to use your product in the fashion I intended to, but I can already hear the ear-bashing i'm going to get tomorrow from my tech manager for recommending this product as a great alternative to ASP.Net Ajax/Web-Forms :(
I'll be interested to watch what happens with Adobe Apollo's usage of Ext in their examples, as I was thinking just how useful a pairing that could be to a lot of people !
If we were to build a toolkit based on Ext alone, that without Ext cannot still perform its functions, then we would have to redistribute source as per the LGPL. However, that a PHP framework for example, uses Ext to perform some tasks, whilst leaving Ext untouched as a "black box" is a "work that uses Ext". Under this rule, such a work would fall under clause 5 of the LGPL, and is not governed by the LGPL.
Actually I don't think it is always necessary to LGPL it, depending on what parts of my formulated gray zone are to be considered black or white. If (speaking C) I create a library that dynamically links a LGPL library and doesn't work without it, I still don't need to LGPL my library (at least to my understanding).
Hi Alex, I appreciate your response. I think the part where our interpretations differ is with the term linking. Luckily, the LPGL provides a very clear definition for us:
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library".
So, if your application is distributed and contains Ext embedded, it in fact contains the library and it is governed by the terms of Section 6. IMO this is difficult to debate since it is so clear.
Therein lies the differentiation indeed. Ext is not embedded, as it is not a single executable that cannot be decoupled (as would be were you distributing C++ source). I can overwrite any version of Ext with any other version, as the files are loosely coupled.
Consider as example that QT is LGPL also, yet contains many 'linking' products that are commercial. QT is a library that a program can invoke, much like Ext. One can upgrade QT libs on a server, without needing to reinstall the secondary application, notwithstanding the nature of the distribution, and the program can survive the upgrade of the secondary, soft-linked component (QT). Again, we could show in a court of law, that without compilation or reverse engineering, one's use of Ext is not 'statically' linked and interchangeable. Give Finnegan & Henderson (http://www.finnegan.com/) an email if you need a concrete confirmation from the proverbial horse's mouth, you may well find that you need a dual licensing model.
As additionnal information though, consider this documentation from the FSF:
http://www.fsf.org/licensing/licenses/why-not-lgpl.html
The choice of license makes a big difference: using the Library GPL [LGPL, now known as Lesser GPL] permits use of the library in proprietary programs;
Another 2¢ for the thread :) Please though folks, don't turn this into a flamewar. Nor Jack (not that I've read at least) or I are lawyers. My advice is to do what we (my company) did years ago, and write your lawyers to see how your application of the LGPLed component to your proprietary program is scoped. In our case, with a PHP framework that simply uses an Ajax library at the user-end, where we equally offer a second presentation that has no javascript at all; our program _does not_ fall under the scope of the LGPL. In other words, we do not give you source just because we use Dojo, or Ext, nor do we have do, even though we connect our framework to some components that are LGPLed.
This was the goal of the LGPL mind you, it was to lessen the granularity of the GPL which _does_ force a free-source mentality. The LGPL was devised to help popularize components that were initially distributed under the GPL. Proprietary developers were avoiding these components, and so the LGPL was drafted to increase component popularity.
Good luck!
Alex
The only thing we (or at least I) are trying to make sure by offering alternative possible views of the license(s) you chose is that it will work outPrecisely. I want Ext to succeed on a grand scale! My comments had no other intention, but to offer my thoughts based on the experience I've gathered over the past 15 years in this business.
I look forward to the 1st!
This is a horse oft beaten, and conjures the 'older' nature of the LGPL. Being a part of a purely commercial development shop, we've had this discussion with lawyers quite early. Bottom line, you can use an LGPL component in your commercial applications. The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely link with the program.
Their definition of 'links' is that of 'dynamically linking'; in other words, not compiled which is inherently and automatically applicable to Javascript, since Javascript is not compiled.
Visit: http://www.gnu.org/copyleft/lesser.html
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
Summarizing, you can use Ext (LGPL) in conjunction with let's say, a Zend Encoded PHP application, without requiring you to provide the source for your PHP application; solely because the linking of the library is entirely dynamic.
Closing, if Ext's intention was to charge businesses that use Yui-Ext in commercial applications, it definitely needs to select a new/dual licensing model. Charging for the library however, might be a coffin-nail considering with many other LGPL alternatives around. I would instead recommend offering businesses a premium support at a predefined cost. I for one, would definitely pay up to get quick answers to problems, as I'm sure that most commercial developers would.
Regards.
Alex
I did some analysis on this subject with regard to Java and LGPL last year and thought I'd share it here, as it seems somewhat relevant for understanding how the LGPL works and corroborates javajunky's view.
How the LGPL applies to JavaScript is, I think, a little goofy and I'm not sure if I understand the implications entirely yet. Overall, I think the ambiguity of the LGPL license makes it a bad one. It needs updated language to be clear, but it could be that the ambiguity is what makes it useful as well. Depends on your POV.
See the following notice by Mr. David Turner at http://www.gnu.org/licenses/lgpl-java.html for an explanation of the FSF's (authors of the license) view of the LGPL and Java, highlighting the inherent dynamic nature of Java applications using LGPL code. I now see that my earlier complaint about the ambiguity of the license is explained by the fact that the license was originally written with C-based languages in mind. Using such terms, Java does indeed dynamically "link" everything, so one can argue that any "import" statement corresponds to a derivation. The problem, of course, is that this definition of linking is suspect when applied to Java.
The FSF's executive director, Brad Kuhn, has allegedly made the following comment in response to debate over this subject:
"LGPL's Section 6 allows you to make new works that link with the LGPL'ed code, and license those new works any way you see fit. Only the LGPL'ed code itself must remain Free. Such 'client code' (as mentioned in the story posting) can even be proprietary; it need not be LGPL'ed. LGPL's Section 6 does place some requirements on what you do, but that is only to make sure that people can effectively exercise their freedoms to copy, modify, and redistribute the LGPL'ed code.
-- Bradley M. Kuhn, Executive Director, Free Software Foundation"
(http://developers.slashdot.org/comments.pl?sid=71522&cid=6467558)
All that said, the following is the important section of Mr. Turner's statements:
"If you distribute a Java application that imports LGPL libraries, it's easy to comply with the LGPL. Your application's license needs to allow users to modify the library, and reverse engineer your code to debug these modifications. This doesn't mean you need to provide source code or any details about the internals of your application. Of course, some changes the users may make to the library may break the interface, rendering the library unable to work with your application. You don't need to worry about that -- people who modify the library are responsible for making it work.
When you distribute the library with your application (or on its own), you need to include source code for the library. But if your application instead requires users to obtain the library on their own, you don't need to provide source code for the library."
What this means here is that licensed users of a proprietary application should be able to take the LGPL code (our "black box") and edit it or replace it with a new version of the LGPL code. It also means that a proprietary application no longer works as a result of these changes, that the client must be allowed to reverse engineer those parts of the proprietary application that depend on that LGPL code. Lastly, one must include the LGPL source code, but not the proprietary application's source code in any distribution. The owner of the proprietary application is not obligated to support any such changes, only to ensure that they're allowed to happen.
As added consideration however, have you considered offering commercial support for your toolkit? You'd have a customer right here if the price is right. Might be a good way to get remunerated for your work..
Sorry for being dumb, my interpretation of the LGPL nature of this project was that i'd be able to release a commercial product that *uses* the library but does not modify it in any way, without needing a commercial licence? Is this still correct, or do I need to stop using this beauty right now ? (As long as the licence is shipped along with my app)
(I understood that the advantage of the commercial license is support and svn access )
Hi Alex, I appreciate your response. I think the part where our interpretations differ is with the term linking. Luckily, the LPGL provides a very clear definition for us:
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library".
So, if your application is distributed and contains Ext embedded, it in fact contains the library and it is governed by the terms of Section 6. IMO this is difficult to debate since it is so clear.
That depends entirely on what you see as an "executable" in the context of a Web application. While I can follow you in seeing it like you do (web application and all files = executable), it could also be seen differently (e.g. main js file = executable, index.html = executable). Unfortunately I doubt that your view will hold before a court, but IANAL.
The primary purpose of licenses and support fees are to a) protect ourselves, b) put food on the table without begging, c) help fund making the library better - like better documentation.
I think you will find even with a commercial license, the price is extremely reasonable. Our thought is that if you are distributing a commercial product with Ext and you will be selling for it profit, you should be willing and able to pay a reasonable license fee. We are not talking the ridiculous prices of commercial libraries (e.g. backbase 6k per CPU) but a royalty free 1 time reasonable license fee. I think it is fair. In all other commercial deployments, the LGPL covers you for free use.
Saeven,
This will all be clarified on April 1st when we launch the licenses. We have decided to also include a definitions section to apply the LGPL to a JavaScript library (specifically to avoid modifying the LGPL).
I just wanted to put my 2cents in, i agree with gfraser of motorola.
I work for Marriott International's Data Center in the "Automation Services" Department. I'm working on building a contact lookup application based off our CMDB. we looked at BackBase a long while ago and it's WAY too damn expensive.
Jacks solution, even if it's like 200$, is still a great price, IMO.
To you guys who are dependent on Jack's code --- you don't need it to get the job done. YUI has all of the features you need. However it's ice to quickly whip things up, with pre configured things like the data grid, dialogs, etc. It's very useful and valuable when you can work "magic" in a few lines of JS.
Nortel Unveils Vision, Strategy for Israeli High-Performance Net
Busy Friday Leads to Strong Close for Net Stocks
|