Appropriate license for a new library

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

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

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

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

:slight_smile:

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 :slight_smile:

Cheers
ajfisher

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

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

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

Cheers
ajfisher

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