Tuesday, November 9, 2010

Can The Dynamic Duo Free Software from the GPL?

Disclaimer: Hey I'm not a lawyer, ok? Get your own damn legal advice. In fact, if anything I say makes sense to you, then I wish you'd explain it to me, because it sure doesn't make any sense to me.

Updated 11/10: To understand my motivation for this post, you might want to read my next post, which explains why I think GPL is not the best choice for building healthy software ecosystems.

Updated 11/9: I got some feedback on this blog which -- fairly I think -- took me to task for being too harsh on GPL and FSF. My intention was to express some frustration, poke a little fun at some sacred cows, and offer a creative alternative to the dilemma that so many of us face all of the time when we have to choose between more permissive flavors of software licenses like BSD and EPL, and the much more restrictive GPL license.

I thought I was clear about this, but if there is any confusion, I am not attacking people who make the choice to use GPL. I've considered using the GPL for projects in the past, and I might again in the future. For what it's worth, while I would like to use the software I mentioned below -- and dozens of others -- I'm just fine with the fact that I can't. And I'm embarrassed contemplating the image I may have created of "ranting" against the injustice of the GPL license and laying awake at night plotting ways around it. After all, in the end, I can simply recreate that functionality. The next iteration is always able to learn and grow from the last, and providing software under a license that others can use freely will always give such software a leg up. Anyway, let me assure everyone that personally this really isn't a life and death issue.

But on the other hand, as a software developer, from an almost aesthetic point of view, there is nothing that frustrates me more than seeing the wasted energy spent on having people work on the same functionality for multiple projects under multiple licenses and organizations, when those people could be working together and getting much more accomplished with higher quality. (Yes, I do see the benefit of competition and diversity, and I think there is a value in that, but ultimately the gains from that are overwhelmed by the losses to cooperation.)

The central point of my IP engineering straw-man was to get people to think about alternatives. While I don't see anything wrong with people choosing a particular license, I don't see anything wrong with creative engineering around that license either. We do it all the time. Why should people have to go to the extreme of re-writing things so that everything goes through a socket when there might be better alternatives just to satisfy an attempt by GPL to plug holes that are ultimately un-pluggable? My view is that the terms of the GPL just aren't aligned with the distributed, dynamic way that people are doing software now, and this contradiction is going to only become more apparent over time. If I can help that process along, I'm proud to.

And I did intend to prod FSF a bit, because frankly I think they could use the prodding. There isn't something fundamentally bad with their approach. As I say below, I think there is a lot to admire about copy-left -- it's a daring, ambitious, creative and fascinating response to a lot of issues in our society that go far beyond software licensing. But as in most cases, ambition married to dogmatism leads in the end to contradiction and ends up requiring reliance on half-truths and the expression of naked coercion to support itself. And so yes, I do think that the claims on the FSF website are absurd, disingenuous and actually harmful to the ultimate aim of the FSF, if that aim is education and not indoctrination.

But no, I didn't mean to do it in a nasty way. My standard is to not say something online that I wouldn't be willing to say to someone's face. In an imaginary barstool conversation with someone from the FSF I'm afraid to say that I could imagine myself saying "you know on your website, the part where you say... that's total bullshit, isn't it?" I have had those kind of conversations in a friendly way in many contexts -- and taken as good as I gave -- but perhaps that's the kind of conversation that requires a few beers to go along with it. Anyway, I'm leaving the original post as is, because I don't want to alter history, but with an offer of free beer to my GPL friends when I see you non-virtually.

Recently I wanted to use some really nifty software within my own projects. I'm not going to name the particular project here just because a) it isn't relevant to the argument, b) my concern is not restricted to any one project, and c) I'm also an independent software developer, and respect the struggle that other small companies have trying to find the right strategy. The important point is that there is great potential for collaboration with said software but it uses GPL, which means I can't use it because the the two licenses are fundamentally incompatible.

The software also happens to be based on EPL code -- which I guess makes it technically incompatible with itself! I can't help but say that this approach seems unfair to me. Basically, one is taking the attitude that "I'll use other developer's software under their more open terms, but then release my software under terms that prevent those developers from doing the same". That's fine for commercial software, but in my opinion not so good for "open" software as it makes the relationship one-way. That's a subject I hope to return to in a later post, but ultimately, the banker's question has to be "why participate in a collaboration where the GPL entity is the only company able to make money off of the collaboration?"

