Simplified non-gpl extension deployment pattern

*IF* you want to share your opinion on the GPL issue, this is the place for you.
Locked
User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Simplified non-gpl extension deployment pattern

Post by lobos » Mon Jul 02, 2007 2:41 pm

More information about this argument: http://forum.joomla.org/index.php/topic,184355.0.html

I feel the imperative here is to create a simple pattern that can allow non-gpl IP to run as a plugin of a GPL framework legally and outside of the GPL. The following quote directly from the GPL (bold added for emphasis) proves my pattern:
If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.
Below is a simple application of this pattern as a Joomla component:

File: "widget.php" contained in "mysite.com/components/com_widget" and invoked within Joomla with the following URL: http://www.mysite.com/index.php?option=com_widget

name;

//from this point forward are identifiable sections of this work that are not from Joomla! IP
//license:commercial

if(!$name){
  $name =  'FreedomFighter';
}

echo $name;
?>

As you can see from the above, identifiable sections of that work are not derived from Joomla!, and can be reasonably considered independent and separate works in themselves due to the fact that the program will run without Joomla! and when this IP is distrubuted as separate works the only logical outcome is that the GPL License, and its terms, do not apply.

This is the most simple way that I can describe this pattern. I understand that the component is extremely simple, but it proves beyond doubt that there is an opening and a legal one at that. Using the above pattern one can quickly implement the tools needed to provide the rest of the functionality and soon be deploying non-gpl licensed extensions for Joomla!

-Lobos
Last edited by lobos on Wed Jul 25, 2007 7:52 pm, edited 1 time in total.
Fish n' Chips

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by lobos » Mon Jul 02, 2007 2:51 pm

To further aid in implementing this pattern and as a gesture of reconciliation towards 3PD commercial developers I would ask that certain variables be exposed to the global name space (or other appropriately neutral areas) via an amendment to the Joomla! framework. Initially I would ask for the following to be made available:

username
usertype

database host
database type
database username
database password
database name
database prefix

This is a minimal list, but more would be welcome if deemed appropriate.

-Lobos
Last edited by lobos on Mon Jul 02, 2007 3:09 pm, edited 1 time in total.
Fish n' Chips

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by lobos » Mon Jul 02, 2007 3:55 pm

MCSmom,

I have been reading a few of your comments concerning my conduct on this board (and others). I would just like to take this moment to apologise for any of my comments (on this board or others) that may have upset you. I guess I got a bit caught up in the heat of this debate and have now realised that it will be better for all parties concerned if we approach this challenge in an orderly and professional manner.

I am confident that, by working together, we can come up with a solution acceptable to all parties concerned.

-Lobos
Last edited by lobos on Mon Jul 02, 2007 4:03 pm, edited 1 time in total.
Fish n' Chips

Asphyx
Joomla! Hero
Joomla! Hero
Posts: 2454
Joined: Sun Aug 28, 2005 5:03 pm

RE: Topic: Simplified non-gpl extension deployment pattern

Post by Asphyx » Mon Jul 02, 2007 4:31 pm

From: http://forum.joomla.org/index.php/topic ... cseen.html

IMO - this method does get around the GPL Compliance required...
Not that what I think has much validity. That said what J! thinks is probably no more or less valid which is why they have been hesitant to advise you that this does the trick.

that said I feel the best way forward is to work on the API of J! so that it can be re-licensed under an LGPL to avoid this Multi License release of extentions in the future.

As you are requesting some changes to the API to allow your workaround wouldn't it be a better application of time to help replace the GPL borrowed code in the API/core and help to seperate the API from the basic CMS core to allow 3PDs to use the API under a LGPL instead of trying to re-invent the wheel?

If all of the commercial 3PDs would get behind this goal as opposed to acting as a lone wolf for their own benefit, we could get to the place you want to be and we could get back to normal in regards to commercial extentions and your legal right to use the API without fear of Legal proceedings trying to take these rights away.

Jinx has suggested this might be possible in the future but they did not have the time to get that far for J! 1.5
Thats says to me the goals of both J! and the 3PDs are heading to the same destination and if you worked together to make the dream possible we might get there faster.

The solutions are there. The Path is well defined in how to get where we all want J! to be.
the project is huge and heavy but if we got enough people to tow the line we could solve this entire situation in less than a year.

Since the situation of non-compliance has existed since before even the advent of Joomla I can't see how one more year of the hope nd pray reliance on "Won't Get Taken To Court" for releasing incompatible with GPL license can't continue to be used while we work on the seperation and code needed to allow J! to LGPL the entire API to get where we want.

If the 3Pds would just give a little to the project in the end they would likely get a lot...
Certainly a lot more than they can get with any other CMS they could develop for!

And everything I have read says to me that the J! devs are quite willing to LEGALIZE Commercial non-GPL extentions once the API and Core is in a state that allows them to LGPL the parts that a 3PD would use to make their derivative...

Lobos I commend you for looking for solutions to the issue. And while your method IMO is a solution I think it is better to all rally around the KEY issue of Borrowed GPL code inside J! as it solves the heart of the issue as opposed to coding around it.

User avatar
mcsmom
Joomla! Exemplar
Joomla! Exemplar
Posts: 7985
Joined: Thu Aug 18, 2005 8:43 pm
Location: New York
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by mcsmom » Mon Jul 02, 2007 4:55 pm

THanks, I appreciate that.

I'm not going to get involved in this thread, but know that we are working on a way to respond in an organized fashion to the various ideas that have been presented.
So we must fix our vision not merely on the negative expulsion of war, but upon the positive affirmation of peace. MLK 1964.
http://officialjoomlabook.com Get it at http://www.joomla.org/joomla-press-official-books.html Buy a book, support Joomla!.

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by lobos » Mon Jul 02, 2007 5:34 pm

MCSmom,

No problem, I understand that everyone is working toward a solution.

Asphyx,

In regards to your reply to this thread.
IMO - this method does get around the GPL Compliance required...
And while your method IMO is a solution I think it is better to all rally around the KEY issue of Borrowed GPL code inside J! as it solves the heart of the issue as opposed to coding around it.
In a perfect world, with unlimited developmental resources, yes it would be a simple matter of rewriting the Joomla! core and removing all GPL code so it could be made LGPL. But frankly I don't feel this is going to happen anytime soon, and if it does we are talking about "by the end of this year" or more likely longer.

By exposing key variables to a neutral environment (as stated in my earlier reply), innovative 3PD developers can start creating custom frameworks of their own which would allow the deployment of non-gpl virtually straight away. I, for one, already have one such framework ready and am currently using it in a testing environment. My framework suits my development better then that currently deployed via Joomla!

In light of this it is in all probability that different frameworks may be suited to individual preference rather than the "one size fits all" type currently deployed with Joomla. Different developers probably have different needs and therefore would benefit from focused custom frameworks. Exposing the variables I mentioned earlier would allow commercial, 3PD to deploy such frameworks without license restriction and thus inject new innovation into the industry due to the fact that they have to have a non-gpl framework to deploy their IP.

Although it is really nice, and I commend the work done by Joomla! developers on the current framework, one would be disingenuous to state that this is the only way it should be done. Once considerable work is applied to one methodology it is very difficult to switch to, or integrate another without compromising the stability or, more importantly, optimisation of the existing system so IMHO it could be better to have the ability to integrate other frameworks passively via extensions for testing and then on to full standalone versions if the framework shows promise.

Not everyone is going to want to create custom frameworks and it will probably be found that organisations with extensive resources will be more focused on this area (or codewhores like me), but the main thing to remember is that the technology and ideas will filter down for the betterment of framework development. You are probably not going to see the code, but most with enough knowhow will be able to work from the pattern or idea.

The main thing I am looking for now is the go ahead to use this pattern, or one similar legally - yes I know I can go and get a lawyer and I also feel that I can easily convince him of the legality of my pattern, but I don't want to do such a heavy handed thing, I would rather a voluntary acceptance type statement from Joomla! if possible. In light of my current preference for us to work together in finding a solution I would prefer to do things nicely from now on.

-Lobos
Fish n' Chips

Asphyx
Joomla! Hero
Joomla! Hero
Posts: 2454
Joined: Sun Aug 28, 2005 5:03 pm

Re: RE: Topic: Simplified non-gpl extension deployment pattern

Post by Asphyx » Mon Jul 02, 2007 7:24 pm

In response:
In a perfect world, with unlimited developmental resources, yes it would be a simple matter of rewriting the Joomla! core and removing all GPL code so it could be made LGPL. But frankly I don't feel this is going to happen anytime soon, and if it does we are talking about "by the end of this year" or more likely longer.

By exposing key variables to a neutral environment (as stated in my earlier reply), innovative 3PD developers can start creating custom frameworks of their own which would allow the deployment of non-gpl virtually straight away. I, for one, already have one such framework ready and am currently using it in a testing environment. My framework suits my development better then that currently deployed via Joomla!

In light of this it is in all probability that different frameworks may be suited to individual preference rather than the "one size fits all" type currently deployed with Joomla. Different developers probably have different needs and therefore would benefit from focused custom frameworks. Exposing the variables I mentioned earlier would allow commercial, 3PD to deploy such frameworks without license restriction and thus inject new innovation into the industry due to the fact that they have to have a non-gpl framework to deploy their IP.

Although it is really nice, and I commend the work done by Joomla! developers on the current framework, one would be disingenuous to state that this is the only way it should be done. Once considerable work is applied to one methodology it is very difficult to switch to, or integrate another without compromising the stability or, more importantly, optimisation of the existing system so IMHO it could be better to have the ability to integrate other frameworks passively via extensions for testing and then on to full standalone versions if the framework shows promise.

Not everyone is going to want to create custom frameworks and it will probably be found that organisations with extensive resources will be more focused on this area (or codewhores like me), but the main thing to remember is that the technology and ideas will filter down for the betterment of framework development. You are probably not going to see the code, but most with enough knowhow will be able to work from the pattern or idea.

The main thing I am looking for now is the go ahead to use this pattern, or one similar legally - yes I know I can go and get a lawyer and I also feel that I can easily convince him of the legality of my pattern, but I don't want to do such a heavy handed thing, I would rather a voluntary acceptance type statement from Joomla! if possible. In light of my current preference for us to work together in finding a solution I would prefer to do things nicely from now on.

-Lobos
I agree with your assesment that it will take some time, time that some Developers who are deep into development alredy might not be willing to wait for.

And I like the idea of exposing every bit of the framework for use in extentions. But I had hoped that the API itself would do this in a standardized way so that extentions could at some point interact with other extentions, a task that would be quite impossible if every extention had to make their own buffer to get compliant.

Sure every extention will have different needs and likely need to customize some parts of the exposed API but exposing the entire API would facilitate a standard for all.

It appears quite redundant to have to create an interface for an API meant to interface.
I don't know how much workis needed to LGPL the API so I can't reasonably estimate how long such a job would take if all the 3PDs who wished to keep their current business model helped write individual routines that could replace the GPLed routines being used that the owner has refused permission to LGPL.

But if your all going to write your own or ask the J! Devs to expose some parts of it, isn't it better to just write the code you would need for use in the API or Have the J! devs spend whatever time they do have working on replacement code and seperation that would allow a LGPL license to be used?

This may not really be a relevant question in regards to your thread as you are just trying to get your project done in a compliant manner.
I'm just trying to see that work being done to get around the issue isn't being redundantly done and limited in scope so that we can get past this as quickly as possible.

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: RE: Topic: Simplified non-gpl extension deployment pattern

Post by lobos » Tue Jul 03, 2007 1:04 am

Asphyx,

Before addressing your feedback I would like to sincerely thank you for the time you have put into thinking on the information that I have provided.
Asphyx wrote: I agree with your assesment that it will take some time, time that some Developers who are deep into development alredy might not be willing to wait for.

And I like the idea of exposing every bit of the framework for use in extentions. But I had hoped that the API itself would do this in a standardized way so that extentions could at some point interact with other extentions, a task that would be quite impossible if every extention had to make their own buffer to get compliant.
A properly authored/documented framework will offer the possibility of API sharing, in fact one might argue that even a properly authored extension should offer such interactive capabilities api or no api. The current system is not standardised anyway so this issue is moot. This is also where one notices how much better it is to use an object orientated approach as opposed to a procedural one when extending frameworks. If an extension uses a library type system to store functionality this functionality can be easily accessed from anywhere.
Asphyx wrote: Sure every extention will have different needs and likely need to customize some parts of the exposed API but exposing the entire API would facilitate a standard for all.

