on disabling drivers that use non-Free firmware

Alexandre Oliva lxoliva at fsfla.org
Tue Jan 27 04:40:22 UTC 2009

On Jan 26, 2009, Richard M Stallman <rms at gnu.org> wrote:

>> Can we modify `patch' so that it doesn't annoy the user
>> about patches to removed drivers.

>     No, that would be bad.  Patch is doing the right thing.

> I do not follow you.

> From what you have said, patch's behavior is not the right thing
> for this use.

Patch is doing the right thing.  It's the use that's wrong.

We tell patch to apply a patch, it can't find the file to patch, it asks
the user what to do, or it errors out.  That's to be expected.

Sure we could modify patch to behave differently.  This wouldn't fix
existing uses and recipes.  It wouldn't solve the problem.

>     Consider a Makefile that says how to build a certain file, and that
>     lists that file as a dependency for some other file.

>     If we remove the source, the Makefile will fail, and the entire build
>     will fall over.

> What happens if the source file is replaced with /* removed */ ?

Patch still won't apply, build will fail later on.

I don't see why we're wasting time trying to figure out technical work
arounds for problems arising from one of the possibilities, when we have
another possibility that doesn't bring up any of these problems.

Do you have any reason to prefer removing Free Software from the kernel
sources just because some day there were references to non-Free Software
in them?  If there aren't any, we might as well just go with the
solution that works.  Otherwise, it would make sense to restart this
discussion, but even then, it wouldn't make sense to waste your time on
it.  We can come up with the technical implementation details once we
agree on what is to be done.  ATM it feels like we're going in circles.

We're already lagging behind a few releases.  I'd rather be working on
solving the problem and getting new releases out under the new policies.
Explaining to you why one possible implementation is less desirable than
another doesn't seem to be an efficient use of our time.

Shall we revisit the plan on what to remove and what to keep?

Here's what I've been slowly implementing since this conversation

1. remove non-Free blobs

2. remove references to non-Free blob names and locations in code and

3. disable request_firmware() calls used to load non-Free blobs, so that
modules can be enabled in configuration, and that, at run time, can be
loaded, and, in case they'd have requested non-Free firmware, they'll
now issue an informative request to the user that won't name the
firmware file, and the response, if any, will be discarded, and the
request will fail

4. remove the ability to enable modules from which we removed internal
non-Free blobs, that can't be easily modified so that, when they'd have
loaded the removed firmware, the informative request be issued instead

Alexandre Oliva           http://www.lsd.ic.unicamp.br/~oliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist      Red Hat Brazil Compiler Engineer

More information about the linux-libre mailing list