JChristensen / mighty-1284p

Mighty 1284P Platform for Arduino
http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/
64 stars 32 forks source link

Add license information #21

Open per1234 opened 9 years ago

per1234 commented 9 years ago

I'd like to use the variant files from this repository in my fork of the Ariadne bootloader that has ATmega1284P support added but only the avr_developers variant has license information.

pico-- commented 9 years ago

hi Per,

Sorry I haven't replied to your earlier query about changing the default branch. I'm not sure how to do that off-hand, or even if I have sufficient permissions to do that as I'm not the repo owner, and I haven't found the time to look into it properly.

As for the licensing, I've never looked at that, I must admit. I imagine that the intention was probably to be consistent with Arduino licensing generally, either LGPL or MIT or public domain. Since it was a fork of maniacbug's repo originally, if there any implied licenses, I would think that whatever licensing his repo had would have carried over to the fork. Is there any licensing info in the original maniacbug repo?

Honestly, I wouldn't stress too much -- to be on the the safe side, perhaps just put an acknowledgement in the header of a file that the file is based on a file from the Mighty-1284p repo, and that the code can be used for any purpose as long as the acknowledgment is preserved. I think that would cover the bases.

-Mark

On 9/10/2015 1:39 PM, per1234 wrote:

I'd like to use the variant files from this repository in my fork of the Ariadne bootloader that has ATmega1284P support added but only the avr_developers variant has license information.

— Reply to this email directly or view it on GitHub https://github.com/JChristensen/mighty-1284p/issues/21.

per1234 commented 9 years ago

Sorry I haven't replied to your earlier query about changing the default branch

No rush at all, just a suggestion.

changing the default branch. I'm not sure how to do that off-hand

on this page: https://github.com/JChristensen/mighty-1284p/branches at the top right of the page there is a button Change default branch click that, select v1.6.3 from the drop down, and click Update

Is there any licensing info in the original maniacbug repo?

Only on avr_developers/pins_arduino.h(LGPL 2.1). It's tricky because this project is based on the work of multiple people and some appear to have moved on to other things. I figured it was a long shot but thought I'd check. I assume that everyone did it in the spirit of open source for the benefit of the community but I don't want to step on anyone's toes. Of course I have no commercial intentions, I just want to share code that might be useful to others. I have already included an acknowledgment and links to Mighty 1284P and David Mellis who is the author of avr_developers/pins_arduino.h. Right now I have it set up so the user has to install Mighty 1284P to be able to use any of the other variants but it would be nice if they didn't have to do the extra step. Thanks! Per

pico-- commented 9 years ago

I'm not seeing "Change default branch" button. (Screen shot attached.)

-Mark

On 9/10/2015 2:32 PM, per1234 wrote:

Sorry I haven't replied to your earlier query about changing the
default branch

No rush at all, just a suggestion.

changing the default branch. I'm not sure how to do that off-hand

on this page: https://github.com/JChristensen/mighty-1284p/branches at the top right of the page there is a button Change default branch click that, select v1.6.3 from the drop down, and click Update

Is there any licensing info in the original maniacbug repo?

Only on avr_developers/pins_arduino.h(LGPL 2.1). It's tricky because this project is based on the work of multiple people and some appear to have moved on to other things. I figured it was a long shot but thought I'd check. I assume that everyone did it in the spirit of open source for the benefit of the community but I don't want to step on anyone's toes. Of course I have no commercial intentions, I just want to share code that might be useful to others. I have already included an acknowledgment and links to Mighty 1284P and David Mellis who is the author of avr_developers/pins_arduino.h. Right now I have it set up so the user has to install Mighty 1284P to be able to use any of the other variants but it would be nice if they didn't have to do the extra step. Thanks! Per

— Reply to this email directly or view it on GitHub https://github.com/JChristensen/mighty-1284p/issues/21#issuecomment-139113419.

per1234 commented 9 years ago

I didn't realize only the repository owner can change the default branch, well thanks for trying.

bperrybap commented 8 years ago

I'm actually quite a stickler for licensing. I don't think licensing is all that bad in this case although it is a bit of a twisted history. I did a quick look this and here is my take:

It is a bit tricky in that not all the source is under the same license. The SD and SDfat libraries are GPL V3.0 which means if you link that library into your image and distribute your image, it becomes GPL 3.0 even if the license for all the source code in your project may be something like LGPL 2.1 or even BSD or MIT. The use of SD forces the distributed image to be licensed as GPL 3.0 and so there can be no closed source in the image.

I believe all the other code in the repo including all the variant files is or should be LGPL 2.1+

In terms of the variant files, I believe that those should all fall under LGPL 2.1+ The reason being that all the 1284 code that is part of this repo has it roots in code that started from code like maniacbug, sanguino, avr_developers, etc. This repo essentially created a single repo that supported all the 1284 boards.

I don't believe any of the variant files in ANY of the 1284 core projects out there are original source - given the defines and data elements needed to make it work, I believe it would be impossible to create an original source pins_arduino.h header file. The variant files can all be pointed back to their origins of using an Arduino.cc pins_arduino.h header file and every single pins_arduino.h header file ever released by arduino.cc from pre 1.0 to post 1.0 using the variant structure, all had very clear copyright and licensing information in them. The 1.6.3 branch pulled in updates from the newer arduino.cc 1.x pins_arduino.h header files which also have clear licensing information in them.

Back when I was doing the variant file updates for sleeping beauty and bobuino, it looked pretty clear that all the mighty-1284p pins_arduino.h files were all copying updates from each other.

I'm not sure how the original licensing information in some of those pins_arduino.h variant files was lost, but the original arduino.cc pins_arduino.h has a very clear copyright and licensing banner inside it and that should be replicated inside each of the variant files in his repo.

The sleeping Beauty variant files I started with came from the variant file that was provided in the original sleeping beauty package provided by the h/w vendor. However, that variant was created by copying either the standard or avr_developers variant file which again has its roots back to the original arduino.cc pins_arduino.h header file.

So in the end I believe that all the variant files should be updated to specify that they are LGPL 2.1+ since they all originated from an Arduino.cc pins_arduino.h file which was licensed as LGPL 2.1+ They should all be updated to include the original copyright and licensing text that somehow got lost.

In terms of overall licensing for this repo (mighty-1284p) Since SD library is part of this mighty-1284p package, the full repo/package cannot have a global encompassing single license like LGPL 2.1+ It should be possible to have a global licensing statement in a licensing file that specifies that in the absence of any specified license, that LGPL 2.1+ applies; however,if that were done, I would also highly recommend including another statement that would make it very clear that some included libraries are not LGPL 2.1 like SD which is GPL 3.0 so that people do not erroneously believe or assume that all the code in mighty-1284p is LGPL 2.1+

I have seen people make this mistake and even copy portions of the code from a multi-license repo and re-license it in another package using a more liberal license - which is simply not allowed and violates both copyrights and GPL licensing.

per1234 commented 8 years ago

I contacted the author(Wayne Chu) of the Sleeping Beauty pins_arduino.h file and they responded:

I am poor in providing docs and don't fully understand all licence info. Basically it's open source and no licence required to use, make or sell it, but I won't provide any warranty for anyone to use, make or sell it. You can use this basic principle to add licence info to the Might-1284P repository.

So I'd like to submit a proposed license to him, get his approval, then submit a pull request to this repository to add the license to that variant.

My instinct is to go with LGPL 2.1 since that is the license on the avr_developers variant but I really don't know anything about licenses. It sounds like LGPL 2.1 is @bperrybap's recommendation.

Does anyone have any input for me on this before I proceed?

bperrybap commented 8 years ago

I believe that it and all other pins_arduino.h files must be licensed LGPL 2.1+ regardless of what he or anybody else would want since the code in that file was a derivative work of LGPL2.1+ code.

In other words, I think it ok to ask out of curtesy, but I believe that the file must be licensed LGPL2.1+ so it is really more of notification than a request for permission.

The SB pins_arduino in Jack's repo came from me after I modified the version of the file that came in a s/w package from the SB site. I also did many updates and some fixes. But the SB file that I started with from that site was itself a modified version of a file from a 1284 repo; and all 1284 code repos, not just Jack's, that use variant files, started with a pins_arduino.h file that came from arduino.cc which was licensed as LGPL2.1+ So given that all the variant files for Arduino (for all the processors not just the 1284) can be shown to have been derived from a file going all the way back to Dave Mellis' original pins_arduino.h when the 1.x arduino IDE came into being and was originally licensed as LGPL 2.1+ , then pretty much any pins_arduino.h being used with the Arduino IDE must be licensed as LGPL 2.1+

It could be converted to GPL 3.0 using the "+" part, if that was desired, but it is probably best to leave it as LGPL 2.1+

--- bill