Re: Firmware: Scope of non-free-firmware
Moin
On Tue, May 10, 2022 at 02:30:04PM -0600, Sam Hartman wrote:
> Build Dependencies
> ==================
>
> As a consequence of options 2-4, non-free-firmware would typically need
> to be enabled whenever non-free is enabled.
I don't understand why this is the case? Option 2 just needs non-free
for building non-free-firmware, not always.
Do we have that case that firmware needs non-free tools to build? Do we
now have just non-free or also no-source tools to build a firmware, just
to avoid shipping the binary of the firmware directly? It is not likely
that we could in any way modify such a firmware without access to many
other tools and documentation.
> Binary Dependencies
> ===================
>
> It's possible that packages in non-free-firmware could depend on
> non-free libraries or downloader tools or whatever.
Downloaders can go to contrib already, so we would not need
non-free-firmware for that.
Bundling firmware and libraries is done only in one case as far as I
know: nvidia.
> Source Distributions
> ====================
>
> Yet anyone who cares that much about software freedom is likely to care
> about distributing complete source for a work including source for
> anything it depends on.
I usualy would say: they are free to rebuild the media without the
firmware on it.
> As I understand it, a source package in main can build both binary
> packages in main and contrib.
It is technically possible, but AFAIK discouraged, as it breaks several
assumptions dak and the release team tooling does.
> Back to What Goes in Non-free-firmware
> ======================================
>
> I will admit that I find it fairly hard to define what is firmware and
> what isn't. I also find it challenging to really defend that boundary
> as the boundary we're willing to cross for practical reasons.
> Steve did a good job of summarizing how what it is to be firmware has
> gotten more complicated over the years.
> As a reminder, firmware does sometimes run on the CPU (microcode, UEFI),
> sometimes is software, sometimes is more like data.
> (And yes, I know that the way in which microcode runs on the CPU is
> different than UEFI).
Sure, UEFI is a firmware. But in the past we always talked about the
firmware stuff that does _not_ run on the main CPU, but on the CPU
integrated into other hardware pieces. The same for microcode, it is
not stuff running on the main CPU.
> * High quality proprietary voices that can improve accessibility for
> screen reader users
> * Data for input methods that makes input easier for non-English
> environments. (I don't know if this is an area where free
> alternatives have caught up)
> * Machine learning models for speech that would make it easier for
> people who cannot easily type to use Debian.
I see what you mean. But nothing of that actually enables the use of a
particular hardware.
> * Proprietary Nvidia graphics drivers.
This is explicitly code built and run on the main CPU, not firmware. It
also needs firmware running on the device itself.
> Personally I think most if not all of the above are in the same category
> as firmware at least in terms of how I think about them and software
> freedom.
Actually they are not in the same category.
> I'd rather come up with some rules based on other categories than
> firmware vs not.
> Perhaps something like non-free-firmware is for packages that make it
> possible to use the system or its hardware where there is no free
> alternative providing comparable functionality.
But then we can't call it firmware. And this definition does not longer
fit firmware. Hardware and firmware are a unit, you need both to use
it. So it is not "no free alternative", but "integral but separate
shipped part of the hardware".
Regards,
Bastian
--
One does not thank logic.
-- Sarek, "Journey to Babel", stardate 3842.4
Reply to: