Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
hobbss
PostPosted: Apr 15, 2012 - 09:21 PM
Resident


Joined: Oct 06, 2010
Posts: 925
Location: Chicago

If I create a library (completely written by me) that is compiled with avr-gcc, can I sell that library for profit? Actually, the software would be bundled into a larger product deliverable, including hardware and other items. Would it be fair practice and/or a license violation to increase the price of the deliverable due to included code libraries?

How does the fact that it was compiled with an open source compiler impact things?

Do I need to have disclaimers, etc.?

Where is a good source of information for these questions?
 
 View user's profile Send private message  
Reply with quote Back to top
svofski
PostPosted: Apr 15, 2012 - 10:21 PM
Raving lunatic


Joined: Jun 27, 2005
Posts: 3546
Location: St.Petersburg, Russia

IANAL but the fact that the entire Apple OS X is compiled with an open source compiler should give a hint.

_________________
The Dark Boxes are coming.
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
Koshchi
PostPosted: Apr 15, 2012 - 10:50 PM
10k+ Postman


Joined: Nov 17, 2004
Posts: 15114
Location: Vancouver, BC

If you were not able to sell code compiled by avr-gcc, it would make avr-gcc pretty useless for writing commercial code, wouldn't it?

_________________
Regards,
Steve A.

The Board helps those that help themselves.
 
 View user's profile Send private message  
Reply with quote Back to top
mnehpets
PostPosted: Apr 15, 2012 - 11:17 PM
Resident


Joined: Nov 09, 2011
Posts: 644


Quote:
If I create a library (completely written by me) that is compiled with avr-gcc, can I sell that library for profit? Actually, the software would be bundled into a larger product deliverable, including hardware and other items. Would it be fair practice and/or a license violation to increase the price of the deliverable due to included code libraries?


If you are compiling source code that belongs to you, the output of the compile phase is object code that also belongs to you. See the FSF's explanation:

http://www.gnu.org/licenses/gpl-faq.htm ... ToolsForNF

The output of the link phase is a bit more complicated, as linking may pull in additional libraries that have copyright restrictions on them. Since you plan to distribute a library, this does probably doesn't apply to you.

Quote:
Where is a good source of information for these questions?


Speak to your lawyer.

- S
 
 View user's profile Send private message  
Reply with quote Back to top
gchapman
PostPosted: Apr 16, 2012 - 12:14 AM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

avr-libc: Good to go.
Ref. Debian avr-libc copyright
avr-gcc: Read your compiler's copyright statement.
If GPL, no go for proprietary (ref.: Debian avr-gcc copyright).
If otherwise, maybe; IIRC, good to go if using WinAVR or Atmel AVR toolchain due to that instance's AVR libgcc copyright.
 
 View user's profile Send private message  
Reply with quote Back to top
hobbss
PostPosted: Apr 16, 2012 - 01:15 AM
Resident


Joined: Oct 06, 2010
Posts: 925
Location: Chicago

Thanks for the answers. I will read the information at the reference link, and will also consult a lawyer...

_________________
“Science is not consensus. Science is numbers.”
 
 View user's profile Send private message  
Reply with quote Back to top
EW
PostPosted: Apr 16, 2012 - 04:47 AM
Raving lunatic


Joined: Mar 01, 2001
Posts: 5011
Location: Rocky Mountains

The license of the compiler itself (i.e. AVR GCC) has no bearing on the code that it compiles.

However, you need to be aware of what other code gets linked into your application.

As mentioned above avr-libc provides a Standard C library where, often-times, functions from that library will be linked into your application. The license for avr-libc is the 3-clause BSD license:
http://www.opensource.org/licenses/BSD-3-Clause

It's pretty straight-forward and you can easily link it in to your application, and keep your application private.

AVR GCC also has a library of low-level functions, called libgcc. The license for libgcc is the GPL but with a "linking exception" clause.
Quote:

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.


Here's more information about linking exceptions:
http://en.wikipedia.org/wiki/GPL_linking_exception

Basically, the linking exception says that the libgcc code itself is under GPL, but when you link libgcc to your application, your application code is NOT under the GPL. The reason for this is that if you change the code in libgcc, then the changed code is still GPL, but it does not affect your application.

Please realize that I am not a lawyer, and this should not be construed as legal advice. I'm just describing my experience in working with these licenses. If you have concerns, then I suggest you consult a *competent* lawyer who has experience in software licensing and copyright.

Hope this helps.

_________________
Eric Weddington
www.linkedin.com/in/ericweddington/
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
gchapman
PostPosted: Apr 16, 2012 - 05:09 AM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

One company I worked for used GCC but went conservative w.r.t. the license (bought GCC maintenance). The only AVR GCC I'm aware of that has maintenance for sale is from AdaCore (languages C and Ada).
 
 View user's profile Send private message  
Reply with quote Back to top
lfmorrison
PostPosted: Apr 16, 2012 - 12:36 PM
Raving lunatic


Joined: Dec 08, 2004
Posts: 4722
Location: Nova Scotia, Canada

A maintenance contract for GCC will benefit you, for example, if you discover a bug or shortcoming in your compiler, and your business needs to know that you have some 3rd party you can turn to, who will assist you in overcoming such problems within some contractually guaranteed timeframe.

I don't think, however, that any such maintenance contract would normally have any impact (either positive or negative) on your ability to claim ownership of the compiler's output, nor would it normally have any impact (either positive or negative) on the range of licenses you are permitted to apply to that output.
 
 View user's profile Send private message  
Reply with quote Back to top
EW
PostPosted: Apr 16, 2012 - 07:15 PM
Raving lunatic


Joined: Mar 01, 2001
Posts: 5011
Location: Rocky Mountains

Correct. Just because one buys maintenance, does not change the license of the compiler. And again, the license of the compiler itself does not change the license of the code that is being compiled. The only time the license of the compiler has any bearing on the matter is if you decide to make changes to the compiler yourself (which is extremely rare) or if you decide to redistribute the compiler to other parties (again, rare).

_________________
Eric Weddington
www.linkedin.com/in/ericweddington/
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
westfw
PostPosted: Apr 16, 2012 - 07:33 PM
Posting Freak


Joined: Jun 19, 2002
Posts: 1467
Location: SF Bay area

Traditionally, the Gnu licenses are annoying inapplicable to deeply embedded systems. Especially as applied to libraries. Companies have done things like write their own "clean" versions of libc and/or libgcc to (try to) avoid issues.

avr-libc is good. The compiler is good. libgcc is the least good, but has stated intent to allow proprietary programs to be produced, via the "linking exception." Third party libraries may be a problem, because people tend to throw GPL at them without understanding the implications. The Arduino libraries are pretty much a mess, for example. But the stated intent is to allow for-profit executables, which is good enough for me. (If your company can afford lawyers, you should probably ask them.)
 
 View user's profile Send private message  
Reply with quote Back to top
gchapman
PostPosted: Apr 16, 2012 - 08:03 PM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

GCC Runtime Library Exception Rationale and FAQ
EW wrote:
Correct. Just because one buys maintenance, does not change the license of the compiler.
Possibly not all library licenses have been changed to have this exception; maybe AdaCore's libraries are one of these:
Technology Comparison Chart
GNAT GPL Edition FAQ, Licensing


Last edited by gchapman on Apr 16, 2012 - 08:32 PM; edited 1 time in total
 
 View user's profile Send private message  
Reply with quote Back to top
gchapman
PostPosted: Apr 16, 2012 - 08:27 PM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

lfmorrison wrote:
A maintenance contract for GCC will benefit you, for example, if you discover a bug or shortcoming in your compiler, and your business needs to know that you have some 3rd party you can turn to, who will assist you in overcoming such problems within some contractually guaranteed timeframe.
Some GCC vendors also run C verification, validation, and regression tests on GCC for value addition.
 
 View user's profile Send private message  
Reply with quote Back to top
lfmorrison
PostPosted: Apr 16, 2012 - 08:36 PM
Raving lunatic


Joined: Dec 08, 2004
Posts: 4722
Location: Nova Scotia, Canada

Valid observations -- apparently the Ada back-end of GCC (or, at least the AdaCore distribution of GCC) has mandatory dependencies on 3rd-party libraries that are not under the direct control of the GNU project. Any such libraries would, of course, be licensed at the discretion of those 3rd-party maintainers.

But any code that is taken directly from the official GNU version of libgcc will always have the runtime exemption included. It's just that the exact language of the exemption has changed over the years. However, the most recent iteration of the exemption may not yet have filtered through to every portion of the compiler.

In the GNU project's opinion: "Nobody who is currently using GCC should be affected by this change."
(source: The GNU source you've already cited)
In other words:

1) Everybody who is currently using a version of GCC taken directly from the GNU project is already protected by previsions iterations of the exemption which have the same overall intent, albeit potentially worded differently and designed to be compatible with different versions of the GPL.

