Pages: [1]   Go Down
Author Topic: Appropriate license for a new library  (Read 2608 times)
0 Members and 1 Guest are viewing this topic.
Melbourne
Offline Offline
Jr. Member
**
Karma: 2
Posts: 83
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi all,

I'm writing a library and just wanted to know if there is a preference for particular license type to release it under?

I was going to release it under a BSD license which is what I typically use for all my other projects but if there's a preference then please let me know.

Cheers
ajfisher
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 224
Posts: 13915
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

don't know its your library. What does it do?
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Melbourne
Offline Offline
Jr. Member
**
Karma: 2
Posts: 83
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

It's a helper library for working with analog multiplexer / demultiplexers like 4051 - it's not massive but something I've put together because I use it a lot and am sick of copy/pasting code from one sketch to another to do the same thing over and over.

I would usually release using BSD but just wanted to make sure there was no quirkiness than would come as a result of that, given main arduino code I believe is licensed under GPL2

Cheers
ajfisher
Logged

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 5597
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

It's a helper library for working with analog multiplexer / demultiplexers like 4051 - it's not massive but something I've put together because I use it a lot and am sick of copy/pasting code from one sketch to another to do the same thing over and over.

I would usually release using BSD but just wanted to make sure there was no quirkiness than would come as a result of that, given main arduino code I believe is licensed under GPL2

Cheers
ajfisher

Your code and the Arduino code-base are (likely) completely separate; you didn't derive your code from anything in the Arduino code-base, did you?

Likely, the Arduino code is GPL2 because the code it is based upon (Processing and Wiring) is GPL'd. You could release your code with a BSD license, just as long as you know the possible consequences of doing so. For instance, I could take your code, make modifications to it, distribute it, but never release those mods back to the community (much like Apple did with OSX from BSD); I would still have to credit you, though.

I personally like the GPL for that reason; it keeps the software open and evolving, so that no one player can later scoop the whole bit up, make a bunch of mods, then close off their port and sell it, and make a ton of money off the backs of those who came before. Instead, they can still try to make their ton of money, but they must release their mods back to allow them (if they are judged worthy, of course) to be re-incorporated back into the base.

Now granted - both of those explanations of GPL and BSD licenses are very superficial, and don't touch on everything about either; just make sure you are aware and understand the ramifications long-term of releaseing under whatever license you feel is appropriate. Your library may not ever become someone's "cash cow", but then again, you never know in this world (and even if it doesn't it might become an integral part of someone's larger business - you just need to decide whether you or the community will care in the end; it really only becomes a problem if the end-product that is based on yours becomes more popular than the "community" version, with more features, and you have to pay for it, and you're not allowed to see inside it anymore - but your name will be mentioned, right?).

For many of these libraries, though - either BSD or GPL (or public domain, or a proprietary license) will be a-ok and not cause a conflict with the license of the development environment (provided, again, that you haven't based your code off of anything in that code-base, of course).

smiley

Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Melbourne
Offline Offline
Jr. Member
**
Karma: 2
Posts: 83
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for that and yep I'm aware of the difference between GPL and BSD on what happens to my code after it's released and am happy with the BSD option (I work a lot with Python and this is the broad standard of that community so happy to continue in that vein).

Time to finish off the library and publish it now!

Thanks again for all of the additional info smiley

Cheers
ajfisher
Logged

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17303
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Not sure there is any issues at all. Unless the arduino team was to take your library and distribute the library into their standard distribution, where would there be any conflict/mixing issue? The standard arduino distribution contains very few libraries compared to the large number of arduino compatible libraries avalible on this forum, the playground, and of course out in the wild.

If you are just issuing your own library code to the community at large, for anyone to add to their sketch if they desire, I don't think it would make a bit of difference how you licence it or even if you bother to licence it at all?

Lefty
Logged

Melbourne
Offline Offline
Jr. Member
**
Karma: 2
Posts: 83
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Certainly in that context it really won't matter what I release it as - call it a hangover from my python and PHP ways smiley-wink

 where there's a good chance of your code being remixed into some else's.

Cheers
ajfisher

Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 137
Posts: 6792
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The danger would be that you'd accidentally use something less permissive than the majority of the Arduino project, leading to confusion when someone needed an extra lawyer to evaluate whether they could use your library or not.

That shouldn't be a problem with a BSD license.

The LGPL license used for a lot of Arduino libraries isn't really very suitable for embedded microcontroller code, unless you're specifically that the GPL "contamination" behavior is a good thing.  You're supposed to allow (under LGPL) the user to re-link with newer versions of the library, which is tough if all you have is a box with a chip in it, and not easy even if the user has the arduino library installed, unless you provide source (the arduino IDE not having the ability to link .o files from one place with library files from another.)  But it's all OK till someone gets sued...
Logged

Pages: [1]   Go Up
Jump to: