
Two legal planes of existence for FLOSS projects
Similarities:
Differences:
Example: GPL’d patch vs. CLA’d patch to GPL’d project
What do I mean by “agreement”?
Most projects have a contribution policy (implicit/explicit legal rules governing contributions)
But vast majority don’t use contributor agreements
Majority rule: inbound=outbound
Contributor agreements
Miscellaneous: nonagreement, non-pure-inbound=outbound (uncommon)
I am mainly critiquing maximalist agreements
A custom that reflects traditional FLOSS norms: licensor equality + transactional informality
Contributions licensed in under project’s outbound FLOSS license (or contributor’s license passed through by project)
Usually undocumented
Most contributors do not explicitly license
Two types:
Why “maximalist”? Extent of:
Complete transfer of ownership (Sun version: joint ©)
Most often used with outbound GPL/LGPL projects
Typical features:
Essentially equivalent to © assignment agreements
Apache ICLA/CCLA, widely adapted by ‘corporate’ projects; used with permissive and copyleft projects
Confusion surrounds CLAs
Elaborate formalization of inbound=outbound (Eclipse, Mozilla committer agreements)
PSF CA: contributor licenses in under choice of AFL or Apache License 2.0; PSF can license out under open source license approved by PSF Board
Old JBoss CA: elaborate LGPL license grant to project
Fedora FPCA (2011): default licensing of nonexplicitly licensed code (MIT) and content (CC BY-SA) + right to opt out through explicit licensing
CiviCRM: documents policy of AFL inbound, AGPL outbound
Give contributors a choice
Lightweight exception to maximalism for small contributions
Linux kernel DCO: “signoff” on patches certifies right to license inbound=outbound
Several reasons:
Some arguments apply more weakly to minimalist agreements
My assumption: natural FLOSS community development model is socially and economically optimal
Inbound=outbound attenuates natural inequalities that emerge in community projects by creating legal equality
Maximalist CAs give greater legal power to one privileged entity, signalling all others are second-class citizens
Maximalist CAs facilitate single-entity control
CAs introduce red tape, delay, inefficiency, deal-making into development process
My experience at Red Hat:
protracted negotiations with upstreams over badly drafted, overreaching agreements
protracted negotiations over our own CAs
clashes with “upstream first” ideology
Inequality and red tape have harmful effects on community-building
Disincentives/barriers for outsiders to participate in project
Narrower developer communities will limit project focus
Incentives to partially/fully fork
Maximalism departs from the pure FLOSS of inbound=outbound
imposes a culturally-foreign legal layer on top of the FLOSS-outbound layer
seems to signal that there is something legally insufficient or doubtful about FLOSS licensing
advocates fail to explain asymmetry (why is FLOSS licensing good enough for the outbound side?)
Arises with individual contributor and commercial inbound
Significant inequality in bargaining power
CLAs arguably more problematic than copyright assignment (consequences less obvious to individual contributors)
Needed for enforcement (© assignment)
Facilitate relicensing
“Protect the project”
Attract business investment in open source
Copyright ownership for standing to sue?
Aggregate © ownership to avoid joinder problem?
Argument assumes contributor & contributee were joint authors (co-owners of undivided © interest in whole work)
But if contributor JA pre-assignment, grant-back license covers whole work → contributor post-assignment can give defendant license
Germ of truth: the larger your copyright interest, the more likely your case will survive attacks by defendant
Today relevant only where initial license is copyleft and doesn’t allow migration to desired license
FLOSS licenses (especially copyleft) are stable by design
Get your license policy right the first time
Use copyleft licenses with “or later” clauses
Exercise of “nuclear option” without community consent suggests weak/nonexistent community
Undergoing relicensing process is typically not that difficult
From what?
Argument assumes an atmosphere of high risk that is completely unjustified by experience
Inbound=outbound with appropriate FLOSS license gives all the protection the project’s community should need
Project gets meaningless contract claims against judgment-proof developers
Makes more sense for corporate contributors, but they often negotiate away teeth of provisions
Ethically problematic/gimmicky dual-licensing (GPL/proprietary) models are generally assumed to require maximalist CA
Strong case (sabdfl): riches from GPL/proprietary business models will entice proprietary companies into the ecosystem
Weak case: scary contributor agreement will make companies feel more comfortable open-sourcing proprietary code
Inbound=outbound should be default choice of any project
Any benefits of maximalist CAs far outweighed by harm they do to community FLOSS development
Continue experimenting with minimalist agreements and nonmaximalist alternative approaches to contribution policies
Email: rfontana@redhat.com
Identi.ca: @fontana
Twitter: @richardfontana
See also: opensource.com/law
Presentation text © 2011 Red Hat, Inc.
License: Creative Commons Attribution-ShareAlike 3.0 United States.