< Back to Blogs
How I Learned to Stop Worrying and Love Licenses by jcannon on July 10, 2006 01:30PM

When I first started writing software, my only understanding of the term ‘license’ was that it was something I needed to drive a car or to catch fish.  As my career progressed, I learned that software also has licenses that describe – ideally - how the author of the software wants his or her creation to be used (terms, conditions, permissions, etc.).  Of course, there are many types of software licenses today.  You may not follow this topic that closely, but you certainly have seen things such as End User License Agreements – that little agreement you can choose to click ‘I Accept’ or ‘I Do Not Accept’ after you read in infinite detail all the terms, conditions and restrictions (right?).  Early in my career, I typically just used a) whatever license the company I worked for used or b) whatever licenses other developers seemed to use.  It was a combination of laziness, naïveté, and general indifference to all things legal.  This perspective of course changed as I began to understand that licenses were indeed quite important and powerful in determining how I could control the thing that I wrote – or how I could lose control.

Thus began my entrée into the legal world of software licensing.  I’m generally not one for bureaucracy or unnecessary complexity, so, to be frank, some software licenses seemed ridiculous to me.  Many still do.  But again, I’m not a lawyer (nor do I play one on TV) and I do have a high degree of respect for all my friends in this discipline, so I understand it’s not always as simple as one may desire it to be.  That said, it doesn’t hurt to try to strive for simplicity.   Programmers and IT professionals learn early on that the K.I.S.S. rule is the only true path to technical enlightenment, so I try to apply this same thinking to software licenses. 

Licensing is a broad field, so I’m going to focus in on what we’re doing with our community software licenses.  It’s worth noting that there is an important difference between binary and source licensing. The fact of the matter is binary licensing governs the vast majority of revenue-generating activities in commercial software. Source code licensing is about the use (and re-use) of the underlying intellectual property in terms of copyright, trademark, and patent.  I’m focusing on what source licensing programs we are doing for our community projects.

Around a year ago, we rewrote our software licenses that we will use for many of our community programs in our Shared Source Initiative.  If you’re not familiar with Shared Source, this is a program we have where we share source code with customers, partners, developers, academics, and governments worldwide.  There is a variety of software we have in this program, such as wikis, Atlas/Ajax toolkits, IronPython (Python in .NET , click here for an interview with with IronPython Architect Jim Huginen ), drivers, installers, and so on.  Jason Matusow announced these new community licenses on his blog last October.

There were four main goals for writing these new licenses:

  • Short and easy to understand - The new licenses are typically shorter than a typewritten page and are easy to read and understand. 
  • Effective and modern - Although simple, the licenses are designed to be effective and to reflect modern best practices in source code licensing. 
  • Efficient - By using three simplified licenses, Microsoft will be able to streamline its own internal source code release process, which will allow for more rapid Microsoft source code releases.
  • Ecosystem-friendly - Using three simple and well-understood licenses help to simplify source code sharing throughout Microsoft’s various software ecosystems, and help to avoid excessive license proliferation.

(To be clear, I was just a cheerleader and supporter of these efforts, smarter people than me did the actual work to meet these goals in each license .)

The result was something we were quite happy with.  But it’s not just for Microsoft’s Shared Source projects – SugarCRM, the leading Open Source CRM solution, has chosen to use one of these new licenses, the Microsoft Community license.  As John Roberts, CEO and founder of SugarCRM commented:

"We were really impressed by the Microsoft Shared Source Community License and like it a lot. We think it is a license that represents the ideals of our community and is one that they want to use, especially those customers who already run on the Windows platform.”

You can read more about this news here.

I’ll be blogging a lot more about Shared Source in the future.  As this blog entry’s title suggests, I’m a Kubrick fan and although I’m not worried about fluoridation conspiracy theories, I did want to share a snapshot into how we think about community source licensing.  Regardless if you write code, manage an IT environment, or just install applications on your desktop or server, understanding software licensing is an important aspect of the software world we live in.  It is my hope that the future of software licensing gets simpler, more pragmatic, and more empowering for the world’s software authors.

