Please define Derivative Works

*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:

Please define Derivative Works

Post by lobos » Sat Jun 23, 2007 8:44 pm

What is classed as a derivative work of Joomla!

If I have an entire extension that does not in anyway alter the codebase of Joomla! But it does call on Joomla libraries to access database and user level, is this a derivative work?

I currently have 100's of hours of work hanging on the edge of this question and I need to know whether my work can be used with Joomla or if I should look for a more compatible framework.

-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: Please define Derivative Works

Post by lobos » Sat Jun 23, 2007 8:48 pm

Is there a way to access database username/password and user level from other avenues apart from the Joomla API? If I can do this my extensions will not be in violation of the GPL. In fact I can then offer a compatible framework for all Commercial providers that will allow them to deploy extensions to Joomla without using the Joomla API at all.

-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: Please define Derivative Works

Post by lobos » Sat Jun 23, 2007 8:50 pm

This is quite an interesting piece about derivative works:

http://www.rosenlaw.com/html/GL18.pdf
Here’s how I would decide in the edge cases that I described above:
· The primary indication of whether a new program is a derivative work is
whether the source code of the original program was used, modified, translated
or otherwise changed in any way to create the new program. If not, then I
would argue that there is not a derivative work.
· The meaning of derivative work will not be broadened to include software
created by linking to library programs that were designed and intended to be
used as library programs. When a company releases a scientific subroutine
library, or a library of objects, for example, people who merely use the library,
unmodified, perhaps without even looking at the source code, are not thereby
creating derivative works of the library.
· Derivative works are not going to encompass plug-ins and device drivers that
are designed to be linked from other off-the-shelf, unmodified, programs. If
Linux is designed to accept separately-designed plug-in programs, you don’t
create a derivative work by merely running such a program under Linux, even if
you have to look at the Linux source code to learn how to do so.
· In most cases we shouldn’t care how the linkage between separate programs
was technically done, unless that fact helps to determine whether the creators of
the programs designed them with some apparent common understanding of
what a derivative work would look like. We should consider subtle marketbased
factors as indicators of intent, such as whether the resulting program is
being sold as an “improved” or “enhanced” version of the original , or whether the
original was designed and advertised to be improvable “like a library.”
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: Please define Derivative Works

Post by lobos » Sat Jun 23, 2007 8:57 pm

What if I use a GPL script to create global variables of the above required eg:

$GLOBALS['Username']
$GLOBALS['Userlevel']

$GLOBALS['database']['usename'];
$GLOBALS['database']['password']; , etc, etc

So I have a GPL file that sets these globals, these globals can now be accessed by other files in the runtime without the files touching Joomla! api, functions.

In my opinion this is a solution. Unless the variables are GPL's as well.

-Lobos
Fish n' Chips

User avatar
louis.landry
Joomla! Ace
Joomla! Ace
Posts: 1388
Joined: Wed Aug 17, 2005 11:03 pm
Location: San Jose, California
Contact:

Re: Please define Derivative Works

Post by louis.landry » Sat Jun 23, 2007 10:06 pm

Another quite interesting piece on derivative works: http://www.linux.com/articles/113252

The issue with defining something like that is that there is no exhaustive or complete definition due to the fact that the very idea of it is subjective and abstract.  As can be seen in that article even the circuit courts of the United States don't fully agree on it ... I can't imagine all the different definitions that exist in different parts of the world.

Opinions are like noses ... most everyone has one :)

I personally think that while digging down into the code to a functional level can provide us technical guidance as to what is or is not derivative from a technical (or mathematical) perspective that most likely courts would look at things from a much more birds eye view.  I, however am in no way a lawyer nor have I any strong evidence to back that up :) Just an opinion.

Anyway, food for thought :)
Joomla Platform Maintainer
A hacker does for love what others would not do for money.

User avatar
Toni Marie
Joomla! Ace
Joomla! Ace
Posts: 1506
Joined: Tue May 09, 2006 5:37 am
Location: Arid-Zona
Contact:

Re: Please define Derivative Works

Post by Toni Marie » Sat Jun 23, 2007 10:20 pm

