|
|
Subscribe / Log in / New account

Debian goes to the polls

Please consider subscribing to LWN

Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

By Jonathan Corbet
December 17, 2008
It is general resolution season at the Debian Project. As was discussed here in October, Debian seeks to resolve two questions: one regarding types of developers in the project, and one being the perennial firmware debate. As of this writing, the first vote is done, while the second remains open. But it has become clear that, regardless of the outcome of the firmware vote, this issue has stressed the Debian community, perhaps to the breaking point.

Taking the easier subject first: Joerg Jaspert's proposal to create new classes of Debian developers was always going to be controversial. The real purpose of the associated general resolution was to put the brake on those changes. That purpose was fulfilled; the winning choice in that (low-turnout) vote was "Invite the DAM to further discuss until vote or consensus, leading to a new proposal." So the project will go back to doing one of the things it excels at: talking. What form the membership proposal will have when it re-emerges from discussion - if it ever does - is unclear.

The other vote - open until December 21 - is essentially about whether the upcoming "Lenny" release will be delayed until all known violations of the Debian Free Software Guidelines have been resolved - and whether firmware blobs in the kernel count as such violations. The question being asked is not so simple, though; in fact, Debian developers have no less than seven different options to vote upon. The nature of this ballot, how it was constructed, and how it will be decided has led to significant acrimony within the project.

It is worth looking at what the seven options are (with the actual ballot text in bold):

  1. Reaffirm the Social Contract. The titling of this option is somewhat controversial - all Debian developers committed to supporting the Social Contract before gaining their status. What this option really means is "delay the Lenny release until all DFSG violations known on November 1, 2008 have been resolved."

  2. Allow Lenny to release with proprietary firmware. This option allows the Lenny release to happen, as long as no new firmware blobs make their way into the distribution. The language here is quite similar to what has been found in the resolutions allowing the Sarge and Etch releases to happen despite ongoing firmware concerns. This option has been deemed by project secretary Manoj Srivastava to require a three-to-one supermajority vote to pass.

  3. Allow Lenny to release with DFSG violations. This choice, also requiring a supermajority, has almost the same effect as option 2.

  4. Empower the release team to decide about allowing DFSG violations. Here, the project (again, with a supermajority) would say that it trusts the release team to make the right decisions. The team is currently working toward a release which includes firmware, so, again, the end result would be about the same: allow the Lenny release process to go ahead.

  5. Assume blobs comply with GPL unless proven otherwise. The actual text of this choice does not mention the GPL at all; in fact, it reads very much like options 2 and 3. However, this one was not deemed to require a supermajority vote.

  6. Exclude source requirements for firmware. This option (which requires a supermajority) says that, for all practical purposes, firmware is not software and, thus, a corresponding source distribution is not required.

  7. Further discussion. This outcome seems inevitable regardless of how the developers vote. If it were to win, though, then the outcome of this general resolution would be to decide nothing.

See this posting for the full text of all seven options.

So why are many Debian developers unhappy with this ballot? There would appear to be a few reasons, the first of which being the long list of options. Some developers would have rather seen a simple "can Lenny release or not?" vote, with related issues being handled in a separate resolution.

The titles given to some of the choices are seen by some as deceptive. "Reaffirm the Social Contract" really means "delay Lenny," and "Assume blobs comply with GPL" goes with a resolution that never mentions the GPL at all. Developers who are unhappy with a long, messy ballot are even less happy with option titles which seem confusing at best, or deceptive at worst.

Then, there is the matter of the supermajority requirements. Some developers wonder why option 2 requires a three-to-one vote, while an almost identical resolution for Etch did not require a supermajority in 2006. The decision on majority requirements is made entirely by the project secretary, who has the task of determining whether a given resolution "overrides a foundation document" or not. A few developers have made the claim that Manoj's decisions are based less on clear understanding of what really "overrides a foundation document" and more with the goal of ensuring that his own favored outcome wins.

That last is, needless to say, a strong charge. As it happens, Manoj is the proposer of the "assume blobs comply with GPL" option; he also seconded options 1 and 2. Two of the options he has publicly supported do not have the supermajority requirement attached to them, so, perhaps, one could argue that Manoj is, indeed, trying to rig the vote. On the other hand, those two options conflict with each other: one would delay Lenny indefinitely, the other would wave the firmware problem away. So if this is an attempt to steal an election, it is one with a highly uncertain outcome, even if it is successful. The more straightforward interpretation - that a long-serving project secretary is interpreting the project's constitution to the best of his understanding, ability, and good faith - would seem to be the more likely alternative.

Still, that has not prevented a discussion involving statements like this:

Recognizing the validity of the vote is not a "must". The alternative is that we end up in a state of constitutional crisis. That's unfortunate, but it's also unfortunate that our Secretary is failing to act in a manner that safeguards the integrity of that office.

Other, more reasoned - but still unhappy - voices are pondering the replacement of the project secretary. It turns out that how to do that is not entirely clear, though. Some others have asked project leader Steve McIntyre - who has been conspicuously quiet in this whole discussion - to intervene. He finally responded this way:

I've been talking with Manoj already, in private to try and avoid flaming. I specifically asked him to delay this vote until the numerous problems with it were fixed, and it was started anyway. I'm *really* not happy with that, and I'm following through now.

What "following through" means remains unclear. The Debian project leader does not command vast powers which can be brought to bear on a problem like this. Debian is an exceptional project in that it operates in a democratic mode under a formal constitution. Unlike many other projects, Debian lacks a benevolent dictator or a backing corporation with the ability to force a decision. So we do not know what Steve will be able to do to resolve this issue.

What we do know is that quite a few developers are going to be unhappy with this vote regardless of how it comes out. Talk of "constitutional crisis" is almost certainly overblown; Debian has muddled its way through no end of strong disagreements in the past. But that still leaves a lot of room for public conflict which further diminishes Debian's reputation and further delays the Lenny release. What one can hope is that, somehow, the project will manage to muddle through to an understanding on firmware that can prevent all this from happening yet again when the next major release cycle comes near to completion.


(Log in to post comments)

Debian goes to the polls