And since I’m so lazy in writing my blogs, I now have to add in a bunch of post scripts…

P.S.: In the same theme, we have also recently announced some interesting work with Office, giving authors the option to create Creative Commons licensed work using a plug-in within Office.  Creative Commons is a nonprofit organization that has written licenses that allow content creators to share information while retaining some rights.   Creative Commons was founded by Larry Lessig, a Stanford Law Professor I've come to respect and read often – Larry blogs about this news here.  We’ve worked with Creative Commons in the past, on a spec for RSS extensions and the PatternShare wiki site (using the Creative Commons Attribution-ShareAlike license and the Creative Commons Attribution license, respectively).

Stephen McGibbon's has a great blog about the Creative Commons Office plug-in here, with screenshots and commentary.

Speaking of Office, you may have caught the recent news about the new community project building an Open Document Format (ODF) converter for Word 2007 (up on SourceForge: http://sourceforge.net/projects/odf-converter).  If you are a spectator in the Open XML vs. ODF debates (a very en vogue topic for Open Source pundits), I suggest reading Chris Capossela’s letter about the differences between Open XML and ODF.  Chris is one of the key leaders of our Office organization and this letter helps clarify a lot of the FUD spread by Microsoft competitors around Open XML and ODF.

P.S.S: On licensing, CIO Magazine Technology Editor Christopher Lindquist just wrote an article on OSS licensing that is worth reading.


Comments RSS
  1. nektar said:

    If you want to be taken more seriously and create a stronger community then you will need to put more of code into your Shared Source program. As things stand, you give too little and you do not motivate a lot people to write codde that would benefit the Windows community, such as Visual Studio plugins.

    posted at 02:58AM 07/11/2006
  2. fluke said:

    "Programmers and IT professionals learn early on that the K.I.S.S. rule is the only true path to technical enlightenment, so I try to apply this same thinking to software licenses." I agree that KISS is the preferable whenever possible. But I truely feel that KISS is not what Port 25 and CodePlex is actually providing. Back on June 29th, Port 25 announced the availablity of Visual Studio Powertoy plugins available on CodePlex [1] under the Microsoft Shared Source license. I pointed out the same day a series of restrictions that any Visual Studio Powertoy plugin code contributor would have to accept as part of getting the Visual Studio SDK. So far there has been no responce to my series of claims. I feel each of the issues I brought up shows that the restrictions a VS Powertoy developer must follow is far from KISS despite the code being technically under the MS-SS license. On July 6th, Port 25 announced availabilty of the MS Unix ID management password sync daemon [2] (called ssod). This was released under the terms of "All rights reserved." While this is probably the closest to KISS that any license can get, it does not allow anyone to release derived works. The provided code does not use any of the modern day security coding methods. The ssod weights in at about 6300 lines of code which all runs in a single process running as root and listening for network connections. It does not fork a seprate process to run some code unpriviledged and chrooted. And no one is permitted under the license to address this. Also, the license prohibits releasing RPMs compiled for recent versions of RedHat or SuSE. Instead, the package provides pre-compiled binaries for RedHat 8 and RedHat 9 which both where end of life products in spring 2004 and there are no binaries for SuSE provided at all. So, no binaries are provided for any vendor supported version of Linux distribution and the community is permitted to do... nothing. But on the up-side, the license is KISS. It is like being stuck in a cage made of gold! :) "Chris is one of the key leaders of our Office organization and this letter helps clarify a lot of the FUD spread by Microsoft competitors around Open XML and ODF." Who is the Microsoft competitors that are spreading FUD about OpenXML? The Computer and Communications Industry Association has stated "that Microsoft's licensing terms to obtain and use their XML Reference Schemas contain specific restrictions which have the potential to severely limit (or completely prevent) interested parties from utilizing the information contained in their discloure." [3] But is the CCIA a Microsoft competitor?! What product from the CCIA competes with anything from Microsoft? Groklaw demostrates how ODF's support of mixed content model style xml results in ODF easily being converted to clean XHTML code while the same document is OpenXML results in much more messy (non-KISS) code. [4] So is Greklaw spreading FUD? Are they a Microsoft competitor?? Gartner claimed that it is unlikely that OpenXML will be approved as an ISO standard. But they don't seem to have anything to gain by spreading FUD and are far from being a Microsoft competitor. Chris Capossela claims that "[Microsoft has] made the Open XML file formats available for everyone to use." ODF's schema can easily be found (and modified) in standard ASCII text file format. Microsoft provides the Office 2003 schema in a MSI file and the Office 2007 beta schema in EXE format. These are not file formats that are commonly used by companies wishing to promote a format for "everyone" to use. To make life more interesting, the Office 2003 schema is provided in unicode and distribution of the schema in ASCII is prohibited by the terms of use which does not allow any modification. "On licensing, CIO Magazine Technology Editor Christopher Lindquist just wrote an article on OSS licensing that is worth reading." The intellectual properity problems stated in the Christopher Lindquist article have existed long before open source. Ashton-Tate lost it's ability to enforce copyright on it's flagship product, dBase, due to use of the JPLDIS code. CompuServe was unable to keep GIF a royality free standard because of the LZW patent held by UniSys. Microsoft payed Stac Electronics $120 million dollars in damages over code contained in doublespace. None of these cases involved in the GPL. And while there are several other cases of intellectual properity dispute cases (several with much more damaging results to the company than being found in violation of the GPL), Lindquist decided to just focus on problems with failing to comply with the GPL when using works under that license. Finally, here is my rant that probably will get caulked up by Port 25 as a "don't drink the flourinated water." I would like to be able to write Visual Studio plugins in python. CodePlex's IronPython shows that Microsoft is aware of the advantages to the language and has released other Visual Studio plugins under the Microsoft Shared Source license. But even if I put my VS python binding plugin under the MS-SS license, I would still be in violation of the VS SDK. And while I pointed this out on Port 25 over a week ago, all MS has to say is ... nothin' -- not a word. Bottom line: No interopt with python for VS plugin authors -- but maybe that is still a license bomb that even BH can learn to love. *sigh* References: [1] http://port25.technet.com/archive/2006/06/29/2666.aspx [2] http://port25.technet.com/archive/2006/07/06/2708.aspx [3] http://www.ccianet.org/papers/CCIA-XML.pdf [4] http://www.groklaw.net/article.php?story=20051125144611543

    posted at 12:30PM 07/12/2006
  3. fluke said:

    nektar:  I don't think what you say is true that more code is what is needed right now to be taken more seriously and create a stronger community.  A lot of the most successful FOSS projects follow "release early, release often" where the quantity and quality of code starts very small but the project starts off with community involvement in mind.  One the other hand, there have been companies that have thrown establish full blown application code out under FOSS license, where the quantity and quality of the code was much greater.  But when the company kept other associated material (road-map, pending bugs, pending feature requests, etc) internal, the project usually did not gain much community support.

    Port 25 has announced the release of some Visual Studio plugins under Shared Source.  But while Bill Hilf makes a good case for the license to be KISS (which Shared Source normally should be), any Visual Studio plugin project carries with it the requirements of using the VS SDK.  The additional set of clauses from the VS SDK, such as having to submit the results of a test suite for every public release and having to ensure the quality of the plugin, is prohibitive toward classic FOSS style development.  "Release early, release often" can not be observed because the VS SDK put limits on how practical it is to release often.  There are also limits on what the VS plugin source code is permited to do (no plugin made up of plugins or plugin binding functionality to an interpreted/scripting language).  Without addressing these issues and bringing the concept of KISS licensing to the VS SDK, I don't think it matters how much VS plugin source code is technically under the shared source license.

    posted at 04:13PM 07/13/2006
  4. fluke said:

    The Christopher Lindquist article seems overly conserned with issues in violating the terms of the GPL. Developers should be conserned with violation of "Intectual Property Law" regardless of if the code they are borrow is covered under the GPL or not. There are a lot more damning out-comes from violating IP law in general than have occured in GPL violation cases. If IP violations was specific to cases involving GPL or FOSS, then the issue of Stac Electronics vs. Microsoft (among several others) should have never occured.

    posted at 05:13PM 07/13/2006
  5. fluke said:

    I have the following conserns about OpenXML that Chris Capossela failed to address:

    1) Gartner Group's claim that OpenXML will probably not be accepted as an ISO standard (note that Gartner Group is not a MS competitor)

    2) Office 2003 XML schema is distributed from the MicroSoft website as a MSI file which is not easily viewable on Mac or Linux

    3) Office 2007 beta XML schema is distributed from the MicroSoft website as an EXE file which is not easily viewable on Mac or Linux

    4) Office 2003 XML schema is given in unicode form

    5) Despite the use of "Open" in OpenXML, the schema may not be

    modified so an ASCII version can not be made and redistributed

    6) OpenXML does not support "mixed content model," the Groklaw evaluation between ODF and OpenXML makes it appear that ODF does a better job of honoring KISS.  See the comparison at: http://www.groklaw.net/article.php?story=20051125144611543

    posted at 05:27PM 07/13/2006
  6. billhilf said:

    Fluke, thanks for your comments.  Yes, this post was specifically about our Shared Source community licenses.  As I stated, there are many types of licenses (over fifty OSS licenses alone) and you're right some are not simple.  However, before you dismiss the Visual Studio plugins, I do want to point out that one of the largest open source projects is part of the Visual Studio plug-in program, MySQL (read more here: http://www.mysql.com/news-and-events/press-release/release_2006_29.html).  -Bill

    posted at 12:20PM 07/14/2006
  7. fluke said:

    Bill, what I am dismissing is being able to create a Visual Studio plugin to do binding to an interpreted/scripting language.  I have found that the Script-Fu functionality of being able to bind GIMP to Scheme is very powerful and invites several developers to write additional plugins that otherwise would not.  It is that concept that I have been required by Microsoft's own licensing of the VS SDK to dismiss.  It is interesting that MySQL provides there own VS plug-in and I am glad you pointed it out.  But it does not change my bottom-line which is that I am not permitted to create bindings so VS plug-ins can be written in python.

    It is my opinion that MicroSoft adoption of use of the Shared Source license can not be in a vacuum from the rest of the Microsoft licenses.  The SDK licenses from Microsoft that I have reviewed as part of my interest in creating MS-SS covered works have each assumed that the developer is going to always be distributed a finished closed source work.  There are no exceptions provided in the license to address clauses that should not be applied to a Shared Source work.  It doesn't make sense to mandate what functionality is exposed or the quality of a SS project yet that is exactly what the VS SDK does.  Once the amount of functionality exposed is restricted by a SDK license, the project is no longer "open" as there are then artifical constrates already stated for what the project can ever be extended to do.  While the SS license by itself should allow out of the box thinking, the requriement in accepting the SDK license brings the developer back into a box.

    I guess, in the end, it is not as much dismissing as it is accepting what I have been told not to do.  Microsoft has stated not to encourage Python developers to create VS plug-ins, so I won't.  I respect Microsoft's licensing terms for the SDK despite that I will never agree to it and therefore can't download/use the SDK.

    posted at 03:18PM 07/14/2006
  8. Port 25 said:

    We just wrapped up the O'Reilly Executive Day here at OSCON after two days of what many would call record heat in the Pacific Northwest. With many of the Port 25 folks commuting from larger cities across the US, Portland is a welcome break. For those

    posted at 01:27AM 07/26/2006
  9. Port 25 said:

    Hank just blogged about critical thinking. If I had to state my own concise definition of what lies at the heart of critical thinking, it would be a personal commitment to finding the right solution to any problem, regardless of whether or not figuring

    posted at 03:27PM 10/12/2006