As I researched the whole issue and went to others for ideas and advice, I headed over to the GPL site, and found myself looking at pitch perfect double-speak:



So now, let's see... If I want to use GPL Software X, and I decide to include that in my EPL or commercial release, then the Free Software Foundation will use the full power of the courts to prevent me from doing so. I can't buy anyone a beer and I can't even write what I want to. What sort of "freedom" was that again? In what sense exactly am I not "restricted"? I think what the page is really trying to say is "Freedom is Restriction". Hey, I understand and am (ambivalently) admiring of the whole idea of GPL, but could we drop the hypocrisy and variations on a theme by Orwell? Please?

Anyway, I guess I'm not going to get what I "deserve" out of the GPL, so is there a way to liberate it instead? After thinking about it for some time it dawned on me that there were some tools in the Eclipse jail-breaking kit that just might fit the bill.

The first thing we need to understand is what won't work. I can't have a direct dependency on the GPL code, obviously. I can't build something that requires the copyrighted GPL software to compile, and I obviously can't deliver it either.

But, what if I encapsulated the functionality that I wanted into an independently developed set of APIs? Then, I could create a separate code base for a plugin that implements that generic API and delegates the calls to the target GPL API. (Note that I can release the same or other software under various licenses. For example, I could make my Generic API available under EPL and/or BSD.) BAM!!

Perhaps we can escape this diabolic trap after all. We can see in the following diagram that we've zig-zagged around any dependency issues. The OSGi plugin loads the GPL functionality at runtime, not design or compile time. Take that, fiendish enslavers of software! SOCK!!

But there is still a problem here. Though no commercial software vendor would ever claim such a right and get away with it, the FSF actually wants to intrude on what software a program is allowed to link to dynamically. For some reason I can't fully articulate, as a lover of software the idea that someone could prevent you from executing something from within a program after the software is written -- even though you have the rights to use both pieces of software independently -- seems absurd to me, and even a bit wicked.

Now, as far as I know, the FSF has never had any success convincing a court of the enforceability of this unique approach to deconstructing copyright. It essentially requires a form of copyright protection that can see into the future and read minds. ("I just know that he wrote that software with the intention of allowing other people to link it to my software.") But in any case, the only hope of actually enforcing this lunacy rests on software delivery, not development. That's because each software component isn't at all related until the whole distribution is assembled, packaged and provisioned.

That is an extremely important point, because it means that as say an EPL developer, I would be free to use the above strategy without putting myself or my software under any jeopardy at all. (Now would be a good time to scroll back up to the top and read that disclaimer again..) I could even put that software on a server somewhere and let people build it themselves. (OK, Richard Stallman might have something to say about that, but in that case just put your hands over your ears and repeat "nanananan..I'm not listening...I'm not listening..." Or maybe a freeze ray would be in order.) The only trouble -- again, under the most ludicrous potential court ruling, but it isn't like ludicrous rulings never happen -- would be when I actually tried to deliver software to someone. If I bundled said GPL software with my project or product, and I hosted that bundle on my site, I maybe sort of possibly could be violating the GPL license. Somehow.

So you may have been wondering how P2 Aggregator fits into the picture. Here's how: nobody ever actually delivers the software at all! Instead, the end user selects the components that he or she wants from an aggregator site. If you think about it, aggregator is really a dynamic plugin mechanism, but for deployment rather than run-time. And, like plugins, it allows us to insert indirection into the dependency chain. You can assemble stacks of dependencies in any arbitrary way as long as those dependencies are satisfied. So, let's use dynamic deployment in the same spirit we used dynamic development. POW!!


Dependencies are ultimately specified in a file somewhere but in such a way that the software as delivered meets the appropriate license for the appropriate usage path. In other words, the GPL site "conveys" the GPL content, including as appropriate the dual-licensed proxy-API and plugin code. The EPL licensed project provides all of its code and thus of course avoids any potential issues of license incompatibility. And the DMZ site provides the generic API (and optionally the proxy plugins) under BSD license, which is compatible with both. WHAP!!!

The really subversive part is that a commercial vendor might even be able to use this method to deliver software using GPL functionality. KA-POW!!!!

