|From:||Sven Luther <sven.luther-AT-wanadoo.fr>|
|To:||Steve Langasek <vorlon-AT-debian.org>, debian-vote-AT-lists.debian.org, debian-kernel-AT-lists.debian.org|
|Subject:||calling firmware code data is not being honest with ourselves, includes counterproposal and RFC on a possible Amendment (Was: Proposal: The DFSG do not require source code for data, including firmware)|
|Date:||Wed, 23 Aug 2006 09:09:31 +0200|
On Tue, Aug 22, 2006 at 03:18:04PM -0700, Steve Langasek wrote: > Hi folks, > > Ever since the sarge release, an ongoing question has been: what do the DFSG > require for works that are not "programs" as previously understood in > Debian? Several rounds of general resolutions have now given us answers for > some subclasses of non-program works, but debate still rages regarding one > particularly important class: firmware for peripheral devices. > > Andi Barth and I have discussed how we think the DFSG requirements apply to > firmware and have fairly similar views on the subject, but we also know that > there are other viewpoints within the project, so we're reluctant to make a > unilateral decision about firmware handling for the etch release policy > without finding out how the project as a whole feels about it. In the > meantime, the ongoing discussions within the kernel team and without have > shed, as they say, more heat than light on the subject, so I feel it's time > to answer this question so we can stop being paralyzed by these differences > of opinion, agree to disagree, and move forward with the work that needs to > be done for etch -- whichever set of work we decide that is. > > So below is a proposal that I'm seeking seconds on to establish how DFSG#2 > should be understood to apply to firmware -- i.e., that for Debian's > purposes firmware should be considered data, not programs, and along with ... > 4. determines that for the purposes of DFSG #2, device firmware > shall also not be considered a program. Hello, As i have warned you on irc, when you first asked the kernel team about this GR, i think that the whole reasoning you propose is flawed, based on patently wrong assumptions. There is no way you can just decide that firmware is not code, especially as there is overwhelming evidence in some case that it is indeed code (or microcode as some call it), ranging from declaration on the LKML mailing list by the drivers author, or when the peripheral processor holds a mips or arm or whatever core. Sure, other firmware cases consist of only register dumps, but my own involvement in hardware development shows me that the trend is more and more for peripheral hardware with embedded processor cores, and the firmware of those being actual processors, some of them could run some variant of linux (or uclinux at least) in their own right. This is especially true for high-end raid cards and wireless applications. Trying to argue, as other did before you, that it is just data, because that is more convenient, thus ignoring the facts, is kind of misleading and dishonest, and furthermore is the wrong strategical choise for debian, who has long stood for free software, and would thus compromise its ideals for the sake of convenience. Furthermore, if you start going down this way, ignoring blatant issues like the lack of source code for those firmware blobs, some of which are defacto under GPL, and thus becoming fully non-distributable, and making the linux kernel non-distributable, then you take the first step down a road debian doesn't want to go. You will have to consider cases like the unicorn driver (currently in non-free), which includes a soft-adsl binary-only library, or issues like tge miboot bootloader, which includes a half sector of m68k instructions, copyrighted by apple, and very analogous to the firmware case, and then from there, you have to go further, and if you are true to yourself, end up allowing everything in main. Notice also that in the social contract, we already claim to support our users and free software equally, and that we furthermore agreed to keep non-free around for exactly those users needing non-free components, like those non-free drivers or firmware, and there only needs to be a relatively small technical work to be done for this to work seamlessly for all users. So, if we of debian want to stay true to ourself, and not live in self-deception just because it convenience us, then the right argumentation on this should be of the following : 1) We aknowledge that there are some firmware blobs which consist of actual code running on an processor embedded in a peripheral device, or configuration code for fpgas and such, as opposed to pure register dumps, which need actual source code to be considered free enough to pass the DFSG. 2) But, as the removal of those firmwares and drivers cause a major inconvenience on the usability of the system, and 3) Peripherals allowing for uploadable firmwares are orders of magnitude more free than peripheral where everything is hardcoded, or peripherals where the firmware blob is embedded on a rom or flash or similar. 4) Upstream has long resisted considering the firmware situation, and is now slowly setting up infrastucture to handle these cases, and removing those firmwares from the main linux code, so the problem, will solve itself in the future. 5) There is no way the kernel team alone or even with help, can solve all the legal and technical issues in a timely fashion in order to not let the etch release slip. 6) Given the above, and the fact that every past release of debian included those non-free firmware blobs, the fact of delaying etch in order to solve the issue, or releaseing etch with the non-free firmware blobs and then working the solution, is not going to change anything with respect of the released and development versions of debian. 6) We thus ask the project to temporarily waive the DFSG requirement for those non-free firmware blobs, in order to let the etch release to ship in a timely fashion, and let us work on these issues, within the kernel and related affected teams, the project as a whole (The DPL could mandate a delegate or delegate team to contact manufacturers and such), but also upstream, in a calm and posed way, not hurried by the needs of the release, and other such pressure. I welcome help to turn the above in a GR, as i believe that this would be a better and more honest way to allow non-free firmware in main, in all good concience. This cannot be solved in a satisfactory manner by deluding ourselves and the world at large, and it is always best to face reality, and call things as they are, instead of what is attempted here. Friendly, Sven Luther
Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds