153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
+
-
+
|
Git was specifically designed to support the development of the Linux kernel.
Fossil was specifically designed to support the development of SQLite.
SQLite is much more widely deployed than the Linux kernel, but for
Linux-based systems, the kernel is the more fundamental component.
Although both projects must rank high on any objective list of "most
important [https://en.wikipedia.org/wiki/Free_and_open-source_software|FOSS]
important FOSS projects," the two projects are almost entirely unlike
projects," the two projects are almost entirely unlike
one another, and this shows up in the design choices of the tools
created to support them.
The Linux kernel uses a bazaar-style development model. There are thousands and
thousands of contributors, most of whom do not know each others names.
These thousands are responsible for producing roughly 89⨉ more code than
is in SQLite. (10.7
|
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
-
+
-
-
-
-
-
+
-
-
+
-
|
from that source code.
This difference in outlook allows a GPL-based project to do without a
[https://en.wikipedia.org/wiki/Contributor_License_Agreement|constributor
license agreement] (CLA) because by the very act of distributing
binaries, you are bound to also distribute the source under a compatible
license. There are GPL-based projects that do require a CLA, but this is
typically done in order to allow a corporation to "own" the
usually done to further commercial interests rather than to maintain
contributions so that it can legally relicense them to those who do not
wish to be subject to the GPL. The GPL is being used in this case not so
much to promote the FOSS philosophy but as a prod to drive companies
toward the "commercial version," which is naturally available only for a
significant fee. Because a CLA is unnecessary for the legal integrity of
the legal integrity of the
a GPL-based
[https://en.wikipedia.org/wiki/Free_and_open-source_software|FOSS]
project, it's often dispensed with when there aren't other
project itself.
considerations pushing the organization to require one.
Contrast a BSD-style project, where contributions are not automatically
relicensed merely by being distributed with the preexisting BSD code.
Such projects often require a CLA even when there are no corporate
interests, to ensure
that all contributions are compatibly licensed with the existing body of
code. It's a way to add a "no takebacks" clause to the basic BSD
|