The Fedora Core 6 distribution is nearing release. Even after the
recently announced
delay, the
final version of FC6 is expected to hit the net on October 17. So one
would assume that there would be little call for controversial changes at
this time in the cycle; the Fedora folks would be expected to be concerned
with fixing the final problems and getting the release out the door. So
the documentation group was a little surprised, at the end of September,
when a
request to modify the Firefox
startup page showed up.
In particular, the Fedora leadership wanted that page to include a tracking
image - an image hosted on a Fedora web site which would allow the project to
track how many people were starting up Fedora's version of Firefox, and
which IP addresses they came from. It would appear that few people had any
sense that there might be objections to this technique; the resulting
discussion seemed to take them by surprise. But a discussion did result,
focusing on a few questions: why does Fedora want to track its users, why
the hurry to get this change into FC6, and isn't there a better way?
At the moment, it seems, the Fedora Project has very little idea of how
widely used their work is. That is an ignorance they share with a great
many free software projects, but Fedora's situation, it seems, has the
potential to make that ignorance expensive. The best description of Fedora's motives came from
Greg DeKoenigsberg; it is worth quoting at length:
Really, this question should be asked this way: "are metrics so
important that you're ready to risk alienating some users and
contributors to get them?" And the answer to that question, from
my perspective, is "yes".
Why? Because, like it or not, every funding conversation inside of
Red Hat's walls begins and ends with metrics. If it isn't
measurable, it doesn't exist. Fact.
This is especially important in the case of Fedora, because Fedora
doesn't make any money directly for Red Hat. We continue to
develop Fedora because it serves other purposes. Research and
development. Quality Assurance for RHEL. The ethics of continuing
to provide free software, which is important to all of us. And,
most importantly from my own perspective, *community mindshare*.
If we can't quantify Fedora's mindshare in some way, we lose one of
the *major* rationales for making the Fedora Project stronger and
more independent. Every time a Red Hat executive asks "how many
Fedora users are out there?" and we answer "oh, somewhere between
100k and a few million," we make it *that* much more difficult to
defend Fedora from bad Red Hat decisions. If a Red Hat executive
has to choose between giving resources to RHEL and giving resources
to Fedora, and if he's got dollar figures on one side of the ledger
and hand-wavy "mindshare" guesses on the other side of the ledger,
he's going to choose RHEL. Every single time. I've seen it
happen, again and again and again and again. And again.
Fedora has, slowly over the years, become a more open and transparent free
software project. It is also clearly a successful project, with a large
(if unknown) number of users worldwide. But the fact remains that Fedora
is a Red Hat project, with Red Hat being the source of almost all of the
funding that keeps Fedora going. This funding is a generous gift from Red
Hat to the community (though Red Hat certainly benefits from it as well),
but it puts Fedora into a strongly dependent position. Fedora must
keep Red Hat happy, and convince Red Hat of its importance, if it is to
continue to be funded properly.
According to Max Spevack, there is no
concern about Fedora funding being cut; this exercise is, instead, about getting that
funding increased. But the evident level of concern belies that claim
somewhat. Even if there is no discussion of cutting Fedora funding now, it
seems like a subject which could come up in the future. Red Hat is
becoming just another company in many ways, and it will make the calculations that
companies need to make to survive. It would not take too many bad quarters
for Red Hat to start looking very hard at the money spent on Fedora;
managers under pressure to improve their numbers can be very short-sighted
at times. So it makes sense for the Fedora project to be concerned about its
ongoing relationship with Red Hat.
It almost seems that something must have happened to reinforce this idea in
the minds of the Fedora leadership. If so, they aren't talking about it.
But they have decided that it is important to get some sort of mechanism
into FC6 which would give them at least rudimentary statistics. Waiting
another cycle for FC7, it seems is not an option. Given the short time
available to put anything into FC6, the Fedora folks settled quickly
on something which would be easy to implement: a tracking image.
There are obvious problems with the tracking image idea, starting with the
privacy concerns. Not everybody wants to be tracked in this way. People
with this sort of concern may also not be much comforted by the Fedora privacy
policy page, which leads off with this text:
THIS IS A DRAFT. It may not represent the final document, and
should not be used for anything other than informational purposes.
Beyond that, it has been pointed out that this technique only yields IP
addresses, which will only be correlated with the number of actual
installations in a very rough manner. But that information, it seems, is
much better than nothing.
There are alternatives. One idea which has been discussed is a brief user
survey which shows up at the end of the installation process. Users could
then provide some information - or, crucially, choose not to. Nobody seems
to think that such a mechanism could be added to FC6 at this late date,
however; though it could show up in FC7.
The Fedora folks could also take advantage of the fact that a new Fedora
installation already phones home. It is all for the best of purposes: the
yum-updatesd daemon, which runs by default, goes to the central
Fedora server to download the lists of repository mirrors. The project has
not been using the tracks that this activity leaves - but they could. Greg
describes it as "an absolute no-brainer":
The rich irony here, of course, is that rather than tell users
we're tracking them, we will instead be able to track them
invisibly through the normal operation of their systems. But I'm
perfectly happy either way, so.
This approach is not perfect either. It fails on systems which are offline,
while every system running Firefox has a high probability of being
connected. It also cannot distinguish systems which are likely to be
"desktop" systems - information which is apparently of interest. But it's
there now and, as Greg points out, it doesn't seem to set off alarms the
way a tracking image would. Hopefully Fedora will share the conclusions it
draws from this data - and make good use of it to convince Red Hat
management of the project's importance.
Comments (84 posted)
Anybody who has been working with free software for any period of time
knows that hardware support is often one of the community's thorniest
problems. Manufacturers are often reluctant to
tell their customers how to actually use the hardware they sell. For some strange
reason, people buy that hardware anyway, and promptly want it to work with
their operating system of choice. If that system is Windows, the
manufacturer will usually provide a driver (of uncertain quality). Free
software users, instead, are usually on their own.
The situation is better now than it often has been in the past; free
operating systems support a wide variety of hardware. In many cases, the
vendors have given in and simply released programming information required
for anybody to write a driver. In many others, however, this information
is provided to a specific company or developer under a non-disclosure
agreement (NDA), with the understanding that the resulting driver would then be
released under a free license. This approach has, beyond a doubt, made
more drivers available for use with our systems; it has become a common way
of doing things, especially in the Linux world.
Not everybody is happy with this state of affairs, however. OpenBSD founder Theo de Raadt has started a
campaign against the practice of writing drivers under NDA; in the process, he has
stepped on, if anything, more than the usual number of toes, to the point
that some of the people involved are now refusing to talk to him. Theo's
tactics are never subtle, but he does have a point which is worth listening
to.
At a first glance, a driver developed under NDA seems like a good thing.
It is free software, after all, and it makes the device work under the
target operating system. But these drivers can be problematic for the simple
reason that they do not document the hardware the way the specification
does. Without that documentation, many of the benefits of free software
are lost.
In many cases, only the original author can maintain a driver developed
under NDA. Nobody else has the documentation required to make any real
changes to how the driver operates; nobody else really understands the
device. Whenever a new version of the hardware
comes out, or whenever somebody needs a feature that the original author
didn't see fit to implement, one can only hope that said author is still
around and in a mood to work on that driver.
This situation can be worse yet if the author who signed the NDA writes
poor quality code, full of constants whose meaning is clear to nobody. In
some cases, the vendor may require that the driver be written in that way
in order to expose as little information about the hardware as possible.
It's worth noting that this is a problem associated with poor hardware
documentation in general. Your editor recently had cause to dig into the
OmniVision OV7x20 sensor driver. The data
sheet for this device
can be found by anybody with access to a search engine, but that data sheet
is little help for anybody trying to understand this code:
/* Settings for (color) OV7620 camera chip */
static struct ovcamchip_regvals regvals_init_7620[] = {
{ 0x12, 0x80 }, /* reset */
{ 0x00, OV7620_DFL_GAIN },
{ 0x01, 0x80 },
{ 0x02, 0x80 },
{ 0x03, OV7620_DFL_SAT },
{ 0x06, OV7620_DFL_BRIGHT },
{ 0x07, 0x00 },
{ 0x0c, 0x24 },
{ 0x0c, 0x24 },
{ 0x0d, 0x24 },
/* ... 45 lines of this stuff removed ... */
{ 0x74, 0x00 },
{ 0x75, 0x8e },
{ 0x76, 0x00 },
{ 0x77, 0xff },
{ 0x78, 0x80 },
{ 0x79, 0x80 },
{ 0x7a, 0x80 },
{ 0x7b, 0xe2 },
{ 0x7c, 0x00 },
{ 0xff, 0xff }, /* END MARKER */
};
It's not clear that anybody really knows what all those register
settings do; they involve a number of bits and registers which are marked
"reserved" in the documentation. For all practical purposes, they
constitute a form of opaque
firmware which must be loaded into the device for it to operate correctly.
Pain will come to anyone who attempts anything more than the most trivial
tweaks to these values.
Similar issues (in an entirely different context) recently led Linus
Torvalds to exclaim:
And we should tell all hardware companies that firmware tables are
stupid, and that we just want to know what the hell the registers
MEAN!
Without complete hardware documentation, we will
not understand what our peripherals are doing.
Finally, a big problem with drivers written under NDA is that they only
work on one system, and they can be very little help for anybody trying to
make the device work on a different kernel. That, of course, has a lot to
do with why there is a lot of criticism of this approach coming from the
BSD world while the Linux community tends to be more accepting of it. It
is probably safe to say that most developers who are able to get this sort
of access to documentation are working on Linux drivers. If we were
pounding our heads against our monitors in an attempt to reverse-engineer
hardware by way of obscure BSD drivers written under NDA, we might see the
situation in a different light.
Theo has picked out two targets for special attention: Intel and the One
Laptop Per Child (OLPC) project. Intel has gotten a fair amount of good
press supporting its hardware under Linux. The truth of the matter,
however, is that a number of drivers for Intel hardware are written
in-house, with little or no hardware documentation provided to the
community. As long as Intel
remains interested in maintaining those drivers, things will work well
enough - for Linux users. BSD users are not so lucky, however, and we may
all be out of luck if a change of management or focus at Intel causes the
company to drop its Linux drivers. If Intel truly wants to be known as an
open-source friendly company, it would do well to make its hardware truly
open. The OpenBSD developers are currently running a campaign aimed at pushing Intel in
that direction.
| Disclosure time |
|
Readers of this article should be aware that your editor is in the
final stages of writing a GPL-licensed driver for the OLPC camera
controller - and that he signed an NDA to obtain the requisite
hardware documentation. As a result, he is, according to Theo de
Raadt, "part of the problem."
|
In the OLPC case, Theo's criticism has been
centered upon (but not limited to) the driver for the Marvell wireless
networking chip. Some very special things are being done with wireless on
the OLPC, with the result that it will be able to function as a mesh
network router with the CPU powered down. Enabling this involves a lot of
close work with the chipset manufacturer - and a driver written under NDA.
There are other NDA-covered drivers on the OLPC as well.
Theo is unhappy that the OLPC will be, as he sees it, a closed system for
OpenBSD. [Mr. de Raadt has taken exception to the previous
sentence, consider it removed].
But Theo is even more unhappy because, in his view, the OLPC
project has squandered an opportunity to use its economic power
with the manufacturers to force the hardware documentation out into the
open. This failure is not just a lost opportunity; to Theo it also sends a
message to other vendors that they need not worry about releasing hardware
documentation. So, he says, the OLPC folks have not only failed to do the
best they could; they have also actively made things worse for the free
software community as a whole.
The OLPC folks have several responses to this
criticism. The arrangement they have now, they say, is the best they could
achieve within their particular set of goals - which, it should be
remembered, is the provision of economical computers to children worldwide.
OLPC was not founded with the primary goal of helping the free software community,
though, in fact, that has been the result of much of its work. OLPC
developers make the point that this computer will be one of the most open
systems built in many years. The BIOS is free software, as is the VSA microcode
which implements x86 emulation on the Geode CPU. The system's SD
controller was redesigned (by Marvell) for the express purpose of
allowing a driver to be written for it without having to sign the SD
Association's particularly unpleasant NDAs. Even the firmware blob which
runs on the wireless processor is slated for replacement with free software
- though that code does not exist at this point.
Meanwhile, work continues on getting the hardware documentation released.
It should be remembered, however, that much of this hardware does not
actually exist yet. It would be rare indeed for a manufacturer to openly
release this sort of information for a product which is not yet generally
available. OLPC's plan appears to be to continue to work with the vendors
to get the documentation released as the hardware comes onto the market.
Heavy-handed pressure tactics, they feel, would be counterproductive in the
end.
The crux of the matter, thus, is this: if we accept that the community
needs open hardware documentation to function as it should, what is the
best way to get vendors to release that documentation? Some groups
encourage ongoing engagement with these companies, with the intent of
guiding them toward open source enlightenment. Under this line of
thought, these companies will come to realize that the community will do
great things with their hardware - growing the market - given the right
information; they will see that it is in their economic interest to make
the documentation available.
The contrary argument is that this approach has never worked well, that
hardware companies will never be brought around in this way. What is
required, instead, is an intransigent insistence that the documentation
must be released from the outset, and a refusal to sign NDAs to get it.
Only when the vendors see themselves locked out of the free software market
entirely will they realize that their interest lies in openness, not
secrecy. Until that time, there is no reason to cooperate with
uncooperative vendors; the preferred approach, instead, would appear to be
to attempt to shame them publicly.
There has been enough history of drivers written under NDA that it should
be possible to come to some sort of conclusion as to which approach is more
effective. The OpenBSD camp has arguably had some high-profile success
with the public shame approach. Corporate conversions through quiet
engagement tend to be more, say, quiet, however. Your editor would be most
interested to hear about examples of companies changing their approach to
hardware documentation as a result of working with free software developers
under NDA. The question is not just academic: if we want to bring about an
improvement in the hardware documentation situation, it behooves us to
understand which tactics work best.
Comments (46 posted)
Steven J. Vaughan-Nichols is a mainstream technology reporter who has often
shown a reasonably high level of clue regarding the free software
community. A recent article, titled
Open Source
Madness!, shows where that clue ends, however. More to the point, it
shows an area where the free software community is having a hard time
making itself understood.
The article in question takes issue with the Debian project's plan to drop
Firefox from etch (see this LWN
article from September for more information), and with the existence of Gnuzilla and Iceweasel,
which are versions of the Mozilla suite and Firefox browser which are
intended to be truly freely redistributable.
Mr. Vaughan-Nichols presents
the issue as being only about logos, calls the Debian developers
"fundamentalists," and states:
By winning this "battle," the pedantic Debian developers have
helped the proprietary forces of Microsoft and friends far more
then the cause of Open Source.
So why is it that the Debian developers have done this terrible thing?
Maybe it is time to look at the reasoning behind this move.
The logo issue is real. It is provided under terms which are not
compatible with the Debian Free Software Guidelines, and, as a result,
cannot be shipped with the core Debian release. For some time, Debian was
able to ship a version of Firefox without the logo, but Mozilla Corporation
has called an end to that. As a result, Debian is in the position of being
asked to ship something it sees as non-free.
The logo issue might be enough to push Firefox out of a distribution like
Debian, but there are more serious issues as well. The Mozilla
trademark policy only allows a distributor to ship "Firefox" if it is
an unmodified copy of what the Mozilla people have released. Some
relatively trivial changes are allowed if the distributor calls the result
the "Firefox Community Edition"; anything beyond that cannot use the name
"Firefox" at all. The only exception is if explicit permission has been
obtained from the Mozilla Corporation prior to distribution.
Distributors often do want to make changes to Firefox - just like they
change many other programs they ship. At a minimum, they often want to
apply their own security fixes, since Mozilla's approach to security
patches tends to be rather distributor-hostile. Having Mozilla review
every patch as required will slow the process down, even if there are no
disagreements about specific changes. This policy makes it hard to provide
quick security updates to Firefox; this matters, especially, when a
distributor is trying to maintain a version of the browser that Mozilla
Corp. has long since abandoned.
Perhaps most important, however, is this: even if a distributor gets
permission to ship a specific modified version of Firefox, there is nothing
which automatically gives anybody else that permission. Using one
distribution as a base for another is a time-honored practice in the Linux
community; there are, in fact, very few distributions out there which were
truly started from scratch. But what is a distribution based on (say)
Debian to do with a modified version of Firefox? The creator of the
derived distribution has no permission from Mozilla Corporation to
distribute that modified version - even if no further changes are made.
The presence of this modified package creates a trap which any second-stage
distributor must find and defuse; it makes the distribution less
redistributable, less free.
In the end, however, Mozilla's code is free software; all that is needed to
avoid all of this trouble is to change its name. That is just what Debian
is doing - and other distributors may yet follow suit.
Mr. Vaughan-Nichols fears that this change will confuse users and send them
screaming back to the comfort and stability of Windows. It would seem that
the "Firefox" trademark has become so important that we must use it, or the
dream of World Domination on the desktop will come to an untimely and
ignominious end. "Freedom," says the article, "trumps
common sense."
The problems is...freedom is what this is all about. There would appear to
be an increasing number of people who are calling for the community to
"bend a little" on freedom in the name of winning the desktop battle. It
may (or may not) be true that Linux could advance more quickly on the
desktop if it were to become more like Windows. But what would be the
point? If the choice is forced upon us, it would seem better to dispense
with an overly-controlled name and keep our desktop free, supportable, and
redistributable.
Comments (21 posted)
Page editor: Jonathan Corbet
Next page: Security>>