License info suggestion
Rayman
Posts: 14,665
Maybe it's just me, but whenever I see GNU, I get a little worried about licensing issues...
Just spent a few minutes looking for something that says I can make my PropGCC code with any license I want...
Found a lot of things that describe the license of GCC, but can't find an official looking statement that code
we're using GCC to compile can have any license. Did find a lot of people saying that you can though.
Maybe they don't say that because it's obvious? Don't know...
There's also something about a run-time exception. I don't think that applies though, right?
Or, do we need this because we are linking to GCC library files?
Anyway, I think some people who might be turned off by gcc, might feel better with a detailed statement
about the license. Maybe on the PropGCC web page or the FAQ or something.
Maybe it's there already, but I didn't see it...
Update: I feel comfortable now that I can MIT license the code I want to make with PropGCC.
Maybe Parallax shouldn't make the blanket kind of assertion that I'd like to see.
But, just saying that PropGCC can be used to create MIT licensed code would be nice.
I think they are asserting this fact already by providing examples with MIT license.
Maybe they could say in detail in the FAQ why one particular example can be MIT licensed or something...
Just spent a few minutes looking for something that says I can make my PropGCC code with any license I want...
Found a lot of things that describe the license of GCC, but can't find an official looking statement that code
we're using GCC to compile can have any license. Did find a lot of people saying that you can though.
Maybe they don't say that because it's obvious? Don't know...
There's also something about a run-time exception. I don't think that applies though, right?
Or, do we need this because we are linking to GCC library files?
Anyway, I think some people who might be turned off by gcc, might feel better with a detailed statement
about the license. Maybe on the PropGCC web page or the FAQ or something.
Maybe it's there already, but I didn't see it...
Update: I feel comfortable now that I can MIT license the code I want to make with PropGCC.
Maybe Parallax shouldn't make the blanket kind of assertion that I'd like to see.
But, just saying that PropGCC can be used to create MIT licensed code would be nice.
I think they are asserting this fact already by providing examples with MIT license.
Maybe they could say in detail in the FAQ why one particular example can be MIT licensed or something...
Comments
Can GNU GPL licensed code not be used to develop proprietary software for commercial purposes?
BSD or Linux: Which Unix is best for embedded applications? (In particular, the section titled "Consequences in the Embedded Market." Mostly has to do with embedded Linux but still relevant and worth a quick look.)
Propeller-GCC and the underlying tool chain is subject to GPLV3 which allows using GCC for non-GPL code. The terms of GPLV2 are different.
In GPLV3 you will find this: https://code.google.com/p/propgcc/source/browse/gcc/COPYING.RUNTIME
That explicitly states in part: "When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception."
http://www.gnu.org/licenses/gcc-exception-faq.html
C.W.
As noted the run-time exception is specifically for the case where you want to create a non-GPL project. It covers the libgcc.a for example which is used in the compile process.
When I mentioned FUD marketing, I wasn't suggesting anyone is spreading FUD, but were victims of it. The propensity to share good or bad information is human nature.
Anyone who is marketing (or anti-marketing) product will only tell you what benefits their position - you see this everywhere, not just on these forums.
A FAQ point explaining GPLV3 and Propeller-GCC would be nice. It may be worth asking Parallax to make a statement on web pages. Folks will always come with bias.
Really, you should no better by now. This debate has been hammered out for 20 years or more. At least since 1996 when I first discovered Linux and the Free Software world.
Licensing of GCC is such that whatever program you create with it does not itself suddenly require becoming Free Software. You can put whatever license you like on your creation.
Licensing of the Linux kernel is such that whatever program you run on it does not itself suddenly require becoming Free Software. You can put whatever license you like on your creation.
Same applies to pretty much all libraries you might want to use on a Linux system.
These terms are not any harder to understand than whatever it is one normally clicks through when using a commercial software.
As a case in point companies like NVIDIA are putting out significant chunks of closed source code for their graphics cards.
Your statement only applies if many clear and some not so clear guidelines are followed. Unless you're an attorney or similarly qualified expert, and you know every little detail about how someone's code was written and built, it's irresponsible to make such blanket statements. 'Nuff said.
For example:
a) I might write a program against some library that I have, be it on Windows or whatever.
b) I compile that to run on Linux using libraries that provide the same functionality and API.
c) If that library is released under the LGPL and I am dynamically linking, all is well.
d) However if I staticaly link to the same library it's license insists that I make my program GPL or LGPL.
This seems a bit dumb as my program is in no way a derived work of that library. My program may well have existed before that library implementation did.
Of course, my binary now conatins a compiled version of the library so I am compelled to provide source for that, but why should I be compeled to also provide source for my program?
No I am not a lawyer. But if we need a lawyer to check every little thing we do we are never going to do anything. Sometimes reading the agreement offered has to be enough to continue.
Everything you have said about Linux, GCC and the GPL also applies to every other piece of software you use. Many of whose restrictions are even worse.
No, it in fact doesn't. Certainly not BSD-style licensed software, nor really much commercial software. In both cases, things are (or can be) spelled out definitively. GPL is too full of legal novelties, "ifs," "ands," "buts," to safely say the same for it.
For those who have doubts about the legal sanding of all this or who cannot figure out what they can or cannot do with the product from reading the licenses there is only one way to go. Don't use it. Write your own compiler and libraries, pay someone else to write it for you. Whatever. It's not a problem. Simply don't use anything you are not sure of. Same criteria as any other piece of software.
Meanwhile, the rest of the world will get on with creating many varied and wonderful things for profit or pleasure with the Propeller and propgcc:)
http://code.google.com/p/propgcc/wiki/PropGccBuild
The link I mentioned in #5 contains the following:
"In order to take advantage of this permission, the Compilation Process that you use to create Target Code has to be “Eligible,” which means that it does not involve both GCC and GPL-incompatible software. It's important to remember that the Compilation Process starts when you feed any high-level code to GCC, and ends as soon as it generates anything that can be considered Target Code. Because of that, as long as GCC isn't writing out intermediate representation, your Compilation Process can still be Eligible even if you use GCC in conjunction with GPL-incompatible assemblers, linkers, or high-level source generators: those programs aren't involved in the Compilation Process as it's defined here. The only place you can't use GPL-incompatible software with GCC is when it's performing the core compilation work."
C.W.
So, compiler is not and can never be an issue. What could be an issue is the libaries you use, and that is taken care of as described by other posts.
-Tor
Edit: I'm not a lawyer either, but I did spend a full day with the headquarter's IP lawyer. He's spent lots of time in court on copyright cases. Not that there's anything unclear about using GCC to start with - copyright law is not _that_ difficult, at least not the part which defines that what you write, you have the copyright on, and what license applies is your decision.
Q: What licensing concerns do I need to be aware of to develop with PropGCC?
A: It depends on your choice of license for your code. If you want your code to be:
GPL: <blank 1>
LGPL: <blank 2>
MIT: <blank 3>
proprietary (closed source): <blank 4>
Nobody has ever been sued for a GPL violation merely because they used GCC to compile their program, nor will they be according to the GCC copyright holder (the FSF).
Eric
Eric
Now I'm going to argue against myself a bit.
What you say is true. You write it, it's yours.
However it's quite possible to write a small C++ program where most of the resulting binary code is not the result of anything created by you. This is especially a problem with C++ as there can be a lot of source code in he headers that gets compiled into your code. This is not so much an issue with C where the headers normally only define external things that are out there in some dynamic lib or other.
That means there need to be exceptions in the GPL/LGPL allow use of those headers for non GPL/LGPL code.
When you start to read those exceptions you get a big throbbing headache. As KC_Rob points out.
Again, if this is important (meaning significant $$$ are involved), the OP should himself talk to a lawyer -- his lawyer. Probably better that than rely solely on advice, often quite biased, obtained from non-experts on Internet forums.
I used their help once to resolve my GPL code ending up in a commercial product. It was not hard and the number of successful resolutions speaks very highly to the solid nature of the GPL itself.
No attorney is needed to produce commercial software with PropGCC.
Look, the bottom line is: can someone (successfully) sue you for using PropGCC? For starters, who is going to? It would have to be a copyright holder -- nobody else has standing. The copyright holders of the compiler are the Free Software Foundation, who have explicitly said you can redistribute GCC compiled code without restriction (http://www.gnu.org/licenses/gcc-exception-faq.html) and Parallax. I can't speak for Parallax, but I can say that I have no fear whatsoever that they will sue someone for using PropGCC!
The copyright holders of the libraries are listed in the LIB_LICENSE.txt file, along with the conditions of use. The licenses are MIT (just like the OBEX), BSD (the floating point math libraries are derived from OpenBSD), and the FSF's GPL with runtime exception (see above). There is also some code that was explicitly dedicated to the public domain, by me and others, and that (obviously) no longer has a copyright you can run afoul of.
Technically you should distribute LIB_LICENSE.txt along with your program in order to satisfy the MIT and BSD licenses. The FSF doesn't even require that, and if you read their runtime exception license and/or the FAQ linked to above, it's clear that there are no issues with distributing your code linked with their libraries.
Eric
There are exceptions, and those exceptions really are pretty clear. The GCC Runtime Library Exception itself is legalese, but as legalese goes it's not that bad. And the FSF's FAQ is very clear about what they're trying to do. What they don't want is for people to start trying to get around the GPL *on GCC itself* by producing a compiler that's partly GCC and partly some proprietary code that works on GCC's intermediate representation. They're saying if you produce such a compiler then you can't use their runtime exception for their libraries. That is not at all an issue in this case.
As for what is included in/with the PropGCC toolchain and libraries, I'll take your word for it that every last bit has been accounted for, licenses all duly noted, and any an all potential license conflicts have been thoroughly examined and completely worked out. Of course, that's easy for me to say -- I have no plans on using it right now. The OP, on the other hand, might be in a different position; thus, I'll myself continue to refrain from making any blanket statements one way or the other.
There are many programs distributed under commercial licenses. There are sometimes lawsuits involving those programs, too. I'd wager there are far more copyright infringement lawsuits regarding proprietary programs than GPL'd ones.
All of which is irrelevant. The Free Software Foundation is the copyright owner of GCC (period). They require copyright assignments for all contributions to the official GCC tree.
PropGCC is directly derived from the official GCC tree, so the only other copyright holder on the compiler proper or any GPL derived code is Parallax.
Just as you take the word of any tool vendor. Actually for PropGCC you don't even have to take my word for it. The source code for all the libraries is in the repository, you can vet it yourself if you want to. Can you say the same about any other tool you use?
As for searching the repository and all the rest of it, that is for the OP to do and decide for himself -- not my problem.
You have made it your problem by asserting that there is a problem without a fair analysis.
In other words, you are perpetrating FUD.
Moreover, it is entirely one thing for me to post, what?, a few dozen sentences, suggesting that the OP *might* do well to check around a bit, rather than only rely on answers from non-experts on an Internet forum, and quite another for me myself to volunteer to pour over all this stuff for him and offer him a final judgment.
My problem? Utter nonsense! Keep your drivel to yourself.