Debian to vote on its firmware path
Dealing with the non-free firmware that is increasingly needed to install Debian has been a hot topic for the distribution over the past few months. The problem goes back further still, of course, but Steve McIntyre re-raised the issue in April, which resulted in a predictable lengthy discussion thread on the debian-devel mailing list. Now McIntyre has proposed a general resolution (GR) with the intent of resolving how to give users a way to install the distribution on their hardware while trying to avoid trampling on the "100% free" guarantee in the Debian Social Contract. Finding the right balance is going to be tricky as is shown by the multiple GR options that have been proposed in the discussion.
The basic problem is that the use of downloadable firmware in computer systems is on the rise and most of that firmware is not free software. The official Debian installer only incorporates free software (and firmware), which leads to serious problems for many users. McIntyre said in April:
Today, a user with a new laptop from most vendors will struggle to use it at all with our firmware-free Debian installation media. Modern laptops normally don't come with wired ethernet now. There won't be any usable graphics on the laptop's screen. A visually-impaired user won't get any audio prompts. These experiences are not acceptable, by any measure. There are new computers still available for purchase today which don't need firmware to be uploaded, but they are growing less and less common.
Currently, the Debian installer (sometimes abbreviated "d-i") image only includes packages from the official "main" repository that consists of software and firmware which conforms to the Debian Free Software Guidelines (DFSG). Obviously, main does not include the non-free firmware, which lives in the "non-free" repository instead. The same team that creates the official installer images also creates unofficial, non-free images, which is what most users actually need to install the distribution. The Debian community would much prefer not to have to provide the non-free version, but that is not really an option in today's hardware world—at least if the project wants users to actually be able to install and use Debian.
Beyond starting the mailing-list discussion, McIntyre also gave a talk at DebConf in July. One of the problems he had identified is that when users install with the non-free installer, it enables the non-free repository on their systems. That could well mean that those users unknowingly install additional non-free software simply because the Debian package manager (APT or something built on top of it) makes it directly available. That particular problem could be solved by creating a separate non-free-firmware repository; that repository was created as part of the work done during DebConf, though there is still more to do to use it in Debian.
Proposal
So McIntyre has proposed a
GR with a single option; based on a suggestion by
Russ Allbery back in April, McIntyre thinks it is "better to
leave it for other people to come up with the text of options that
they feel should also be on the ballot
". His option is to include the
non-free-firmware packages in the official installer, but to provide ways
to inform users about the type of firmware being used and to give them ways to
disable the non-free functionality and installation if desired. If that
should pass, there would only be a single installer, so the "fully free"
installer would no longer be built.
The proposal immediately elicited far more seconds than required (16 are shown on the GR page and five are needed). Naturally, it also drew some questions and comments, as well as some additional proposals for the ballot. Timo Lindfors asked for some additional information to be made available to users; for example:
As it is pretty impossible to write a clear definition of firmware, we should require packages in non-free-firmware to clearly explain where the code will get executed to allow people to make informed decisions. Some people are more ok with having code run on an external device than on the main CPU.
Lindfors also wanted the project to keep producing the fully free installer
and to clearly distinguish between the two installers. McIntyre was
amenable to adding firmware descriptions along the lines of what
was requested, but thought that Lindfors's other requests were better
handled with further ballot options; "I imagine that you will quite
easily get
seconds here
".
Wouter Verhelst wondered
about enabling the non-free-firmware repository on installed systems by
default. He thinks that only makes sense "if the installer determines that
packages from that component are useful for the running system (or if
the user explicitly asked to do so)
". McIntyre agreed,
saying that his proposal text was unclear; he provided some modified text
that would make that clearer.
But Ansgar Burchardt thought
that it made sense to enable non-free-firmware even if the installer did
not need it. Detachable devices (e.g. USB) might require firmware, for
example. "For the same reason the system should probably install all
(reasonable)
firmware by default, just like we install all kernel drivers even for
devices that are not present on the target system.
"
Simon Richter wondered
whether McIntyre's proposal also required changing the Debian Social
Contract (DSC); he
pointed to the first section of the contract ("Debian will remain 100%
free
") and suggested that an official installer with non-free firmware
would violate that. He also alluded to section five, which allows for the
non-free and contrib repositories, but not as "part of Debian
".
Some thread participants thought that the final line of
section one ("We will never make the system require the use of a
non-free component.
") was not being violated by the proposal. But
section five seems
more problematic because it
clearly says that non-free, thus by extension non-free-firmware, is not part
of the Debian system, so how could an official installer incorporate
that? As Simon Josefsson put it:
"what is being proposed here is to replace our current
DSC-compatible free software installer images with non-free. That goes
significantly further than what the spirit of DSC§5 suggests.
"
Tobias Frost disagreed
because there was no requirement that the non-free firmware be used;
"there are just additional bits in there which
help people to actually be able to install Debian on some modern
machines
". As might be guessed, others disagreed, but there are also some
questions of what the majority requirements for passing the GR would be;
the Debian
Constitution requires a 3:1 supermajority for changing either the DSC
or DFSG (the Constitution, too, for that matter). Josefsson is worried that
those requirements may not be followed:
I believe it would be bad for the project if the supermajority requirements of changing a [foundational] document is worked around by approving a GR vote with simple majority that says things contrary to what the DSC says.
Project secretary Kurt Roeckx said that he had no
plans to require a 3:1 supermajority for anything proposed so far, since
none targets changing the social contract. He does not think that the
secretary has the
power to impose the supermajority requirement on the vote based on their
interpretation of the proposal, though that might result in something of a
mess. If a GR
passes with a regular majority and might conflict with DSC, DFSG, or
Constitution, "the Secretary might
have to decide if it conflicts or not, and if it conflicts void the
GR
".
For the purposes of putting the firmware question to rest for good, Allbery would like to see proposals that change the social contract and thus require a 3:1 supermajority. A simple addition to section five allowing non-DFSG-compliant firmware in the installer would suffice.
The failure mode that I'm worried about here is that a ballot option passes expressing a position that we should include non-free firmware but since it doesn't explicitly update the Social Contract some folks who disagree with this direction for Debian continue to believe doing so is invalid and we don't actually put the argument to rest. Also, if the 3:1 majority option doesn't pass but a 1:1 option that doesn't require a supermajority does pass, that's also useful information. (For example, I believe that would imply that such an installer has to continue to be labeled as unofficial and not a part of the Debian system, since I think that's the plain meaning of point 5 of the Social Contract.)
Other options
Two other proposals have been posted and seconded, and there is a third that is in an indeterminate state at this point, but may well make the GR ballot; it is also not impossible that another option or three could crop up before the discussion period ends on September 3. Gunnar Wolf simply proposed ensuring that both installers would continue to be built, though the non-free version would be highlighted:
Images that do include non-free firmware will be presented more prominently, so that newcomers will find them more easily; fully-free images will not be hidden away; they will be linked from the same project pages, but with less visual priority.
That proposal (proposal B on the GR page) garnered nine seconds (including McIntyre), but also drew another proposal that is seemingly in procedural limbo as of this writing. Josefsson proposed something that is effectively the antithesis of McIntyre's (proposal A) and proposal B; it also embodies the status quo at this point by forcing any installer with non-free firmware to be "unofficial" and to not be distributed as part of Debian. It appears to have been seconded enough times, though some of those seconds are not because the person agrees with Josefsson, they simply think that the option should be available to the voters. Meanwhile, there was a procedural hiccup and the proposal does not appear on the GR page (as of this writing).
That leaves proposal C, which is a simplified statement in support of non-free firmware for the installer that leaves out the details in McIntyre's and Wolf's proposals; it was proposed by Bart Martens and is just one sentence long:
The Debian project is permitted to make distribution media (installer images and live images) containing packages from the non-free section of the Debian archive available for download alongside with the free media in a way that the user is informed before downloading which media are the free ones.
It was seconded by five developers, including McIntyre again. In his message seconding it, Stefano Zacchiroli noted that it perhaps sidesteps conflicts with the social contract; making users choose is less than optimal, but may open some eyes as well:
Rationale: while it is not lost on me that in terms of usability having to choose between two options is a net loss for newcomers, I think this might be the only way to not run afoul of the Social Contract. Also, I think that on users that are even a little bit more knowledgeable and come to Debian for software freedom reasons, this choice might carry some real educational value (on how bad the consumer hardware market is these days, mostly).
There is a danger to pushing the free installer, which came up earlier in the thread, however. Since there are few systems that can actually work without the non-free firmware, using the free installer will lead to user unhappiness, which may impact more than just Debian's reputation, as Ted Ts'o noted:
Whether we recommend the one with non-free firmware or not (some have proposed that the "free" installer would have "visual priority", whatever that means), I suspect there will be various Linux newbie or FAQ's, external to Debian, that will warn users that the using the "free" installer will just cause them pain and frustration.So there may be some unintended consequences where new users may associate "100% free software" with "not functional" and "induces pain and frustration", such that it might end up *hurting* the cause of free software.
The voting will presumably start in early September and a resolution may come by mid-month. The constitutional question is cogent, so Allbery's suggestion to explicitly have an option that changes the social contract seems like a good one. It would be ugly to see something pass and then to get invalidated; even if it passed by 3:1 or more, which is a high bar to surmount, the question of conflicting language in the social contract would still linger. At a minimum, the GR will help determine the mood of the project with respect to non-free firmware in the installer, which is definitely a good start.
