OpenBSD creator Theo de Raadt highlighted a recent commit to the NetBSD source tree saying, "if anyone had any doubt that our insistence on freedom was important, just read this." The referenced commit message describes an effort to work around issues with a blob that is included with NetBSD, something strongly avoided by the OpenBSD project. The commit message states:
"The Atheros HAL on MIPS uses %s7 as a general purpose register, but the rest of the kernel uses it to store the value of curlwp. Sam won't recompile the HAL for us (fair enough), and we can't modify the HAL to use another register because doing so could put us in breach of the license (v. crappy). So, do a save/set/restore on %s7 in KernIntr() and in the stubs that the HAL uses to call back into the kernel.
"Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files."
From: Theo de Raadt [1] [email blocked] To: misc Subject: Software freedom Date: Sun, 26 Aug 2007 20:25:29 -0600 If anyone had any doubt that our insistance on freedom was important, just read this. http://mail-index.netbsd.org/source-changes/2007/08/24/0027.html [2] What is even more astounding is the incestious love-in these other groups have, with their Sam-worship, that prevents them from doing the obvious and right thing. I for one, will say that I don't understand it at all. But hey, it gives me another reason to mock the cult of Sam (Leffler) and Jason (Thorpe). Fun fun fun.
From: [email blocked] To: misc Subject: Re: Software freedom Date: Mon, 27 Aug 2007 09:39:08 -0400 > rest of the kernel uses it to store the value of curlwp. Sam won't > recompile the HAL for us (fair enough), and we can't modify the HAL > to use another register because doing so could put us in breach of > the license (v. crappy). So, do a save/set/restore on %s7 in KernIntr() How hard is it to recompile the HAL that Sam can't be bothered to do it, and more importantly, why should a trivial change to make the software inter operable be a breach of the license? That can't be the owner's intent.
From: Theo de Raadt [3] [email blocked] Subject: Re: Software freedom Date: Mon, 27 Aug 2007 08:37:56 -0600 > > rest of the kernel uses it to store the value of curlwp. Sam won't > > recompile the HAL for us (fair enough), and we can't modify the HAL > > to use another register because doing so could put us in breach of > > the license (v. crappy). So, do a save/set/restore on %s7 in KernIntr() > > How hard is it to recompile the HAL that Sam can't be bothered to do > it, and more importantly, why should a trivial change to make the > software inter operable be a breach of the license? That can't be the > owner's intent. I don't think you should ask our list, but instead go ask Sam directly. He is after all, the owner, since it is not free source code. Free source code depends on a basic principle that you don't need to count on the decisions of others -- whether they be companies or individuals -- because you have all the pieces you need to build, repair, or improve things. But in the case of NetBSD (and FreeBSD) users, for Atheros support, this principle has been badly broken for years. few people in a personality cult have decided that they will permit a piece of one-person-dependent binary software into their source tree, and will screw all their users by doing so. Then along came Reyk, and a few others who helped him, who wrote a completely free replacement for the non-free atheros driver. But did the NetBSD and FreeBSD developers choose to participate and help him? No, in fact they actively work through postings to reduce developer's desire to work with Reyk. A few years ago there were even core developers in those projects passing along a meme that Reyk's code was illegal or immoral in some sense. Shame on them. In that way, the FreeBSD and NetBSD developers stuck to their cult process, with Jason Thorpe (apparently) being the loud voice inside NetBSD core pushing for retaining the Sam Leffler non-free code, and dismissing the proposals from those who would have preferred to see some people in that project at least working with Reyk's free work to improve support. In FreeBSD, various developers have also let their love of Sam stand ahead of their respect for their user's wants and needs. Who does Sam love? Not the principled free source users, but perhaps an NDA with Atheros, and his friends who work there. Now, noone says that Reyk's free driver is 100% complete (and this is mostly because Atheros keeps changing their chips in really strange ways, all undocumented of course). But at least it is free, and others could participate at improving it, through the same reverse engineering and guess work that Reyk has done. On the other side of the coin, the non-free driver is only being pushed by a cult, not one of which codes to improve it, because quite frankly they can't, because they don't have the source. NetBSD and FreeBSD are reducing their community's choice. They don't represent their user community's needs or wants. They have let politics get in the way of choosing the right software. (Another funny thing has happened over the years. Because Sam's Atheros support has been so important to the cult, work on other wireless drivers has been poo-poo'd within the various development groups, and this is a major part of why OpenBSD surged ahead with support for so many other devices. We did not consider one driver the most important, because it was obvious to us that other devices which were documented were more important... right from the start..)
Subject: CVS commit: src/sys From: Andrew Doran [email blocked] List: source-changes Date: 08/24/2007 23:52:11 Module Name: src Committed By: ad Date: Fri Aug 24 23:52:11 UTC 2007 Modified Files: src/sys/arch/mips/mips: genassym.cf mipsX_subr.S src/sys/contrib/dev/ath/netbsd: ah_osdep.c Log Message: The Atheros HAL on MIPS uses %s7 as a general purpose register, but the rest of the kernel uses it to store the value of curlwp. Sam won't recompile the HAL for us (fair enough), and we can't modify the HAL to use another register because doing so could put us in breach of the license (v. crappy). So, do a save/set/restore on %s7 in KernIntr() and in the stubs that the HAL uses to call back into the kernel. To generate a diff of this commit: cvs rdiff -r1.40 -r1.41 src/sys/arch/mips/mips/genassym.cf cvs rdiff -r1.24 -r1.25 src/sys/arch/mips/mips/mipsX_subr.S cvs rdiff -r1.10 -r1.11 src/sys/contrib/dev/ath/netbsd/ah_osdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Related Links:
- Archive of above thread [4]
- KernelTrap interview with Theo de Raadt [5]