Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Matthew Garrett
Glenn Maynard [EMAIL PROTECTED] wrote:
 On Thu, Oct 28, 2004 at 12:33:38AM +0100, Matthew Garrett wrote:
 That would require certain parts of d-i (and hence certain parts of
 main) to rely upon the contents of contrib. We can't do that.
 
 No, I believe that would create a Suggests-style relationship, not
 a Depends, since d-i would still work without it (for many people).
 Packages in main can Suggest packages not in main.

d-i is modular. The module that provided that functionality would be
likely to do little of any use without the presence of contrib.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Matthew Garrett
Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
 Matthew Garrett [EMAIL PROTECTED] writes:
 Two issues:

 1) The social contract doesn't give us any leeway here. There's no
 way to claim that hardware doesn't have to conform to the DFSG, and
 there's no way to claim that large parts of Debian don't require that
 hardware.
 
 Sure it does.  The Debian Free Software Guidelines only apply to
 software.  Hardware is hard, not soft.

That's an unfortunate circumstance of naming. Anything that we could
potentially ship has to be considered as software - the aspects of
hardware that we're discussing are instructions that are run by a
processor, and we could extract those and copy them into the
distribution. Software doesn't stop being software once it's copied into
ROM, even if you'd prefer it to be called hardware.

 2) The contents of an eeprom can generally be touched from software. You
 need a firmer basis for your line.
 
 That... requires some thought.  I don't mean to say that *all* drivers
 for firmware-using devices must go in contrib.  Merely that those
 drivers which Depend, in the policy sense, on non-free software must
 go in contrib, and that any loadable firmware is software.  Whether
 it's a Dependency depends on the individual case -- a device that
 ignores its firmware isn't a dependency, a driver that can drive
 prelaoded devices is a Suggestion, and so on.

The social contract uses require, which is a stronger term than
policy's depend. The driver software requires the portion of the
hardware that can also be described as software.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Edmund GRIMLEY EVANS
Matthew Garrett [EMAIL PROTECTED]:

 The social contract uses require, which is a stronger term than
 policy's depend. The driver software requires the portion of the
 hardware that can also be described as software.

I assume the relevant quote is: We will never make the system require
the use of a non-free component.

I don't think this sentence can be understood by looking at each work
through a magnifying glass. You need some kind of context (beyond the
text of the Social Contract) to know what was intended here, not a
detailed analysis of what require means.

For example, you could understand the sentence to mean: We won't make
the whole system dependent on a non-free component, but parts of the
system might be designed to communicate with non-free software and
therefore be useless without the corrresponding non-free software.

Or it could mean: We won't deliberately make the system dependent on
a non-free component, but if it so happens that there is no free
software that implements the other side of some protocol, then that's
a problem with the rest of the world, not with Debian.

I don't claim it does mean either of these things, just that the
sentence in isolation could be interpreted that way.



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Raul Miller
 Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
  Sure it does.  The Debian Free Software Guidelines only apply to
  software.  Hardware is hard, not soft.

On Thu, Oct 28, 2004 at 12:40:02PM +0100, Matthew Garrett wrote:
 That's an unfortunate circumstance of naming. Anything that we could
 potentially ship has to be considered as software - the aspects of
 hardware that we're discussing are instructions that are run by a
 processor, and we could extract those and copy them into the
 distribution. Software doesn't stop being software once it's copied into
 ROM, even if you'd prefer it to be called hardware.

It's also a circumstance of content, which is why the DFSG uses the word
software so many times, and why it concerns itself with software licenses.

Software which we don't and can't ship, which is a part of the platform
we're running on, which is not application code, and which basically is
outside the scope of the project is software we ignore.

 The social contract uses require, which is a stronger term than
 policy's depend.

http://dictionary.reference.com/search?q=require

 The driver software requires the portion of the
 hardware that can also be described as software.

The sentece which uses the word require is:

   We will never make the system require the use of a non-free component.

While it's clear from context that non-free refers to non-free
software, it's also clear that it's components which are what need to
be free.  It's also clear from contenxt that components are components
of the debian system.

Among other things, you're arguing that hardware [including software
embedded in that hardware] is a component of the debian system (rather
than being a part of its infrastructure).

But we do not ship hardware, and software embedded in hardware is out
of scope for us.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:

 Software which we don't and can't ship, which is a part of the platform
 we're running on, which is not application code, and which basically is
 outside the scope of the project is software we ignore.

In many of these cases, we /could/ ship it (well, the license probably
wouldn't let us, but that's a legal problem rather than a technical
one). But at least we're in agreement that it's unambiguously software,
even if it's also hardware under certain circumstances.

 The social contract uses require, which is a stronger term than
 policy's depend.
 
 http://dictionary.reference.com/search?q=require

I possibly didn't make that clear. depend, when used by policy, refers
to dependencies that are expressed by the package management system. As
a result, it's possible to argue that a driver doesn't depend on the
firmware that's in a chip on a PCB of the device it drives. But it
certainly requires it.

 The driver software requires the portion of the
 hardware that can also be described as software.
 
 The sentece which uses the word require is:
 
We will never make the system require the use of a non-free component.
 
 While it's clear from context that non-free refers to non-free
 software, it's also clear that it's components which are what need to
 be free.  It's also clear from contenxt that components are components
 of the debian system.

No, that doesn't make sense. If that was what it meant, it would just be
a restatement of the second sentence (We promise that the Debian system
and all its components will be free according to these guidelines).
Since we've already promised that all the components in Debian will be
free, then the non-free components it's referring to must be outside
Debian. 

 Among other things, you're arguing that hardware [including software
 embedded in that hardware] is a component of the debian system (rather
 than being a part of its infrastructure).

I can probably be convinced that hardware in the traditional sense
(something that's made out of gates and stuff) is not a component in the
way that the social contract refers to. I see no way of arguing that for
stuff that is plainly code.

 But we do not ship hardware, and software embedded in hardware is out
 of scope for us.

I see no justification for that argument.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Raul Miller
 Raul Miller [EMAIL PROTECTED] wrote:
  Software which we don't and can't ship, which is a part of the platform
  we're running on, which is not application code, and which basically is
  outside the scope of the project is software we ignore.

On Thu, Oct 28, 2004 at 05:50:09PM +0100, Matthew Garrett wrote:
 In many of these cases, we /could/ ship it (well, the license probably
 wouldn't let us, but that's a legal problem rather than a technical
 one). But at least we're in agreement that it's unambiguously software,
 even if it's also hardware under certain circumstances.

We could ship it, if it were legal is not, in general, the same thing as
if we shipped it, we could load it.

Where these are equivalent, we're talking about something that's
probably a component of our system.

  The social contract uses require, which is a stronger term than
  policy's depend.
  
  http://dictionary.reference.com/search?q=require
 
 I possibly didn't make that clear. depend, when used by policy, refers
 to dependencies that are expressed by the package management system.

The social contract specifies policy, not the other way around.

 We will never make the system require the use of a non-free component.
  
  While it's clear from context that non-free refers to non-free
  software, it's also clear that it's components which are what need to
  be free.  It's also clear from contenxt that components are components
  of the debian system.
 
 No, that doesn't make sense. If that was what it meant, it would just be
 a restatement of the second sentence (We promise that the Debian system
 and all its components will be free according to these guidelines).

I agree.  The difference is subjunctive.

 Since we've already promised that all the components in Debian will be
 free, then the non-free components it's referring to must be outside
 Debian. 

It's pretty clear to me that the point of this sentence is to make it
clear that moving a package outside of debian does not allow us to ignore
the dependency.

If it makes sense to consider something as a component of our system,
that's good enough.

  Among other things, you're arguing that hardware [including software
  embedded in that hardware] is a component of the debian system (rather
  than being a part of its infrastructure).
 
 I can probably be convinced that hardware in the traditional sense
 (something that's made out of gates and stuff) is not a component in the
 way that the social contract refers to. I see no way of arguing that for
 stuff that is plainly code.

Then you would argue, for example, that we shouldn't remove the tcp
stack because ip routers and switches use non-free software?

Or maybe you also draw boundaries around what is the system and what's
outside the system?

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Glenn Maynard
On Thu, Oct 28, 2004 at 12:33:59PM +0100, Matthew Garrett wrote:
 Glenn Maynard [EMAIL PROTECTED] wrote:
  On Thu, Oct 28, 2004 at 12:33:38AM +0100, Matthew Garrett wrote:
  That would require certain parts of d-i (and hence certain parts of
  main) to rely upon the contents of contrib. We can't do that.
  
  No, I believe that would create a Suggests-style relationship, not
  a Depends, since d-i would still work without it (for many people).
  Packages in main can Suggest packages not in main.
 
 d-i is modular. The module that provided that functionality would be
 likely to do little of any use without the presence of contrib.

So, libdvdread3 making use of libdvdcss by having libdvdread.so.3
dynamically open and use libdvdcss.so if it's there is OK; but if
the code that did this was itself in a small stub module (dvdread3
opening /usr/lib/dvdread/libdvdcss-loader.so), that stub module
would have to have its own package in contrib.

You're saying that, since d-i doesn't have a monolithic design, it
isn't allowed to support anything outside of main at all.

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-28 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Does anyone know if it is possible to obtain an IDE disc drive that
contains no non-free software,
I do not believe that this is possible.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Brian Thomas Sniffen
Marco d'Itri [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] wrote:

Yes, Marco.  We all understand the model you propose, based around the
idea all firmware is essentially hardware, even if it's clearly a
file that has to be there on disk for a driver to function.  An
 Now it's quite clear that you did not understand at all what I have
 been proposing for months now, because I have never believed what you
 write here.

No wonder this conversation has felt like it's going no where.  What
did you expect to achieve by asking endlessly circular socratic
questions and disbelieving the answers?

 (BTW, please stop sending me copies of every mail, even if you never
 managed to read the debian document which asks to not do this it should
 be obvious by now that I read this list.)

I only pull @debian.org addresses by default.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Brian Thomas Sniffen
Matthew Garrett [EMAIL PROTECTED] writes:

 Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
 Yes, Marco.  We all understand the model you propose, based around the
 idea all firmware is essentially hardware, even if it's clearly a
 file that has to be there on disk for a driver to function.  An
 equally valid model has been proposed around the idea that all
 software is software, and anything that can't be touched from software
 is hardware.

 Two issues:

 1) The social contract doesn't give us any leeway here. There's no
 way to claim that hardware doesn't have to conform to the DFSG, and
 there's no way to claim that large parts of Debian don't require that
 hardware.

Sure it does.  The Debian Free Software Guidelines only apply to
software.  Hardware is hard, not soft.

 2) The contents of an eeprom can generally be touched from software. You
 need a firmer basis for your line.

That... requires some thought.  I don't mean to say that *all* drivers
for firmware-using devices must go in contrib.  Merely that those
drivers which Depend, in the policy sense, on non-free software must
go in contrib, and that any loadable firmware is software.  Whether
it's a Dependency depends on the individual case -- a device that
ignores its firmware isn't a dependency, a driver that can drive
prelaoded devices is a Suggestion, and so on.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Josh Triplett
Matthew Garrett wrote:
 It is certainly the case that I would like our users to be able to use
 their computers regardless of the mechanism that the vendor uses to ship
 firmware, yes. Remember that we don't ship contrib as part of the
 installer, either.

Thanks to the excellent work of the installer team, debian-installer is
incredibly modular.  Surely someone could add hooks to load modules from
contrib (only if the autodetected devices need them, and prompting
first), either downloaded from the network or supplied on some physical
medium?  You seem to be advocating an ideological compromise solution
for what sounds more like a technical problem.

- Josh Triplett


signature.asc
Description: OpenPGP digital signature


Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

On Tue, Oct 26, 2004 at 12:27:09PM +0200, Marco d'Itri wrote:
 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.
 Really? Which part of policy states this?
It's very interesting how quickly people who fail badly at backing their
arguments on principle fall back to using Policy as a stick--despite the
fact that the governing document here is the Social Contract, which I should
hope still takes precedence over policy ...
I explained my principles at the beginning of the discussion, and I do
not feel the need to state them again because they are not relevant here:
even if some people like to use it to invent new rules they think should
be applied to debian, debian-legal is not the right place to update or
augment the policy and social contract.
I refer to policy because it's the document which explains how the SC
should be applied, if it fails this job then it has bugs and you are
encouraged to point them out.

(I'm obviously happy to see you resorting to ad hominems as it probably
means you have no more arguments.)

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Raul Miller
On Wed, Oct 27, 2004 at 10:56:58AM +0200, Marco d'Itri wrote:
 I explained my principles at the beginning of the discussion, and I do
 not feel the need to state them again because they are not relevant here:

How about something that is relevant, then?

If that's not possible, maybe you don't want to post here?

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

On Wed, Oct 27, 2004 at 10:56:58AM +0200, Marco d'Itri wrote:
 I explained my principles at the beginning of the discussion, and I do
 not feel the need to state them again because they are not relevant here:

How about something that is relevant, then?

If that's not possible, maybe you don't want to post here?
You too have no more arguments?

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
  This is the wrong mailing list for that sort of proposal.
 
 On Tue, Oct 26, 2004 at 08:32:47PM +0100, Matthew Garrett wrote:
 That's why I'm not actively proposing it here. Brian asked me a
 question, and I answered it.
 
 In that case, perhaps you should take your discussion elsewhere?
 
 Correct me if I'm wrong, but it doesn't seem like you can usefully resolve
 the point you want to discuss through discussions on this mailing list.

Indeed. I'm not expecting to change people's minds here - I'm just
pointing out that many of the arguments used to justify this decision
process are flawed.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Matthew Garrett
Josh Triplett [EMAIL PROTECTED] wrote:
 Matthew Garrett wrote:
 It is certainly the case that I would like our users to be able to use
 their computers regardless of the mechanism that the vendor uses to ship
 firmware, yes. Remember that we don't ship contrib as part of the
 installer, either.
 
 Thanks to the excellent work of the installer team, debian-installer is
 incredibly modular.  Surely someone could add hooks to load modules from
 contrib (only if the autodetected devices need them, and prompting
 first), either downloaded from the network or supplied on some physical
 medium?  You seem to be advocating an ideological compromise solution
 for what sounds more like a technical problem.

We could do that, but it couldn't reasonably form part of the standard
debian-installer. A forked d-i doesn't do anyone any favours.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Josh Triplett
Matthew Garrett wrote:
 Josh Triplett [EMAIL PROTECTED] wrote:
Matthew Garrett wrote:

It is certainly the case that I would like our users to be able to use
their computers regardless of the mechanism that the vendor uses to ship
firmware, yes. Remember that we don't ship contrib as part of the
installer, either.

Thanks to the excellent work of the installer team, debian-installer is
incredibly modular.  Surely someone could add hooks to load modules from
contrib (only if the autodetected devices need them, and prompting
first), either downloaded from the network or supplied on some physical
medium?  You seem to be advocating an ideological compromise solution
for what sounds more like a technical problem.
 
 We could do that, but it couldn't reasonably form part of the standard
 debian-installer. A forked d-i doesn't do anyone any favours.

I don't see why we couldn't put support for using contrib udebs for
things such as drivers in the standard d-i.  The contrib udebs would
need to be in the contrib archive, and they obviously couldn't go on the
standard CD, but they could be downloaded if needed (again, only if the
user assents to their use), or installed from a secondary CD or one of
the various other media that d-i can read from.

- Josh Triplett


signature.asc
Description: OpenPGP digital signature


Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Glenn Maynard
On Wed, Oct 27, 2004 at 10:56:58AM +0200, Marco d'Itri wrote:
 (I'm obviously happy to see you resorting to ad hominems as it probably
 means you have no more arguments.)

You're the one trying to convince people of a new position (that non-free
dependencies in main are acceptable), so you're the one giving arguments;
I'm among those giving counterarguments.  So, unless you have further
arguments, there's nothing more for me to respond to.  The SC is very
clear: no non-free requirements--if you want to try to change the SC, go
for it.

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Matthew Garrett
Josh Triplett [EMAIL PROTECTED] wrote:
 Matthew Garrett wrote:
 We could do that, but it couldn't reasonably form part of the standard
 debian-installer. A forked d-i doesn't do anyone any favours.
 
 I don't see why we couldn't put support for using contrib udebs for
 things such as drivers in the standard d-i.  The contrib udebs would
 need to be in the contrib archive, and they obviously couldn't go on the
 standard CD, but they could be downloaded if needed (again, only if the
 user assents to their use), or installed from a secondary CD or one of
 the various other media that d-i can read from.

That would require certain parts of d-i (and hence certain parts of
main) to rely upon the contents of contrib. We can't do that.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Josh Triplett
Matthew Garrett wrote:
 Josh Triplett [EMAIL PROTECTED] wrote:
 
Matthew Garrett wrote:

We could do that, but it couldn't reasonably form part of the standard
debian-installer. A forked d-i doesn't do anyone any favours.

I don't see why we couldn't put support for using contrib udebs for
things such as drivers in the standard d-i.  The contrib udebs would
need to be in the contrib archive, and they obviously couldn't go on the
standard CD, but they could be downloaded if needed (again, only if the
user assents to their use), or installed from a secondary CD or one of
the various other media that d-i can read from.
 
 That would require certain parts of d-i (and hence certain parts of
 main) to rely upon the contents of contrib. We can't do that.

I don't see how adding support for handling contrib udebs would actually
create a dependency; it just makes it possible to install them if
desired.  This seems similar to the idea that apt supports loading
packages from main, contrib, and non-free; it doesn't rely on any
particular package in any of them.

The sum total of the necessary support would be:
1) support to load udebs from main, contrib, or even non-free, with
prompts for anything other than main, and either
2a) a generic prompt to say should I load udebs from contrib, in which
case it loads the packages before probing devices, or
2b) a mapping from detected devices to drivers and from drivers to
packages, whether in contrib or main.  (Much of this already exists.)

None of that seems like it actually depends on anything in contrib.

For comparison, base-config used to ask users if they wanted to use
contrib and/or non-free packages; it was not necessarily a good idea to
do this, but I don't think it created a dependency from main to
contrib/non-free.

As long as we are going to include support for contrib and non-free
packages, it seems consistent to offer the option of using them in the
installer.

- Josh Triplett


signature.asc
Description: OpenPGP digital signature


Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Raul Miller
On Wed, Oct 27, 2004 at 05:36:36PM -0700, Josh Triplett wrote:
 I don't see how adding support for handling contrib udebs would actually
 create a dependency; it just makes it possible to install them if
 desired.

It doesn't create the dependency -- it just forces us to recognize their
contents as software.

The dependency comes in where the driver won't produce useful results
without loading the firmware.

The details of how this dependency exists are different from a command
line invocation or a shared library reference or an interpreted script
requirement, but that's an architectural issue, not a package management
issue.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-27 Thread Glenn Maynard
On Thu, Oct 28, 2004 at 12:33:38AM +0100, Matthew Garrett wrote:
 That would require certain parts of d-i (and hence certain parts of
 main) to rely upon the contents of contrib. We can't do that.

No, I believe that would create a Suggests-style relationship, not
a Depends, since d-i would still work without it (for many people).
Packages in main can Suggest packages not in main.

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Glenn Maynard
On Mon, Oct 25, 2004 at 11:40:22PM -0400, Michael Poole wrote:
  That doesn't really change the fact that drivers that only work after
  pointing it at a non-free data block have a non-free dependency, and
  belong in contrib, though.
 
 The driver operates as designed regardless of what is in the firmware
 array, file, EEPROM, etc.  The device does not.  For me, the explicit
 interface between peripheral and CPU makes the distinction clear.

Firmware not found is operating as designed, but I don't think that
qualifies as the driver being functional, any more than cannot open
shared object file: No such file or directory.

If libdvdread3 required libdvdcss, saying dlopen failed: libdvdcss.so
not found, giving up if it's missing, it's just as functional as the
driver that can't bootstrap any devices without firmware; both are contrib.
Instead, it still works, as long as you're not dealing with encrypted
data--analogous to a driver that works with some hardware (eg. EPROM
devices with the expected version) and not others, and can go in main.

 Drawing the line elsewhere seems to lead to a place where we forbid
 P6/K7/etc.-targeted binaries (optimized programs or CPU-specific
 kernels) from being in main because they require non-free microcode.

There are three general cases: ROM, EPROM and RAM.  ROM works on its own,
can't be changed and there's no firmware block; EPROM works on its own[1],
and you can optionally have the firmware on the drive to upload; and RAM
needs the firmware file to work at all.[2]  So, there are a few places
where a line can be drawn.

I think that both ROM and EPROM act like hardware, and should be treated
as such, but that the RAM case acts like software--you have to read it
from a file and send it to the device.

My understanding is that the entire purpose of contrib is for this
case: programs that don't do anything useful unless you plug in some
non-free piece.


[1] If a device has an EPROM, but the contents are never usable by the
driver and it always needs to upload a firmware, it's effectively in the
RAM case: the EPROM becomes irrelevant.

[2] I'm overgeneralizing, of course, ignoring cases like EPROM but flashed
with an incompatible firmware version (irrelevant here, as long as devices
do exist with the correct version) and RAM uploaded from the from the driver,
or falling back on ROM (seems to fall in the EPROM case).

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Josh Triplett
Ken Arromdee wrote:
 On Mon, 25 Oct 2004, Josh Triplett wrote:
However, suppose that your statement were true.  Why stop there?
Consider the case of a piece of hardware which could not be initialized
correctly except by the Windows driver.  In order for the device to
work, a user would need to boot up Windows, allow the driver to
initialize the device, and soft-boot into GNU/Linux, at which point the
driver could control the device.  Also suppose that the Windows driver
was shipped on the manufacturer's CD, so the user already has it (which
is almost always the case).  Repeat after me: Drivers don't require
initialization, hardware devices require initialization. :)  So why
can't this driver go in main too?
 
 I would disqualify that driver from main not because it depended on a
 Windows driver, but because it depended on having Windows itself.  Unlike the

I see; so some dependencies on non-free software are to be considered
acceptable, while others are not?

 hardware/eprom and hardware/CD combinations, hardware/Windows isn't sold
 together and the user would have to get Windows separately--not because he

And in many cases, the user would need to get the firmware for a device
separately.  Not all drivers that require firmware images provide the
means to extract it from a manufacturer's CD; some choose to extract it
from updates provided on the manufacturer's website, or from Windows
drivers obtained separately, or downloaded from the Linux driver
author's site.  Some firmware images have even been sniffed off of a bus
during the reverse engineering used to create the Linux driver.

 lost a CD that he once had, but because Windows really is a separate item in
 more ways than just physically being on a different disk.

And what of my second suggested case (which you omitted in your reply),
where the Linux driver could load the necessary piece of the Windows
driver without needing Windows?  Would you permit that driver to go in
main, since it would only require the Windows driver and not Windows
itself?  Your argument seems to suggest that you would.

For another example, suppose there were a new, proprietary 3D graphics
interface, ClosedGL, only implemented by ATI's and nVidia's proprietary
driver.  Suppose someone wanted to package a game that used ClosedGL.
Repeat after me: Programs don't require drivers, hardware devices
require drivers (to provide APIs). :)  So by your arguments, why can't
this game go in main?
 
 You may as well claim that a hard drive is a piece of hardware which does
 word processing, that a word processor is a driver for this piece of 
 hardware,
 and that without this driver you lose some functionality because the hard
 drive won't process words.
 
 The flaw in this reasoning is that a hard drive or a graphics card is a
 general purpose piece of equipment.  The driver isn't a driver.

Many hardware devices are also general-purpose pieces of equipment,
using general-purpose processors, whose firmware is just software
compiled for that architecture.  The point of firmware is generally to
make a piece of hardware less hard-wired and more reparable, which is to
some extent a step in the direction of general-purpose.  Yet just as the
driver requires a certain method of talking to the firmware, the game
requires a certain way of talking to the driver, which requires that
whether the low-level component has a general-purpose device to work
with or not, it must provide a certain interface to those components at
a higher level than itself.

It seems to me that your arguments for including drivers in main that
require other non-free software are extremely fuzzy and involve criteria
(like general purpose or not because it depended on a Windows driver,
but because it depended on having Windows itself) that seem to have no
relation to actual Debian policy and/or the Social Contract.

On the other hand, the arguments for _not_ including such drivers in
main are trivially explainable with one simple test: can someone with
the necessary hardware, having only main in their sources.list, and
without installing any non-Debian software, build, install, and
successfully run the package?  If they can, the software should go to
main.  If not, it should go to contrib.

Finally, I'm curious: what is it that makes people so adamant that these
drivers should be in main, rather than contrib?  You and others have
mentioned various practical arguments, but none related to freedom.
Furthermore, even if practical arguments were allowed to trump freedom,
I don't see any practical arguments against putting the drivers in
contrib that could not be solved with a suitable technical solution.
What is the reason that you fight so hard to include such items in main?

- Josh Triplett



signature.asc
Description: OpenPGP digital signature


Re: non-free firmware: driver in main or contrib

2004-10-26 Thread Ken Arromdee
On Mon, 25 Oct 2004, Josh Triplett wrote:
  I would disqualify that driver from main not because it depended on a
  Windows driver, but because it depended on having Windows itself.
 I see; so some dependencies on non-free software are to be considered
 acceptable, while others are not?

I meant dependency in the same sense that a driver might depend on there
being something in an eprom or other replaceable part.  If you agree that
that's dependency, then yes some dependencies on non-free software are
acceptable.

  hardware/eprom and hardware/CD combinations, hardware/Windows isn't sold
  together and the user would have to get Windows separately--not because he
 And in many cases, the user would need to get the firmware for a device
 separately.  Not all drivers that require firmware images provide the
 means to extract it from a manufacturer's CD; some choose to extract it
 from updates provided on the manufacturer's website, or from Windows
 drivers obtained separately, or downloaded from the Linux driver
 author's site.  Some firmware images have even been sniffed off of a bus
 during the reverse engineering used to create the Linux driver.

I think that this is a good place to stick to the spirit of the rules.  If
anyone with the hardware can get the firmware under restrictions no worse than
if it was physically part of the hardware, then treat it as if it was
physically part of the hardware.

 And what of my second suggested case (which you omitted in your reply),
 where the Linux driver could load the necessary piece of the Windows
 driver without needing Windows?  Would you permit that driver to go in
 main, since it would only require the Windows driver and not Windows
 itself?  Your argument seems to suggest that you would.

It would only suggest this if hardware+Windows driver gives the user the same
rights as hardware+eprom would.  I think this is unlikely to be the case.

 Many hardware devices are also general-purpose pieces of equipment,
 using general-purpose processors, whose firmware is just software
 compiled for that architecture.  The point of firmware is generally to
 make a piece of hardware less hard-wired and more reparable, which is to
 some extent a step in the direction of general-purpose.

In other words, whether or not the device is general-purpose enough that
something uploaded to it should be treated as part of the device is a
judgment call.  Yes, that is true.

 On the other hand, the arguments for _not_ including such drivers in
 main are trivially explainable with one simple test: can someone with
 the necessary hardware, having only main in their sources.list, and
 without installing any non-Debian software, build, install, and
 successfully run the package?

Those requirements are assuming the conclusion.  The question is about how to
treat software in comparison to hardware.  That list of requirements specifies
that hardware and software should be treated differently and thus assumes a
particular answer to the question.

 Finally, I'm curious: what is it that makes people so adamant that these
 drivers should be in main, rather than contrib?  You and others have
 mentioned various practical arguments, but none related to freedom.

The argument it's as free as this other thing, which you consider free
enough *is* about freedom.



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Heck, for all I know there's a device out there where the firmware on
disk is verilog code, and it's compiled by the driver and loaded to
an FPGA on the device.

Surely that's software.
I'm not so sure that an FPGA design is software (for sane definitions of
software).

Why draw the line at software, then?  Why not wish for open specs for
all the chips, so you can modify the CPU or GPU?
I do, don't you? But still this does not make it true, and I have to
accept reality.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

While this is true, it is incomplete: the driver Depends, in the
policy sense, on the device, and the device Depends on the firmware.
I do not think policy can justify this.

 Obviously any kind of device driver has limited practical use[1] if
 you do not own the hardware device, and so are programs like ICQ and
 AIM clients if you do not have access to the proprietary servers
 they connect to, but still policy does not require to keep this kind
 of free software out of Debian.
It's not just the proprietary server code, but the actual servers that
are necessary.  That is, you need the machines running them --
hardware, a black box outside Debian's control.
So what? User's hardware is outside Debian control as well. Or you think
that Debian should control user's hardware? This sounds a bit like DRM
to me.

I do think that closed-system clients don't belong in Debian
(differentiating OSCAR, for example, from whatever the closed AIM
protocol of the week is -- I don't follow technical developments
there very closely.)
You are entitled to your opinions however stupid they are, but they are
off topic in the context of interpreting policy.

 [1] But it may be an invaluable source of code and ideas to use in other
 projects...
That source of ideas is not enough to change a Depends to a Suggests,
or we'd have nothing in contrib.
I did not propose this.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

On Mon, Oct 25, 2004 at 04:43:50PM +0200, Marco d'Itri wrote:
  Please repeat after me: drivers do not require firmwares, hardware
  devices require firmwares.
 Then, how do you explain the ipw2200 case where driver version 0.5 and
 less will only work with a certain firmware and version 0.6 and more
 will only work with an other firmware ? Isn't that what we could call
 a requirement ?
 No, why? I can't see how this could be related to my argument.
I'm telling you some drivers *do depend* on a certain firmware. You're
still repeating the opposite. Now explain me how in ipw2200 case the
driver doesn't *depend* on the firmware, since you seem to know the
truth.
You are using a different meaning of depend than the one used by
policy. I can't see why it should matter if a device driver is designed
to use features present in a specific firmware revision.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

On Mon, Oct 25, 2004 at 11:44:37AM +0200, Marco d'Itri wrote:
 Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.
The driver is opening a block of data on disk, reading it and sending it
to the hardware.  If that data does not exist, the driver will be
incapable of driving the hardware.  For the driver to work, in addition
to installing it and the hardware device, you have to find and install
a copy of the firmware to where the driver expects to find it.
No, this is not correct. If the firmware is not loaded the hardware
device will not provide some features, but the driver is still capable
to use them, if they were available.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

In cases where firmware is basically indistinguishable from hardware,
we treat it as hardware, and not as software.
Really? Which part of policy states this?

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Brian Thomas Sniffen
Marco d'Itri [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] wrote:

Heck, for all I know there's a device out there where the firmware on
disk is verilog code, and it's compiled by the driver and loaded to
an FPGA on the device.

Surely that's software.
 I'm not so sure that an FPGA design is software (for sane definitions of
 software).

Then there's no point continuing this conversation.  An FPGA design,
living as a file on disk and possibly even shipped by Debian is
clearly software under Debian's definitions.  Runtime-loaded firmware
is clearly software for the same reasons.  If you don't believe one,
it's no surprise you won't believe the other -- but since Debian
clearly disagrees with you on one, it's no surprise you're in
disagreement on the other.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Brian Thomas Sniffen
Yes, Marco.  We all understand the model you propose, based around the
idea all firmware is essentially hardware, even if it's clearly a
file that has to be there on disk for a driver to function.  An
equally valid model has been proposed around the idea that all
software is software, and anything that can't be touched from software
is hardware.

I think you need to not so much convince others your model is the sole
right model as that it is a more attractive model, in a free software
sense, than theirs.

So far, your ranting and insults  have done little to convince me.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Mike Hommey
On Tue, Oct 26, 2004 at 12:23:43PM +0200, Marco d'Itri wrote:
 [EMAIL PROTECTED] wrote:
 I'm telling you some drivers *do depend* on a certain firmware. You're
 still repeating the opposite. Now explain me how in ipw2200 case the
 driver doesn't *depend* on the firmware, since you seem to know the
 truth.
 You are using a different meaning of depend than the one used by
 policy. I can't see why it should matter if a device driver is designed
 to use features present in a specific firmware revision.

Let's port this sentence into an other context.
I can't see why it should matter if a program is designed to use
features present in a specific library revision

Mike



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
 Yes, Marco.  We all understand the model you propose, based around the
 idea all firmware is essentially hardware, even if it's clearly a
 file that has to be there on disk for a driver to function.  An
 equally valid model has been proposed around the idea that all
 software is software, and anything that can't be touched from software
 is hardware.

Two issues:

1) The social contract doesn't give us any leeway here. There's no
way to claim that hardware doesn't have to conform to the DFSG, and
there's no way to claim that large parts of Debian don't require that
hardware.

2) The contents of an eeprom can generally be touched from software. You
need a firmer basis for your line.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Michael Poole
Glenn Maynard writes:

 On Mon, Oct 25, 2004 at 11:40:22PM -0400, Michael Poole wrote:
   That doesn't really change the fact that drivers that only work after
   pointing it at a non-free data block have a non-free dependency, and
   belong in contrib, though.
  
  The driver operates as designed regardless of what is in the firmware
  array, file, EEPROM, etc.  The device does not.  For me, the explicit
  interface between peripheral and CPU makes the distinction clear.
 
 Firmware not found is operating as designed, but I don't think that
 qualifies as the driver being functional, any more than cannot open
 shared object file: No such file or directory.

Not at all.  If you fill the block with random data, the driver will
continue to do what you expect and what you can follow by reading its
source code.  It is the device that will not perform and that will not
live up to its end of the interface.  That is why I referred earlier
to a hypothetical device that ignored the firmware you send to it.

Michael Poole



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:

 It's different because, when the firmware is built into the device,
 the person who has the device has the firmware.

 Note that this difference is similar in character to the difference
 between main and contrib.

How? Main is free software that doesn't require non-free code.
Contrib is free software that does require non-free code.

Note that the social contract does not use the word depends. Code goes
in contrib if it requires non-free code regardless of whether or not
that is expressed as a dependency in the package management sense. All
of the hardware under discussion requires non-free code.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 Raul Miller [EMAIL PROTECTED] wrote:
  It's different because, when the firmware is built into the device,
  the person who has the device has the firmware.
 
  Note that this difference is similar in character to the difference
  between main and contrib.

On Tue, Oct 26, 2004 at 01:39:03PM +0100, Matthew Garrett wrote:
 How? Main is free software that doesn't require non-free code.
 Contrib is free software that does require non-free code.

I said similar, not identical.

The difference I was referring to was the difference of convenience --
using software from contrib requires a few extra steps.  Similarly,
using an external copy of firmware requires a few extra steps.

 Note that the social contract does not use the word depends.

It uses require, which is close enough.

 Code goes in contrib if it requires non-free code regardless of whether
 or not that is expressed as a dependency in the package management sense.

Agreed -- though obviously the package management sense is intended to
represent a similar concept.  [A different kind of similarity from the
one I mentioned above.]

 All of the hardware under discussion requires non-free code.

That's one way of looking at it.

From within a framework of thought that looks at the issue that way:
where meeting the hardware's non-free code requirements is totally out
of our control, we don't do anything about the issue.

Similarly, we distribute web browsers which visit servers where those
servers require non-free code.  For the cases where those servers are
totally out of our control, we don't do anything about that issue.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 [EMAIL PROTECTED] wrote:
 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.

On Tue, Oct 26, 2004 at 12:27:09PM +0200, Marco d'Itri wrote:
 Really? Which part of policy states this?

Historical practice.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 Raul Miller [EMAIL PROTECTED] wrote:
  Note that this difference is similar in character to the difference
  between main and contrib.
 
 On Tue, Oct 26, 2004 at 01:39:03PM +0100, Matthew Garrett wrote:
 How? Main is free software that doesn't require non-free code.
 Contrib is free software that does require non-free code.
 
 I said similar, not identical.
 
 The difference I was referring to was the difference of convenience --
 using software from contrib requires a few extra steps.  Similarly,
 using an external copy of firmware requires a few extra steps.

The contrib distinction is nothing to do with convenience - it's to do
with segregation of free material from material with non-free
dependencies. We do this because we are a free software distribution.
You might as well claim that the difference is similar in character
between Debian and Ubuntu - an installation of Debian requires a few
extra steps to get X configured. It's true, but it's not useful.

 Note that the social contract does not use the word depends.
 
 It uses require, which is close enough.

No. Depends has a very specific meaning within Debian. All dependecies
are requirements - not all requirements are dependencies. 

 All of the hardware under discussion requires non-free code.
 
 That's one way of looking at it.
 
From within a framework of thought that looks at the issue that way:
 where meeting the hardware's non-free code requirements is totally out
 of our control, we don't do anything about the issue.

That's a viewpoint that isn't enshrined in policy or the social
contract. Point 1 of the social contract is quite clear that we can't
distribute material in main if it requires non-free components. The
firmware in these devices is non-free. The logical conclusion is that we
can't ship any driver that requires non-free frimware, regardless of
whether this is in ROM or on CD.

The other logical conclusion is that the social contract is buggy and
needs fixing. The benefit of hindsight, eh?

 Similarly, we distribute web browsers which visit servers where those
 servers require non-free code.  For the cases where those servers are
 totally out of our control, we don't do anything about that issue.

Browsers do not require non-free code - they are merely able to make use
of it.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.
 
 On Tue, Oct 26, 2004 at 12:27:09PM +0200, Marco d'Itri wrote:
 Really? Which part of policy states this?
 
 Historical practice.

Historical practice allowed non-free material that wasn't code into
main. We argued that this was not allowed under the social contract and
the DFSG, and in the end people were forced to agree. I am now arguing
that the social contract gives us no right to engage in this form of
historical practice - given the current wording of the social contract,
I think you'll find it difficult to argue otherwise.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Brian Thomas Sniffen
Michael Poole [EMAIL PROTECTED] writes:
 Not at all.  If you fill the block with random data, the driver will
 continue to do what you expect and what you can follow by reading its
 source code.  It is the device that will not perform and that will not
 live up to its end of the interface.  That is why I referred earlier
 to a hypothetical device that ignored the firmware you send to it.

So if I have a program which loads a library, and replace the library
with random data, the program will continue to do what I expect and
what I can follow by reading its source.  It is the library that will
not perform, not living up to its end of the interface?

Your arguments seem to lack an internal consistency.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Brian Thomas Sniffen
Matthew Garrett [EMAIL PROTECTED] writes:

 main. We argued that this was not allowed under the social contract and
 the DFSG, and in the end people were forced to agree. I am now arguing
 that the social contract gives us no right to engage in this form of
 historical practice - given the current wording of the social contract,
 I think you'll find it difficult to argue otherwise.

OK.  What course of action do you advocate?  So far I hear you telling
other people they're wrong -- useful if they are, not so useful if
they're the least wrong of all possible arguments -- but I haven't
heard what you'd like to do about the firmware issue.

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Brian Thomas Sniffen [EMAIL PROTECTED] wrote:

 OK.  What course of action do you advocate?  So far I hear you telling
 other people they're wrong -- useful if they are, not so useful if
 they're the least wrong of all possible arguments -- but I haven't
 heard what you'd like to do about the firmware issue.

Modify the social contract to create a new section that would be
distributed alongside main, and put the firmware in there. This doesn't
compromise our desire to keep main free of non-free material, and nor
does it result in us being unable to support vast swathes of users.

Whatever solution we adopt (other than throwing every driver that uses
any hardware containing non-free code out of main) requires altering the
social contract. I see no harm in choosing the course of action that
does most to benefit our users and doesn't cause any increase in the
amount of non-free code on someone's machine.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Michael Poole
Brian Thomas Sniffen writes:

 Michael Poole [EMAIL PROTECTED] writes:
  Not at all.  If you fill the block with random data, the driver will
  continue to do what you expect and what you can follow by reading its
  source code.  It is the device that will not perform and that will not
  live up to its end of the interface.  That is why I referred earlier
  to a hypothetical device that ignored the firmware you send to it.
 
 So if I have a program which loads a library, and replace the library
 with random data, the program will continue to do what I expect and
 what I can follow by reading its source.  It is the library that will
 not perform, not living up to its end of the interface?

The driver does not call to or use the firmware.  It uses the device.
This is not at all the same as the loadable library case.

In my day job, I work on a device driver that can talk to a device
programmed using several different firmwares.  Other drivers I have
worked on can downloaded firmware but the boards also have EEPROMs
that hold default firmwares.  Importantly, the drivers do not behave
differently based on whether the default firmware or any of several
custom firmwares are used; the differing behavior is of interest to
the application, not the driver.

 Your arguments seem to lack an internal consistency.

By demanding that some hardware components of a system be free, while
exempting other hardware from the same requirement, your arguments are
the ones that seem to lack consistency.

Michael Poole



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 Raul Miller [EMAIL PROTECTED] wrote:
  I said similar, not identical.
  
  The difference I was referring to was the difference of convenience --
  using software from contrib requires a few extra steps.  Similarly,
  using an external copy of firmware requires a few extra steps.

On Tue, Oct 26, 2004 at 02:52:28PM +0100, Matthew Garrett wrote:
 The contrib distinction is nothing to do with convenience

Ok, so contrib is just as convenient as main, for everyone.

 - it's to do with segregation of free material from material with non-free
 dependencies. We do this because we are a free software distribution.
 You might as well claim that the difference is similar in character
 between Debian and Ubuntu - an installation of Debian requires a few
 extra steps to get X configured. It's true, but it's not useful.

I agree that the purpose for having contrib is so that we can easily
distinguish between software which we have depend on non-free software
and software where we don't have such dependencies.

  Note that the social contract does not use the word depends.
  
  It uses require, which is close enough.
 
 No. Depends has a very specific meaning within Debian. All dependecies
 are requirements - not all requirements are dependencies. 

Depends:  has a very specific meaning within Debian.

This doesn't mean that depends loses all other meaning within Debian.

  All of the hardware under discussion requires non-free code.
  
  That's one way of looking at it.
  
 From within a framework of thought that looks at the issue that way:
  where meeting the hardware's non-free code requirements is totally out
  of our control, we don't do anything about the issue.
 
 That's a viewpoint that isn't enshrined in policy or the social
 contract.

True, in the sense that it's an informal point of view, and not a
sacred one.

However, the question is really one of scope.  For example, all known
instances of the x86 architecture require non-free code in their
manufacture.  We consider those requirements to be outside the scope
of Debian.

 Point 1 of the social contract is quite clear that we can't
 distribute material in main if it requires non-free components. The
 firmware in these devices is non-free. The logical conclusion is that we
 can't ship any driver that requires non-free frimware, regardless of
 whether this is in ROM or on CD.

The problem with logic is that when you feed it garbage you get garbage
results.

Alternatively, you can treat the presence of garbage results as an
indication that your data is garbage.

Since your claim is equivalent to claiming that Debian should distribute
nothing in main, I'm going to treat your fundamental assertions as
garbage.  This is not a criticism of your person, I just don't see any
positive benefit in what you are currently advocating.

 The other logical conclusion is that the social contract is buggy and
 needs fixing. The benefit of hindsight, eh?

[1] Fixing the social contract is outside the scope of debian-legal.

[2] In the context of debian-legal, the spirit of the social contract
is the issue, not some narrow technical reading.

[3] The social contract is written in english, which means that there
will always be ambiguous interpretations which conflict with what we want.

  Similarly, we distribute web browsers which visit servers where those
  servers require non-free code.  For the cases where those servers are
  totally out of our control, we don't do anything about that issue.
 
 Browsers do not require non-free code - they are merely able to make use
 of it.

That's a valid point.  That is, it's valid as long as you limit your
scope of consideration to so that you're ignoring non-free code in the
design, manufacture or support of the systems needed for the typical
operation of that browser.  [For example, non-free code at internet
routers and switches.]

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Then there's no point continuing this conversation.  An FPGA design,
living as a file on disk and possibly even shipped by Debian is
clearly software under Debian's definitions.  Runtime-loaded firmware
I was not discussing Debian's definitions now.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.
 Really? Which part of policy states this?
Historical practice.
OK, thank you for confirming that this has no foundation in the policy.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

 I'm telling you some drivers *do depend* on a certain firmware. You're
 still repeating the opposite. Now explain me how in ipw2200 case the
 driver doesn't *depend* on the firmware, since you seem to know the
 truth.
 You are using a different meaning of depend than the one used by
 policy. I can't see why it should matter if a device driver is designed
 to use features present in a specific firmware revision.
Let's port this sentence into an other context.
I can't see why it should matter if a program is designed to use
features present in a specific library revision
So? What is your point?

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Yes, Marco.  We all understand the model you propose, based around the
idea all firmware is essentially hardware, even if it's clearly a
file that has to be there on disk for a driver to function.  An
Now it's quite clear that you did not understand at all what I have
been proposing for months now, because I have never believed what you
write here.

(BTW, please stop sending me copies of every mail, even if you never
managed to read the debian document which asks to not do this it should
be obvious by now that I read this list.)

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 Brian Thomas Sniffen writes:
  So if I have a program which loads a library, and replace the library
  with random data, the program will continue to do what I expect and
  what I can follow by reading its source.  It is the library that will
  not perform, not living up to its end of the interface?

On Tue, Oct 26, 2004 at 11:33:21AM -0400, Michael Poole wrote:
 The driver does not call to or use the firmware.  It uses the device.
 This is not at all the same as the loadable library case.

In cases where the driver doesn't function without the proper action of
the firmware loader, it's pretty clear that the driver depends on the
firmware loader.  If the firmware loader is in contrib, then the driver
should be in contrib, too.

 In my day job, I work on a device driver that can talk to a device
 programmed using several different firmwares.  Other drivers I have
 worked on can downloaded firmware but the boards also have EEPROMs
 that hold default firmwares.  Importantly, the drivers do not behave
 differently based on whether the default firmware or any of several
 custom firmwares are used; the differing behavior is of interest to
 the application, not the driver.

This sounds like a fairly well designed (and somewhat transparent)
interface.

That said, it sounds like the drivers do behave differently depending on
the firmware -- you've asserted that the difference is not of interest
to the driver, but that's not at all the same as asserting that there
is no difference.

  Your arguments seem to lack an internal consistency.
 
 By demanding that some hardware components of a system be free, while
 exempting other hardware from the same requirement, your arguments are
 the ones that seem to lack consistency.

The requirement is not that the hardware be free.

The requirement is that the software be free, and that it not have
dependencies on non-free software.

It should be clear (even if you don't think it makes sense) that currently
we make a distinction between things we deal with as if they are software
and things which we deal with as if they are not software?

If that's not clear, I suppose we could go over the basics again.

If that's clear, but you think that something else makes more sense,
maybe you could talk about what the consequences of your point of view
would be on Debian?  Changes which advance our goals are good things.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
  OK.  What course of action do you advocate?

On Tue, Oct 26, 2004 at 04:12:20PM +0100, Matthew Garrett wrote:
 Modify the social contract to create a new section that would be
 distributed alongside main, and put the firmware in there.

This is the wrong mailing list for that sort of proposal.

Debian-project is probably a better list for that discussion.  Or, if
you feel that you've sorted out most of the views which are important
to other developers, debian-vote.

But, please realise that there will be other people focussing on other
issues who will interpret what you say in some fashion which is radically
different from the way you're thinking about it.

And, I think that you'll need to place some attention on slippery slope
issues, before a proposal to add a new component of debian that's not
really free section has any chance at all of getting accepted.

Personally, I'm more than a little dubious of the concept -- the role
of your proposed new section seems to be exactly the same role as
non-free.  Except -- rather than being a convenience for some of our
web-connected users, you want it to have the operational status as main.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Adam McKenna
On Tue, Oct 26, 2004 at 04:12:20PM +0100, Matthew Garrett wrote:
 Brian Thomas Sniffen [EMAIL PROTECTED] wrote:
 
  OK.  What course of action do you advocate?  So far I hear you telling
  other people they're wrong -- useful if they are, not so useful if
  they're the least wrong of all possible arguments -- but I haven't
  heard what you'd like to do about the firmware issue.
 
 Modify the social contract to create a new section that would be
 distributed alongside main, and put the firmware in there. This doesn't
 compromise our desire to keep main free of non-free material, and nor
 does it result in us being unable to support vast swathes of users.

'Main' is what we ship.  Splitting it into two parts and calling one part
something else does not make it any different.  If you're going to try to
amend the social contract, you might as well amend itto allow non-free
firmware into main (after satisfactorily defining 'firmware', of course).

--Adam



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Adam McKenna
On Tue, Oct 26, 2004 at 11:51:22AM +0100, Matthew Garrett wrote:
 1) The social contract doesn't give us any leeway here. There's no
 way to claim that hardware doesn't have to conform to the DFSG

The S in DFSG stands for Software, so I don't see how you would get that it
applies to hardware.  Perhaps what we are discussing is the fuzzy line
between hardware and software, but the problem lies in defining what is
hardware or software, not in trying to apply the DFSG to hardware.

--Adam
-- 
Adam McKenna  [EMAIL PROTECTED]  [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
  In cases where firmware is basically indistinguishable from hardware,
  we treat it as hardware, and not as software.

  Really? Which part of policy states this?

 [EMAIL PROTECTED] wrote:
 Historical practice.

On Tue, Oct 26, 2004 at 06:07:28PM +0200, Marco d'Itri wrote:
 OK, thank you for confirming that this has no foundation in the policy.

Where there is no explicit policy in either direction on some issue, good
technical judgement and consensus, which historical practice generally
represents, is the best foundation for future policies.

-- 
Raul



Re: non-free firmware: driver in main or contrib

2004-10-26 Thread Josh Triplett
Ken Arromdee wrote:
 On Mon, 25 Oct 2004, Josh Triplett wrote:
I would disqualify that driver from main not because it depended on a
Windows driver, but because it depended on having Windows itself.

I see; so some dependencies on non-free software are to be considered
acceptable, while others are not?
 
 I meant dependency in the same sense that a driver might depend on there
 being something in an eprom or other replaceable part.  If you agree that
 that's dependency, then yes some dependencies on non-free software are
 acceptable.

That's an interesting way of evading the question; you never actually
said why you thought it was OK to depend on a Windows driver, but not to
depend on Windows.  Both are non-free, and neither is in our archive.

Yes, a driver does depend on something in an eprom on a hardware
device, but as that something is part of the hardware, and Debian
doesn't consider dependencies on hardware, then we don't express it; it
isn't a dependency on non-free software, it's a dependency on hardware.
 On the other hand, a dependency on a software item, such as Windows, a
Windows driver, or a firmware image, must be taken into account.

hardware/eprom and hardware/CD combinations, hardware/Windows isn't sold
together and the user would have to get Windows separately--not because he

And in many cases, the user would need to get the firmware for a device
separately.  Not all drivers that require firmware images provide the
means to extract it from a manufacturer's CD; some choose to extract it
from updates provided on the manufacturer's website, or from Windows
drivers obtained separately, or downloaded from the Linux driver
author's site.  Some firmware images have even been sniffed off of a bus
during the reverse engineering used to create the Linux driver.
 
 I think that this is a good place to stick to the spirit of the rules.  If
 anyone with the hardware can get the firmware under restrictions no worse than
 if it was physically part of the hardware, then treat it as if it was
 physically part of the hardware.

If we were following the spirit of the rules, I don't think we'd be
having this discussion.

It is well-known that we don't express dependencies on hardware.  It is
also well-known that some pieces of hardware are internally implemented
using firmware.  However, this does not mean that it is acceptable to

And what of my second suggested case (which you omitted in your reply),
where the Linux driver could load the necessary piece of the Windows
driver without needing Windows?  Would you permit that driver to go in
main, since it would only require the Windows driver and not Windows
itself?  Your argument seems to suggest that you would.
 
 It would only suggest this if hardware+Windows driver gives the user the same
 rights as hardware+eprom would.  I think this is unlikely to be the case.

It seems to me that you have created a criteria to compare to that is
specifically designed to support the one case you are interested in,
that of dependencies on non-free firmware images that must be supplied
by the user.

Many hardware devices are also general-purpose pieces of equipment,
using general-purpose processors, whose firmware is just software
compiled for that architecture.  The point of firmware is generally to
make a piece of hardware less hard-wired and more reparable, which is to
some extent a step in the direction of general-purpose.
 
 In other words, whether or not the device is general-purpose enough that
 something uploaded to it should be treated as part of the device is a
 judgment call.  Yes, that is true.

Or you could just say that things which are actually *part of the
device* should be considered part of the device, and things which are
not part of the device, such as separate firmware images supplied by the
user, should not be considered part of the device.

On the other hand, the arguments for _not_ including such drivers in
main are trivially explainable with one simple test: can someone with
the necessary hardware, having only main in their sources.list, and
without installing any non-Debian software, build, install, and
successfully run the package?
 
 Those requirements are assuming the conclusion.  The question is about how to
 treat software in comparison to hardware.  That list of requirements specifies
 that hardware and software should be treated differently and thus assumes a
 particular answer to the question.

It is already generally accepted that Debian does not express
dependencies on hardware, and that we do express dependencies on
software.  If you wish to change that, then you are arguing against the
status quo, so the burden of proof for why we should do that is on you.

I don't think you will find anyone in this discussion seriously
advocating the position that we should treat hardware and software
identically; that position would imply that since almost all hardware is
non-free, all hardware-dependent pieces of Debian would need to be in

Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
  That said, it sounds like the drivers do behave differently depending on
  the firmware -- you've asserted that the difference is not of interest
  to the driver, but that's not at all the same as asserting that there
  is no difference.

On Tue, Oct 26, 2004 at 01:47:06PM -0400, Michael Poole wrote:
 The drivers really do nothing differently based on the firmware[1].

In the sense that providing a -1 is no different from providing a 0,
or in the sense that providing a 100k message is no different from
providing an empty string, sure -- no difference at all.

It's a matter of point of view.

  If that's clear, but you think that something else makes more sense,
  maybe you could talk about what the consequences of your point of view
  would be on Debian?  Changes which advance our goals are good things.
 
 Drivers that talk to firmware-requiring devices would be allowed in
 main, rather than in kernel modules or patches kept outside Debian
 proper.  The firmware files themselves would have to be provided by
 the user or in non-free, unless they qualify under the DFSG[2].  I
 believe this is the direction being taken for the Linux kernel in
 general (to not contain opaque blobs, but to provide a facility to
 load them when needed).

And what are the consequences to Debian with this choice?

In particular, what freedoms do you think it is acceptable for us to
require of any opaque blobs that we would be distributing with main?

Is it acceptable for us to require that reverse engineering be allowed
of things we distribute with main?

Is it acceptable for us to be able to ship updated copies when the changes
come from someone with no legal approval from the original author of these
opaque blobs?

Is it acceptable for us to distribute opaque blobs which can only be
used in educational settings, or which require registration before they
can be unlocked?

Are you saying that you want us to ship opaque blobs where we take no
responsibility whatsoever for their character?

Thanks,

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Michael Poole
Raul Miller writes:

   That said, it sounds like the drivers do behave differently depending on
   the firmware -- you've asserted that the difference is not of interest
   to the driver, but that's not at all the same as asserting that there
   is no difference.
 
 On Tue, Oct 26, 2004 at 01:47:06PM -0400, Michael Poole wrote:
  The drivers really do nothing differently based on the firmware[1].
 
 In the sense that providing a -1 is no different from providing a 0,
 or in the sense that providing a 100k message is no different from
 providing an empty string, sure -- no difference at all.
 
 It's a matter of point of view.

I am quite certain that you have never worked with the drivers I was
describing, and the chance you have worked with any of the boards is
nearly zero.  Your assumption that the differences are anything like
you describe is baseless, and your inference that my description is so
wrong is insulting.

   If that's clear, but you think that something else makes more sense,
   maybe you could talk about what the consequences of your point of view
   would be on Debian?  Changes which advance our goals are good things.
  
  Drivers that talk to firmware-requiring devices would be allowed in
  main, rather than in kernel modules or patches kept outside Debian
  proper.  The firmware files themselves would have to be provided by
  the user or in non-free, unless they qualify under the DFSG[2].  I
  believe this is the direction being taken for the Linux kernel in
  general (to not contain opaque blobs, but to provide a facility to
  load them when needed).
 
 And what are the consequences to Debian with this choice?

It depends on whether you assume users can and will use contrib or
non-free.  If you assume that, I do not think it has significant
impact, although it is likely to save the kernel packagers lots of
work.  If you assume users cannot or will not use contrib or non-free,
it is the difference between users needing to supply firmware or both
driver and firmware (and likely recompiling their kernel).

 In particular, what freedoms do you think it is acceptable for us to
 require of any opaque blobs that we would be distributing with main?

My suggestion does not involve distributing opaque blobs with main.
To repeat: THE FIRMWARE FILES THEMSELVES WOULD HAVE TO BE PROVIDED BY
THE USER OR IN NON-FREE, UNLESS THEY QUALIFY UNDER THE DFSG.  For
example, some firmware blobs in the Linux kernel are the output of an
assembler, and the assembly source is included in Linux.  That kind of
firmware blob is not opaque, and could be distributed in main.

 Is it acceptable for us to require that reverse engineering be allowed
 of things we distribute with main?

Certainly, although I think everything in main should have something
like source code, which would make reverse engineering pointless in
most cases.

 Is it acceptable for us to be able to ship updated copies when the changes
 come from someone with no legal approval from the original author of these
 opaque blobs?

I am not sure what you mean.  The DFSG require that Debian (or third
parties) be able to freely modify anything in main and distribute
those modifications (possibly in the form of patches).

 Is it acceptable for us to distribute opaque blobs which can only be
 used in educational settings, or which require registration before they
 can be unlocked?

You are pretty clearly acting trollish here.

 Are you saying that you want us to ship opaque blobs where we take no
 responsibility whatsoever for their character?

I have said nothing of the sort.  Would you like to apologize for
being such a boorish insulting troll, or should I just write you off
as someone not worth listening to?

Michael Poole



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 On Mon, Oct 25, 2004 at 11:46:03PM +0100, Matthew Garrett wrote:
 I see nothing that suggests that non-free component is only meant to
 apply to material shipped by Debian.  Nor is there any suggestion that
 it applies only to software (which is unsurprising, given the care
 taken to remove all reference to software).
 
 Do you really not see the references to Software in that quoted text?

The Debian Free Software Guidelines are used to determine the freeness
or otherwise of any component of the Debian system or anything that it
relies upon. That was made clear in the discussion surrounding the GR
that changed the wording.

 How do you claim that the social contract allows us to ship any drivers
 that require non-free firmware, even if they're on the PCB?
 
 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.

Where it suits us, we ignore the social contract.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Glenn Maynard
On Tue, Oct 26, 2004 at 12:27:09PM +0200, Marco d'Itri wrote:
 In cases where firmware is basically indistinguishable from hardware,
 we treat it as hardware, and not as software.
 Really? Which part of policy states this?

It's very interesting how quickly people who fail badly at backing their
arguments on principle fall back to using Policy as a stick--despite the
fact that the governing document here is the Social Contract, which I should
hope still takes precedence over policy ...

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 On Tue, Oct 26, 2004 at 04:12:20PM +0100, Matthew Garrett wrote:
 Modify the social contract to create a new section that would be
 distributed alongside main, and put the firmware in there.
 
 This is the wrong mailing list for that sort of proposal.

That's why I'm not actively proposing it here. Brian asked me a
question, and I answered it.

 Debian-project is probably a better list for that discussion.  Or, if
 you feel that you've sorted out most of the views which are important
 to other developers, debian-vote.

Indeed. After Sarge is released, I intend to spend some time on working
this out properly.

 Personally, I'm more than a little dubious of the concept -- the role
 of your proposed new section seems to be exactly the same role as
 non-free.  Except -- rather than being a convenience for some of our
 web-connected users, you want it to have the operational status as main.

It is certainly the case that I would like our users to be able to use
their computers regardless of the mechanism that the vendor uses to ship
firmware, yes. Remember that we don't ship contrib as part of the
installer, either.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Adam McKenna [EMAIL PROTECTED] wrote:

 'Main' is what we ship.  Splitting it into two parts and calling one part
 something else does not make it any different.  If you're going to try to
 amend the social contract, you might as well amend itto allow non-free
 firmware into main (after satisfactorily defining 'firmware', of course).

I think there's a difference, but as Raul said, this is not the place to
have this discussion.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Glenn Maynard [EMAIL PROTECTED] wrote:

 The status quo, as I understand it, is that firmware which is uploaded
 from disk by a driver is a dependency, but firmware embedded in the hardware
 is treated as part of the hardware--that's certainly how it looks and acts
 to me, as a user.  I believe this is consistent with the SC, though of
 course I don't claim it's the only rational way to interpret it.

I think it's the only rational way to interpret it that's consistent
with the discussion surrounding the GR. The entire point of changing the
social contract was to make it clear that the DFSG were supposed to be
used on everything that Debian shipped or required on, rather than it
being limited to software.

 Marco's argument appears to be that drivers should be allowed in main
 that only function if they have access to a non-free firmware blob;
 that a driver that, lacking the file, merely bails and says download
 this non-free piece first should be allowed in main.

I'm fairly unconcerned about Marco's argument.

 I think your interpretation is a rational one, but I havn't seen an
 argument of why it's a better one.  It seems clear that this interpretation
 would almost no drivers at all, which makes it impractical.

If a logical interpretation of the social contract results in an
impractical situation and no practical situation can be reached without
some contortions of logic, it implies that the social contract doesn't
say what we mean it to say and should be changed.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Don Armstrong [EMAIL PROTECTED] wrote:

 So your argument is, in effect, that because we can't ship DFSG Free
 computers (I mean, the system requires them after all) then we
 should just give up and go home?
 
 Or are you trying to say that because we can't satisfy SC 1 for
 hardware, we should also ignore it for software?

No. My argument is that the social contract is unclear and should be
altered. A strict interpretation of it implies that we can't produce a
useful operating system - since Debian exists in order to provide a
useful operating system, we need to change that implication.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Glenn Maynard
On Tue, Oct 26, 2004 at 08:41:02PM +0100, Matthew Garrett wrote:
 I think it's the only rational way to interpret it that's consistent
 with the discussion surrounding the GR. The entire point of changing the
 social contract was to make it clear that the DFSG were supposed to be
 used on everything that Debian shipped or required on, rather than it
 being limited to software.

No, the entire point was to make it clear that, as far as the Social
Contract is concerned, everything in Debian is software.  (This is
my understanding, based both on the changes made by 2004-003 and the
discussions surrounding it.)  Note that the DFSG was not renamed to
the Debian Free Stuff Guidelines, and the word software is still
used four times in the SC (not including its use in the phrase DFSG).

(The echoes of those discussions are still reverberating in my skull, so
if you disagree with my interpretation above, I'll probably settle with
disagreeing and not try to convince you on that point--debating the
content of the discussions would mean digging them out again, and I'm
just not up to that right now.)

You seem to be arguing, now, that the Social Contract is inherently
unfulfillable, by claiming that 2004-003 made the SC apply to hardware
as well (for the purposes of require the use ...).  This interpretation
of the Social Contract is simply not the one Debian uses, or has ever used,
nor do I recall any significant discussion during 2004-003 suggesting
that this was the intent.

 If a logical interpretation of the social contract results in an
 impractical situation and no practical situation can be reached without
 some contortions of logic, it implies that the social contract doesn't
 say what we mean it to say and should be changed.

There is no contortion of logic involved in the conclusion that the
Social Contract is only talking about the stuff that Debian ships (or
is logically capable of shipping), and not the physical hardware that
stuff runs on.

Now, if you believe that Debian's current interpretation of the SC and
DFSG (ignoring 2004-004) is an illogical one, feel free to pose the
argument to d-project.  If you're correct, fixing this would require
another GR to change the SC; it's not something fixable by policy, as
I understand things.

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
 Raul Miller writes:
  It's a matter of point of view.

On Tue, Oct 26, 2004 at 03:42:41PM -0400, Michael Poole wrote:
 I am quite certain that you have never worked with the drivers I was
 describing, and the chance you have worked with any of the boards is
 nearly zero.  Your assumption that the differences are anything like
 you describe is baseless, and your inference that my description is so
 wrong is insulting.

I was describing data differences.

The significance of data differences are in the mind of the beholder.
Drivers have nothing to do with significance.  You know that -- that's
practically your point.

  And what are the consequences to Debian with this choice?
 
 It depends on whether you assume users can and will use contrib or
 non-free.  If you assume that, I do not think it has significant
 impact, although it is likely to save the kernel packagers lots of
 work.  If you assume users cannot or will not use contrib or non-free,
 it is the difference between users needing to supply firmware or both
 driver and firmware (and likely recompiling their kernel).

I assume that some users will use contrib or non-free, and that some
won't.

That assumption shouldn't surprise you.

  In particular, what freedoms do you think it is acceptable for us to
  require of any opaque blobs that we would be distributing with main?
 
 My suggestion does not involve distributing opaque blobs with main.
 To repeat: THE FIRMWARE FILES THEMSELVES WOULD HAVE TO BE PROVIDED BY
 THE USER OR IN NON-FREE, UNLESS THEY QUALIFY UNDER THE DFSG.  For
 example, some firmware blobs in the Linux kernel are the output of an
 assembler, and the assembly source is included in Linux.  That kind of
 firmware blob is not opaque, and could be distributed in main.

In that case, we should probably be treating this as analogous to
players for various forms of content.  If there are any significant free
examples of that content we allow the player into main.  If there are
no significant examples of that content, the loader really does have a
dependency on non-free software content.

And, if the driver won't work without the loader, then the driver has
a dependency on the loader.

Is it really too much to ask that there be some free firmware examples
before we deal with that class of firmware?

  Are you saying that you want us to ship opaque blobs where we take no
  responsibility whatsoever for their character?
 
 I have said nothing of the sort.  Would you like to apologize for
 being such a boorish insulting troll, or should I just write you off
 as someone not worth listening to?

You are one of a collection of people advocating similar things.

If you expect me to limit my questions to addressing only you have
said and to ignore issues raised by others, maybe we shouldn't be
having this discussion on a public list.



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Matthew Garrett
Glenn Maynard [EMAIL PROTECTED] wrote:

 There is no contortion of logic involved in the conclusion that the
 Social Contract is only talking about the stuff that Debian ships (or
 is logically capable of shipping), and not the physical hardware that
 stuff runs on.

Argh. Yes, but the firmware in these eeproms is something that we're
entirely logically capable of shipping. Claiming that firmware is
sometimes software (when it's on a compact flash card, say) and
sometimes hardware (when it's on an eeprom, say) is the sort of argument
that the social contract changes were meant to deal with. If it's a
string of bits encoded on something, we're meant to apply the DFSG to
it, not argue about whether it's software or not.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
On Tue, Oct 26, 2004 at 04:42:45PM -0400, Glenn Maynard wrote:
 No, the entire point was to make it clear that, as far as the Social
 Contract is concerned, everything in Debian is software.  (This is
 my understanding, based both on the changes made by 2004-003 and the
 discussions surrounding it.)  Note that the DFSG was not renamed to
 the Debian Free Stuff Guidelines, and the word software is still
 used four times in the SC (not including its use in the phrase DFSG).

It's probably also worth pointing out that the word software is used
more times within the DFSG itself.  And, that in contexts where software
is not explicitly mentioned that it's pretty clear that the focus is on
the license for that software.

It's probably also worth noting that we don't use a very restrictive
definition of software -- sequences of bits would probably work in
most contexts as our definition for software.

It's probably also worth noting that every time the social contract
uses the word free that it is referring to the Debian Free Software
Guidelines -- since those are our guidelines for what we mean by free.

Finally, it's probably worth noting that all software is used by
shipping it to hardware, and having the hardware do something with it.
The details, of course, depend on the hardware.

[In other words: I agree.]

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
  This is the wrong mailing list for that sort of proposal.

On Tue, Oct 26, 2004 at 08:32:47PM +0100, Matthew Garrett wrote:
 That's why I'm not actively proposing it here. Brian asked me a
 question, and I answered it.

In that case, perhaps you should take your discussion elsewhere?

Correct me if I'm wrong, but it doesn't seem like you can usefully resolve
the point you want to discuss through discussions on this mailing list.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Michael Poole
Raul Miller writes:

 In that case, we should probably be treating this as analogous to
 players for various forms of content.  If there are any significant free
 examples of that content we allow the player into main.  If there are
 no significant examples of that content, the loader really does have a
 dependency on non-free software content.

How many significant free examples of DVD content are there?  To the
best of my knowledge, all of the DVDs I own contain CSS-encrypted
content and are compressed using patent-encumbered formats.  The CSS
decryption library that libdvdread3 can use is not part of Debian, but
MPEG-2 decompressors seem to be in main.  It's also not very hard to
find cases where the MPEG LA has filed patent infringement lawsuits
based on those patents (against Compaq, Dell, Sagem S.A., effectively
Apex Digital, and others).

Apart from that, I do not think it is the same situation as a media
player; the dependency is one remove further than for media players.
If we declare that software depends on programmable bits on the other
side of a well-defined interface (not one based on function calls), we
have lots of problems.  To pick just one example, evolution-exchange
would need to move into contrib.

 And, if the driver won't work without the loader, then the driver has
 a dependency on the loader.

I was not aware that any of these drivers used a non-free loader.  Can
you give an example?

 Is it really too much to ask that there be some free firmware examples
 before we deal with that class of firmware?

We have linux-2.6.x/drivers/usb/serial/keyspan_pda.S and xircom_pgs.S,
which I alluded in my previous mail.  For each driver that can load
firmware, do you want Debian to be responsible for tracking down
whether free firmware exists anywhere in the world?  I think that
illustrates both the practical and logical flaws in claiming that the
driver depends on the firmware.

   Are you saying that you want us to ship opaque blobs where we take no
   responsibility whatsoever for their character?
  
  I have said nothing of the sort.  Would you like to apologize for
  being such a boorish insulting troll, or should I just write you off
  as someone not worth listening to?
 
 You are one of a collection of people advocating similar things.
 
 If you expect me to limit my questions to addressing only you have
 said and to ignore issues raised by others, maybe we shouldn't be
 having this discussion on a public list.

I expect you to not raise strawman arguments.  Your last two questions
go beyond anything I have seen suggested in this discussion.  I also
do not see the pertinence; Debian disclaims responsibility for the
performance and behavior of everything it distributes.  Case in point:
the fairly recent -project discussion along the lines of Reflections
on Trusting Trust and whether it applied to Debian's toolchain.

Michael Poole



Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Raul Miller
On Tue, Oct 26, 2004 at 06:46:34PM -0400, Michael Poole wrote:
 How many significant free examples of DVD content are there?

I have Debian main (sarge) on DVD, so there's at least one example.

If you're talking about audio-visual materials, I imagine that the right
way to find such materials would focus on academic projects and other such
activities which are likely to generate the relevant kinds of content.

Personally, I don't watch dvds (or tv), so I'm not the right person to
ask for details.

 To the best of my knowledge, all of the DVDs I own contain CSS-encrypted
 content and are compressed using patent-encumbered formats.  The CSS
 decryption library that libdvdread3 can use is not part of Debian, but
 MPEG-2 decompressors seem to be in main.  It's also not very hard to
 find cases where the MPEG LA has filed patent infringement lawsuits
 based on those patents (against Compaq, Dell, Sagem S.A., effectively
 Apex Digital, and others).

We only very rarely treat software patents as an issue that makes
software non-free.

There's good reasons for this, but that's tangential to this discussion.

Finally, to tie this back to the current discussion, I doubt I'd need
to load different firmware into my dvd drivers if I wanted to deal with
audio/visual content.

 Apart from that, I do not think it is the same situation as a media
 player; the dependency is one remove further than for media players.
 If we declare that software depends on programmable bits on the other
 side of a well-defined interface (not one based on function calls), we
 have lots of problems.  To pick just one example, evolution-exchange
 would need to move into contrib.

I think you're being overly general here.

For example, interfaces to shared libraries can (and typically are)
well defined interfaces.

That said, it might very well be that evolution-exchange should be in
contrib.  I don't know enough about evolution implementations to say
for sure.

  And, if the driver won't work without the loader, then the driver has
  a dependency on the loader.
 
 I was not aware that any of these drivers used a non-free loader.  Can
 you give an example?

Well... that's not what I was saying, but I have seen hardware where
you had to use some version of MS Windows to load the firmware.

But my point was that packages which depend on contrib need to be in
contrib.  [There are, of course, other reasons for being in contrib,
but this reason is rather illustrative.]

  Is it really too much to ask that there be some free firmware examples
  before we deal with that class of firmware?
 
 We have linux-2.6.x/drivers/usb/serial/keyspan_pda.S and xircom_pgs.S,
 which I alluded in my previous mail.  For each driver that can load
 firmware, do you want Debian to be responsible for tracking down
 whether free firmware exists anywhere in the world?

Ideally, we should be distributing that free firmware.  Maybe we don't
automatically use it -- making things automatic can cause problems for
our users.

However, unless the firmware is useless, it seems like we should be
distributing it just as much as we should be distributing the drivers.

 I think that illustrates both the practical and logical flaws in
 claiming that the driver depends on the firmware.

I'll grant that practical issues -- such as an explosion of hardware
implementations -- might keep us from distributing free firmware.

But practical issues which limit our support are not the same as logical
issues which would prevent us from ever offering support.

  If you expect me to limit my questions to addressing only you have
  said and to ignore issues raised by others, maybe we shouldn't be
  having this discussion on a public list.

 I expect you to not raise strawman arguments.  Your last two questions
 go beyond anything I have seen suggested in this discussion.  I also
 do not see the pertinence; Debian disclaims responsibility for the
 performance and behavior of everything it distributes.  Case in point:
 the fairly recent -project discussion along the lines of Reflections
 on Trusting Trust and whether it applied to Debian's toolchain.

It's kinda hard for an argument to be a strawman when the argument fits
within the scope of the previous arguments which had been discussed.
And the scope of this argument has been very broad (up to, and including
people claiming that hardware components should comply with our free
software guidelines).

It's true that the questions I asked were not issues which you had
raised -- I had raised them.  The pertinence was simply that I was
trying to understand what your point of view was.  I think I have a
better understanding now, and will try to limit my discussion to issues
which seem pertinent to the view point you are interested in discussing.

About responsibility: we do try and make sure our system works right.
And, I'm not specifically sure what thread you're referring to.  Perhaps
you're referring to Unofficial buildd network has been shut down

Re: non-free firmware: driver in main or contrib?

2004-10-26 Thread Brian Thomas Sniffen
Marco d'Itri [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] wrote:

Then there's no point continuing this conversation.  An FPGA design,
living as a file on disk and possibly even shipped by Debian is
clearly software under Debian's definitions.  Runtime-loaded firmware
 I was not discussing Debian's definitions now.

Then could you please clearly mark the subject lines of such
messages as do not discuss Debian as OFF-TOPIC ?

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Steve Langasek
On Sun, Oct 24, 2004 at 10:59:50PM +0100, Matthew Garrett wrote:
 Steve Langasek [EMAIL PROTECTED] wrote:
  On Sun, Oct 24, 2004 at 03:41:13AM +0100, Matthew Garrett wrote:
  Is this the case even if the firmware is in a flash chip attached to the
  device? If the total amount of non-free software on a user's system is
  the same regardless, why are we concerned about how it's packaged?
  
  The total amount of non-free software on a user's system is different if the
  firmware comes pre-loaded on the device than if we have to load it from the
  OS, isn't it?

 By system, I'm referring to the hardware as well. 

  If there is at least one real-world device that works with the driver
  without needing to load additional firmware, I think the driver is
  unambiguously free from this standpoint.  If no one can point to a device
  that the driver works with without the help of an additional non-free
  firmware blob, I'm not certain I agree that it doesn't have a dependency on
  non-free software.

 But almost every driver requires an additional non-free firmware blob.
 In general, there are two cases:

 1) That firmware is in an eeprom, and so was distributed to the user
 when the hardware was bought
 2) That firmware is not in an eeprom, and so was distributed to the user
 when they obtained drivers

 In most versions of case (2), the user will already own a copy of the
 firmware - it'll be on the Windows driver CD in some form. It would be
 trivial to add code to the driver packages to copy this code off the CD.
 At that point, in no case does Debian distribute the firmware.

Ok, I guess somewhere I lost track of exactly what was being argued in this
thread.  I agree, if the user (or some group of users to whom the driver is
useful) already have the required firmware, either in the device's flash or
on a driver CD, it shouldn't be necessary for us to consider this a
dependency of the driver, and thus the driver is eligible for main.  I was
thinking of the possible case where *we* had to distribute a firmware blob.

-- 
Steve Langasek
postmodern programmer


signature.asc
Description: Digital signature


Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Glenn Maynard
On Sun, Oct 24, 2004 at 10:45:18PM -0700, Steve Langasek wrote:
 Ok, I guess somewhere I lost track of exactly what was being argued in this
 thread.  I agree, if the user (or some group of users to whom the driver is
 useful) already have the required firmware, either in the device's flash or
 on a driver CD, it shouldn't be necessary for us to consider this a
 dependency of the driver, and thus the driver is eligible for main.  I was
 thinking of the possible case where *we* had to distribute a firmware blob.

Huh?  If a driver requires a firmware blob be copied from a driver CD,
it's a pretty clear non-free dependency--if the documentation says
something like copy this software (that we're not allowed to distribute)
from your CD to /usr/lib/foo before running, or this driver won't work
at all, it's contrib.

I don't understand how there's any disagreement in this case: it's clearly
software, covered by the DFSG (or at least the one Debian will be using
soon), it's required (a Depends), and clearly non-free.

-- 
Glenn Maynard



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Mike Hommey
On Sun, Oct 24, 2004 at 10:45:18PM -0700, Steve Langasek wrote:
 Ok, I guess somewhere I lost track of exactly what was being argued in this
 thread.  I agree, if the user (or some group of users to whom the driver is
 useful) already have the required firmware, either in the device's flash or
 on a driver CD, it shouldn't be necessary for us to consider this a
 dependency of the driver, and thus the driver is eligible for main.  I was
 thinking of the possible case where *we* had to distribute a firmware blob.

Like for ipw2200 and ipw2100 drivers. We don't exactly have to
distribute the firmware blob. Actually, we have to not distribute it
because its license doesn't authorize it. And it is only available on
the driver website. It's not even the same as the one embedded in the
windows driver (yes, it is embedded in the driver, it doesn't
come as an independant file on a CD or whatever).
In such case, even if the license of the driver is free, it can *not* go
into main.

Mike



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Matthew Garrett
Glenn Maynard [EMAIL PROTECTED] wrote:

 I don't understand how there's any disagreement in this case: it's clearly
 software, covered by the DFSG (or at least the one Debian will be using
 soon), it's required (a Depends), and clearly non-free.

On the other hand, if it's clearly software when it's on CD then it's
clearly software when it's on eeprom. If it's a dependency when it's on
CD, it's equally a dependency when it's on eeprom. The only distinction
that can be drawn is whether or not it ends up on the user's hard drive.
Surely the storage mechanism used does not alter the freeness of
something?

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Huh?  If a driver requires a firmware blob be copied from a driver CD,
Please repeat after me: drivers do not require firmwares, hardware
devices require firmwares.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

The total amount of non-free software on a user's system is different if the
firmware comes pre-loaded on the device than if we have to load it from the
OS, isn't it?
No.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Ken Arromdee [EMAIL PROTECTED] writes:

 On Sun, 24 Oct 2004, Raul Miller wrote:
  The person who has the device doesn't neceessarily have the firmware, 
  because
  the firmware can be removed.
 The person doesn't have the device at that point -- only part of it.

 The same reasoning applies for both examples if you refer to the combination 
 of
 hardware plus CD as a device.

But that imagined device is broken: it needs another component to read
the CD, load the firmware off of it into the computer's memory,
process it there, then upload that to the device itself.

  Of course, there are relatively few examples where you'd *want* to
  remove the eeprom from the device, but similarly there are few examples
  where you'd want to sell the device without accompanying it with a CD.
 Of course, those examples include this one: inadvertently losing track
 of the CD.

 That's a difference, but it doesn't seem to be enough.  It just means I need 
 to
 rephrase the question:

 So what's the difference between a device with firmware, and a device with
 a CD plus a non-free license letting you copy the CD?

 In that case, losing the CD doesn't matter because the user can get another
 copy.  The user can't modify the software on the CD, but then he had no
 permission to modify it when it's in hardware either.

I'm not sure this last is true, for the same reasons that I may saw
any book I have purchased in half and sell the result to you.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Matthew Garrett [EMAIL PROTECTED] writes:

 Glenn Maynard [EMAIL PROTECTED] wrote:

 I don't understand how there's any disagreement in this case: it's clearly
 software, covered by the DFSG (or at least the one Debian will be using
 soon), it's required (a Depends), and clearly non-free.

 On the other hand, if it's clearly software when it's on CD then it's
 clearly software when it's on eeprom.

False.  That's why we call it firmware, not just software living on a device.
It's an implementation detail of the hardware that they happen to have
shipped a microprocessor and a hardwired program.  If the program had
been burned into a circuit in an FPGA, would you still call it
software?

If it's a single-use PROM, is it still software?

From the point of view of the driver, the device is just a device.  It
gets... driven.  That's it.  No need to consider the things inside and
force decisions about software or not onto them.

Anything the user's being told to copy to /usr/local/something, on the
other hand, is clearly software.

 If it's a dependency when it's on CD, it's equally a dependency when
 it's on eeprom. The only distinction that can be drawn is whether or
 not it ends up on the user's hard drive.  Surely the storage
 mechanism used does not alter the freeness of something?

Surely the implementation details of a device do not alter the
freeness of it?

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Marco d'Itri [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] wrote:

Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.

And the driver requires a functioning hardware device.  Thus, the
loadable firmware is in the dependency tree of the software Debian
ships.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.
And the driver requires a functioning hardware device.  Thus, the
This is not an use of the verb require I'm familiar with.

loadable firmware is in the dependency tree of the software Debian
ships.
I can't find which part of policy estabilishes this criteria.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

 On the other hand, if it's clearly software when it's on CD then it's
 clearly software when it's on eeprom.
False.  That's why we call it firmware, not just software living on a device.
Get real. Software does not change its nature depending on the media
it's stored on.

It's an implementation detail of the hardware that they happen to have
shipped a microprocessor and a hardwired program.  If the program had
been burned into a circuit in an FPGA, would you still call it
software?
I'm not sure if a FPGA description should be considered a program.

If it's a single-use PROM, is it still software?
Yes, sure.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Edmund GRIMLEY EVANS
Brian Thomas Sniffen [EMAIL PROTECTED]:

 Huh?  If a driver requires a firmware blob be copied from a driver CD,
  Please repeat after me: drivers do not require firmwares, hardware
  devices require firmwares.
 
 And the driver requires a functioning hardware device.  Thus, the
 loadable firmware is in the dependency tree of the software Debian
 ships.

There are two slight problems with your argument here:

(1) You wrote a functioning hardware device, i.e. not necessarily
the particular device that requires the particular firmware.

(2) If a driver requires a functioning hardware device, then
presumably Debian can't ship the driver in main because Debian doesn't
include any hardware devices in any part of its distribution!



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Mike Hommey
On Mon, Oct 25, 2004 at 11:44:37AM +0200, Marco d'Itri wrote:
 [EMAIL PROTECTED] wrote:
 
 Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.

Then, how do you explain the ipw2200 case where driver version 0.5 and
less will only work with a certain firmware and version 0.6 and more
will only work with an other firmware ? Isn't that what we could call
a requirement ?

Mike



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Raul Miller
On Mon, Oct 25, 2004 at 01:18:18PM +0200, Marco d'Itri wrote:
 Get real. Software does not change its nature depending on the media
 it's stored on.

Some aspects do change.  But it's true that what a person thinks about
that software doesn't need to change (depending on the person doing the
thinking, of course).

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Matthew Garrett
On Mon, 2004-10-25 at 07:07 -0400, Brian Thomas Sniffen wrote:
 Matthew Garrett [EMAIL PROTECTED] writes:

  On the other hand, if it's clearly software when it's on CD then it's
  clearly software when it's on eeprom.
 
 False.  That's why we call it firmware, not just software living on a 
 device.
 It's an implementation detail of the hardware that they happen to have
 shipped a microprocessor and a hardwired program.  If the program had
 been burned into a circuit in an FPGA, would you still call it
 software?

Brian, we are talking about identical code. Software doesn't stop being
software if it's burned into a ROM instead of being supplied with the
OS. An FPGA is a more interesting issue - would you define a set of
verilog code as software if it's supplied on disk? 

 If it's a single-use PROM, is it still software?

If we would want the source code to it if we shipped the contents, then
yes, it's software.

 From the point of view of the driver, the device is just a device.  It
 gets... driven.  That's it.  No need to consider the things inside and
 force decisions about software or not onto them.

I want a world in which all code run on a system is free, no matter
whether that code is executed by the host processor or something on a
card. I see no reason for us to consider non-free software more
legitimate purely because it's on a chip rather than on a hard drive.
As a result, I consider all arguments that apply to code on hard drives
to apply equally well to code on chips. 

 Anything the user's being told to copy to /usr/local/something, on the
 other hand, is clearly software.

You appear to be claiming that identical code is firmware if it's on a
chip and software if it's on a CD, and that we should apply different
standards to each situation. I'm claiming that it's always software, and
we should apply the same standards to it in all cases.

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Raul Miller
On Mon, Oct 25, 2004 at 12:52:19PM +0100, Matthew Garrett wrote:
 Brian, we are talking about identical code.

Are we?

 Software doesn't stop being software if it's burned into a ROM instead
 of being supplied with the OS.

It does, however, cease to be a dependency issue if those who have the
hardware also have the firmware.

 You appear to be claiming that identical code is firmware if it's on a
 chip and software if it's on a CD, and that we should apply different
 standards to each situation. I'm claiming that it's always software, and
 we should apply the same standards to it in all cases.

I don't think he's making this claim for all contexts.

As I see it, the issue we're discussing is dependencies.  In this context:

For practical reasons, we don't require that all users have a piece of
hardware before we distribute software which drives that hardware.

However, we don't bother including that software in main unless all the
software it depends on is free.  If they're not, the software goes in
contrib (or non-free), assuming we distribute it at all.

In this context, we ignore bits which are embedded in the hardware,
but we don't ignore bits that we distribute.

It's really that simple.

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 On Mon, Oct 25, 2004 at 12:52:19PM +0100, Matthew Garrett wrote:
 Brian, we are talking about identical code.
 
 Are we?

In many contexts, yes.

 Software doesn't stop being software if it's burned into a ROM instead
 of being supplied with the OS.
 
 It does, however, cease to be a dependency issue if those who have the
 hardware also have the firmware.

In most cases, they do already have the firmware. It's on a CD that came
with the hardware.

 For practical reasons, we don't require that all users have a piece of
 hardware before we distribute software which drives that hardware.
 
 However, we don't bother including that software in main unless all the
 software it depends on is free.  If they're not, the software goes in
 contrib (or non-free), assuming we distribute it at all.

The reason we don't include free software that has non-free dependencies
in main is that we want to discourage people from using non-free
software. If the user already has non-free code in ROM, then there is
the same amount of non-free software being used. 

 In this context, we ignore bits which are embedded in the hardware,
 but we don't ignore bits that we distribute.

It's more complicated than that, because in several of these cases we
don't have permission to distribute the firmware anyway. Your argument
is either:

1) Code can go in main if it's dependent on code that is shipped with
the hardware. If it depends on code that we ship instead, it has to go
in contrib.

2) Code can go in main if it's dependent on code that is in an eeprom.
If it depends on code that is stored on the hard drive instead, it has
to go in contrib.

In the case of (1), we penalise drivers that use firmware that's under a
slightly more liberal (though still non-free) license. This seems wrong.
In the case of (2), we penalise drivers for hardware that the vendor has
made slightly cheaper and more flexible. This also seems wrong.

 It's really that simple.

Whichever argument you're using, it leads to the following situation. A
vendor releases a piece of hardware. It requires run-time loadable
firmware. We put the driver in contrib. A customer comes to the vendor
and asks for a version that doesn't require the firmware be loaded from
userspace. The vendor adds an eeprom and puts the firmware in that
instead. Despite there being the same amount of non-free code, we can
now put the driver in main.

Does this not strike you as mad? We make a distinction between main and
contrib because we want to discourage non-free code. The distinction
you're drawing instead merely encourages vendors to put their non-free
code on an eeprom. It doesn't advance the cause of free software, and it
doesn't help our users.
-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 On Mon, Oct 25, 2004 at 12:52:19PM +0100, Matthew Garrett wrote:
 Brian, we are talking about identical code.
 
 Are we?

In many contexts, yes.

 Software doesn't stop being software if it's burned into a ROM instead
 of being supplied with the OS.
 
 It does, however, cease to be a dependency issue if those who have the
 hardware also have the firmware.