Note that the P2 aggregate approach is very different from the kind of "aggregate" discussed in the GPL FAQ. In a typical aggregate like a Linux DVD Distro (does anyone actually make those anymore?), all of the software is put in one place. Instead, with a P2 Aggregator provisioned application, the customer assembles the software for his or herself, just as he or she does when downloading applications from the web. The GPL EPL software dependencies never exist anywhere else! So there is simply no sense in which the two sets of software could be said to incorporate each other.

As a thought experiment, imagine a customer who wants to use a mixture of open source and commercial software to edit photos. If she installs PhotoShop and a GPL'd Photoshop plugin, she couldn't be accused of violating copyright, could she? What if she went to an independent website and that website had a link for downloading Photoshop and another one for downloading the GPL plugin? Would that website be violating the GPL copyright? What if that website were instead hosted by Photoshop. Would that magically cause Adobe to be in violation of copyright? Now, imagine that both Photoshop and the plugin were hosted at oh, say the Mac App Store? Would the App Store be in violation? What if instead that user went to an Eclipse Market provider and selected a commercially licensed Eclipse image editor, together with a GPL-based plugin, which were then installed together? As far as I can see, the distinctions all quickly reduce into absurdity.

I'd love to hear your point of view whatever it is. To avoid wasting a lot of time, I'd especially like to hear from you if you think my idea won't work! (And in the interests of giving the Eclipse Foundation legal team a sound night's sleep, no, I am definitely not planning to test this theory out on an Eclipse hosted project.)