Please also remember, that the license doesn't apply to an entire work because one section or page of code is derivative.  If you have largely independent code, it can be separated and distributed under a different license from the derivative work.  You'd only need to leave the derivative work GPL-compatible and only offer that portion of the extension as open-source.  Of course I'm also no lawyer and no expert in your particular extensions, but I'm sure if the 3PDevelopers got together to come up with a solution, a good portion of commercial extensions could retain nearly identical business models to what they currently are using.

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

Re: Please define Derivative Works

Post by lobos » Sun Jun 24, 2007 1:04 am

tydust wrote: Please also remember, that the license doesn't apply to an entire work because one section or page of code is derivative.  If you have largely independent code, it can be separated and distributed under a different license from the derivative work.  You'd only need to leave the derivative work GPL-compatible and only offer that portion of the extension as open-source.  Of course I'm also no lawyer and no expert in your particular extensions, but I'm sure if the 3PDevelopers got together to come up with a solution, a good portion of commercial extensions could retain nearly identical business models to what they currently are using.
Yes I understand that it is only the part that contains the code derivative that needs to be gpl, but can't you see that this will cause a snowball effect? This is what we call "viral" and that is what GPL is. I think my solution as demonstrated by my globals example is the only solution (well the only one I can think of).

What other solution can there possibly be when even you guys can't define what derivative is...

Anyway I have a framework that I have been working on for sometime that is in my opinion more advanced than that used in 1.5. I may even release this as the "rider" that seems to have disappeared. So in the end the solution maybe that commercial devs use my framework and the GPL devs use the core Joomla one. A commercial dev would be foolish to use the framework offered in Joomla as they could well spend many hours codeing something up only to have be deemed in contravention to the GPL.

I can offer a solution that will allow commercial developers (hell GPL as well if they want) to quickly deploy their systems and also to be able to quickly port them over to other systems as well. This means that they will not be stuck within the Joomla framework  - all they will need to do is draw a few variables from the "host" cms / web app via an abstraction layer and all will be good.

Kind of shame that the devs spent so much time writing the 1.5 framework only to have it go unused.

So commercial Devs will have a solution soon it seems.

-Lobos
Last edited by lobos on Sun Jun 24, 2007 12: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: Please define Derivative Works

Post by lobos » Sun Jun 24, 2007 12:51 pm

Topic: A Suggested GPL Compliant Abstraction Process  (Read 82 times)
rugmonster

A Suggested GPL Compliant Abstraction Process
« on: June 23, 2007, 08:05:06 PM »

I have been trying to show folks over at the JCD-A a way to, without any admission of GPL violation, redesign the way their proprietary code works with Joomla!. It hasn't been received very well, but I hope that someone can find this useful.

Per the FSF, under the GPL, if a process calls another process, independently and no functions or classes are shared, the two are separate and distinct works. To illustrate how this might be done in Joomla!, I put together a simple example, that I called com_gplexample and hello.php.

Here's the breakdown. gplexample.php, being the main file for the Joomla! component, acts as the abstracting bridge between Joomla! and a BSD licensed script, hello.php. gplexample.php includes task.inc.phps which simply holds my $task related functions, so look there for the actual interfacing. The significance here is that the BSD license is not compatible with the GPL, yet through this implementation, I keep the two as separate, distinct works.

The way it works is the component provides the UI for input and output. It takes user input and puts it into a CURL HTTP request for hello.php. hello.php is accessed by passing it arguments like if you were to call a program from within another one. Obviously, they are two distinct entities. The BSD licensed script takes the information and does with it what I've told it to and passes it back as an HTTP response. The output is received by the component code and formatted for output. In this case, I ask for the user's name, it goes to hello.php to say "Hello there, $name" and sent back to be formatted inside a div. Simple, but I think it illustrates the point. You could adapt this to use Ajax or embed the non-GPL code's functionality inside an iframe.

As long as you aren't reaching into Joomla! proper to directly use it's functions or classes, you have not created a derivative. Also, the data Joomla! uses is stored in a database. To my understanding, there's nothing wrong with you connecting to that same database to grab data. If you need a user's session data, pass it as an argument for the non-GPL code. There are all kinds of possibilities to meeting the requirements of Joomla! and writing closed, proprietary code.

