• Categories

  • Wayback Machine

  • My Defunct Podcast

    The Bungee Line was an audio podcast for web developers, covering web API's, software development, and the creation of richly interactive web applications.

    podcast feed  Main Feed

  • Advertisements

Sharing Source Code in the Cloud

As hosted development platforms become browser-accessible, new issues will arise regarding freely sharing source code among developers. Bungee Connect’s most recent update (April 20, 2008) introduced its first (and still very early) version of a source code share. This creates a hosted code repository for Bungee Connect developers, and opens a raft of questions about the future of Free Software licenses in the age of hosted development.

Allow me to outline three code-sharing scenarios, and provide some thinking on how current open source licenses might fit:

  1. Importing shared open source code would allow you as a developer to import another developer’s source code into your own code.
    This scenario could mandate that your code must now be contributed back to the original developer. For example, if the code was made available to you under the AGPL, then even without distributing the code, you are obligated to do so. However, if the imported code was made available under the GPL, then you likely don’t have to contribute the code back unless you do something to re-distribute the code you received from the share.
    From my reading of the GPL, it is specifically triggered when you “convey” the software you make with GPL-licensed code. (This was coined by Tim O’Reilly as “the SaaS Loophole.”) However, if you were then to share your own code that included the GPL software, you would be bound by the terms of the GPL to share your code under the same license. (For both GPL and AGPL code, this might get messy if you have also imported code that was shared under an incompatible licenses. But that’s nothing new in FOSS licensing, is it?)
  2. Linking to shared open source code would allow you to make modifications to shared code separately and independently from whatever project you are working on. Essentially, you would be able to modify the shared code as you need, and then link to it like a library.
    It appears that there is no FOSS license that has considered this scenario! Because your application is hosted, you never “convey” your software to another party, so the GPL and LGPL don’t get triggered. On the opposite extreme, the terms of the AGPL would be applicable, as mere access to the software (rather than conveyance) applies. So, even by trying to insulate your code from the AGPL-shared code, you would still be bound by its terms. There is no Affero version of the LGPL–probably because this scenario has not been considered until very recently.
  3. Linking to shared proprietary software would allow you to use another developer’s software without any access to its source code. Like a Windows DLL, you can use its APIs, but cannot modify its functionality.
    This scenario is certainly an option that many developers would want, but it’s really not that relevant to the FOSS licensing discussion, so I’ll leave it at that.

Is there need for an L-AGPL?

Likely, the most free way of sharing your code in a cloud-based code repository would be under a license similar to the BSD license, which allows other developers to take source code, use it, and modify it without an obligation to provide those modifications. Some developers find the BSD terms too liberal. If I share the software, I’d like for people to at least provide their fixes back so that I can benefit from their work as they have from mine.

The AGPL, on the other hand, may seem too draconian for some developers. I want to share my code under license to enforce the submission of fixes, improvements and extensions to my original code, but
I don’t want to force other developers to open the code for their entire project just because they included my code as a component. The AGPL would do that. So other developers may forgo using my code because I shared it under a license that is too viral.

Sound familiar? It should. It’s the same reason why many FOSS projects choose to use the LGPL instead of the GPL. But at this time, there is no L-AGPL (or A-LGPL).

What are your thoughts or insights? Are there places where my understanding of the licenses is incorrect? Is there a need for an L-AGPL? If this seems an issue exclusive to Bungee Connect only, why do you think that?


3 Responses

  1. There is no Affero version of the LGPL–probably because this scenario has not been considered until very recently.

    Well, partially because the FSF hadn’t really considered web linking until recently (I assume you mean something like API use over http here) but also partially because the FSF has a love-hate relationship with the LGPL. Remember that they call it the ‘Lesser’ GPL these days, not the Library GPL like they used to. 🙂

    I’d be interested in chatting a bit more with you about this this summer, Ted. Sadly not right now- exams are eating my brainz. 🙂

  2. Luis:
    I had forgotten that the ‘L’ in ‘LGPL’ used to stand for ‘Library.’ It’s demotion to ‘Lesser’ does seem to put things into perspective, then, doesn’t it.
    Regarding “I assume you mean something like API use over http here”, it’s actually even weirder than that. On Bungee Connect, you can include an independent project as a runtime dependency within a separate application. Their codebases are not intermingled this way, and you get all the functionality. So it really works like a local library.
    I’d definitely be interested in discussing this with you, and summer is a perfect timeframe. Some of the issues that Bungee Labs faces would likely be of great interest to the line of study you are pursuing.

  3. […] recently discussed another aspect of this in an earlier post about “Sharing Source Code in the Cloud,” in which I posed the idea that developers sharing code with each other on a hosted platform […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: