Open Source and licensing

Is it even possible any more to release an open source project that refers to StellarisWare functions or header files, even if the code was released under a BSD license?

I was reading the latest eula.txt and it would appear not. In fact, the license would seem to preclude any mention or use of any of the source provided in StellarisWare. This is a problem as it's been suggested here that one should base one's application on one of the example apps provided in StellarisWare.

I have no problem with these restrictions on the source of the driverlib, or with the restrictions on linking to GPL (or other similar license) code.

Orin.

23 Replies

  • I want to let you know that we do see your posts on this thread and understand the arguments you are making. I really can't say any more about it or make any promises for changes, other than to say we are aware of your comments.

    I would like to clarify, for someone who wanders onto this thread and gets the impression that they cannot use any open source with StellarisWare. This is not true. If you are familiar with StellarisWare then you already know that we ship StellarisWare with several open source packages. In this thread, the term "open-source" is being used generically as if there were only one kind when in fact there are many kinds of open source licenses. There is no problem with BSD-style licenses, or LGPL, or even modified GPL such as the license that FreeRTOS.org uses. So there are large amounts of open source software that is not a problem. To be clear what we are really talking about here is GPL and GPL-style open source licenses.

    As Jean Anne said, Luminary Micro made a business decision early on that we did not want competitors to be able to use our software. That is really the only restriction we cared about. That is where the restrictive language about GPL comes from. We don't hate open source. We like open source. We want ours to be as open as possible with the above mentioned restriction.
  • Hi TI Joe,

    thank you for your quick reply. Sorry, it was not my intention to express that TI hates open source. Maybe I got a bit angry while reading this "lawer style" EULA ;) We appreciate your (and earlier LMI's) open source commitment. It is great that you support gcc natively with StellarisWare. Since we use this compiler we are free of any license enforcements and can provide a complete open source (GPL) toolchain to our customers, in source and binary form. The major drawback is indeed that we are unable to provide examples based on the DriverLib or even on the include files.

    You said you allow licenses like the LGPL, is this really true, or do I misunderstand the following paragraph from your EULA?

    "Public Software" means any software that contains, or is derived in whole or in part from, any software distributed as open source software, including but not limited to software licensed under the following or similar models: (A) GNU's General Public License (GPL) or Lesser/Library GPL (LGPL), (B) the Artistic License (e.g., PERL), (C) the Mozilla Public License, (D) the Netscape Public License, (E) the Sun Community Source License (SCSL), (F) the Sun Industry Standards Source License (SISL), (G) the Apache Server license, (H) QT Free Edition License, (I) IBM Public License, and (J) BitKeeper."

    I'm not a lawer too, but i think this paragraph is really general about what open source or "Public Software" is. It's quite sad that nearly the whole world is ruled by such software licenses which inhibit further innovations.

    Its great to hear, that the only reason to avoid GPL like licenses are competitive issues. I fully understand that LMI put a lot of man hours in the development of StellarisWare. Indeed its a great peace of software and not many other competitors have such a sophisticated API. Surly you don't want competitors to simple copy-and-paste it, but I think there's not much risk that this will ever happen. The DriverLib is strongly hardware coupled, a porting would make no sense. Maybe the GrLib or USBLib could be ported, but that risk should be weighted up with the possibility to open new markets.

    Best regards,
    andy
  • Andy,
    My reply was not to you specifically, just to the topic of this thread and some other similar threads in the past. I agree that the EULA language sounds very lawyerly.

    The clause you cite that begins with "Public Software" is attempting to define what is meant by "Public Software" as used earlier in the paragraph. It does not say you cannot use it with any public software. It is conditional. It says:

    "... shall not incorporate, combine, ... with any Public Software ... in such a way that would cause the Licensed Materials, ... to be subject to all or part of the license obligations, ... (or related terms) with respect to such Public Software."

    It goes on with more detailed language about this restriction but I believe it boils down to the above. This is where you need to apply your interpretation, or your lawyer's to decide whether the open source license in question causes the TI software to be subject to the open source license. I think it is pretty clear that BSD style does not, and GPL does, and everything else is, well, subject to interpretation.
  • In reply to Stellaris Joe:

    Please re-read my earlier messages.

    The problem we are having with the license as it stands is that it precludes anyone from releasing open source code that links to or uses StellarisWare, even if there are no references to StellarisWare other than header file includes and calls to the API  in the released source code.

    No-one has a problem with you restricting StellarisWare to LM processors.  All we want to do is spec an LM processor for our open source projects and be able to release the source code under a BSD or LGPL license.  Personally, I do not desire the ability to use GPL - the religious zealotry surrounding it has put me off from ever releasing anything under GPL and I support TI from precluding its use with StellarisWare if that is what they desire.

    Orin.

     

  • In reply to orinem:

    @orinem,

    I appreciate your comments on this topic.  I went back and reread your post, and honestly I think you are using the most restrictive interpretation.

    In the first case, developing code that runs on Stellaris and then moving to another processor: the paragraph you cite includes the phrase "Licensed Materials".  I believe the intent is that you cannot take the Licensed Materials, modify them, and then run on another processor.  I don't think it means that code that you develop that is not part of the Licensed Materials cannot later be used on another processor.  That other code, either you are using library calls in which case you will have to change them anyway, or else it is separate code (like an algorithm)  that does not directly link to the Licensed Materials in which case I don't think there is even any issue.

    In the second case, whether you can disclose the APIs: well I can understand your interpretation of this, but I think the intent is that you cannot post the source code to the Licensed Materials.  For example you cannot take the driver library source code and post it somewhere or redistribute it.  You must keep it under your control.  If you have your own program that make API calls and you post that, your are not disclosing the library source code.  Again, I think you are making a most restrictive interpretation here.

    Obviously I cannot tell you what a lawyer or judge or jury will say it means, but I can tell you that the intent of the Stellaris team is not to make the restrictions that your are reading in your interpretation.

  • In reply to Stellaris Joe:

    Stellaris Joe

    For example you cannot take the driver library source code and post it somewhere or redistribute it.  You must keep it under your control.  If you have your own program that make API calls and you post that, your are not disclosing the library source code.  Again, I think you are making a most restrictive interpretation here.

    I don't!

    That clause is a fundamental barrier to any contract soft/firmware developer: As a contract developer, the source code is my deliverable;  and my client will want that to be complete - including any Stellarisware sources used.

    I think this is a fine example of the "law of unintended consequences", and the only way to get around it is to cut the licence back down to the simples basics; viz:

    1. No Warranty;
    2. Not to be used on non-TI chips.

    Is there anything else that you really need to say?

  • In reply to Andy Neil:

    Andy Neil
     

    That clause is a fundamental barrier to any contract soft/firmware developer: As a contract developer, the source code is my deliverable;  and my client will want that to be complete - including any Stellarisware sources used.

    Actually, I don't see a real problem here.  Ideally, your client gets the StellarisWare sources and hands them to you to use - the license seems to cover that.  But I don't see any reason you can't each get your own copy and individually agree to the licensing terms, but I am not a lawyer etc. etc.

    It's the "most restrictive" view as Joe describes it that I have a problem with.  TI's intent doesn't count in a court of law and my guess would be that they would argue this most restrictive view should they ever sue to enforce the license.

    It is most disheartening that we have to consult our own lawyers to interpret the license agreement.  It adds additional unnecessary cost to using Stellaris devices and is a point against using them.

    Orin.

     

  • In reply to LMIPost:

    Jean,

    That is absurd.  It would be like buying a car then having to pay the dealership to see if you can park it in a garage. 

    Bottom line is TI needs to change its stance around open source software.  While they claim it not about open source itself,  I do not buy it.  It would be MUCH easier to say. 
    This sofware cannot be used on any other processors other than TI's.  Vs. this "viral open source" clause that admittedly takes a lawyer and a risk assessment? to interpret.  Really, hiding behind the statement that you are trying to protect your IP from competitors from this statement is laughable.  Its a damn shame because your stuff is really good.

    With the big push of TI trying to get hobby / makers into the Stellaris, MSP430 etc stuff, it might be advisable for your PR guys to talk to your Legal team.   

    Riley 

  • In reply to riley porter:

    riley porter
     While they claim it not about open source itself,  I do not buy it

    I do.

    It is not about Open-Source per se:  it is about those licences that seek to draw-in your entire codebase when you use any part of their code in your project - these are so-called "viral" licence terms.

    This is a problem for anyone trying to use such code in conjunction with proprietary or "closed" code - not just TI.

    I think it's more of an issue for those open-source fundamentalists who want to force their "high ideals" onto everyone else...

  • In reply to riley porter:

    Riley - have you actually read the GPL license?

    Generally if you incorporate code that's covered by a GPL license into your code, you are required to extend the GPL license to your code too.  Your project has become open source, and you are now required to make your entire source code available upon request.

    TI doesn't want any of their code distributed under a GPL license, and that's completely appropriate.  They spend a lot of time and effort developing the code, and should have rights to control the distribution of the source code.

    This is the type of viral license that's being discussed.  What makes the GPL license viral is that it includes text that requires it to expand to cover any other code that incorporates any code that's covered by a GPL license.  If you have a better term to define this aspect of the GPL license (and other similar licenses) it would be good to hear it.