Posted Dec 17, 2008 18:42 UTC (Wed) by alonz (subscriber, #815) [Link]

I believe there is another way in which this vote could be considered "rigged": the "DFSG purist" vote is concentrated in a single option, while the "practical" vote is split in 5 options. This almost certainly prevents even a simple majority for any of the options allowing non-free firmware (and obviously ensures any "supermajority" will be unachievable), even if the actual number of supporters for these options is far larger than the number of "purists".

Concentration

Posted Dec 17, 2008 18:52 UTC (Wed) by corbet (editor, #1) [Link]

That is a thought which had occurred to me. My understanding of the Condorcet voting mechanism (fuzzier than it should be) is, though, that it makes it harder to truly split a vote in this manner. It seems like less of an issue than it would be in a more straightforward, first-past-the-post system.

I think.

Concentration

Posted Dec 17, 2008 19:59 UTC (Wed) by lambda (subscriber, #40735) [Link]

How do you calculate a supermajority in a Condorcet vote? Does it require a 3:1 margin over all of the other possibilities? If there are 3 roughly equivalent options, it seems likely to me that people who like one of them will like all of them, and thus will have them all ranked at the top, in a roughly random distribution. None of these options would then have a supermajority over any of the others.

Ah, I've answered my own question by reading the Debian constitution. The "further discussion" choice is considered to be the default option, and any proposals with supermajority requirements must have a supermajority relative to that option. That's a reasonably sensible way of handling it.

Concentration

Posted Dec 18, 2008 2:21 UTC (Thu) by dberkholz (guest, #23346) [Link]

I had assumed it was a 3:1 proportion of voters.

Concentration

Posted Dec 18, 2008 3:12 UTC (Thu) by gjmarter (guest, #5777) [Link]

I think it is 3:1 over further discussion.

Concentration

Posted Dec 18, 2008 15:24 UTC (Thu) by hmh (subscriber, #3838) [Link]

That's correct.

Condorcet prevents splitting like that

Posted Dec 17, 2008 19:59 UTC (Wed) by dwheeler (guest, #1216) [Link]

Any Condorcet voting system prevents that kind of splitting. In all cases, people will rank their preferences.

That said, the options themselves appear confusing to me, and that's a real problem. No voting system can work well if the voters have significantly different understandings of what the vote means.

Response from Debian Project Secretary

Posted Dec 17, 2008 20:03 UTC (Wed) by bart (guest, #466) [Link]

Manoj Srivastava (the Debian Project Secretary), has written a mail to the Debian developers mailing list on "Why the gr_lenny ballot is the way it is".

Debian goes to the polls

Posted Dec 17, 2008 20:07 UTC (Wed) by mb (subscriber, #50428) [Link]

> # Reaffirm the Social Contract

That's highly critically phrased, IMO.
It's a common way to manipulate statistics by designing ballot text like this one here.

Debian goes to the polls

Posted Dec 17, 2008 21:10 UTC (Wed) by mbanck (guest, #9035) [Link]

It has to be said that the original proposer (Robert Millan) of this option worded it this way, the secretary simply decided to accept it.

Debian goes to the polls

Posted Dec 18, 2008 2:10 UTC (Thu) by qg6te2 (guest, #52587) [Link]

The entire hoopla around firmware is starting to resemble a circus. Assuming it's possible to get firmware source code for the majority of devices, we would require a specific compiler and/or assembler for every bizarre embedded cpu/controller out there. Furthermore, the source code might be using a particular dialect of, for example, C, that is different for each device. Is GCC up to this mammoth job?

tools for firmware

Posted Dec 18, 2008 2:25 UTC (Thu) by JoeBuck (subscriber, #2330) [Link]

As you say, there are a wide variety of devices. Many have an ARM processor and might well already use GCC; others are DSPs that are programmed in assembly language, and you'd need the right assembler; the GNU assembler has support for some of the more common DSPs. But certainly there are specialized processors for which no free tools exist.

Debian goes to the polls

Posted Dec 18, 2008 2:31 UTC (Thu) by mikov (guest, #33179) [Link]

I have always wondered about that. Note that the "firmware" source could even be in VHDL! Freedom or not, at this stage it is completely unrealistic to expect to be able to compile that entirely with free tools and upload it into commercial FPGAs.

In my mind the answer is clear: Nobody expects or requires open source design schematics for the hardware supported by the kernel, so it doesn't make sense to require it for the firmware either. The manner of distribution of the firmware is just a detail. Even if a binary firmware blob is linked into the kernel, it doesn't actually take away the users freedoms.

That said, I would rather have Debian reach any solution and move on, rather than waste time in flames.

Debian goes to the polls

Posted Dec 18, 2008 2:49 UTC (Thu) by clint (subscriber, #7076) [Link]

Another detail is that Debian doesn't distribute hardware. If it did, one might presume that that hardware must be free as well.

Debian firmware blobs

Posted Dec 19, 2008 21:40 UTC (Fri) by giraffedata (guest, #1954) [Link]

Nobody expects or requires open source design schematics for the hardware supported by the kernel, so it doesn't make sense to require it for the firmware either.
Another detail is that Debian doesn't distribute hardware. If it did, one might presume that that hardware must be free as well.

Right. Explaining further: Nobody suggests DFSG requires Debian to ensure source code is available for firmware in devices Debian uses. They suggest that Debian cannot distribute a binary firmware blob unless source code is available for that blob.

So the equivalent statement for design schematics is that Debian can't distribute a device if its schematics are not available.

I don't understand how people distinguish firmware blobs from, say, a binary only Linux device driver for DFSG purposes. All the arguments I see in favor of shipping Debian with the blobs are really just arguments against DFSG.

Debian goes to the polls

Posted Dec 18, 2008 3:50 UTC (Thu) by flewellyn (subscriber, #5047) [Link]

It seems almost like bikeshed painting, to me: the Debian team needs an issue to debate, because they have a need to debate an issue.

I won't say that they're master debaters, but they're getting close...

Debian goes to the polls

Posted Dec 18, 2008 11:57 UTC (Thu) by nye (guest, #51576) [Link]

> I won't say that they're master debaters, but they're getting close...

Possibly the best line I've ever read on LWN.

Debian goes to the polls

Posted Dec 18, 2008 11:16 UTC (Thu) by tzafrir (subscriber, #11501) [Link]

A collection of packages from the Lenny main archive:

bcc - 16-bit x86 C compiler
confluence - language for synchronous reactive hardware
sdcc - Small Device C Compiler (DFSG version)
z88dk - a Z80 processor assembler and SmallC+ cross compiler

as31 - Intel 8031/8051 assembler
ava - Algebraical Virtual Assembler for Atmel's AVR MCUs
crasm - Cross assembler for 6800/6801/6803/6502/65C02/Z80
pasmo - An easy to use Z80 cross-assembler
picasm - Assembler for the Microchip PIC-family Microcontrollers
pocketpc-gas - The GNU assembler for Pocket PC
uisp - Micro In-System Programmer for Atmel's AVR MCUs
xa65 - cross-assembler and utility suite for 65xx/65816 processors
z80asm - assembler for the Zilog Z80 microprocessor

gnusim8085 - Graphical Intel 8085 simulator, assembler and debugger
piklab - IDE for PIC-microcontroller development

freehdl - VHDL simulator for Linux
ghdl - VHDL compiler/simulator using GCC technology

I mst point out I'm not familiar with just about any of those.

gcc supports a wide range of processors, but there are other CCs around. From the little I know those won't easily build all the available firmware. But hey, Linux distributers managed to tame OpenOffice.org into a beast that builds automatically, so I think that there's still some hope :-)

Debian goes to the polls

Posted Dec 18, 2008 17:49 UTC (Thu) by mb (subscriber, #50428) [Link]

Right, I also don't see the problem to have firmware tools (assembler or whatever) for each device.
Note that for devices like Broadcom wireless, we _do_ have a _complete_ assembler/disassembler (created by reverse engineering) for the firmware under GPL license. (We also started GPL firmware, but that doesn't quite work, yet.)

So, for one I think we _should_ go toward encouraging open firmware and reverse engineering of firmware. However, I think it's just stupid to delay releases due to firmware licensing issues.

Debian goes to the polls

Posted Dec 19, 2008 4:23 UTC (Fri) by lysse (guest, #3190) [Link]

> What "following through" means remains unclear.

In view of subsequent developments, "getting rid of Manoj"..?


Copyright © 2008, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds