Re: LCC and blobs
Josh Triplett <firstname.lastname@example.org> writes:
> Michael Poole wrote:
> > Josh Triplett writes:
> >>If the ICQ server were packaged in the Debian non-free section, would
> >>you make ICQ clients Depends: or Recommends: on the ICQ server? If not,
> >>then if the ICQ server were packaged, the ICQ client would still be in
> >>main. Therefore, the ICQ client can be in main.
> > A, ergo B, ergo A.
> Please explain why you think my argument is circular. I have argued that:
> (1) If the ICQ server were packaged in non-free, we still wouldn't make
> the client Depends:, Recommends:, or Build-Depends: on the server, and
> therefore in that situation the ICQ client could be in main.
> (2) For the purposes of deciding if software can be in main in the
> presence of possible unexpressed dependencies on external "too free for
> non-free" software, we should take the same actions we would if the
> non-free software were packaged in non-free and the dependencies were
"Depends" and "Build-Depends" are not necessarily the entirety of the
Social Contract's idea of dependency.
> (3) As a concrete instance of (2), for the purposes of deciding if an
> ICQ client can be in main in the presence of possible unexpressed
> dependencies on an ICQ server, we should take the actions we would if
> the server were packaged in non-free. By (1), that action would be to
> leave the ICQ client in main. Therefore we should leave the ICQ client
> in main.
Your argument is that the ICQ client does not depend on the ICQ
server; therefore it is free and can go into main; therefore it does
not depend on the ICQ server.
> >>In general, Debian doesn't make clients for a network protocol depend on
> >>servers for that protocol. I think that's a perfectly reasonable
> >>policy, given that you could run the server elsewhere, not on the local
> > How can I run an ICQ server? Until the answer is "install this
> > package from Debian," I believe that the only way to interpret the
> > DFSG consistent with your argument is to move the ICQ client to
> > contrib.
> Right now, we don't require clients to Depends:, Recommends:, or
> Build-Depends: on servers.
We don't require drivers to Depends:, Recommends: or Build-Depends: on
> >>Similarly, consider if the firmware were packaged in non-free. If the
> >>device didn't require the driver to load firmware, the driver would at
> >>most Suggests: firmware, and could go to main. If the driver must load
> >>the firmware, the driver Depends: or Recommends: firmware, so the driver
> >>can't be in main.
> > This establishes at most an indirect dependency on the firmware: The
> > driver depends on the device which depends on the firmware. Since
> > Debian cannot express the second dependency, you insist that it
> > express "driver depends on firmware." You inconvenience the owner of
> > the device simply because their device has a certain characteristic.
> Not at all. The driver uses the request_firmware interface to make
> hotplug supply the firmware, and the driver won't work unless the
> firmware exists. The hardware is designed to require the driver to load
> the firmware. It is the task of the driver to load this firmware, and
> the driver cannot perform this task with out the firmware. I don't
> believe there is any indirection there; the driver should Depends:
> firmware, and it only doesn't because the firmware isn't packaged.
> Are you disagreeing with my argument that the driver would Depends:
> firmware if the firmware were packaged, or are you disagreeing with the
> idea that we should treat the "firmware too non-free for non-free" case
> the same as the "firmware packaged in non-free" case for the purposes of
> deciding if the driver goes in main?
I disagree that the driver would Depends: on the firmware.
> > This is identical to the ICQ case: The client depends on the server
> > (service) which depends on the server (software). Debian cannot
> > express the second dependency, so following your approach, we must
> > insist "client software depends on server software."
> Except that Debian doesn't express the first dependency either, even
> when it would be possible to do so.
We evidently agree on this point: Debian can express neither the
dependency of the driver/client on the device/service nor the
dependency of the device/service on the non-free software.
As "web applications" and other distributed programs become more
common, we will run into more and more problematic divisions between
the two endpoints. I believe they should be treated consistently
regardless of the communication bus between the Debian software and
what it talks to.