In most cases, they do already have the firmware. It's on a CD that came
with the hardware.

 For practical reasons, we don't require that all users have a piece of
 hardware before we distribute software which drives that hardware.
 
 However, we don't bother including that software in main unless all the
 software it depends on is free.  If they're not, the software goes in
 contrib (or non-free), assuming we distribute it at all.

The reason we don't include free software that has non-free dependencies
in main is that we want to discourage people from using non-free
software. If the user already has non-free code in ROM, then there is
the same amount of non-free software being used. 

 In this context, we ignore bits which are embedded in the hardware,
 but we don't ignore bits that we distribute.

It's more complicated than that, because in several of these cases we
don't have permission to distribute the firmware anyway. Your argument
is either:

1) Code can go in main if it's dependent on code that is shipped with
the hardware. If it depends on code that we ship instead, it has to go
in contrib.

2) Code can go in main if it's dependent on code that is in an eeprom.
If it depends on code that is stored on the hard drive instead, it has
to go in contrib.

In the case of (1), we penalise drivers that use firmware that's under a
slightly more liberal (though still non-free) license. This seems wrong.
In the case of (2), we penalise drivers for hardware that the vendor has
made slightly cheaper and more flexible. This also seems wrong.

 It's really that simple.

Whichever argument you're using, it leads to the following situation. A
vendor releases a piece of hardware. It requires run-time loadable
firmware. We put the driver in contrib. A customer comes to the vendor
and asks for a version that doesn't require the firmware be loaded from
userspace. The vendor adds an eeprom and puts the firmware in that
instead. Despite there being the same amount of non-free code, we can
now put the driver in main.

