I've been tidying up for release the source code for my camera intervalometer, and I've been checking the licences for all the libraries I've been using.
I wanted to licence all my new stuff as MIT (I've got some fancy new UI libraries that could be really useful for others, and don't want to impose the GPL on them) - but one of the libraries I was using, PinChangeInt, is under the GPL. Oh dear, I thought, I'd better find an alternative.
I've library-ised PcInt from the Arduino playground, and it works just fine for what I'm doing - unfortunately it has no copyright notices or licence present at all.
Can I just give attribution to where I found it and assume it's under the public domain? While I doubt anyone's going to sue over this, I'd rather be doing The Right Thing and not give anyone making use of my own code problems downstream...
CargoCult:
Can I just give attribution to where I found it and assume it's under the public domain?
In the U.S., no. By default the author is given a copyright with all rights reserved. The author has to grant a license for you or anyone else to use the material.
While I doubt anyone's going to sue over this, I'd rather be doing The Right Thing and not give anyone making use of my own code problems downstream...
I suggest contacted the PinChangeInt author(s) and ask if they would change the license. Libc and the Arduino Core are both LGPL (which seems more appropriate to me).
After a bit more research, it turns out PinChangeInt is actually derived from PcInt:
This library was inspired by and derived from "johnboiles" (it seems)
PCInt Arduino Playground example here: http://www.arduino.cc/playground/Main/PcInt
If you are the original author, please let us know at the google code page
So the application of the GPL might be a bit dubious to begin with? Oh well...
CargoCult:
After a bit more research, it turns out PinChangeInt is actually derived from PcInt:
This library was inspired by and derived from "johnboiles" (it seems)
PCInt Arduino Playground example here: http://www.arduino.cc/playground/Main/PcInt
If you are the original author, please let us know at the google code page
If you look at the history on the PcInt page, you'll see that the apparent original poster was user ckiick, who is still active on the forum.
Hello, GreyGnome here... I've been maintaining the PinChangeInt library.
Thanks for bringing up the issue of the licenses. In my eagerness to update the library, I just took it and ran with it without cleaning up the original "johnboiles" attribution, which should really go to ckiick as he posted the original page in December 2008.
Personally, my contract with the user of the library is that, in exchange for my time and efforts, I would like the code to remain free: hence I "impose" the GPL. See Why you shouldn't use the Lesser GPL for your next library - GNU Project - Free Software Foundation I'm not interested in the popularity of my changes, I'm more interested in the freedom of the code, and I'm not interested in the lgpl (the Arduino's authors' choice notwithstanding).
That said, not following up on the PCint derivation was a mistake that I hope to rectify.
Not really, unless you have dynamically linkable libraries. (and Arduino doesn't.)
The gnu licenses are woefully inadequate for deep embedded cpus like an AVR. Unless you intend to be fully viral.
(I prefer to go with the stated intent of most Arduino developers, who say that they DO intend to allow non open-source projects based on Arduino code. But that's not how the licenses used actually read.)