Well, kids, can Captain Aggregator and The Plugin free captive software from Dr. GPL? Or is our attempt to free ourselves from the forces of [...hmm... "forces of people with a different point of view" doesn't really have much of a ring to it, does it] doomed to failure? Quite a cliff-hanger, eh?

22 comments:

  1. Hi Miles,

    While I can understand your frustration about not being able to use some GPL software in your EPL-based project, I think that you are missing a simple point here.

    It is the choice of the author to put it under GPL, and as a user of the software you have to comply with the license (which is causing you to be frustrated).

    Now if really this GPL software would be very useful for your project and you would like to use it then your best option is to contact the author(s) and see if they would agree to relicense it under LGPL (which is designed for these kind of scenarios and should be compatible, but IANAL) or ask for an exception.

    It should be that simple.

    Ranting about what you perceive as "Grade A BS" from the FSF will not get you anything constructive.

    Cheers, Laurent.

    ReplyDelete
  2. It's an interesting notion but its a complex field that of opensource and licenses and I wouldn't really want to try it out. But doesn't the country's law were the software/plugin is hosted also any insurance's to this problem? I know your not a lawyer but the copyright laws are so complex that as a developer you should get a degree in international laws just to start even thinking of walking in to this mind field.

    ReplyDelete
  3. Thanks for your comment, Laurent. Yikes, I didn't think this quite went to the level of rant, did it? I just can't think of a better way to describe the act of claiming one thing while promoting something else then as "bullshit", but I really didn't mean it in a hostile way -- I thought I was just poking some good-natured fun. Apologies if it came off badly.

    To your main point, I absolutely agree that a software author has the ethical and legal right to put whatever kind of license they want on their software. In this case as is so often the case the use of GPL is a deliberate -- and perfectly reasonable -- strategy that attempts to have the best of both worlds. That is, the software developer can be an open source developer, while controlling all possible revenue streams from that software. On the other hand, my strategy as the software user is to get as much usage out of that software as I possibly can -- and I don't see anything wrong with that either.

    I also agree that as a software user, I have to comply with that license! :) So I'm not sure that we disagree, unless you're arguing that I have a responsibility to abide by the spirit of the license rather than the letter. An interesting thought if so, but my feeling is that just as I must follow the letter of the license so must the licensor. If some creative IP engineering exposes contradictions in the license is that really a bad thing?

    The bottom-line is that I just don't think the GPL lines up well with increasingly decentralized and dynamic software eco-systems and I think that the great divide between GPL and the rest of the Open Source world does more harm than good. Barbs at FSF aside, I think poking some good natured holes in the GPL facade might actually be constructive.

    ReplyDelete
  4. > "why participate in a collaboration where the GPL entity is the
    > only company able to make money off of the collaboration?"

    Publish your software on GPL and make money from it too.

    > The software also happens to be based on EPL code -- which I
    > guess makes it technically incompatible with itself!

    An _author_ can release his software on any license he wants. There is no any incompatibility. Frequently software is released for free on GPL, and for money on some more liberal license.

    The difference between GPL and EPL is on granularity: in GPL it's whole program, in EPL it's module.

    ReplyDelete
  5. Not being able to use the software in the way you would like to is always frustrating, whether the licence be GPL, or a corporate shrink-wrap. That's been the foundation of many a permissively licensed OSS project, I'm sure. And the statement on the FSF site is marketing, but not double-speak. The freedom in question is directed to all users of the software rather than individuals - indeed it is designed to restrict the freedom of the individual such that the individual cannot then impinge on the freedom of others :) GPL is not a permissive license.

    ReplyDelete
  6. Miles, even though you did not mean it in a "hostile" way, I must let you know it "did come off badly" for me too...

    ReplyDelete
  7. @Seweryn:

    "Publish your software on GPL and make money from it too."

    I don't think that works very well for really interesting reasons having to do with social network organization. I'm actually working on a blog entry discussing that. But in brief, consider that:

    a) In order to license Software X, Company A must have copyright in that code in order to release it under dual license.
    b) If Company B wants to make money from their extension to Software X, they must have a sub-license from Company A, because the linking rules under GPL make them subject to Company A's GPL license.

    Now, think about how well that would really work in a software eco-system. Again, I hope to have more to say on this in the near future.

    ReplyDelete
  8. @Oisin, thanks for your really thoughtful comments..

    "Not being able to use the software in the way you would like to is always frustrating ... the statement on the FSF site is marketing, but not double-speak. The freedom in question is directed to all users of the software rather than individuals - indeed it is designed to restrict the freedom of the individual such that the individual cannot then impinge on the freedom of others :) GPL is not a permissive license."

    Yes, and I wish they'd say that. To me there is a line between marketing and outright disingenuousness and personally I think FSF has crossed it, but others may reasonably disagree of course. While I think comparisons to political regimes are generally tiresome, the double-speak reference here is unavoidable. That's because the argument made above is exactly the same as totalitarian regimes make.. "We need to take away the freedom of the individual in order to preserve the freedom of society". This is actually how the rhetoric of "freedom is slavery" is constructed in 1984. Now that sounds hysterical on its own, but I'm not trying to make an emotional point here, merely pointing out notional parallels. Some people may feel that that is a reasonable compromise, and fundamentally the GPL is not coercive, because electing to use it is voluntary.

    ReplyDelete
  9. @Simon thanks for letting me know. Please see my article update.

    ReplyDelete
  10. @Seweryn:

    I forgot to mention.. I don't quite understand what your're saying below.

    >> The software also happens to be based on EPL code -- which I
    >> guess makes it technically incompatible with itself!

    > An _author_ can release his software on any license he wants. There is > no any incompatibility. Frequently software is released for free on GPL, > and for money on some more liberal license.

    Yes, people can release commercially and under GPL (see above). But you cannot release under GPL software that is intended to run under EPL license, nor vis. vs. And I don't see how it makes no sense to release the same software under GPL and say BSD. How do you make money on a BSD license?

    ReplyDelete
  11. I think 'software user' needs more unpacking because the freedom you have under GPL depends on how you plan to use the software. Different permissions are granted to a user that simply uses the software verses a user that modifies/redistributes it. The authors of the software under GPL do not have the users that modify/redistribute as the priority. Duh. Its purpose is to keep the original software available to the end users, to prevent the modifier/redistributor from locking it up. EPL, Apache and other licenses are much different; they are use by authors who allow their software to be locked-up into proprietary distributions. Oil and water don't mix.

    ReplyDelete
  12. @John says.. "I think 'software user' needs more unpacking"

    Agreed..

    "Different permissions are granted to a user that simply uses the software verses a user that modifies/redistributes it."

    Yes, which I think reveals a bit of the Ivory Tower (Cathedral) approach behind this. What I'm basically questioning here is where exactly the line between modification/redistribution and using is?

    The fundamental question is "what exactly is a 'distribution'"?! What's a program? Those are terms that are getting more and more archaic the further along we go. And if GPL is reliant on those terms, it is going to make less and less sense in a distributed dynamic world.

    "Its purpose is to keep the original software available to the end users, to prevent the modifier/redistributor from locking it up."

    I may be all wrong in my interpretation of GPL, but isn't its real purpose far more than that? I read it to be "keep the original software *and all software that subsequently depends on it* from being used outside of the terms of the GPL". I don't have any problem with the first, but the second is what creates the oil and water situation. If the GPL weren't trying to make decisions for users and re-distributors alike, I wouldn't have a problem with it.

    By devolving that to end-users, we preserve the intent you're stating above without going along with the viral scheme it carries along with it.

    I think.

    ReplyDelete
  13. "If the GPL weren't trying to make decisions for users and re-distributors alike, I wouldn't have a problem with it."

    Let's just keep in mind that it is a fellow developer who chose to use the GPL on his product. GPL does not have a will of its own. It is used by the author to express his desire for a certain kind of collaboration.

    I imagine such an author wants collaboration but in a different sense then you do. I think he expresses the desire for collaboration among three kinds of 'users': a component writer (himself), a systems author or component user (you, for example), and the end user. He does not want to see information restricted along any relationship of these three.

    I think the kind of collaboration you favor, if I read you right, is different. Wrong or Right is not the question for now; you simply have a different kind of collaboration in mind. Collaboration to you means sharing code between the systems author and the component author, but not between the systems author and the end-user.

    The difference between the two collaboration models is the extent to which code is shared with the end-user.

    I think you are saying through your post here that the latter model, less sharing model, is more free (libre). I can't see it that way.

    I agree that when a developer is embedded in the second model, the first looks frustratingly restrictive: Good software just out of reach.

    ReplyDelete
  14. @John thanks again for taking my post in the spirit intended

    "Let's just keep in mind that it is a fellow developer who chose to use the GPL on his product. GPL does not have a will of its own. It is used by the author to express his desire for a certain kind of collaboration."

    That is the most compelling argument against what I suggest and frankly the only one that would personally give me pause. For example, I'd be very unlikely to try to work my way around code that an individual developer clearly intended to be used in a copyleft context only. That's an issue of social norms and mutual respect (though not from my point of view ethics).

    I'm also intrigued by your use of the word "information" rather than "ownnership". That is, there is even another dimension here, between a) ensuring that everyone can see your code, and b) ensuring that everyone can share your code for free. (a seems a subset of b, but they aren't quite.)

    For GPL authors with desire (a) the objection to mixing the code itself with weak copyleft seems completely reasonable: "If I allow you to use my code, great, but I want to see what you have done with it, and I want to be able to make use of that and share it with others".

    I'm a lot less sympathetic to (b) (especially when it is coming from MegaSoft) because in a way what it is saying is "I'll share my code with you, and I can make money on that code and even extend it (because I hold a dual license!), but I won't let you make money on your code without getting permission from me." That's a have your cake and eat it to kind of thing which I discuss in my next post (pls see above).

    But I think there is something I'm not getting with your collaboration argument WRT to this. Maybe its the information vs. usage thing, but I don't see any solid distinction between the same three types of users. To me there are people who write code, and people who run code, and of course that population can overlap. And then there are people who write code that runs on other code. Perhaps this is the distinction between collaboration types that you are pointing to.

    If I write a piece of code and release it and someone changes that code, I desire to see people contribute it back. I'm not sure I'd try to coerce people to do that, but on the other hand, if it is general and abstract and maintained often, it would be really self-defeating for them not to. That's more or less the kind of thing that the EPL (weakly) tries to encourage.

    What I would *not* expect is for everyone who writes code that uses my code to give me that code. That is the part that bugs me at least when married to desire (b).

    ReplyDelete
  15. Hi Miles,

    Not had time to read all of the updates, but it seems this has turned in a very interesting and civilized discussion. Gotta love it!

    To come back to your reply, I quite like your way of "poking some good natured holes".

    The "BS" part of your comment was probably not the best way to put it (but it got the job done :-)), as you are commenting on beliefs of others, and this is always going to be touchy.

    The FSF work over the years, and their strict adherence to the GPL principles is a very major part of what has made the "Open Source" revolution possible.

    I remember in the very early 90's numerous flame wars on USENET newsgroup between BSD and GNU advocates.

    The core of the argument often revolved then around the fact that BSD advocates were not happy with the GPL as this license was not making it easy to turn the software in a source of revenue (consulting, product, ...).

    The counter argument from the FSF/GNU camp has always been that this kind of pragmatic compromise on the principles would actually end-up compromising their end goal (even if there were benefits in the short term).

    The end goal of the FSF being for all or most software to one day be "free" as in freedom.

    The end goal of the BSD advocates (and today we could say EPL-advocates) is not necessarily that all software be "free", but seems to me better summarized as a pragmatic "lets get things working".

    Today there are quite a few people/companies living off creating/maintaining GPL-licensed software (have you seen how well redhat is doing these days...).

    It has taken a loooong time getting there, but now the views expressed in GNU Manifesto that people should be able to make a living from working on Free Software is no longer looking like a utopia.

    ReplyDelete
  16. Hi all,

    I responded in (too much!) depth to some of what you say below, but a few quick additional thoughts here. First, re: BS, yes my fault was in not distinguishing between people who construct rhetoric to suit their immediate needs (i.e. bullshitters/politicians) and those who actually believe the rhetoric, but perhaps overly condense the argument to it's final conclusions. I can buy that most of the FSF is in the latter group and my apologies for assuming otherwise. But perhaps it would be better if the website said something like "working for a world in which you will be free to.." because as we all recognize the short-term effect is to actually take freedom away from some people.

    But I do agree that as in the history of all (non-horrible) revolutions, having someone willing to stand-up for the purest side of the argument is always necessary just as are the people that try to reconcile the good aspects of both sides. You need the true believers and the conciliators --- and even perhaps the collaborators.

    And I think many people don't appreciate just how amazing it is that open source and free software have actually worked. But apropos the Redhat example, that is exactly what I'm trying to analyze and address in the next post. I think GPL + commercial works well in some situations, especially for the big guys, but I think that weak copyleft approaches are better at promoting an ecosystem with many small companies participating equally with those larger companies. Lot's of people working *independently* at their own art is a lot closer to my personal utopia.

    ReplyDelete
  17. I meant to say "in my next post" not "below"..

    ReplyDelete
  18. "If I write a piece of code and release it and someone changes that code, I desire to see people contribute it back. I'm not sure I'd try to coerce people to do that"

    'coerce' is a strong word, I think, for the obligations that come from redistributing GPL code, I'd say. All the definitions as Dictionary.com don't match the reality: "to compel by force, intimidation, or authority, esp. without regard for individual desire or volition". I don't think that fits because developers' volition IS respected; in fact, nobody can use GPL code against their will. At least, that's the way I read the license, but I'm not a lawyer either. Authors' who release with GPL would not consider their decision as an act of force. You SAY you respect the authors' decision to use GPL, but referring to their decision as an act of intimidation doesn't reflect it, if you don't mind me saying so.

    MegaSofts use of dual licensing with GPL does not support the business model you describe. In releasing code under GPL, MegaSoft gives consent to any use of that code. Making money is not one of the restrictions of GPL. IANAL, but I know that a pacifist linux GPL driver author cannot prevent Dick Cheney from using linux to search for WMDs.

    I don't think we are communicating well on this idea of collaboration I introduced. I'll just throw in that there is a higher level of collaboration between system author and end-user when source code is shared regardless of whether the end-user personally looks at the code or not. Fullest collaboration is achieved ONLY if all players have equal access to the source code produced by any other player. EPL is weak in this regard because the system author can distribute his whole system (which depends on the EPL component) without sharing all the source code of the system. By definition that is less collaborative, right? [Well, that would be my last try to clarify....I'm not sure I make sense.]

    [BTW, I tried to get through your next blog entry with all the arrows and bubbles. I got confused.]

    ReplyDelete
  19. @John re: "coerce" you're right, a poor choice of words.

    "Making money is not one of the restrictions of GPL. " "In releasing code under GPL, MegaSoft gives consent to any use of that code"

    GPL doesn't restrict people from making money off of the code, but it may have that effect. I can see that my next post may be a little confusing. :) But what it boils down to is precisely this issue and the issue of collaboration -- and what you are saying does make sense to me know, I think. So let me try for a shorter version of all of this.

    In releasing code under GPL, MegaSoft does not give consent to *any* use of that code. The is one critical exception: you cannot use that code without also giving your consent to everyone else to use your code. In fact, this is as Simon and Laurent point out, exactly what GPL is designed to prevent. What this means is that MegaSoft is able to retain some rights for itself that it does not grant to others. Taken together, this affects collaboration in the following way:

    Definitions:

    ca0 = Code "0" Authors, that is developers of the root dependency.
    cu0 = Code "0" Users, that is end-users who make use of the software to get something done.
    ca1 = Code "1" Authors, developers who write their own software but which depends on (makes API calls to, say) Code 0.

    Then:

    1. When ca0 releases under FOSS, collaboration between ca0 and cu0 is greater than without.
    2. When ca0 releases under FOSS, collaboration between ca0 and ca1 is greater than without.
    3. Arguably, when ca0 releases under GPL, collaboration between ca0 and ca1 is greater than when ca0 releases under OSS again *given that that collaboration is non-commercial*.
    4. But, when ca0 releases under GPL and Dual License only, collaboration between ca0, ca1..ca{n} is less than when ca0 also releases under OSS *given that that collaboration is commercial*.

    That is because in order to make money from licensing, ca0 can charge a license for any commercial usage of their software and even modify their GPL code for the commercial release to their advantage. But in order to make money from licensing, ca1 must license from ca0 first. And as I explain in the following post the real problem is that this applies to all dependencies so that ca{n} must obtain a license from ca{n-1}..ca0.

    Hopefully ythat makes more sense, but maybe it makes less..

    ReplyDelete
  20. Ok. I interpret what you say this way:

    ca1 decides they won't make (enough) money if they release their source code. So, instead of distributing a GPL'ed component, ca1 enters into a licensing arrangement with ca0. The licensing arrangement may have a cost to ca1, but won't if ca0 had released it under a no-fee license, like for example an OSS license maybe. ca1 would also enter into licensing arrangement with ca{n}.

    I'm not at all convinced that GPL had anything to do with ca1's involvement in this license shakedown. ca1 are merely a victim of their own business goal/decision: make money without releasing source code.

    I am also unconvinced that ca1's business decision to withhold source code results in greater collaboration, or freedom. If there is any 1984 double-speak going on it would be something like this: FSF 'software freedom' is BS because GPL won't let ca1 keep its source code locked up and make money.

    So, I'm done really. Its been nice to join with you on this, and you have been very friendly and cordial. Good luck.

    ReplyDelete
  21. Thanks John. Understand if you want to drop this, but I think there is one important bit that I'm not making clear.

    "I'm not at all convinced that GPL had anything to do with ca1's involvement in this license shakedown. ca1 are merely a victim of their own business goal/decision: make money without releasing source code."

    But, the above is true *even if ca1 does release their source code*! That is if ca1 plays by the same rules as ca0, by releasing their code under a dual license, they cannot do that without licensing from ca0 as well. That's the fundamental unfairness/disconnect -- it allows the first movers in the marketplace to control the entire marketplace. That seems to me to be opposed in principal to what Free Software advocates would want, simply because concentrated power always has more potential for abuse. Still that may be a necessary evil to accomplish what FSF wants. I don't know but I just want to point out that there is a kind of paradox there.

    "FSF 'software freedom' is BS because GPL won't let ca1 keep its source code locked up and make money."

    Wait a minute, I never said (cartooned?) that. I don't believe that FSF's idea or goal of ultimate "software freedom" is BS. What I'm saying is that they make statements that are simply factually untrue. GPL software is *not*:

    "free from restriction" [the license is basically a set of restrictions]
    "free to share and copy" [I personally can't share and copy it within my FOSS software]
    "free to learn and adapt" [I personally can't adapt it to use with my FOSS software]
    "free to work with others" [I can't make it work with commercial products]

    The bottom line is that GPL does restrict my freedom in the above respects. Whether those restrictions are good or bad is unrelated to whether it should be mis-represented. I'm simply suggesting that FSF is responsible for their message and that dumbing it down doesn't do anyone any good.

    ReplyDelete

Popular Posts

Recent Tweets

    follow me on Twitter