Does this not strike you as mad? We make a distinction between main and
contrib because we want to discourage non-free code. The distinction
you're drawing instead merely encourages vendors to put their non-free
code on an eeprom. It doesn't advance the cause of free software, and it
doesn't help our users.
-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Raul Miller
On Mon, Oct 25, 2004 at 02:21:03PM +0100, Matthew Garrett wrote:
 Whichever argument you're using, it leads to the following situation. A
 vendor releases a piece of hardware. It requires run-time loadable
 firmware. We put the driver in contrib. A customer comes to the vendor
 and asks for a version that doesn't require the firmware be loaded from
 userspace. The vendor adds an eeprom and puts the firmware in that
 instead. Despite there being the same amount of non-free code, we can
 now put the driver in main.
 
 Does this not strike you as mad? We make a distinction between main and
 contrib because we want to discourage non-free code. The distinction
 you're drawing instead merely encourages vendors to put their non-free
 code on an eeprom. It doesn't advance the cause of free software, and it
 doesn't help our users.

It does strike me as a bit mad, to suggest that hardware vendors are
going to be redesign their hardware, to move a driver from debian contrib
to main.

If it were that important to them, they'd should have done it right in
the first place.

Oh, wait, maybe you're suggesting that they had some OTHER reason for
putting those bits in rom?  If that's the case, your claim that it
doesn't help our users is a bit specious.  

[Or, more succinctly, how about we discuss real cases rather than
straw men.]

-- 
Raul



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Matthew Garrett
Raul Miller [EMAIL PROTECTED] wrote:
 On Mon, Oct 25, 2004 at 02:21:03PM +0100, Matthew Garrett wrote:
 Does this not strike you as mad? We make a distinction between main and
 contrib because we want to discourage non-free code. The distinction
 you're drawing instead merely encourages vendors to put their non-free
 code on an eeprom. It doesn't advance the cause of free software, and it
 doesn't help our users.
 
 It does strike me as a bit mad, to suggest that hardware vendors are
 going to be redesign their hardware, to move a driver from debian contrib
 to main.

 If it were that important to them, they'd should have done it right in
 the first place.

Where does right come from? You're continuing to imply that hardware
that has firmware in ROM is somehow more free than hardware that
requires firmware to be loaded by the OS. Neither is the right
solution - it depends on your requirements.
 
 Oh, wait, maybe you're suggesting that they had some OTHER reason for
 putting those bits in rom?  If that's the case, your claim that it
 doesn't help our users is a bit specious.  

 [Or, more succinctly, how about we discuss real cases rather than
 straw men.]

Customers make strange demands. As a result of tooling up for a single
production run, it might then become cheaper for them to use the same
design for the generic consumer part.

Anyway. You didn't answer my question: is your definition of dependency
based on who ships the firmware, or is it based on the medium which
contains the firmware?

-- 
Matthew Garrett | [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

Oh, wait, maybe you're suggesting that they had some OTHER reason for
putting those bits in rom?  If that's the case, your claim that it
doesn't help our users is a bit specious.  
It's not obvious that this would be an improvement which benefits users.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
[EMAIL PROTECTED] wrote:

 Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.
Then, how do you explain the ipw2200 case where driver version 0.5 and
less will only work with a certain firmware and version 0.6 and more
will only work with an other firmware ? Isn't that what we could call
a requirement ?
No, why? I can't see how this could be related to my argument.

-- 
ciao,
Marco



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Matthew Garrett [EMAIL PROTECTED] writes:

 On Mon, 2004-10-25 at 07:07 -0400, Brian Thomas Sniffen wrote:
 Matthew Garrett [EMAIL PROTECTED] writes:

  On the other hand, if it's clearly software when it's on CD then it's
  clearly software when it's on eeprom.
 
 False.  That's why we call it firmware, not just software living on a 
 device.
 It's an implementation detail of the hardware that they happen to have
 shipped a microprocessor and a hardwired program.  If the program had
 been burned into a circuit in an FPGA, would you still call it
 software?

 Brian, we are talking about identical code. Software doesn't stop being
 software if it's burned into a ROM instead of being supplied with the
 OS. An FPGA is a more interesting issue - would you define a set of
 verilog code as software if it's supplied on disk? 

Sure.

Heck, for all I know there's a device out there where the firmware on
disk is verilog code, and it's compiled by the driver and loaded to
an FPGA on the device.

Surely that's software.  Hm.  It proposes an interesting model of the
driver as a sort of processor (like a compiler or an interpreter) for
the firmware, more than the library model I've been considering.

 If it's a single-use PROM, is it still software?

 If we would want the source code to it if we shipped the contents, then
 yes, it's software.

 From the point of view of the driver, the device is just a device.  It
 gets... driven.  That's it.  No need to consider the things inside and
 force decisions about software or not onto them.

 I want a world in which all code run on a system is free, no matter
 whether that code is executed by the host processor or something on a
 card.

Why draw the line at software, then?  Why not wish for open specs for
all the chips, so you can modify the CPU or GPU?

 I see no reason for us to consider non-free software more
 legitimate purely because it's on a chip rather than on a hard drive.
 As a result, I consider all arguments that apply to code on hard drives
 to apply equally well to code on chips. 

 Anything the user's being told to copy to /usr/local/something, on the
 other hand, is clearly software.

 You appear to be claiming that identical code is firmware if it's on a
 chip and software if it's on a CD, and that we should apply different
 standards to each situation. I'm claiming that it's always software, and
 we should apply the same standards to it in all cases.

I think that the *dependency* doesn't exist in some reasonable models
of a device as a black box, which either does or does not depend on
user-loaded firmware.

That is, in all reasonable models the driver depends on the device,
but Debian does not reflect that dependency because the device is
hardware, not software.

In some reasonable models, the device depends on its firmware, whether
pre-loaded or user-loaded.  That's the model you're using.  To be
consistent, Debian must express all these dependencies -- and so most
drivers go into contrib, which we all agree is impractical and bad.

In some reasonable models, the device depends on user-loaded firmware,
and pre-loaded firmware is inside the abstraction barrier and we don't
get to see it.  So we still must express all the dependencies we see,
and only *some* drivers must go to contrib; those which can drive
devices with no user-visible firmware can be considered free.

-Brian

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Don Armstrong
On Mon, 25 Oct 2004, Matthew Garrett wrote:
 The reason we don't include free software that has non-free
 dependencies in main is that we want to discourage people from using
 non-free software. If the user already has non-free code in ROM,
 then there is the same amount of non-free software being used.

It's not necessarily to discourage them, it's so that they know when
they're using non-free software, and so that we know what free
software has non-free dependencies, helping to indicate what should be
reimplemented as free software.

If we wanted to discourage people from using non-free software, we
would make vrms Priority: Required, Essential: Yes, and install a
cronjob that e-mailed the known world saying that the admin was a
proprietary software floozie and slept with Bill Gates.


Don Armstrong

-- 
If a nation values anything more than freedom, it will lose its
freedom; and the irony of it is that if it is comfort or money it
values more, it will lose that, too.
 -- W. Somerset Maugham

http://www.donarmstrong.com  http://rzlab.ucr.edu



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Marco d'Itri [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] wrote:

Huh?  If a driver requires a firmware blob be copied from a driver CD,
 Please repeat after me: drivers do not require firmwares, hardware
 devices require firmwares.
And the driver requires a functioning hardware device.  Thus, the

 This is not an use of the verb require I'm familiar with.

The driver has no useful functionality without a device to drive.
What's unclear about this?

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
Edmund GRIMLEY EVANS [EMAIL PROTECTED] writes:

 Brian Thomas Sniffen [EMAIL PROTECTED]:

 Huh?  If a driver requires a firmware blob be copied from a driver CD,
  Please repeat after me: drivers do not require firmwares, hardware
  devices require firmwares.
 
 And the driver requires a functioning hardware device.  Thus, the
 loadable firmware is in the dependency tree of the software Debian
 ships.

 There are two slight problems with your argument here:

 (1) You wrote a functioning hardware device, i.e. not necessarily
 the particular device that requires the particular firmware.

Wha?  Yes, of course, the Foobozinator driver presumably requires a
functioning Foobozinator, and will not work no matter how many
functioning Quxulators you have plugged in.

 (2) If a driver requires a functioning hardware device, then
 presumably Debian can't ship the driver in main because Debian doesn't
 include any hardware devices in any part of its distribution!

Debian only expresses dependencies on software.  This is known.

-- 
Brian Sniffen   [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Adam McKenna
On Sun, Oct 24, 2004 at 10:59:50PM +0100, Matthew Garrett wrote:
 Steve Langasek [EMAIL PROTECTED] wrote:
  On Sun, Oct 24, 2004 at 03:41:13AM +0100, Matthew Garrett wrote:
  Is this the case even if the firmware is in a flash chip attached to the
  device? If the total amount of non-free software on a user's system is
  the same regardless, why are we concerned about how it's packaged?
  
  The total amount of non-free software on a user's system is different if the
  firmware comes pre-loaded on the device than if we have to load it from the
  OS, isn't it?
 
 By system, I'm referring to the hardware as well. 
 
  If there is at least one real-world device that works with the driver
  without needing to load additional firmware, I think the driver is
  unambiguously free from this standpoint.  If no one can point to a device
  that the driver works with without the help of an additional non-free
  firmware blob, I'm not certain I agree that it doesn't have a dependency on
  non-free software.
 
 But almost every driver requires an additional non-free firmware blob.
 In general, there are two cases:
 
 1) That firmware is in an eeprom, and so was distributed to the user
 when the hardware was bought
 2) That firmware is not in an eeprom, and so was distributed to the user
 when they obtained drivers
 
 In most versions of case (2), the user will already own a copy of the
 firmware - it'll be on the Windows driver CD in some form. It would be
 trivial to add code to the driver packages to copy this code off the CD.
 At that point, in no case does Debian distribute the firmware.
 
 Ignoring Brian's strange arguments about rodents, I can see no cases
 where the user has more freedom if the firmware comes from an eeprom
 rather than from a CD. The main/contrib split exists in order to make it
 clear to our users that their free software depends on non-free code. In
 the case of free software that interacts directly with hardware, that's
 almost always the case. If we're of the opinion that non-free firmware
 is unacceptably bad, we should move all drivers which require it to
 contrib regardless of the manufacturer's choice of storage device.

I have an idea.  Since it is starting to appear (from the discussions on
this list, at least) that nothing is actually free enough for us to put in 
Debian, I suggest we rm -rf the package pool and simply start shipping blank
CD's with Debian written on them.

This will have the added benefit of drastically improving release times.

--Adam

-- 
Adam McKenna  [EMAIL PROTECTED]  [EMAIL PROTECTED]



Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Marco d'Itri
On Oct 25, Brian Thomas Sniffen [EMAIL PROTECTED] wrote:

 Marco d'Itri [EMAIL PROTECTED] writes:
  [EMAIL PROTECTED] wrote:
 Huh?  If a driver requires a firmware blob be copied from a driver CD,
  Please repeat after me: drivers do not require firmwares, hardware
  devices require firmwares.
 And the driver requires a functioning hardware device.  Thus, the
  This is not an use of the verb require I'm familiar with.
 The driver has no useful functionality without a device to drive.
 What's unclear about this?
It's not clear how this is related to the argument. Obviously any kind
of device driver has limited practical use[1] if you do not own the
hardware device, and so are programs like ICQ and AIM clients if you do
not have access to the proprietary servers they connect to, but still
policy does not require to keep this kind of free software out of Debian.

[1] But it may be an invaluable source of code and ideas to use in other
projects...

-- 
ciao, |
Marco | [8732 stX1et.crwkrc]


signature.asc
Description: Digital signature


Re: non-free firmware: driver in main or contrib?

2004-10-25 Thread Brian Thomas Sniffen
[EMAIL PROTECTED] (Marco d'Itri) writes:

 On Oct 25, Brian Thomas Sniffen [EMAIL PROTECTED] wrote:

 Marco d'Itri [EMAIL PROTECTED] writes:
  [EMAIL PROTECTED] wrote:
 Huh?  If a driver requires a firmware blob be copied from a driver CD,
  Please repeat after me: drivers do not require firmwares, hardware
  devices require firmwares.
 And the driver requires a functioning hardware device.  Thus, the
  This is not an use of the verb require I'm familiar with.
 The driver has no useful functionality without a device to drive.
 What's unclear about this?
 It's not clear how this is related to the argument.

Look, foowriter depends on readline.  libreadline depends on libc.  So
foowriter depends on libc.

People have been saying here that drivers depend on firmware.  You
have argued that they don't -- presenting as evidence that the devices
depend on the firmware.

While this is true, it is incomplete: the driver Depends, in the
policy sense, on the device, and the device Depends on the firmware.
Debian doesn't express the hardware element of the dependency, so the
driver Depends on the firmware.

 Obviously any kind of device driver has limited practical use[1] if
 you do not own the hardware device, and so are programs like ICQ and
 AIM clients if you do not have access to the proprietary servers
 they connect to, but still policy does not require to keep this kind
 of free software out of Debian.

It's not just the proprietary server code, but the actual servers that
are necessary.  That is, you need the machines running them --
hardware, a black box outside Debian's control.

I do think that closed-system clients don't belong in Debian
(differentiating OSCAR, for example, from whatever the closed AIM
protocol of the week is -- I don't follow technical developments
there very closely.)

 [1] But it may be an invaluable source of code and ideas to use in other
 projects...

That source of ideas is not enough to change a Depends to a Suggests,
or we'd have nothing in contrib.


-- 
Brian Sniffen   [EMAIL PROTECTED]



  1   2   3   >