2) On the other hand, anybody who is using a 3rd party distribution of GCC which uses a complete replacement of the runtime library (such as, apparently, AdaCore's distribution), will continue to be subject to that 3rd party's own specific library licensing requirements.

In either case, the change to the runtime linking exemption to make it compatible with GPLv3 doesn't necessarily change anything.


Last edited by lfmorrison on Apr 17, 2012 - 04:31 PM; edited 1 time in total
 
 View user's profile Send private message  
Reply with quote Back to top
EW
PostPosted: Apr 16, 2012 - 08:36 PM
Raving lunatic


Joined: Mar 01, 2001
Posts: 5011
Location: Rocky Mountains

westfw wrote:
Third party libraries may be a problem, because people tend to throw GPL at them without understanding the implications.


That is so true. One egregious example is Pascal Stang's library (avrlib) which seems to be popular with a number of users here, as well as users on the various avr mailing lists. His library is GPL. So it's all but useless for a commercial system.

westfw wrote:

The Arduino libraries are pretty much a mess, for example. But the stated intent is to allow for-profit executables, which is good enough for me. (If your company can afford lawyers, you should probably ask them.)


I'm working with the Arduino team regarding their licensing. Unfortunately they have chosen LGPL as their license, which is completely inappropriate for statically-linked libraries (like the Arduino libs). I've pointed this out, and made a suggestion on how to change the library license to keep the library free, but allow use in commercial applications. It's a work-in-process. Wink But I wouldn't make a big deal about it just yet on the Arduino forums or mailing lists.

_________________
Eric Weddington
www.linkedin.com/in/ericweddington/
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
hobbss
PostPosted: Apr 17, 2012 - 02:51 AM
Resident


Joined: Oct 06, 2010
Posts: 925
Location: Chicago

Eric (and others), thanks again for the input. Suffice to say I cannot envision a single instance where I would EVER adjust the compiler code itself. I am first and foremost a hw engineer. I may be more familiar than I would like with the software side of things, but compilers are still to be viewed as dark art... Shocked

I am still reviewing the references provided and consulting with my attorney. Perhaps I shouldn't tell my joke comparing a group of skydiving attorneys to skeet....
 
 View user's profile Send private message  
Reply with quote Back to top
gchapman
PostPosted: Apr 17, 2012 - 03:06 AM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

EW wrote:
westfw wrote:
Third party libraries may be a problem, because people tend to throw GPL at them without understanding the implications.


That is so true. One egregious example is Pascal Stang's library (avrlib) which seems to be popular with a number of users here, as well as users on the various avr mailing lists. His library is GPL. So it's all but useless for a commercial system.
Egregious is a strong adjective but some creators have a strong need, want, or desire to limit use of their creation in commercial and such products, and/or, to foster growth of open and free(dom) software. GPL is one of likely several ways to do this. Some compilers, RTOSs, libraries, etc. have dual licensing.
 
 View user's profile Send private message  
Reply with quote Back to top
gchapman
PostPosted: Apr 17, 2012 - 03:48 AM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2836
Location: Arlington, Texas, u.S.A.

hobbss wrote:
Suffice to say I cannot envision a single instance where I would EVER adjust the compiler code itself.
Here's one:
A GCC variant's run-time had a timing issue in an application I was working on (a relationship between calendar time and clock time). Due to having the required, per license, source code available, was able to create a proposed solution and a test for it. These ware delivered to that GCC variant's creator.
 
 View user's profile Send private message  
Reply with quote Back to top
EW
PostPosted: Apr 17, 2012 - 05:48 AM
Raving lunatic


Joined: Mar 01, 2001
Posts: 5011
Location: Rocky Mountains

gchapman wrote:
Egregious is a strong adjective but some creators have a strong need, want, or desire to limit use of their creation in commercial and such products, and/or, to foster growth of open and free(dom) software. GPL is one of likely several ways to do this. Some compilers, RTOSs, libraries, etc. have dual licensing.


Ok, you're right, 'egregious' might be too strong a word. I meant it in the sense that it is such a popular library, but most users are completely unaware of the licensing, that a number of us have had to constantly warn people about the licensing. That is what I meant by 'egregious example'.

I have no problem if people want to license their stuff with the GPL to promote software freedom and usage. The problem seems to be more one of ignorance by the end user of the license itself and what it means to them and their application.

_________________
Eric Weddington
www.linkedin.com/in/ericweddington/
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
westfw
PostPosted: Apr 17, 2012 - 07:30 AM
Posting Freak


Joined: Jun 19, 2002
Posts: 1467
Location: SF Bay area

Quote:
some creators have a strong need, want, or desire to limit use of their creation in commercial and such products...

GPL doesn't prevent commercial use; it prevents use in closed source products. (Hmm. IS there a GPL variant that prevents use in commercial software? I guess some of the CC licenses would do it... And I guess GPL 3 has restrictions on linking with "morally inferior" software, or something like that.)

LGPL doesn't prevent commercial use OR use in closed source products, but you're supposed to provide the product in a form that is linkable with new versions of the code convered by the LGPL license (which is a bit of a problem if your product is a chip.) (and of course, a pre-link version of your proprietary code may reveal more about it than you wanted.)
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits