Open Source Licensing Rules/Requirements

21 posts / 0 new
Last post
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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?

“Science is not consensus. Science is numbers.”

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.html#CanIUseGPLToolsForNF

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

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.”

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.)

Pages