Understanding Installation Requirements in GPLv2
byon March 25, 2021
According to our Principles, we always begin discussions with GPL violators privately. Many of these discussions are ongoing at any time. Recently, we received many questions about GPLv2's requirements regarding installation of modified versions of GPLv2'd software on the device on which the software was distributed. GPLv2 was drafted in anticipation of future uses of the software, and includes specific license text regarding installation:
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.
Unfortunately, we find that GPL violators often ignore (sometimes inadvertently) this part of that license text, which has always been of great importance: “the scripts used to control … installation of the executable”.
When a system is 100% FOSS “by design”, meeting this requirement is easy. We applaud the many community-oriented commercial projects that build their own hardware and give their users complete software freedom, such as the LulzBot Mini 3D Printer. We wish that all companies would follow that example and grant customers universal software freedom. Unfortunately, that is currently not realistic, even in the medium term.
Copyleft advocates have always contemplated that some companies will choose to ship proprietary software on the same device as the GPL'd works. Indeed, GPLv2 foresaw this possibility and permits that “mere aggregation” — as long as compliance is achieved for the GPLv2-covered works included on the device.
Indeed, GPLv2 was drafted as a forward looking license. Great care and attention was given to what the future might bring in software, and assure that in the future, GPLv2 defended software freedom adequately. In 1991, the year of GPLv2's drafting, one did not need to look that far ahead to see that general-purpose computers would find their way into devices other than servers, desktops and laptops. It was common, for example, in 1991 to have printers with full computers inside to handle various functionality of those printers. Famously, even back then, software freedom activists were quite frustrated that printer companies and their licensees would not liberate the proprietary software on these printers. Such activists, aware of this problem, sought to fix bugs in this printer software. They demanded source code for their printers, not because they sought to build their own printer from scratch and use that software, but because they wished to modify that source, fix the bugs, and reinstall the liberated printer firmware. This problem was well understood at the time of GPLv2's drafting, and GPLv2 was clearly drafted with this issue and use-case in mind.
To that end, GPLv2 included a clear obligation to provide “the scripts used to control … installation” that function for the GPLv2'd works. GPLv2 assures, to the purchaser of an embedded product, their absolute right to receive the information necessary to install a modified version of the GPLv2'd works. Meanwhile, rules for the legitimately proprietary works remain the prerogative of the licensors of that software. Since we have often been asked, we want to communicate this point with complete clarity and transparency: we would never require that any of the proprietary software on the device continue to function (or even be present) on the device after installation of a modified version of the GPLv2'd works on any device. However, installation of the GPL'd works must succeed and operate in a useful and functional fashion on the device.
Installation is where the proverbial rubber meets the road with software freedom. Of course, we honor the esoteric value of the freedom to study, and that right is important. But much more important, and a key reason that the GPLv2 was created, is the software freedom to reinstall a modified version. That means the right to fix bugs, the right to try out your improvements, and the right to remove privacy-disrespecting anti-features. It's the right that our community needs the most. The GPLv2 was designed to assure bug-fixing. Furthermore, the drafters knew that, on embedded systems and devices, you need to know how to install those fixes. Scripts can be technical artifacts like shell scripts, but can also be merely a recipe and/or guidance — written instructions that explain how to succeed at install.
We know that other software freedom organizations share this view. Conservancy is spearheading the ongoing effort to make this clarity widely known. Below is a simple statement of this position, phrased in other words:
The GPLv2 does not have any specific requirement for preservation of the ability to reinstall proprietary-software-centric vendor-provided firmwares (even if such firmwares contain some GPLv2'd works) on embedded systems, provided that the downstream user (i.e., the consumer with the device) can build, install, run, and (repeatedly and successfully) reinstall a firmware containing at least the copylefted components (such as Linux+Bash).
Not only is this consistent with what the license text says and requires, but it is also consistent with GPL's general policy goal. In our GPL compliance discussions, violators sometimes argue that, in order to install a modified version of the software received on a device, the user should build a new device themselves from scratch (instead of installing those GPLv2'd works on the device they have already). We don't believe that the original intent of the GPLv2 requirements for “the scripts used to control … installation of the executable” included that expectation, nor is that position supported by the license text. GPLv2 was written in a time after embedded devices already existed, and the intent is clear.
Our position is by no means controversial, but we do expect some will seek to argue it is controversial. We encourage you to consider their motives, funding sources, and licensing models. For our part, we published this policy statement to clarify repeated questions that companies distributing devices with GPLv2 software have recently raised in our GPL enforcement actions for Linux, BusyBox, and other software. We look forward to continuing the (sadly) long road toward compliance with these companies, in accordance with The Principles of Community-Oriented GPL Enforcement. We greatly appreciate the work that both individual contributors and companies put into their software and communities. It is our obligation, as copyleft activists, to ensure that GPLv2's rules apply fairly to everyone.
Finally, we encourage others to link to this statement when discussing GPLv2's “the scripts used to control … installation of the executable”.
On the Recent Announcement by FSF's Board of Directors
byon March 23, 2021
In response to Sunday's announcement by the Free Software Foundation, we ceased our few remaining activities that intersect directly with the FSF. Most notably, our Outreachy member project exited the FSF from participating in that program — both through mentorship and sponsorship. One project participant in Outreachy's May 2021 round planned to rely on FSF funding. We will not accept those funds from the FSF, and instead Conservancy will pay for that intern ($6,500) from our own general funds. It is my deepest hope that these actions, along with others all over the FOSS community, will catalyze much needed changes at the FSF.
The Online Conference Has Been Liberated
byon February 8, 2021
Something unique happened this weekend. Hardly anyone knew about it, in the grand scheme of the entire world population. But, in the FOSS community, it's not uncommon that we see what's coming that can change the world — if only we embrace it and fight for its adoption. We did this with Linux, and below I describe another FOSS solution that needs promotion and that same “accept nothing less” devotion that made Linux succeed.
This weekend, the largest international FOSS conference in the world, FOSDEM, attempted, and succeeded, to achieve what we all thought was not yet possible: They ran a massive online conference event with 100% FOSS0. This conference had more than 25 simultaneous talks at times, with accompanying interactive text-based chat rooms, live Q&A with the speakers on video, and “hallway track” breakout rooms after each talk where speakers and attendees could join video chat together and discuss the talk.
Organizers' Panel from Legal & Policy DevRoom 2021
Photo © by Bradley M. Kuhn, licensed CC BY-SA
In the Legal & Policy DevRoom (the FOSDEM name for what most events would call a “conference track”) that I co-organized this year (with Max Mehl, Richard Fontana, Alexander Sander and Karen Sandler), we had peaked at at least 225 attendees, and most talks had dozens of people interacting and discussing. According to the main FOSDEM organizers, they had a peak of 33,600 attendees and about 22,000 still participating on the second day of the two day event. There were no technical problems in our DevRoom, and I've heard very little about any technical problems in any of the rooms.
Of course, we'd have all rather gone in person to FOSDEM like every other year. But, necessity is the mother of invention, and what the FOSDEM team has done proved that there is absolutely no reason that any online conference should require proprietary software. There is no reason going forward that we should accept excuses; those who claim to be helping Open Source by running proprietary-software-based FOSS-related conferences are now on notice: you are actively thwarting the adoption of proven and working FOSS solutions by any insistence of continuing with proprietary platforms for conferences, developer meetings, and interactive online collaboration.
As always, FOSS is not necessarily free-as-in-price, nor should it be. Bandwidth and computing costs do exist for this. There was much integration effort of the various FOSS technologies such as Matrix, Element.io, and Jitsi to make them work together. But FOSDEM did this work transparently and documented it publicly, and any organization seeking to run a conference can either hire their own people to follow FOSDEM's recipe, or simply hire some of the folks who organized FOSDEM to deploy the technology for you.
We have at least another eight months of remote-only events. Those running events later this year, begin your transition to FOSS now. Our community will not accept a backslide to Zoom or any of the many other proprietary solutions. Proprietary software is what FOSS was made to fight against. Let's start fighting Zoom now.
On Elastic, its fork, MongoDB, and the SS Public License
byon January 29, 2021
Now that Elastic adopted SS Public License, folks have been asking us if Conservancy's view on the SS Public License has changed. It hasn't, and our previous two blog posts on MongoDB's license change and Copyleft Equality are still relevant. The only statement we'd like to add is:
To our knowledge, there is no individual nor organization who has yet agreed that they will run a project under the SS Public License and be themselves bound by the SS Public License. That license remains a disingenuous proposal until it's put to use in an “inbound=outbound” licensing configuration.
(Both Elastic and MongoDB require inbound contributors to give them special licensing rights.)
Meanwhile, on the orthogonal issue of whether a forked project should choose a non-copyleft or a copyleft license, we refer everyone to this excellent old keynote from Martin Fink about how copyleft makes project governance better and easier.