On Wed, Dec 21, 2011, at 03:01 AM, Chris Travers wrote: | > Let's suppose that I've working on a Ledger++ program | > which is a proprietary version of your Ledger SMB that | > adds awesome multi-state Payroll and Asset Depreciation | > features. Only rather than including these features | > in your code-base, I include only stubs that package | > up the data each feature needs, calls a proprietary | > web service, and returns the data. | | Ok. So far so good..... | > | > So, about 5% of my code is a bunch of hooks, while 95% of | > my Ledger+ code remains proprietary. I release the stubs | > under the GPL license... but effectively, the features | > I've added are completely useless and non-operational | > unless you've paid for my web service subscription. | | Well, technically you'd probably release under the LGPL or BSD | license, sort of like nVidia does with their stubs for their Linux | video drivers. Again this isn't a new thing. You see a surprising | amount of it in Linux (ndiswrapper, the nVidia drivers that RMS hates, | etc).
I don't understand why it'd matter how the stubs are licensed, if the GPL doesn't have any ability to "jump" over a network. | > My reading of the GPLv3 is that it uses copyright law | > to determine when you've made a modification, but, the | > condition to distribute your modification goes far beyond | > this limitation, including "the whole of the work, and all | > its parts, regardless of how they are packaged". | | That's not my reading. My reading is that the license tries to get | away from the derivative works definition (maybe it's not strict | enough for Stallman?) through refining definitions. Of course the GPL | is not a EULA and it only requires acceptance when you distribute the | work or derivative works, but that only covers some cases. The GPLv3 defines a modified work as strictly matching any adaptation that requires copyright permission. So, I don't think there is a re-definition there. What the GPLv3 does do is set very broad terms (far beyond the 'modifications') in exchange for the right to publicly distribute these modifications: In Section 1, it requires the "Corresponding Source" to include *all* the source code needed to generate, install, and (for an executable work) run the object code and to modify the work -- excepting system libraries or general purpose tools or generally available free programs. So, for my example, I believe the "Corresponding Source" would absolutely include the Multi-State Payroll and Asset Depreciation code that I'm trying to hide behind a web service. Since without this code, I'm not able to run the logic in the hooks (screen buttons let's say). In Section 5, the GPLv3 clarifies this intent even more, by requiring that I license "the whole of the work, and all its parts, regardless how they are packaged". In my example, I'm attempting to circumvent the GPL via packaging. However, it's pretty clear that the whole work includes the Payroll and Depreciation logic since my hooks are pretty useless without this complementary logic. Hence, while the *modifications* to your code are simply hooks, the conditions for distributing those modifications would go far beyond what copyright law might consider. Deservedly, the GPLv3 uses my hooks (the part covered by copyright law) to require the release of the exact same source code I am attempting to shield & pretend aren't part of the derived work. | Let's try a thought experiment. Let's say LedgerSMB depended on | Windows and was essentially using Windows-only API's (and thus linking | with Windows base libraries). Now, I recognize that the GPL | specifically exempts linking to system libraries, but I see no reason | why system libraries are different from a copyright perspective (i.e. | this distinction exists solely because RMS wrote it into the license). | Now, if linking implies derivation, then isn't the software (and by | extension *all* Windows software) derivative of Windows? If that's | the case then doesn't every developer of Windows software need | Microsoft's permission to distribute such software? I don't think so. That's not how the GPLv3 works. The GPLv3 isn't claiming your work is a derivation of the base works, it is adding additional conditions in exchange for the right to distribute your modifications. There is a difference. Let's pretend that Win32 calls aren't System Libraries. In this case, let's say I'm making a derived work that ports your software to work on Windows. So, while I cannot do this directly, I can do it indirectly by ensuring that Wine supports the Win32 calls I use and getting my program to work under Wine. In this case, I will have met the conditions in sections 1 and 5 of the GPL using the code found in Wine. There is nothing saying that my derived work (that is generated on Linux under Wine) couldn't be distributed and executed on the Windows platform. | > Would you have a problem with the scenario above, perhaps | > assuming I'm implementing a business feature that you consider | > to be "core" to the mission of Ledger SMB and you would have | > hoped would be contributed back to the project? | | Would I personally have a problem with that? Not as such, | though I might think you were doing something unwise. Your arguments correspond to ones use by a permissive license, which work well when your users care about which version they are using and competitors are not particularly well financed. Perhaps you should be licensing your software under BSD or MIT? | Keep in mind though, I don't think any of the developers on the | LedgerSMB project are hostile to more permissive licenses. Exactly. I'm also not in disagreement with this approach; it just isn't always the best option for a given business entity. Best, Clark _______________________________________________ License-discuss mailing list [email protected] http://projects.opensource.org/cgi-bin/mailman/listinfo/license-discuss

