Monday, 25 August 2008

Beware of Share Alike Software Components

Filed under: Business of Software — Jan Goyvaerts @ 12:11

I was looking at an open source VCL component that looks like it would be useful in some of my products. Then I noticed it came with a Attribution-Share Alike 3.0 Unported license. The sticky issue is (emphasis mine):

Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license.

I don’t know the exact legal definition of “build upon”. Does using the component in my application constitute building upon the component? My opinion is that it does. That would mean if I use the component in my application, I would have to release my whole application as open source under a creative commons compatible license. Right now, that means the creative commons license itself.

The full license agreement does not use the term “build upon”. It does state:

“Adaptation” means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image (“synching”) will be considered an Adaptation for the purpose of this License.

The license does not talk about software at all. But it does explicitly consider adding somebody else’s music to your own video as creating an adaptation. Combining a musical component to create an audio-visual work seems rather similar to combining a software component to create a software application. If the analogy holds up, the software application would be an adaptation that must be licensed under a Share Alike license.

The correct interpretation of the license doesn’t really matter. It clearly does not explicitly permit using the software component in a closed-source application. Therefore, I will not risk using software components licensed under CC BY SA, just like I won’t use components licensed under the GPL. Respecting other people’s licenses is simply the right thing to do. In this case, for me that means not accepting the license and not using the software.

If you develop an open source software component, do your fellow developers a favor, and choose a license that’s specifically written to license software. If you like the Creative Commons logos, here are the licenses you can choose from:

CC GPL: The original copyleft license. This one explicitly requires anyone using your softwaer component to release the source to their whole application.

CC LGPL: Slightly relaxed copyleft license. This one explicitly permits anyone to use your software component without releasing the source to their application. Only changes to the component itself need to be released as open source.

BSD: The BSD license is a very liberal open source license. It allows your software component to be used and modified without requiring the source code to the modified component, or anything its used in, to be published.


  1. Oh darn. There went another night:


    Comment by Anders Melander — Tuesday, 26 August 2008 @ 6:08

  2. Good tips. Open source can be useful but personally, I feel I spend too much time writing the software to let someone else just copy it for free. I occasionally blog about algorithms I’ve used but that’s about as open as I like to get.

    Comment by Mike — Tuesday, 27 January 2009 @ 13:56

  3. Hmm thanks. I never looked further into this. I assumed that if you could build upon then that meant you could edit it and change it to your needs.

    Comment by Driver Detective — Thursday, 15 October 2009 @ 2:26

  4. I think Software is not an “Adpation” but an “Collection”. So the build software need not to be share-alike.

    See here:
    “Collection” means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.

    Comment by LicenseTear — Sunday, 14 February 2010 @ 19:35

  5. Software using 3rd party components is not a collection. A collection is a combination of other works that are identifyable as such. A software application that uses 3rd party components appears to the end user as a single application. The parts of the application that were written specifically for that application are not available separately from the 3rd party components used in the application and the user has no obvious way to determine which parts of the application are which 3rd party components.

    In addition, a collection must include the works entirely in unmodified form. A 3rd party component that is distributed in source code must thus be distributed in source code. To be a collection, the software using the component cannot be distributed in compiled form. So even if you could claim your software is a collection, it would have to be open source, which is what I was trying to avoid.

    So my stance of treating CC BY SA as allowing only open source remains. In this respect it is no different than GPL.

    LGPL, BSD, and MPL are all popular open source licenses that allow the code to be used in closed source applications. If a developer wants to allow this kind of usage, they have plenty of licenses to choose from.

    Comment by Jan Goyvaerts — Tuesday, 16 February 2010 @ 14:17

Sorry, the comment form is closed at this time.