It appears quite redundant to have to create an interface for an API meant to interface.
I don't know how much workis needed to LGPL the API so I can't reasonably estimate how long such a job would take if all the 3PDs who wished to keep their current business model helped write individual routines that could replace the GPLed routines being used that the owner has refused permission to LGPL.
I don't feel that it is as easy to do this as it sounds (by getting 3PD involved coding up a new LGPL Joomla API). By his/her very nature the 3PD is a lone wolf type coder (normally), and their ability runs the full spectrum from expert to... not so expert. I could envisage a "too many cooks in the kitchen type scenario, but maybe it could work... In regards to talking about redundancy, any concerted effort on a standardised "one size fits all" type API with Joomla will result in redundancy. If an extension fails to utilise even one of these api features the system is redundant. Either system will result in redundancy, that is a fact of life.
Asphyx wrote: But if your all going to write your own or ask the J! Devs to expose some parts of it, isn't it better to just write the code you would need for use in the API or Have the J! devs spend whatever time they do have working on replacement code and seperation that would allow a LGPL license to be used?
Valid points, but who can say when the J! devs would have the time to do this. By exposing the variables quickly (this is not so hard to do) 3PD could start working straight away on the problem and who knows? We may see something magic :)
Asphyx wrote: This may not really be a relevant question in regards to your thread as you are just trying to get your project done in a compliant manner.
I'm just trying to see that work being done to get around the issue isn't being redundantly done and limited in scope so that we can get past this as quickly as possible.
I too want a quick resolution, thats why I ask for this exposure of key running variables. If this is done I would say someone will come up with a solution withing the next few weeks, if not sooner. I am sure there are 3PD all over the place just itching to have there name etched in code ;)

-Lobos
Fish n' Chips

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by lobos » Mon Jul 23, 2007 6:12 pm

Ah, I'm back again and I see that there is a certain lack of refute for my non-gpl deployment pattern.

I had the privilege of speaking to my friend (who happens to be a lawyer) about this issue the other day (quite informal, but he has experience in licensing). I talked about the current GPL licensing issue as well as this thread, or more importantly this part of the GPL (which Joomla! is licensed under):

If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.


After a little bit of discussion (just so he could get his head around things), we soon came to the consensus that my deployment pattern is indeed legal and possible. Remember this guy is my friend and he has no motive in trying to get me to hire him, this was advice from a friend that has my best interests at heart, if he didn't believe my deployment pattern was legal he would tell me as he would not want to see me get into trouble.

I am now confident that I can defend my pattern legally.

For me the issue is now closed, I can deploy non-gpl extensions for Joomla without any fear of legal repercussions, in fact I will deploy something soon and I will extend the invitation for any challenge, legal or otherwise.

I am very happy that this issue is now resolved and I look forward to getting back to what I do best, coding. I also look forward to seeing open source and closed source developers working together, there is a place for us both.

-Lobos
Fish n' Chips

Geoff
Joomla! Virtuoso
Joomla! Virtuoso
Posts: 3193
Joined: Sun Apr 16, 2006 12:20 am
Location: 127.0.0.1

Re: Simplified non-gpl extension deployment pattern

Post by Geoff » Wed Jul 25, 2007 6:13 am

Looks like we found a solution! :D
Backup, backup, backup!
The "Master" .htacess file by Nicholas http://snipt.net/nikosdion/the-master-htaccess

User avatar
lobos
Joomla! Explorer
Joomla! Explorer
Posts: 322
Joined: Wed Jul 19, 2006 3:33 pm
Location: Sao Paulo, Brasil
Contact:

Re: Simplified non-gpl extension deployment pattern

Post by lobos » Wed Jul 25, 2007 4:40 pm

igeoffi wrote: Looks like we found a solution! :D
Thank you for your feedback.

I feel it would be a little early to call this a solution per se, but I feel the pattern I have described offers a clear path to resolving the current issues. There is still a little work to be done, especially in regards to supplying the functionality to make my pattern feasible. The things at the moment to work on are database access and permissions control.

In regards to database access, I have already integrated the adodbLITE library(s) and it works well. In regards to permissions, I am currently working on an advanced access system based on that which I deployed with JChat. At the moment I am a little busy, so I would like for those developers interested to play with my pattern and see what they come up with. The permissions system is covered though and I hope to deploy something very soon.

Maybe an end to this madness is finally in sight? Let us hope so anyway!

-Lobos
Fish n' Chips


Locked

Return to “GPL Discussion”