-
18 Jan 2010 6:54 PM #11
Thanks for the tip. I should have mentioned that for apps that have overlapping drag/drop implementations and/or mousedown listeners, users should expect to tweak the event handling. The event listeners timings can get a bit hairy due to the fact that the extension already has multiple mousedown listeners, so if you add any additional mousedown listeners on top of the 2 pre-existing ones, expect a little tweaking to get everything to play nice.
-
18 Jan 2010 7:06 PM #12
Very cool, nicely done.
Evan Trimboli
Sencha Developer
Twitter - @evantrimboli
Don't be afraid of the source code!
-
18 Jan 2010 11:49 PM #13
I really like this, thanks for you work. I've noticed one problem where if you only have 1 tab and you drag it it throws an error. It's on line 156, this.targetProxy is null in this case. I fix it I just put line 156 and 157 inside an if statement checking that this.targetProxy is an object.
-
19 Jan 2010 2:11 AM #14
Very Nice
Very Nice
Very nice, thank you for sharing.
-
19 Jan 2010 5:15 AM #15
-
19 Jan 2010 8:14 AM #16
Hi Scipio!
I wanted to say that i LOVE your sliding tabs component and I was curious if you had any plans to release it under a different license like BSD. I'd love to use it in an application i'm building but i can't use anything with GPL.
Thanks!
-Nate
-
19 Jan 2010 3:02 PM #17
Permissive License Issue
Permissive License Issue
Hi Nate, I would love to release the extension under a license other than the GPL, but I don't think I can and I'll explain why.
A. FLOSS Exception, or Open Source License Exception for Development License: Can I release the extension under an MIT, BSD, or other permissive license using ExtJS's FLOSS exception to the GPL?
No, because the FLOSS Exception states in section 2 (a): You are free to distribute an Extension licensed under one or more of the licenses listed below in section 5, as long as:, Your Extension does not contain any Code or modified Code from the Library.
The slidingTabs extension does invoke and override several methods of the Ext.TabPanel, and for at least 1 method, I directly copied some code in the Ext JS 'library' into my overrided method. Therefore, it contains modified code from the library.
Perhaps my understanding of 'modified code' is overly broad because it implies that virtually no one can use the FLOSS exception, but since the Ext JS team provides no examples or guidance on the matter, I must assume that I fall outside the exception.
B. Commercial License: If I had a commercial license for extJS, could I release the extension under a commercia license?
No, because the commercial license agreement states in section (4): You are explicitly not allowed to redistribute the Software or Modifications as part of any product that can be described as a development toolkit or library or is intended for use by software developers and not end-users.
My reading of this indicates to me that since my extension is a modification of the ExtJS library and is directed to developers instead of end-users, it is a prohibited use for a commercial license.
I would love to hear from the community and/or the ExtJS dev team as to why I am wrong, because I would like to release some extensions under a more permissive license and for some extensions I would like to sell a commercial license.
Please do not tell me to email licensing@extjs.com, I have tried that several times, and they have not answered my questions.
All feedback, however, is strongly encouraged.
-
19 Jan 2010 3:36 PM #18
For the definition of modified code, see also this, taken from the Ext License FAQ:
So if i understand this correctly:The simple rule to follow is if you modify any functionality or file in an Ext product for a purpose other than configuration, you have created a modification. All modifications naturally are covered by the GPL v3 license. Additional information is available in the official GPL FAQ.
The following are examples of modifications:
* Modify Ext JavaScript, Java or CSS source file
* Extend Ext class or override any Ext functions or methods
* Modifying an Ext API
You may release any extension under a permissive license so long as you are changing anything from Ext. Does that sound correct?
I'd like for the Ext team to give us an example of an extension that CAN be released under a permissive license. If you were to take the phrase "modify any functionality" literally then only extensions which don't do anything would be allowed.
However, It would seem that you could make the following changes to your code and it would be free of 'modified code':
1) Change it to a plugin instead of a tabpanel sub class
2) In the plugin, instead of overriding the original tab panel method, setup your init tab method as a sequence of the original method.
You would still be "modifying functionality"
Thoughts?
-
20 Jan 2010 9:22 AM #19Sencha - Community Support Team
- Join Date
- Nov 2008
- Location
- San Diego, Peoples' Republic of California
- Posts
- 2,050
- Vote Rating
- 11
I cannot believe that the Ext license is so restrictive that you cannot even pay for a license and extend a class without making your whole product GPL.
-
20 Jan 2010 9:36 AM #20
The restriction on modifications does not apply to your project if you have a license. However, you if you release your modifications, they must be released under GPL.
This doesn't make any sense to me. In order for me to use Ext itself in a commercial project, I have to pay for a license. So in order to use any extensions to Ext in my project, no matter what the license is, I will have already paid for my Ext license.
So the way I see it, Ext extensions should allow for any license except for one that requires the user to pay (you would need an Ext OEM license to sell extensions).
Say this plugin was released under a permissive license like MIT. There are two cases:
1) I use it an open source project. Ext doesn't get paid because I don't need to pay for an Ext license.
2) I use it in a commercial project. Ext gets paid since I would need an Ext commercial license to use the plugin in a commercial project.
It seems to me that the existing licensing model is too restrictive, even stifling to the community. If i build an extension and release it here, it can only be used in GPL software, even if i don't care who uses it!
Ext extensions could even be released under the Ext license (unless i have an OEM license): If you paid for Ext, you can use the extension in your commercial project. Otherwise, you can't! It could be that simple.



Reply With Quote