Posted Nov 9, 2010 18:58 UTC (Tue) by rahulsundaram (subscriber, #21946)
[Link]
I don't think so. If you talk to David Woodhouse, you will find that his motivations are quite different and I am pretty disappointed that people with the technical expertise to accomplish it are refusing to engage in it.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 19:16 UTC (Tue) by jebba (✭ supporter ✭, #4439)
[Link]
Ah, I understand he's coming at it from a very different perspective than Oliva and I personally think it's fantastic what both Woodhouse & Oliva have done. To me it seems obvious that non-free software should be moved out of linux-2.6.x.tar. Why ship stuff with various odd ball licenses or even in many cases *NO* license? For plenty of files, it's not even known if they can be legally shipped. Clearly, they should be removed.
Lots of time (see above), the discussion gets lost around where the fine line is between software/hardware, if stuff is burned into the eeprom, etc., completely forgetting about the actual code in the kernel. Oliva actually does the work to show what a fully GPL'd kernel looks like, which highlights the differences.
Really only Woodhouse could answer whether it was during/after the -libre fedora-devel discussion that he decided to work on it, or whether it was an earlier project. I just saw the work commence publicly at that point.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 19:36 UTC (Tue) by rahulsundaram (subscriber, #21946)
[Link]
You can always ask the person instead of guessing :-)
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 21:29 UTC (Tue) by dwmw2 (subscriber, #2063)
[Link]
"You can always ask the person instead of guessing :-)"
Anyone who's ever had the misfortune of trying to manage me will tell you that it's hard to tell what really ever provokes me into actually working on a given task.
I don't really remember the details, but I think that Alex came to FESCo (during my tenure) with his totally impractical 'kernel-libre' package, wanting to ship a crippled kernel as a Fedora package. We told him "no, do it sensibly", but he didn't seem to want to, so eventually I got bored and did it myself.
So yeah, if you want to credit Alex with pissing me off enough that I eventually did it, that seems fair.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 21:38 UTC (Tue) by jebba (✭ supporter ✭, #4439)
[Link]
I did email him, but perhaps it's moot after finding this:
Posted Nov 9, 2010 19:39 UTC (Tue) by lxoliva (subscriber, #40702)
[Link]
Yeah, his motivations and his goals are completely different. He's not trying to address the problem that the drivers that request non-Free firmware are bait.
FWIW, I recently sent Linus private email offering to help address that problem, with a plan that would still allow those who want to see the bait (and presumably take the poison) to do so. So far, no response.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 20:01 UTC (Tue) by rahulsundaram (subscriber, #21946)
[Link]
You have been adamantly ignoring the point that his work has practical benefits and is a help to your goals as well. Rhetoric in a bad press release is hardly going to help anything at all. Just some stupid flame war about firmware and we are back to square one. Continue.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 20:54 UTC (Tue) by lxoliva (subscriber, #40702)
[Link]
If you think it helps my goals, you don't understand my goals. I've already explained at length when the issue first came up why the location of the firmware is irrelevant, as long as the kernel still points users at it. The present announcement also covers this topic.
I'm not concerned with the legality of the situation. That's what dwmw2 is concerned with. I'm concerned with the problem of inducing users to give up their freedoms.
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 21:44 UTC (Tue) by rahulsundaram (subscriber, #21946)
[Link]
"If you think it helps my goals, you don't understand my goals"
This is an easy claim and one I hear very often but it just isn't true. It is so blatantly obvious why. After the firmware has been split up from the Linux kernel and move off into a separate tarball as it is going to happen soon(http://lwn.net/Articles/414275/), what would be the purpose of linux-libre patchset be? If you even agree that it would reduce the patchset, then you must concede that it does help your goals by reducing the amount of work you are doing.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 0:29 UTC (Wed) by lxoliva (subscriber, #40702)
[Link]
> After the firmware has been split up from the Linux kernel and move off into a separate tarball as it is going to happen soon(http://lwn.net/Articles/414275/), what would be the purpose of linux-libre patchset be?
The answer is right there in the announcement:
> Even if they, Linux included, remove all these non-Free programs, as long as they keep software or documentation that induces users to seek and use non-Free programs, they're still bait.
How do you think we turn request_firmware("blobname"...) into bait-free Free Software? What part of the location of the blob is irrelevant (upthread) is so hard to understand? Even the earlier announcement said:
> we accumulated thousands of patterns to recognize blobs, sequences that look like blobs but that aren't, requests for non-Free firmware external to Linux, and documentation that induces users to install it
and then went to great lengths to explain a plan to *retain* the ability to request_firmware while removing the inducement problem. Linux-libre won't serve its purpose, of offering a kernel that satisfies the FSDG, without removing this problem. Simply pushing the blobs out isn't enough to comply with FSDG.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 1:37 UTC (Wed) by foom (subscriber, #14868)
[Link]
> Simply pushing the blobs out isn't enough to comply with FSDG.
Unless you push them out into non-volatile memory in the hardware?
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 2:20 UTC (Wed) by rahulsundaram (subscriber, #21946)
[Link]
It is really quite hard to understand because separating out firmware makes it easy for users to exclude it and you don't consider it a win in any way. That's puzzling and I don't buy that.
After the firmware is moved into a separate tarball, Linux kernel is fully Free software by FSF standards and at that point, I don't see much of a benefit to linux-libre. Users will have a clear option to install or exclude the firmware as per their needs and that's fine by me. I suppose you are going to continue patching all the firmware requests but you cannot deny that it will reduce the effort and has benefited your goals by doing so. David Woodhouse deserves the credit for his effort.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 3:06 UTC (Wed) by lxoliva (subscriber, #40702)
[Link]
Yeah, he deserves credit for making more work for me, and for making the Linux-libre changes larger.
I didn't save Linux-libre patch files from before 2.6.27, when the latest generation of deblobbing was adopted. By then, the conversion to request_firmware had just started, but see how the Linux-libre patch files grew from release to release:
You're welcome to try to find any other metric that shows improvement. The tarballs, deblobbing scripts, and xdeltas are all publicly available.
Not an improvement, not even easier, for sure. Earlier, I could run something such as:
for each of a list of files
replace sequences of numbers that aren't false positives with /*DEBLOBBED*/
Now, I have to track files containing request_firmware calls, figure out where the blob name comes from (quite often headers or separate files), determine whether the requested file is Free or non-Free, add a blob pattern to deblob-check if the file name refers to a non-Free file, disable (conditionally) the request_firmware call, and run the files containing blob names through the deblobber. Rins and repeat every time the filenames change or the way they're computed changes (more often than you'd think) adjusting patterns and deblobbing requests accordingly. Oh, and until the blobs are finally removed, I have to clean them up, as well as the WHENCE file.
You honestly think that not having to clean up the blob files and the WHENCE file would make things easier than they were before?
Again, the goal is not just to be Free Software, it's to be bait-free, so as to satisfy the Free Software Distribution Guidelines, so that the recommended distros don't recommend non-Free Software. It's clear you don't care about that, but your disregard for the difference doesn't turn my goals into yours, or dwmw2's.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 7:33 UTC (Wed) by rahulsundaram (subscriber, #21946)
[Link]
"Again, the goal is not just to be Free Software, it's to be bait-free"
Which seems to be moving the goal post really. Its kind of funny to say that a fully Free kernel wouldn't satisfy the Free system distribution guidelines. Yes, at that point, I wouldn't care anymore.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 11:04 UTC (Wed) by dwmw2 (subscriber, #2063)
[Link]
I find it amusing that you do it this way, when it would be so simple to patch the userspace side instead, and make it check the firmware licence using the WHENCE file. (That'll actually get easier soon, when I replace the WHENCE file with something less free-form, probably based on the proposed Debian Copyright File Format).
That way, you could trivially configure the system to refuse to load the non-free firmware files. And as and when replacement firmware becomes available (as with b43) you can allow it to be loaded because you know its licence is acceptable to you. Assuming that a given filename will always have a given licence is simply wrong.
By doing it that way, you also avoid crippling those drivers which have optional support for upgrading the firmware which is in flash on the hardware, but which normally just use the firmware from flash.(Which, despite it being non-free, you seem to be quite happy about? Just so I understand firmware in flash: OK, firmware loaded from host OS so that we can see it and folks like the OpenFWWF team can replace it: not OK, firmware in flash which is optionally reflashable from the kernel: also not OK?)
Even if you want your users to believe that we were always at war with Eastasia, and that the kernel has never had support for those devices with non-free firmware, I suspect you could achieve your patching a lot more easily than your existing method. You could probably just have a whitelist of those (lamentably few) drivers which use firmware images that are free, and then force-disable everything else which depends on CONFIG_FW_LOADER.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 19:21 UTC (Wed) by lxoliva (subscriber, #40702)
[Link]
Can it be done in userspace? Yes, if the goal was to make just GNU+Linux compliant with FSDG. But if you take one component from a FSDG system and install it on another system, that one component shouldn't start luring users into a trap. So each component has to be FSDG-compliant individually.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 0:42 UTC (Thu) by dwmw2 (subscriber, #2063)
[Link]
The kernel neither knows nor cares about the licence of:
The ACPI AML code it finds in the BIOS
The SMI code in the BIOS which provides various system features
The firmware resident in flash on peripheral devices
The firmware loaded by the request_firmware() mechanism
It is completely ambivalent to all these things. I really have no sympathy for you when you insist that the kernel shouldn't ask for a firmware file which doesn't currently have a free implementation when licensing isn't within the scope of the kernel, and that can be so easily handled by the firmware-loading mechanism in userspace.
I find it particularly unimpressive that your religious fervour renders that approach unacceptable to you, while you are simultaneously content to completely ignore three out of the four classes of non-free software mentioned above. (There may well be more examples; those were just off the top of my head.)
Are you planning to remove the ACPI AML interpreter, because it only ever runs non-free code? And often that code just traps into SMI, etc.?
Are you planning to remove the drivers which depend on an in-flash firmware on the devices they support? It's just as non-free if it's in flash. Arguably more non-free; isn't that what the 'Tivoisation' debate is all about? Although perhaps it isn't about Tivoisation, because while you accept device drivers that rely on in-flash firmware, you do seem to rip them out if they grow an option to replace that in-flash firmware with an updated version.
So of the devices which require firmware, it's only the Tivoised devices with non-updateable flash which you are content to support?
Your whole position seems massively inconsistent and impractical.
There are real technical reasons for wanting to separate the loadable firmware from the kernel source code and use request_firmware() to obtain it. There are good reasons to have those firmware files available in a separate repository from the kernel source, too. And certainly there are good reasons to have the licensing information clearly available for each, and I can understand your desire to avoid using (or distributing) those parts which are non-free. But that's the limit of what I'm trying to achieve, personally.
I'm almost ashamed to be associated with what you're trying to do; I consider it ill-conceived and counter-productive.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 1:29 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
The fundamental difference is that it doesn't *ask* the user for any of these pieces of software. The moment it does is the moment it induces the user to give up their freedom.
When the kernel doesn't say give me this piece of non-Free Software, but rather just works with whatever is on the system it's running, there isn't any problem.
We're not fighting against users' ability to run the non-Free firmware. Even if we wanted to do that, it would be pointless: users can always install the software provided directly by the unethical supplier.
What we're fighting against is precisely the inducement to error: presenting the non-Free Software, or recommending its use, as if it was a solution to a problem, rather than a social problem in itself. Sometimes worse: presenting the non-Free Software as if it was Free Software.
If a user has already opted for hardware that requires non-Free Software, there's very little social harm in letting the user make use of it, as long as the user doesn't happily recommend it to others. But the user will do just that if not made aware that there is a problem in there, and then more victims will be made.
I really don't understand why clever, savvy people accept to be used by hardware suppliers, without realizing they're being induced to betray their goals of a Free (or Open Source, as is sometimes the case) system to take part in a popularity contest that serves hardware vendors that stand against these goals. Hardware vendors that managed to twist the picture so as to enlist the help of those who allegedly stand for freedom or openness, and so that users blame these developers, rather than the hardware vendors, when the developers decide to stand for users' freedoms.
That's what I consider massively inconsistent and impractical. But then, as Simon also says, the best enemy of freedom is a happy slave.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 2:27 UTC (Thu) by dwmw2 (subscriber, #2063)
[Link]
"The fundamental difference is that it doesn't *ask* the user for any of these pieces of software. The moment it does is the moment it induces the user to give up their freedom."
So it's OK to have this closed, undebuggable, unfixable crap as long as you aren't asked about it? If you look at it like that, then your goals are entirely out of sync with mine because you aren't going anywhere near far enough :)
I do care about the problems caused by crappy system BIOS code which we can't fix, and which the vendors usually don't bother even to test competently. And about broken device firmware like the Marvell wireless abomination that I had to deal with for OLPC which was so unreliable that we had to hook up an extra GPIO line to the module's reset pin. I care about these things regardless of whether they're loaded from flash or whether they're loaded through the kernel.
To me, that seems like an arbitrary and pointless distinction. I really don't understand why clever, savvy people would accept that these instances of non-free software are acceptable, as long as they aren't asked about it.
I find it astonishing that a crappy piece of closed-source firmware becomes more acceptable to you if it's flashed into the hardware such that you can't replace it with a free reimplementation. If the Broadcom b43 devices were like that, we'd never have got OpenFWWF.
"When the kernel doesn't say give me this piece of non-Free Software, but rather just works with whatever is on the system it's running, there isn't any problem."
The kernel never says that. The kernel says "give me a piece of software which drives this device" and cares not about the licensing. It doesn't care whether it's using the Broadcom b43 firmware or the OpenFWWF version, for example (except to the extent that the different firmware has different behaviour which it has to adapt to). Only if you choose to give it a non-free version will it use it.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 3:54 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
> So it's OK to have this closed, undebuggable, unfixable crap as long as you aren't asked about it?
No, it's not ok at all, and it surprises me that you're bringing up this straw man again. We've already covered it, both in this discussion, and in our personal conversations.
What is ok is for a program (even the kernel) to interface and work with the environment in which the user started it. If the user decided to run the kernel on a machine that has a crappy non-Free BIOS, well, too bad, it can lament for the user but still do the best it can to work, even without telling the user anything about it.
However, the moment the kernel runs request_firmware(), it's asking for something. If this something is known to be non-Free Software, it's not OK for the kernel to ask for it, even though it would be ok (but unfortunate) for the user to ask the kernel to use it and for the kernel to then use it.
> It doesn't care whether it's using the Broadcom b43 firmware or the OpenFWWF version, for example
Except that, indeed, it does. It doesn't just use different pathnames to ask for one or the other, it also tests properties of the user-supplied file to figure out which one it got.
If it didn't have to tell the difference, then Linux-libre would make the request and just take whatever the user gave it, for it would be indistinguishable from an inducement perspective, i.e., the kernel would not be inducing the user to give up her freedom. From the point of view of the kernel, it would be just as indistinguishable as a hardware device that is implemented entirely as hardware circuits or driven by a piece of software stored in ROM or non-volatile RAM, in that no inducement is involved.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 10:37 UTC (Thu) by cesarb (subscriber, #6266)
[Link]
> However, the moment the kernel runs request_firmware(), it's asking for something. If this something is known to be non-Free Software, it's not OK for the kernel to ask for it, even though it would be ok (but unfortunate) for the user to ask the kernel to use it and for the kernel to then use it.
"The moment the kernel runs pci_enable_device(), it's asking for something. If this something is known to be non-Free hardware or hardware with non-Free firmware, it's not OK for the kernel to ask for it, even though it would be ok (but unfortunate) for the user to ask the kernel to use it and for the kernel to then use it."
(I do not know if this variation on your argument is a good one or even if it makes sense, but it sounded too good to let it pass.)
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 11:41 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
It doesn't even begin to make sense. pci_enable_device() doesn't ask the user to install a device, so there's no inducement to error involved.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 10:45 UTC (Thu) by dwmw2 (subscriber, #2063)
[Link]
This is pure sophistry. When I bought my laptop, it arrived with a bunch of closed firmware for the devices it contains. Some of that firmware was present in various flash chips, and some of it was encoded in magnetic patterns on spinning rust.
And you're telling me it's OK to use one but not the other, just because the kernel is slightly more involved in getting the latter into the correct place in device RAM? On the basis that if you can stick your fingers in your ears and sing 'la la la' and ignore it, it's not really happening?
Quite frankly, we have much better things to be doing.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 12:42 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
No, that's not what I'm saying.
What I'm telling you is that your kernel can't tell that this is your case, it can't tell whether there's any non-Free firmware in the devices that are present in the system, but it does know about devices that require non-Free firmware, and it wouldn't be right for it to induce you to install this additional non-Free Software on your system.
What I'm also saying is that it's not the kernel business to tell you what is or isn't ok, but it is the business of any freedom-caring program to avoid inducing users to install non-Free Software. If you want to install them and use them, it shouldn't stop you from doing so, but it shouldn't encourage you to install them.
Sadly, the request_firmware interface is designed in such a way that the kernel can't tell whether a certain piece of non-Free Software is available without actually asking for it, so it needs to be disabled until we can implement some alternate interface that enables testing without inducing (e.g. as described in the 2.6.33-libre announcement). But for firmware that is present in flash chips that need not even be visible to the kernel, the kernel doesn't ask for the firmware it doesn't even know about, so it may as well assume the user has already made the decision to use it (if it's there at all) and proceed to use it.
I can understand that you don't agree with the notion that freedom-respecting programs shouldn't induce users into non-Free traps, but I don't think it's such a hard notion to understand either. There's no reason for you to resort to name calling and other disrespectful behavior just because you don't agree with someone else's opinion. If you have honestly failed to understand it, I'll be happy to try to explain further, but I'm not really interested in your verbal abuse.
FSFLA: Linux kernel is "open core"
Posted Nov 11, 2010 13:54 UTC (Thu) by dwmw2 (subscriber, #2063)
[Link]
"What I'm telling you is that your kernel can't tell that this is your case, it can't tell whether there's any non-Free firmware in the devices that are present in the system, but it does know about devices that require non-Free firmware "
Kind of true and yet still so wrong.
Yeah, the kernel can't tell whether my hard drive has non-free firmware, or whether my Prism2 PCMCIA wireless card does, etc.
But we know they do, we even detect certain revisions or features of the firmware and behave accordingly.
And the kernel can't tell whether a given firmware which it asks for with request_firmware() is free or not, either. The developer might have a-priori knowledge, just as they do in the firmware-in-flash case, but why's that any different? In addition, in the case of a loadable firmware it's actually possible that it could be replaced by a free reimplementation, even if there was only a non-free version available when the driver was first written.
"I can understand that you don't agree with the notion that freedom-respecting programs shouldn't induce users into non-Free traps, but I don't think it's such a hard notion to understand either."
You are mistaken; I understand that completely and I even sympathise to a certain extent¹. I just think that you're going about it the wrong way.
You're pushing a policy decision into the kernel where it doesn't belong, when the kernel doesn't even have access to the information it would need to enforce that policy.
I even understand, syntactically and semantically, your argument against doing this in the technically-appropriate place; in the userspace firmware loader where the request could be silently ignored without the user ever knowing or being "induced" to do anything. But I think it's entirely specious.
¹ when I say I sympathise "to a certain extent", I mean only until I reach the realisation that your "no inducement" policy really seems to translate into silent failure without letting the user know why something isn't working. If there's anything that really annoys me, it's crappy error handling where the user has to jump through hoops and rebuild things to debug and work out why they didn't work the first time. And that's what you seem to be advocating.
And then I realise that the long-term effect of what you're trying to do would actually induce users to favour the "Tivoised" devices which have firmware built-in on flash, over the devices where it's easier to replace the firmware because it's loaded through the OS. And by that time I really don't have much sympathy left for your position at all.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 4:16 UTC (Fri) by lxoliva (subscriber, #40702)
[Link]
> But we know they do, we even detect certain revisions or features of the firmware and behave accordingly.
That's kind of fine as far as the kernel is concerned: it's not inducing users to install or accept it, just assuming the user has accepted it.
It's completely unlike *asking* the user to install (or update an EEPROM) firmware.
Because, again, the point is not to *prevent* people from using non-Free Software, it's to avoid *inducing* them to do so.
It might make sense to add a run-time option to the kernel for drivers that somehow detect or know about non-Free firmware in devices they drive to fail, issue a warning or silently proceed depending on how the option is set. Do you have other examples of such drivers?
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 14:45 UTC (Fri) by dwmw2 (subscriber, #2063)
[Link]
I gave some examples hard drives and ACPI. Those drivers could reasonably by marked by your CONFIG_NONFREE option too.
Going back to my laptop I don't see why it's reasonable to assume that I've accepted the non-free firmware which is built in; I may not even know that it's there. Many people don't even think about firmware as a separate entity; they know only of the operating system, and the hardware.
On the other hand, my laptop was also delivered with non-free firmware for the wireless card, which was bundled within binary driver in the preinstalled operating system. You can tell that I've accepted that, because otherwise I wouldn't have run the b43-fwcutter tool, and the firmware blob wouldn't be present in my /lib/firmware directory.
What you're doing is trying to make the kernel NOT EVEN LOOK at the latter case where I have clearly and explicitly accepted the non-free firmware, while still blindly accepting the former case where you only have a fairly dubious assumption that I'm OK with it.
If I run your kernel, you are preventing me from using that wireless firmware that was already in my system when I bought it; you're not just avoiding the inducement.
Really, if it's just about the *inducement* then all you need to do is disable the automatic PackageKit trigger which makes it go looking for a firmware file that it can't find locally. You don't need to break the kernel so that it can no longer use firmware blobs that the user has installed on their system. And you don't need to push policies into the kernel where they don't belong, and where the information required to implement them is not available.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 18:59 UTC (Fri) by lxoliva (subscriber, #40702)
[Link]
I agree it's important to inform users about the non-Free firmware built into their computers. I'll give some thought about how to do that.
As for the b43 non-Free firmware, I think it's presence is not an indicator that you're even aware of it either. I mean, Free and nearly-Free distros aren't normally permitted to bundle it, but I suppose a computer vendor would obtain a license to ship the b43 firmware pre-installed along with a GNU+Linux distro of its choice, and would presumably silence any warnings to that effect that we might have put in upstream :-(
Now, your characterization of what I'm trying to make is unfair. I'm not tryign to make the kernel not even look; I'm rather trying to avoid a situation in which the kernel issues a request for it without knowing whether it's there. There's more than one way to improve the situation that doesn't involve completely disabling the firmware request.
One example is the hash-based implementation suggested in the 2.6.33-libre announcement. Another is to have userland pre-register available pieces of firmware, and have the kernel only issue requests for those that have been pre-registered. Both of these would remove the inducement without disabling functionality.
Would you help get either of these, or some other solution that accomplishes the same within the kernel, into upstream?
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 19:10 UTC (Fri) by jebba (✭ supporter ✭, #4439)
[Link]
Lets say that by 2.6.38 the firmware/ directory is gone (ignoring for the moment the fact that there appears to be more non-free blobs remaining). At that point linux-2.6.38.tar is clean in terms of containing only GPL code.
So the kernel can say "I need firmware for $foo" and it becomes a userspace issue. Userspace can hand the kernel a proprietary blob, a FLOSS blob, or say it has nothing.
In this scenario it seems the best place for stopping the "inducement" would be in userspace. That way it can have a nice list of free and non-free firmware images (via sha1sums or somesuch). So if you want to have a system which doesn't pester you with non-free software, you could launch it (hypothetically), like: firmware-loader --daemon --floss-only. And people who don't mind running proprietary software just launch the daemon allowing it to feed their system anything.
Just a suggestion. I hesitate to make it. ;)
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 19:34 UTC (Fri) by dlang (✭ supporter ✭, #313)
[Link]
I'll point out that trying to maintain a list of free sha1 signatures defeats the purpose of the firmware being free because if the user modifies it, the sha1 won't match anymore.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 21:08 UTC (Fri) by dwmw2 (subscriber, #2063)
[Link]
We don't need the list of signatures. If we do this the sensible way in the userspace firmware loader, we have the proper licensing information; in the WHENCE file or the more machine-readable thing which will shortly replace it.
It's only if we try to do this in the kernel where it doesn't belong that we end up with broken hacks like the sha1 hashes.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 21:12 UTC (Fri) by foom (subscriber, #14868)
[Link]
> I agree it's important to inform users about the non-Free firmware built into their computers. I'll give some thought about how to do that.
It would be useful for someone to start cataloging what non-free firmware there is, and which alternative hardware you can purchase instead (if any) that has free firmware available. There is currently essentially *no* information about this problem available currently.
Things I can think of with Flash-based (upgradable!) non-free firmware in my computer for which there are to my knowledge zero devices with free firmware available:
- Hard Drive
- DVD Drive
- Ethernet card
- Keyboard
- Trackpad
- Video card (may not matter? Do the free drivers actually call any functionality in the non-free firmware?)
- LCD Display
Things that come with non-free firmware that people have started working on a replacement for:
- Motherboard (see coreboot project)
And I bet there's more that I forgot about.
I think it would greatly increase the credibility of linux-libre if it also advised users of the danger of using non-free firmware in all the above devices, as well as the devices that require firmware to be uploaded at boot. I bet most people don't even think about the dangers of the non-free OS running in their hard drive.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 22:30 UTC (Fri) by jebba (✭ supporter ✭, #4439)
[Link]
I think the Lemote Yeeloong would fit most or all of the above. At least it has free wifi, ethernet, video, and BIOS.
Posted Nov 14, 2010 4:50 UTC (Sun) by foom (subscriber, #14868)
[Link]
That's great! I was unaware that such a freedom-supporting laptop was available for sale. Clearly it could use more prominent mention whenever people talk about non-freeness of firmware.
I do wonder about its card reader, keyboard, and touchpad, however...
And I'm *sure* its Hard Drive has non-free firmware in it. They could fix that part, at least, by putting raw flash chips in instead, and using one of Linux's raw-flash filesystems like JFFS2 or UBIFS.
FSFLA: Linux kernel is "open core"
Posted Nov 12, 2010 21:16 UTC (Fri) by dwmw2 (subscriber, #2063)
[Link]
I think you misunderstood the situation with the b43 non-free firmware.
Broadcom are not giving permission for anyone to distribute that firmware for use with Linux, because of their crack-inspired concerns about regulatory stuff. Its presence in /lib/firmware is an indicator that the user has manually extracted it from a Windows or Mac OS driver and installed it there. When I talked about it coming with the hardware, that's because it was in the preinstalled copy of OS X. Not because it would ever be found in any pre-installed Linux system.
No, I won't help you get any of your suggestions into the upstream kernel. As I've already said, it doesn't belong in the kernel. It can be done in the userspace loader so much more easily, where the licensing information is actually available.
I just don't agree with your claim that the simple udev event which triggers the userspace firmware loader is equivalent to inducing the user to use non-free software. I find it completely insane. It would be perfectly acceptable just to refuse the firmware request in userspace where we have the required licensing information and can implement the policy the user desires.
And whatever you said, unless I'm missing a technical detail your scheme has actually broken the drivers. I could no longer use my b43 wireless card without actually rebuilding the kernel to undo your damage.
Seriously, Alexandre, just do it in udev.
FSFLA: Linux kernel is "open core"
Posted Nov 13, 2010 7:55 UTC (Sat) by lxoliva (subscriber, #40702)
[Link]
> Broadcom are not giving permission for anyone to distribute that firmware for use with Linux
Interesting... I'm pretty sure I've seen laptops with b43 WiFi and GNU/Linux preinstalled for sale. I wonder if the laptop vendors actually ship this stuff without functional WiFi. That would be... surprising.
> unless I'm missing a technical detail your scheme has actually broken the drivers
it looks lke you are indeed missing something, for I have proposed *3* options, and only one of them is currently implemented: the one that indeed refrains from asking for the non-Free b43 blob, asking for /*(DEBLOBBED)*/ and discarding the userland response instead.
The two other options are:
- have the kernel ask for a unidirectional hash of the blob name, and have udev look for a blob whose name hashes to the same value (as proposed in the 2.6.33-libre announcement)
- have userland register with the kernel available firmware names early in initrd, and right after switch_root, so that the kernel (optionally) won't even ask for names that aren't registered. This won't just make such requests faster: it can also enable pieces of firwmare built into the kernel to be updated from userland, something that can't be done ATM AFAIK.
Now, you'll see that both of these are actually orthogonal to the licensing of the blobs: they're just ways to enable the kernel to tell whether a certain file is available without inducing users to go get them, in one case, by refraining from naming the blobs so they can't be identified unless you have them; in the other, by having them named at first, so the kernel knows it's not asking for something that the user doesn't want to be bothered about.
FSFLA: Linux kernel is "open core"
Posted Nov 13, 2010 9:55 UTC (Sat) by dwmw2 (subscriber, #2063)
[Link]
"Interesting... I'm pretty sure I've seen laptops with b43 WiFi and GNU/Linux preinstalled for sale."
If that's true, then those devices wouldn't be using the normal kernel driver for b43; they'd be using the illegal binary-only one which has the firmware built in to it. And thus the same point applies for the user to have extracted that firmware and placed it into /lib/firmware requires a deliberate effort on their part.
"Now, you'll see that both of these are actually orthogonal to the licensing of the blobs: they're just ways to enable the kernel to tell whether a certain file is available without inducing users to go get them"
Alexandre, this is getting stupid and I'm getting bored. DO IT IN USERSPACE
A simple upcall from kernel to udev with a filename such as cpia2/stv0672_vp4.bin is NOT an inducement to the user to use non-free software. Not even if the user is currently running udev-monitor to watch for such things. That's just a stupid thing to say. It's almost as if you're confusing "userspace" with "the user".
The process which handles the request in userspace is in a much better position to do what you want. It has the licensing information, and can easily implement the policy you desire which seems to be a silent failure without inducing the user to know why their hardware isn't working.
Or you could do the filtering in modprobe instead you could look at the MODULE_FIRMWARE tag in the module, then refuse to load the module at all if it is going to ask for a firmware file that you cannot provide. And that way you do get to avoid the request_firmware() call that you are so bizarrely concerned about.
FSFLA: Linux kernel is "open core"
Posted Nov 13, 2010 12:37 UTC (Sat) by foom (subscriber, #14868)
[Link]
+1: exactly what I was going to say. A RPC call from kernel->udev is not inducing the *user* (a person, who receive RPC calls!) in any way.
FSFLA: Linux kernel is "open core"
Posted Nov 14, 2010 22:15 UTC (Sun) by lxoliva (subscriber, #40702)
[Link]
> The process which handles the request in userspace is in a much better position to do what you want
This just shows that you don't have any idea of what I want.
I believe computers should obey their users. This userspace program you suggest could do nothing but accept or reject software that users have installed on their computers. IMHO, that doesn't make sense. If users chose to install certain software on their computers, the computers had better obey when users command run it or install it. Anything else is, erhm, defective by design, if you get what I mean.
If you're assuming that myself or Linux-libre have any intention of taking this control away from users, of, like, protecting users from themselves, you'd be wrong, because the assumption is wrong. The goal is rather to help users defend themselves from the luring by unethical vendors that tempt them into giving up control over their computers, giving up freedom and betraying their community; unethical vendors that try to fool them into thinking of it all as ok, even desirable.
Now, you may get as bored and stupid as you wish, and rationalize that a request might be hidden from the user by userland programs, and that ignorant users wouldn't know to look at log files to investigate and troubleshoot why their devices aren't working, and that they wouldn't know to search for the log filename in a web search engine and find the file along with a message that is biased towards accepting it without questioning or even thinking about it. If you assume users wouldn't do that, you'd again be mistaken, because the assumption is wrong.
Now, let's look at your statement that a userland program is in a much better position to do what I want. Even if the userland program could indeed clean up the log messages from a local machine, it can't go back in time and prevent the kernel from having issued the request, so it can't do what I want.
Setting aside this key problem, that you'd surely qualify as irrelevant, I can see how a hotplug program could look at a request from the kernel (or a module's firmware requirements) and decide whether or not to satisfy the request, for firmware files that are installed on the system. But then, why would you want to deny loading of modules that the user installed? That doesn't make sense! It's obvious to me that you're trying to solve a different problem.
It gets even more interesting when you get to a module that is *not* installed. The userland program can't possibly know anything about it, but the developer of the kernel module that asks for it knows everything there is to know. So how can you say that the userland program is at a better position to decide how to inform the user about the problem in a way that makes it clear that the hardware vendor is trying to take her freedom away? That's demonstrably false for precisely the cases that matter, and you state that the one piece of software whose developer holds the relevant knowledge is the wrong place to encode it?!?
Finally, you suggest that some other piece of software even prevents modules from being loaded if their meta-information says they might request some unavailable or undesirable module. That's a terrible suggestion. A number of modules request firmware only for specific variants of the hardware they drive, while other variants work just fine without any firmware. For others, the firmware may provide fixes or additional functionality, but the hardware still works fine (sometimes without loss of functionality) without it. See? It doesn't even begin to make sense! Userland just doesn't *have* the information it takes to make even the sort of decision you want it to make. It's the module that knows what it expects.
Also, you mention licensing information. That's only one of the dimensions of the software freedom problem. A number of blobs are under licenses that qualify as Free Software licenses, but since they are missing source code, they are non-Free. I suspect (but can't prove) that they were provided under such licenses so as to fool kernel developers that have a fixation on license-compatibility issues without realizing that X11-licensed code is only compatible with the GPL when you can offer the corresponding sources also under the GPL. Without it, redistributing the binaries as part of a work licensed (even if partially) under the GPL from a third party amounts to copyright infringement. And that's just one of the ways in which fake contributors to the kernel keep other kernel developers legally hostage, and that shows why knowing licensing information is also insufficient.
What userland has that the module doesn't have is a good way to interact with the user and display useful information. That's why Linux-libre is not the best place for that, but it still conveys to userland the information needed to display a useful message. The /*(DEBLOBBED)*/ firmware name was designed that way so that it never matches a real file, and so that hotplug scripts can match in the slow path and send an informative message to users through a graphical interface. This string also makes to logs, so that users can immediately find out there's something wrong with the blob that's being asked for, when they web-search for this string they found in their logs.
So, your design is pointless for my goals, and even for yours it uses insufficient information, it misses even that at cases that matter, and the proposed improvement breaks it further. All of this because you seem *DETERMINED* to do it at a place other than the one that has all the relevant information. I *will* let you do that, Dave ;-), but since that will do nothing to accomplish my goals, I'll have to keep on doing what needs to be done at the place where it can actually be done. Your shouting and misrepresentation (out of misunderstanding?) of my goals won't change that.
FSFLA: Linux kernel is "open core"
Posted Nov 14, 2010 23:13 UTC (Sun) by anselm (subscriber, #2796)
[Link]
Now, you may get as bored and stupid as you wish, and rationalize that a request might be hidden from the user by userland programs, and that ignorant users wouldn't know to look at log files to investigate and troubleshoot why their devices aren't working, and that they wouldn't know to search for the log filename in a web search engine and find the file along with a message that is biased towards accepting it without questioning or even thinking about it. If you assume users wouldn't do that, you'd again be mistaken, because the assumption is wrong.
Just so I get this right: You'd prefer if the Linux kernel was generally modified to the effect that the fact that driver X missed firmware blob Y not be logged in the first place, just so a clever Linux user won't go out of their way to obtain blob Y in order to make their system work. So your proposal is, in effect, to keep users ignorant of their options. They do not get the chance to make a conscious decision towards freedom because you have decided that this decision isn't really theirs to make, since you have made it already on their behalf without bothering to consult them as to their actual preference.
I'd say feel free to put together and publish a Linux distribution that works exactly like you describe. Those Linux users who are truly freedom-minded (in the sense of the FSFLA) will surely flock to it and it will thrive. But leave it to the rest of us to make our own conscious decisions as to what level of »freedom« we want to accept on our systems. Thank you.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 2:30 UTC (Mon) by lxoliva (subscriber, #40702)
[Link]
> You'd prefer if the Linux kernel was generally modified to the effect that the fact that driver X missed firmware blob Y not be logged in the first place
No, but that's one of the favorite straw men against Linux-libre.
We do log a message, and we intend to keep on logging messages, just not messages that sound like please get me file blobname.bin so that device works, but rather more along the lines of missing Free firmware for device.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 11:32 UTC (Mon) by anselm (subscriber, #2796)
[Link]
but rather more along the lines of “missing Free firmware for device”
I don't think this will keep people from checking the Internet to find out exactly what file they are missing, and installing that – so this is no more or less an »inducement« than posting the full name of the missing file. Your only real alternative is to post nothing at all, which I believe is ethically unsound because it tries to keep people from knowing their options.
Speaking as somebody who keeps Linux servers running for money, I would much rather see the kernel tell me exactly what a problem (any problem, not just loading firmware blobs) was in order to make it easier to fix, rather than post cryptic messages to the log that make me do extra detective work. If the missing firmware blob in question is non-free, let me decide whether I want it installed, and don't make my life more difficult by having me perform extra detective work in order to find out what it even is. (It would be naive to assume that little obfuscation games like hashing the file names would make a big difference here.)
As I said (and as you didn't reply to), feel free to publish a Linux distribution that adheres to your concept of »freedom« and see how you get on – but don't try, by getting the standard kernel changed, to force your concept of »freedom« on to those of us who can make our own decisions, thank you very much.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 19:37 UTC (Mon) by lxoliva (subscriber, #40702)
[Link]
Telling you that there isn't Free firmware to run a certain device, to me, is a complete description of the problem. Now, I'm not suggesting the standard kernel to do that, not even by default. All I'm asking for is an *option* to have it do that. But even that is denied. It's clear who's forcing whom, isn't it?
As for publishing a Linux distribution that adheres to this concept of freedom, I've already done that. This announcement refers to precisely that: it's a Free and bait-free version of the Linux distribution published by Mr Torvalds.
Now, it might be that you mistakenly believe that Linux is a complete system. It isn't. Mr Torvalds himself said so when he first announced his kernel, noting that, to get a functional system, you'd need a number of core components of the GNU operating system. http://www.kernel.org/pub/linux/kernel/Historic/old-versi...
So, if you meant a GNU/Linux distro (or rather a GNU/Linux-libre distro, since it's the GNU system running on top of the Linux-libre kernel), I'm not sure what the point of my creating yet another such distro. The Linux-libre page already refers to a number of distros that have adopted Linux-libre. Just yesterday I learned of one more. It's spreading!
Now, would I prefer that Linux itself offered them this option? Of course! I'd even gladly help Linux get there. But Linux is unfortunately a project that prefers to sacrifice long-term convenience and freedom for short-term convenience, so we software freedom advocates end up having to maintain our own version of it. That's unfortunate, but it's understandable.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 21:02 UTC (Mon) by kfiles (subscriber, #11628)
[Link]
Holy moly! COuld you two please take your personal dispute to private mail?
I read the LWN comments through the RSS feed, and the noise from your bitter thread has shouted down the rest of the wonderful signal on LWN (well, to be fair, you and the Florian Muller thread).
The rest of us would just like to read our tech news, please.
using the comment filter
Posted Nov 15, 2010 23:00 UTC (Mon) by biged (subscriber, #50106)
[Link]
I hope it's not too impolite to recommend that subscribers use the Comment Filtering preference. Even if you read with RSS, so it doesn't help you directly, it's a form of voting which might be useful to the editors. (I had to abandon RSS: I now use the Unread Comments page instead. It buries most of these annoying arguments.)
FSFLA: Linux kernel is "open core"
Posted Nov 16, 2010 14:31 UTC (Tue) by vonbrand (subscriber, #4458)
[Link]
How the heck is the kernel to know there is no free firmware for some random device?!
FSFLA: Linux kernel is "open core"
Posted Nov 18, 2010 6:11 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
That, it won't know. But the developers of the driver will know what firmware is recommended to work with it (it was written and tested to work with), and whether it's Free.
As soon as Free firmware is developed for a hardware component (and any driver adjustments are made for it, as in b43), the kernel will likely be the first component to know about it.
(I use quotes because anthropomorphizing programs is a bad idea: they don't like when we do that ;-)
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 20:11 UTC (Mon) by wookey (subscriber, #5501)
[Link]
To be fair - if you've installed the linux-libre kernel variant then it's fairly clear that you don't want any non-free blobs so getting a 'deblobbed' log message in this case seems fair enough.
FSFLA: Linux kernel is "open core"
Posted Nov 14, 2010 23:19 UTC (Sun) by dwmw2 (subscriber, #2063)
[Link]
"I believe computers should obey their users. This userspace program you suggest could do nothing but accept or reject software that users have installed on their computers. IMHO, that doesn't make sense. If users chose to install certain software on their computers, the computers had better obey when users command run it or install it. Anything else is, erhm, defective by design, if you get what I mean."
And yet you're still peddling an implementation which is broken by design in precisely this way.
If I run your linux-libre kernel but I do still need my wireless to work using the firmware which was present in my laptop when it arrived, your current implementation does "protect me from myself", because it won't load that firmware even when I deliberately extract it from the OSX driver and place it in /lib/firmware in my Linux system. That used to work, and you have broken it even for the user who has made an informed choice.
"Even if the userland program could
indeed clean up the log messages from a local machine, it can't go back
in time and prevent the kernel from having issued the request, so it
can't do what I want."
I do understand what you want; I just think it's fundamentally misguided.
What you now claim you want is pointless, and no longer directly related to the originally stated goals.
Your argument that a call from kernel to udev is inducement is just nonsense. I don't know why you're fixating on it, but there seems to be no valid technical reason. You might just as well argue that the call from the driver into the core kernel is similarly inducing the user to use the specified firmware (if, of course, said firmware happens to be only available in a non-free form today). And thus even your version would be inducing the user to use non-Free software.
You have chosen to draw the technical line in a completely arbitrary place, and you now seems to be making up arguments to support your implementation instead of trying to come up with an implementation which makes more technical sense. That's your prerogative, but don't pretend it's because we don't understand what you want.
To me, this argument is not about the ethical issue; the fact here is that you have made a technically poor decision and you're trying to back it up with transparently empty rhetoric instead of discarding your precious implementation and doing something more sensible.
"All of this because you seem
*DETERMINED* to do it at a place other than the one that has all the
relevant information."
This is also completely incorrect. The kernel does not have all the relevant information. It is only userspace which can know the current licence status of the firmware which is available for download from the various package repositories, not the kernel.
In the kernel we can only have an out-of-date idea of the last known status; we can't know if there has been a free reimplementation in the last few days. And as you say, the kernel developers aren't always completely on the ball when it comes to licence status. The distributions are far better at labelling things correctly.
Only by leaving the kernel unbroken and handling the full request in userspace can we actually achieve what you said was your technical goal. Anything else is disingenuous.
And if you do plan to rely on the out-of-date knowledge of the author of the kernel driver, then it is doubly disingenuous to do so in the case of devices which load their firmware through the OS, but not in the case of devices which load their firmware from built-in storage. There is no excuse for breaking one but not the other, if you're claiming that the most up-to-date licensing information is from the kernel authors.
So unless your next version of the linux-libre patch also removes support for hard drives on the basis that there are no known devices with fully free firmware, I call you a fraud.
¹ I note with interest that you don't include the option of looking for, or even implementing, a free version of the firmware for the device in question. That's what we should be encouraging, but you seem to have entirely missed what I and many others think should be the point. You are being destructive, not constructive.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 2:46 UTC (Mon) by lxoliva (subscriber, #40702)
[Link]
> And yet you're still peddling an implementation which is broken by design in precisely this way.
Not quite. You said you had to build your own kernel for it to work, but you could have just built a driver. Which, I agree, is still undesirable, which is why we've been discussing other possibilities to make it even easier. Oddly, *none* of the freedom-caring users seems to have voiced any support for the proposal, which to me sounds like they don't need that anyway.
> I do understand what you want
Then why do you keep on insisting I want something else, and that I implement it in a way that will not just fail to solve the problem I want to solve, but that will also just not work at all on Free distros?
> You might just as well argue that the call from the driver into the core kernel is similarly inducing the user to use the specified firmware
If the driver was distributed separately, I'd make this very call. Since itś part fo the same component, and that one component will take care of buffering the inducement from the user, I think that's acceptable.
> Only by leaving the kernel unbroken and handling the full request in userspace can we actually achieve what you said was your technical goal
Sorry, can you please remind me what my technical goal was? From what you say, I get the impression that I forgot it, but in fact I think I remember it, and it was to avoid requesting non-Free Software. I still don't see how userland could go back in time and stop the kernel from issuing the request it already did and got userland to decide it shouldn't have happened. And clear the logs that were already transmitted to a separate machine that recorded them in append-only media.
I agree the kernel driver may have an out-of-date notion, which is why userland should get a chance to tell users about what's going on, just not in a way that sounds like give me blobname.bin or else. And then, as I wrote (but you seem to have chosen to ignore it), how could userland possibly know better than the kernel driver when the driver asks for a firmware that userland (including repositories) know nothing about? How could userland know better and give decent advice, when the distro chooses to leave out the non-Free blobs?
Your solution appears to be once again geared towards making more blobs more easily forced into distros and users, rather than helping solve the social problem at hand, that requires users to realize the blobs are a problem.
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 13:10 UTC (Mon) by foom (subscriber, #14868)
[Link]
lxoliva clearly believes that the kernel asking udev for a firmware filename is equivalent to inducing the user to use non-free software, while dwmw2 (and I, for that matter) think that's crazy. It seems pretty useless to continue this discussion further, since it's just going around in circles now.
And I really hope that simply posting a filename is never ever counted as "inducement to infringe" in a *legal* sense: that'd be a huge pain in the ass...
FSFLA: Linux kernel is "open core"
Posted Nov 15, 2010 20:11 UTC (Mon) by lxoliva (subscriber, #40702)
[Link]
I have little hope of convincing dwmw2. I just want the records to show that we're trying to solve different problems, and that whatever solution he seems to think and impose on me won't solve the problem I'm trying to solve. A number of people got out of the previous round of discussions about Linux and Linux-libre with the mistaken impression that his proposed solution then would do anything to advance Linux-libre's goals, in spite of my attempts to show it didn't. I'd like to avoid a recurrence of this error.
Now, I don't want to turn this into a debate on legal issues, but I'd like to point out that Red Hat legal advises the Fedora project to refrain from as much as mentioning Free Software projects that apparently read on certain patents. That would be considered a material legal risk, with liability arising out of contributory infringement claims IIUC.
Now, baiting users towards non-Free Software, or even providing them with the poison, doesn't break any laws (except for those pieces of firmware for which no license can be found, that is ;-). It's an ethical and social issue. It's just good to see clearly where one's priorities are. I wish ethical hazards would get at least as much attention as legal ones.
FSFLA: Linux kernel is "open core"
Posted Nov 18, 2010 14:10 UTC (Thu) by mpr22 (subscriber, #60784)
[Link]
I can think of at least one approach to this matter which is both technically correct and avoids the behaviour you regard as unethical "baiting". Don't break the drivers that depend on being able to receive non-Free firmware from the userland firmware daemon; remove them.
FSFLA: Linux kernel is "open core"
Posted Nov 18, 2010 15:48 UTC (Thu) by lxoliva (subscriber, #40702)
[Link]
This was the approach taken by gNewSense in its first release. Their cleaned-up kernel eventually became Linux-libre and the approach evolved in response to problems and changes in Linux.
One major problem was that some drivers would work just fine, or in a degraded way, without the blobs. Some were patched, but others were removed taking out useful functionality (video capture and graphics come to mind).
The changes in Linux were the widespread adoption of request_firmware(). We had already developed technology to selectively remove parts of drivers that contained blobs, and since moving firmware about didn't make any difference as to the ethics of providing or using them, we figured we'd be better off retaining the same functionality that we had when the blobs were part of the drivers. This implied disabling the blob requests.
However, instead of simply logging an error, like we did before, we figured we could use the hotplug interface to notify userland about the lack of Free firmware for that driver, so that's what we did. It's arguably better than silent (or quieter) failure to work, and it doesn't stop anyone who wants to use the blob from installing a driver that will take it.
That's where we are now, with a couple of plans to enable users to use blobs without having to install alternate drivers.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 7:43 UTC (Wed) by Los__D (guest, #15263)
[Link]
> as long as they keep software or documentation that induces users to seek and use non-Free programs, they're still bait.
Ahhh... Denying access to knowledge and the means to help one self is now INCREASING freedom?
FSFLA are doing much more damage than good...
"Freedom of choice is what you've got, freedom from choice is what you want" seems fitting here in a backward, perverted way.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 8:15 UTC (Wed) by anselm (subscriber, #2796)
[Link]
Denying access to knowledge and the means to help one self is now INCREASING freedom?
It's been that way for quite some time. For example, the FSF has objected
to distributions that even hint that non-free software exists for them, no matter if (e.g., in the case of Debian) that software is not part of the actual distribution.
Also consider the recent »FSF hardware endorsement« issue, where one of the conditions of FSF approval was that the packaging of the approved device will not display Windows or MacOS compatibility badges.
The idea seems to be that people won't know that non-free software exists unless they are explicitly told, and that this knowledge must be withheld from them at all costs so they won't be lured away by the non-free side. In effect, the FSF (and FSFLA) appear to think that free-software users are mindless sheep who need somebody smart (like themselves) to keep them out of harm's way. Religions and dictatorships work that way but I don't think it is really appropriate for the Linux community, where people are mostly fairly savvy.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 8:45 UTC (Wed) by Los__D (guest, #15263)
[Link]
Hmmm... I seem to be in quote mood today:
Pay no mind what other voices say
They don't care about you, like I do, (like I do)
Safe from pain, and truth, and choice, and other poison devils,
See, they don't give a f*** about you, like I do.
Just stay with me
safe and ignorant
go back to sleep
go back to sleep
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 17:54 UTC (Wed) by jebba (✭ supporter ✭, #4439)
[Link]
Actually, I find it a feature to not have non-free software suggested. I mean, if you're running a FSF-approved distro you probably don't want the "knowledge" popups that you can install Adobe Flash everytime you go out and surf the web. You can just install things from the repo and not have to worry about getting proprietary junk.
For example, I had been using OpenBSD, primarily as a firewall, for a few years. I thought that OpenBSD was more-or-less free so I didn't mind installing from ports. Then one day I came across Opera in there and was like WTF? Great, I have the precious "knowledge" that I can install Opera, but I'd far prefer the *feature* that would leave crap like that out.
Freedom really is a feature. It's not about trying to keep people ignorant. FUD on...
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 19:45 UTC (Wed) by anselm (subscriber, #2796)
[Link]
People should be given the freedom to make informed decisions instead of deliberately being kept ignorant in the name of »freedom«.
When you install Debian GNU/Linux, the installer asks you once whether you want the non-free repository made available. Apparently this is enough to tick off the FSF, which would much rather not see that question asked at all. I believe anybody adhering to the FSF school of software freedom can be troubled to answer »no« this once – from then on they won't »have to worry about getting proprietary junk« (by the Debian definition, anyway). It takes a special type of person to declare Debian GNU/Linux a »non-free« operating system simply for asking the question.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 20:01 UTC (Wed) by jebba (✭ supporter ✭, #4439)
[Link]
I run debian, fwiw. In fact, so did rms himself for a long time. He certainly is a special type of person, no doubt.
People have had the freedom to install flash by having the decision repeatedly offered to them via their browsers. Now a huge amount of content is locked up in a format owned by Adobe. Are we freer for this? Perhaps it would have been best if we never went down that path, no?
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 21:09 UTC (Wed) by anselm (subscriber, #2796)
[Link]
Maybe we would all be better off if everyone had simply refused to go for Flash when it was new. However it would have been much better for people to avoid Flash because they made the conscious decision that Flash was a proprietary format with lock-in, portability and security issues and as such not worth the trouble, rather than to avoid Flash because they were never told that it even exists. (It would have been helpful to have had a viable free (as in speech) alternative around at the time, but that is neither here nor there.)
The problem with this approach is, of course, that it presupposes that people will actually take the trouble to think this over. It requires educating people to be smart enough to take that decision rather than keeping them ignorant by taking the decision on their behalf and then not telling them about it.
Politics teaches us that it is difficult to get many people to think rationally about important issues, which may explain why the FSF school of software freedom seems to favour the second option. Unfortunately, the Linux community consists to a large extent of fairly savvy people who do not appreciate being patronised, hence this discussion.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 21:19 UTC (Wed) by jebba (✭ supporter ✭, #4439)
[Link]
It is not *patronizing* to people who actually *want* to run free software. It is convenience and a feature. If you want to run non-free software, you have tons of options. Why does it bother you so much that there is a subset of the community that wants to have things 100% free and doesn't even want a suggestion of non-free software? Why not just let us do that without all the attacks?
Suggesting that the FSF, of all organizations, is trying to keep people ignorant is ridiculous. It would be hard to come up with an organization that has made people more aware of these issues than anyone else.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 21:43 UTC (Wed) by anselm (subscriber, #2796)
[Link]
Why does it bother you so much that there is a subset of the community that wants to have things 100% free and doesn't even want a suggestion of non-free software? Why not just let us do that without all the attacks?
The last time I checked it was the FSFLA which started »the attacks« by taking the Linux kernel developers to task for producing »free bait« software. If the FSFLA wants to distribute a Linux kernel that is »free« enough for them to use then I'm all in favour. This is what free software is about, after all. However, I'll personally stick to the Debian-provided kernel, which is good enough for me, and I'll not have the FSFLA chide me for not pursuing the correct kind of freedom, thank you very much.
Suggesting that the FSF, of all organizations, is trying to keep people ignorant is ridiculous. It would be hard to come up with an organization that has made people more aware of these issues than anyone else.
You will have to explain to me again how not offering to install the Flash plugin in a browser at all makes people more aware of the issues behind Flash.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 21:54 UTC (Wed) by Los__D (guest, #15263)
[Link]
Let me see... First you (FSFLA) comes with an announcement that attacks the Linux developers for not buying into your narrow interpretation of freedom, and when someone responds critically, you whine "Help, help, I'm being oppressed!".
Do you really expect to be part of any rational conversation?
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 22:31 UTC (Wed) by jebba (✭ supporter ✭, #4439)
[Link]
> First you (FSFLA) comes with an announcement...
I'm the FSFLA? I came with an announcement? How do you make that out? I'm not in it nor have I ever been a member. I don't think I'm even in the FSF, for that matter. But I appreciate what both are doing and have done.
> Do you really expect to be part of any rational conversation?
Not anymore. You can't even identify who you are talking to.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 22:33 UTC (Wed) by Los__D (guest, #15263)
[Link]
Sorry, my bad. You just seem to half the writing on FSFLA's behalf.
[OT] Flash plugin (was: FSFLA: Linux kernel is "open core")
Posted Nov 10, 2010 22:27 UTC (Wed) by cesarb (subscriber, #6266)
[Link]
> Maybe we would all be better off if everyone had simply refused to go for Flash when it was new.
People never made that choice (installing or not Flash). IIRC, it came bundled with Netscape, back when everyone used Netscape. Most people do not even know what a plugin is.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 3:43 UTC (Wed) by foom (subscriber, #14868)
[Link]
> why the location of the firmware is irrelevant
Unless it's in non-volatile memory on the hardware, of course?
FSFLA: Linux kernel is "open core"
Posted Nov 9, 2010 20:05 UTC (Tue) by jebba (✭ supporter ✭, #4439)
[Link]
Probably best if the discussion was on LKML, per kernel development practices, than in a private mail. Regardless, the approach Woodhouse is taking is definitely the traditional LKML-way and appears headed towards getting the firmware at least split out (which Linus thinks is a better arrangement, which is why it can happen). The question is, at that point when it's removed, will a -libre kernel still be needed?