forked from duinoWitchery/hd44780
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlicenseInfo.txt
178 lines (145 loc) · 8.44 KB
/
licenseInfo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
==============================================================================
In terms of licensing, hd44780 consists of multiple comoponents.
Library components:
- The "hd44780 library"
- hd44780 base class source files
- multiple hd44780 i/o sub class source files
Application components:
- example sketches
Every source file should contain its own explicit licensing.
Currently all library components above are licensed as GPL v3.0
Some but not all application components are GPL v3.0.
The hd44780 base class code is a derative work
from the IDE LiquidCrystal library which is licensed as LGPL 2.1+,
and this derative work (hd44780 base class) is being licensed as GPL 3
==============================================================================
All of the files supplied with and comprising the hd44780 library, including,
but not limited to: the Arduino hd44780 base class library, i/o subclasses,
sketch/applications, are either licensed under the terms of the
GNU General Public License or are compatible with this license.
Files should have explicit licensing ageement statements in them.
In the absence of of any licensing agreement statement,
the license below shall apply.
==============================================================================
hd44780 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation version 3 of the License.
hd44780 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with hd44780. If not, see <http://www.gnu.org/licenses/>.
(See the included license.txt file for a full copy of the GPL 3.0 license)
==============================================================================
While the hd44780 base class source files share a common ancestry with the
Arduino IDE LiquidCrystal library source files, the hd44780 base class source
files included in the hd44780 library are a separate derivative work,
licensed under GPLv3 whereas LiquidCrystal was licensed as
LGPL v2.1 or later (LGPL 2.1+).
Also, all the i/o subclass source files included in the hd44780 library
are licensed GPLv3.
As such, projects that use hd44780 that are conveyed (shared/distributed)
to others must be open source licensed under the same terms
and may only be used with other libraries that are fully compatible with GPLv3.
For a full GPL/LGPL compatibilty matrix see:
http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
Furthermore, none of the code, including any additions and improvements in
hd44780 over LiquidCrystal, can be moved back into LiquidCrystal or into any
other LGPL, BSD, or closed source compatible licensed project or library
without violating the GPLv3 licensing terms.
See the historical notes below for more details about the history of the
licensing.
==============================================================================
IMPORTANT Historical note about Arduino Library licensing:
==============================================================================
(with notes about LiquidCrystal and hd44780)
The Arduino project has been VERY sloppy with respect to s/w licensing terms,
especially for the IDE bundled libraries.
Some libraries had clear licensing terms, some attempted to use conflicting
terms, and some libraries had no licensing terms.
And the libraries that specified their terms were not all the same license so
some licenses were a bit more "fee" than others and not all are compatible
with each other.
And while there was a general LGPL 2.1 statement in the IDE package that
attempted to make all bundled libraries LGPL 2.1, it is not possible to
apply this license to all the bundled libraries that failed to state their
licensing terms or to libraries that used other incompatible licenses.
AND, this generic license.txt licensing file was only in the IDE source control
repository and was not included in the IDE installation package that is
installed on a users machine. So users that received and installed the s/w
would not know of this file or default licensing.
This has persisted from Arduino's begining; and while the situation is much
better today in 2016, some of the issues still exist to this day.
LiquidCrystal in particuar was one of the libraries that was handled poorly.
To this day including in the latest IDE release 1.6.9 there are still no
copyright or license notices in the actual source code modules for the IDE
bundled LiquidCrystal library.
In fact when the new 1.5x library spec came out, the .properties file in
the LiquidCrystal library left the "author" field blank.
In IDE 1.5.7 released (2014-07-07) the author field was blank but "Arduino"
was listed as a the maintainer.
Starting in IDE 1.6.1 (2015-03-10) the author field became
"Arduino, AdaFruit" while the maintainer still remains "Arduino".
But yet there is still no mention of Adafruit in the copyright notice in the
source code or license file included with the library.
LiquidCrystal had no specific licensing terms until the 1.6.0 IDE release
which was 2015-02-09.
There were no specific licensing terms or copyright notices prior to 1.6.0
other than the default licensing mentioned in the repository readme.txt file.
In the 1.6.0 IDE, the LiquidCrystal copyright notice was simply:
====
Copyright (c) Arduino LLC. All right reserved.
(with a LGPL 2.1+ notice.)
====
This notice was not in the .cpp and .h files themselves but in README.adoc
and mentions no specific dates for the copyright.
Also, from a historical perspective, prior to 2015, there were several
authors/contributors to the LiquidCrystal library some of whom were not
employees of Arduino LCC, so Arduino LCC is unlikely to be the sole
copyright holder.
In IDE 1.6.1 (2015-07-07), the library .properties shows "Arduino, Adafruit" as
the author but yet there is no mention of Adafruit in the source files nor the
README.adoc which has the Copyright notice and licensing terms.
On 2015-11-03 in the 1.6.6 IDE release,
the copyright notice changed to:
====
Copyright (C) 2006-2008 Hans-Christoph Steiner. All rights reserved.
Copyright (c) 2010 Arduino LLC. All right reserved.
(with LGPL 2.1+ notice)
====
This notice was also not in the .cpp and .h files themselves but in
README.adoc
This new notice is effectively backdating the copyright notice for the
library to include a new copyright holder vs what was in prior releases.
And still no mention of Adafruit other than in the .properties file
where they are listed as an author.
The hd44780 project was started in 2013.
The hd44780 library project hd44780 base class is, for the most part,
a major refactoring re-write and enhancement of the IDE LiquidCrystal library.
And while much of the code has been re-written, the primary author of hd44780
still considers the hd44780 base class library to be a derative work of
the IDE bundled LiquidCystal library.
In 2013 there were no clear licensing terms for LiquidCrystal, but it was
assumed that the the license was LGPL 2.1 since there was the catch all
license (license.txt added Oct 11, 2007) in the IDE source code repository.
It read:
===
next, the gnu lesser general public license that covers the arduino core
and libraries.
===
Also, at the time there was a very close interaction between any LiquidCrystal
contributors and the Arduino LLC development team.
i.e. developers had to give their code to Arduino LLC to get it into the
source tree and the distribution
Given the latest licensing terms for LiquidCrystal in IDE 1.6.6 released
2015-11-03 very clearly spell out that the license is LGPL 2.1+, then the
original intent for LiquidCrystal being licensed as LGPL 2.1+
(even back in 2013) seems even stronger.
But given that the IDE LiquidCrystal code is now licensed as LGPL2.1+ and
LGPL 2.1+ allows creating a derative work and re-licensing the derative work
as GPL 3, that is what the primary author of hd44780 has decided to do.
So in terms of licensing, the hd44780 base class library is a derative work
from the IDE LiquidCrystal library which is licensed as LGPL 2.1+,
and this derative work (hd44780) is being licensed as GPL 3
==============================================================================