The biggest advantage here is that you no longer depend on Joomla! exclusively. You could take this generic code and create bridges for other CMS's. This would broaden the customer base for the product and allow you the opportunity to expand a potentially very limited niche market. After all, most CMS's provide similar functionality and chances are, if there is a demand under Joomla!, there will be demand under XOOPS, CMS Made Simple, e107, Typo3, and on and on and on.

If you would like to try the whole thing out, I have an installable package of it here. Note that you will need CURL support in PHP for the component to work properly. I welcome any and all thoughts on this.

Regards,
Daniel J. Givens
Jamandall Endeavors, Inc.

DISCLAIMER: The comments made here are strictly mine and do not represent the position of any other organization I may be affiliated with.
This is in my opinion adding a whole new layer of complexity to the process of making a Joomla component. As a developer of some merit I can tell you now that I would not use this method. You talk of CURL and AJAX, both of which are not existant on all systems / browsers.

Curl involves transmitting data via a http request which essentially means you would be making another page request and adding to load time. The same holds true for ajax. This is not feasible.

As I have stated before the way to do this is to take some "constants" from the Joomla system and apply them to another framework / api addressing system. This would allow one to create mulitple api that are independent of Joomla and GPL.

Bascically one would take all of the global variable output as well as database login details and make all available as variables (global or static) which are not covered by the GPL. The main thing to note here is that you cannot use Joomla! embedded functions such as:

$database->setQuery($query);

Although you could use

$database->myvariable
(it is my opinion that variables are not covered by the GPL but to be safe one could do this all in one global type file that sets the variables to the global namespace - IF GLOBAL VARIABLES CAN BE GPL'D I WILL EAT MY HAT!

This method evolves one moving to a new paradigm in approaching the creation of an extension, one that is in fact holds many advantageous for creating adaptable code. I will continue later as I need to head of to church.

-Lobos
Last edited by lobos on Sun Jun 24, 2007 1:01 pm, edited 1 time in total.
Fish n' Chips

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

Re: Please define Derivative Works

Post by mcsmom » Sun Jun 24, 2007 1:54 pm

I think it is great that a corner seems to have been turned, so that now various people are trying to think creatively about how to deal with the license issue. I don't know if any of these will actually be workable, but it is good to see the effort solve the problem.
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
severdia
Joomla! Guru
Joomla! Guru
Posts: 528
Joined: Mon May 01, 2006 4:34 pm
Contact:

Re: Please define Derivative Works

Post by severdia » Tue Jun 26, 2007 3:21 am

Under the GPL, the "bridge" has to be GPL and therefore anything it "connects" to.

http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF

So the idea of creating a "buffer" which complies is an interesting one, but doesn't work...especially if there's any sharing of data structure.
Author | Speaker | Mad Scientist
Author of Using Joomla from O'Reilly Media | http://www.usingjoomlabook.com/
Shakespeare and Joomla | http://www.playshakespeare.com

User avatar
Websmurf
Joomla! Hero
Joomla! Hero
Posts: 2230
Joined: Fri Aug 19, 2005 2:23 pm
Location: The Netherlands
Contact:

Re: Please define Derivative Works

Post by Websmurf » Tue Jun 26, 2007 7:52 am

severdia wrote: Under the GPL, the "bridge" has to be GPL and therefore anything it "connects" to.
Not really. You can use LGPL as well.
I'm quite shure any of the GPL compatible licenses (http://www.gnu.org/philosophy/license-list.html) can be used too

Besides that, it's my opinion Joomla components aren't derived works
Last edited by Websmurf on Wed Jun 27, 2007 7:23 pm, edited 1 time in total.
Adam van Dongen - Developer

- Blocklist, ODT Indexer, EasyFAQ, Easy Guestbook, Easy Gallery, YaNC & Redirect -
http://www.joomla-addons.org - http://www.bandhosting.nl

 

Locked

Return to “GPL Discussion”