linux kernel contains GPL violations

Bug #575518 reported by Kip Warner on 2010-05-05
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Unassigned

Bug Description

The linux kernel is currently licensed under the GPL, but contains binary blobs and source incompatible with the GPL. Here is a sample list[1] of some of the affected source.

    * drivers/char/ser_a2232fw.h
    * drivers/char/ser_a2232fw.ax
    * drivers/net/ixp2000/ixp2400_rx.ucode
    * drivers/net/ixp2000/ixp2400_rx.uc
    * drivers/net/ixp2000/ixp2400_tx.ucode
    * drivers/net/wan/wanxlfw.inc_shipped
    * drivers/net/wan/wanxlfw.S
    * drivers/net/wireless/atmel.c
    * drivers/scsi/53c700_d.h_shipped
    * drivers/scsi/53c700.scr
    * drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
    * drivers/scsi/aic7xxx/aic79xx.seq
    * drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped
    * drivers/scsi/aic7xxx/aic7xxx.seq
    * drivers/scsi/aic7xxx_old/aic7xxx_seq.c
    * drivers/scsi/aic7xxx_old/aic7xxx.seq
    * drivers/scsi/53c7xx_d.h_shipped
    * drivers/scsi/53c7xx.scr
    * drivers/scsi/sym53c8xx_2/sym_fw1.h
    * drivers/scsi/sym53c8xx_2/sym_fw2.h
    * firmware/dsp56k/bootstrap.bin.ihex
    * firmware/dsp56k/bootstrap.asm
    * firmware/keyspan_pda/keyspan_pda.HEX
    * firmware/keyspan_pda/keyspan_pda.S
    * firmware/keyspan_pda/xircom_pgs.HEX
    * firmware/keyspan_pda/xircom_pgs.S
    * sound/pci/cs46xx/imgs/cwcdma.h
    * sound/pci/cs46xx/imgs/cwcdma.asp

Some options:
(1) Strip all non-free code out and distribute only that package
(2) Strip all non-free code out and distribute that as an additional alternative package
(3) Change the licensing of the kernel package to reflect this and move it to either Restricted or Multiverse.

For more information, please see this:
http://www.fsfla.org/svnwiki/anuncio/2010-03-Linux-2.6.33-libre

References:
[1] http://libresoft.es/Members/herraiz/blog/linux-is-not-free-software
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: kip 1787 F.... pulseaudio
 /dev/snd/pcmC0D1p: kip 1787 F...m pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xf4600000 irq 22'
   Mixer name : 'Realtek ALC662 rev1'
   Components : 'HDA:10ec0662,15580860,00100101 HDA:10573055,00305557,00100900'
   Controls : 24
   Simple ctrls : 14
DistroRelease: Ubuntu 10.04
HibernationDevice: RESUME=UUID=23bc9c32-0a2f-45f3-8a89-0fc1dec0f312
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100427.1)
MachineType: System76, Inc. Serval Professional
NonfreeKernelModules: nvidia
Package: linux (not installed)
ProcCmdLine: BOOT_IMAGE=/vmlinuz-2.6.32-22-generic root=/dev/mapper/username--laptop-root ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-22.33-generic 2.6.32.11+drm33.2
Regression: No
RelatedPackageVersions: linux-firmware 1.34
Reproducible: Yes
RfKill:
 0: phy0: Wireless LAN
  Soft blocked: no
  Hard blocked: no
Tags: lucid needs-upstream-testing
Uname: Linux 2.6.32-22-generic x86_64
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
dmi.bios.date: 05/13/2009
dmi.bios.vendor: Phoenix Technologies LTD
dmi.bios.version: 1.02.16S
dmi.board.asset.tag: Tag 12345
dmi.board.name: Serval Professional
dmi.board.vendor: System76, Inc.
dmi.board.version: serp5
dmi.chassis.asset.tag: No Asset Tag
dmi.chassis.type: 9
dmi.chassis.vendor: No Enclosure
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnPhoenixTechnologiesLTD:bvr1.02.16S:bd05/13/2009:svnSystem76,Inc.:pnServalProfessional:pvrserp5:rvnSystem76,Inc.:rnServalProfessional:rvrserp5:cvnNoEnclosure:ct9:cvrN/A:
dmi.product.name: Serval Professional
dmi.product.version: serp5
dmi.sys.vendor: System76, Inc.

silverballer47 (silverballer47) wrote :

It appears, and I could be wrong, that Debian seems to group ALL binary blobs into a firmware-nonfree package.

On the other hand, gNewSense does away with binary blobs altogether. This often renders certain hardware unusable at first go, which is one of the hallmarks of Ubuntu.

By following one of the suggestions above, or another along the same vein, Ubuntu can continue providing its excellent first-run hardware support while keeping its philosophies intact. Users can have a choice whether to install firmware-nonfree and other packages contain binary blobs. I'd even go as far as suggesting that this be an installer option in all versions of the Ubuntu installer.

Jeremy Foshee (jeremyfoshee) wrote :

Hi Kip,

Please be sure to confirm this issue exists with the latest development release of Ubuntu. ISO CD images are available from http://cdimage.ubuntu.com/releases/ . If the issue remains, please run the following command from a Terminal (Applications->Accessories->Terminal). It will automatically gather and attach updated debug information to this report.

apport-collect -p linux 575518

Also, if you could test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

    [This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: needs-kernel-logs
tags: added: needs-upstream-testing
tags: added: kj-triage
Changed in linux (Ubuntu):
status: New → Incomplete

apport information

tags: added: apport-collected
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Kip Warner (kip) wrote : Lspci.txt

apport information

Kip Warner (kip) wrote : Lsusb.txt

apport information

apport information

apport information

apport information

apport information

Kip Warner (kip) wrote : UdevDb.txt

apport information

Kip Warner (kip) wrote : UdevLog.txt

apport information

apport information

Kip Warner (kip) wrote :

Hey Jeremy. Thanks for the heads up, though it was an automated message. I've added some debugging details, but I don't think this is a technical problem, but a philosophical one. Please let me know if there is anything further I can provide.

Jeremy Foshee (jeremyfoshee) wrote :

Kip,
   Sorry for the automated processing of the bug, but thanks for posting anyway. :-)

~JFo

Jeremy Foshee (jeremyfoshee) wrote :

Kip,
   from a conversation concerning this, we created linux-firmware-nonfree to address this issue. The firmware has been cleaned up and recategorized to be the same as Debian now.

I hope that helps.

~JFo

Kip Warner (kip) wrote :

Thanks Jeremy for letting me know that. I am also happy to see it is in the multiverse (unsupported non-free). I can't recall with certainty, but is that repository disabled by default when installing under the latest distro release (Lucid right now)?

Jeremy Foshee (jeremyfoshee) wrote :

That is my understanding, yes. It would probably be a better idea to ask the team directly in #ubuntu-kernel on the FreeNode IRC server.

Thanks!

~JFo

Kip Warner (kip) wrote :

Hey Jeremy. I removed my debugging attachments, as they kind of cluttered the report and I guess they're really not useful anyways in this situation.

From a philosophical standpoint, not to be a gnuisance, but is it not unethical to encourage people to use non-free software by enabling the non-free repositories by default?

From a technical standpoint, I'd be curious to know how much contemporary hardware out there would actually be affected if the non-free blobs were stripped out completely and not even repackaged. I think this would be very interesting. The Ubuntu hardware database is a logical place to refer to and would be a great place to check, but I think the site is still broken. =(

http://hwdb.ubuntu.com/

Those sound like they would be better in restricted, which is
*supported* non-free. If those firmware elements are essential for
making it work, we should support them. This is a matter of policy since
day 0, regardless of our personal preferences. Binary drivers and
firmware are OK in restricted, and *should* be there unless agreed
otherwise, with me if necessary.

Mark

Kip Warner (kip) wrote :

Hey Mark. I was actually wondering that also, why it was in multiverse since I assumed the kernel would be supported.

It would be very interesting to find out what hardware would actually be affected though. I agree with you about essential drivers that they are needed - at least until they are replaced.

Matthew Garrett (mjg59) wrote :

    * drivers/char/ser_a2232fw.h
    * drivers/char/ser_a2232fw.ax

The .ax file is the source code for the .h fule.

   * drivers/net/ixp2000/ixp2400_rx.ucode
    * drivers/net/ixp2000/ixp2400_rx.uc

The .uc file is the source code for the .ucode file.

    * drivers/net/ixp2000/ixp2400_tx.ucode

This one also includes source.

    * drivers/net/wan/wanxlfw.inc_shipped
    * drivers/net/wan/wanxlfw.S

The .S file is the source code for the inc_shipped file.

    * drivers/net/wireless/atmel.c

The source for this is at the bottom of the file

    * drivers/scsi/53c700_d.h_shipped
    * drivers/scsi/53c700.scr

The .scr file is the source code for the shipped file

    * drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
    * drivers/scsi/aic7xxx/aic79xx.seq

The .seq file is the source code for the shipped file

    * drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped
    * drivers/scsi/aic7xxx/aic7xxx.seq

Ditto

    * drivers/scsi/aic7xxx_old/aic7xxx_seq.c
    * drivers/scsi/aic7xxx_old/aic7xxx.seq

Ditto

    * drivers/scsi/53c7xx_d.h_shipped
    * drivers/scsi/53c7xx.scr

.scr is the source code for the shipped file

    * drivers/scsi/sym53c8xx_2/sym_fw1.h
    * drivers/scsi/sym53c8xx_2/sym_fw2.h

These are both source code

   * firmware/dsp56k/bootstrap.bin.ihex
    * firmware/dsp56k/bootstrap.asm

The .asm file is the source code for the .ihex file

    * firmware/keyspan_pda/keyspan_pda.HEX
    * firmware/keyspan_pda/keyspan_pda.S

The .S file is the source code for the .HEX file

    * firmware/keyspan_pda/xircom_pgs.HEX
    * firmware/keyspan_pda/xircom_pgs.S

Same here

    * sound/pci/cs46xx/imgs/cwcdma.h
    * sound/pci/cs46xx/imgs/cwcdma.asp

The .asp file is the source code for the .h

This list is a pretty poor example of sourceless binary content :)

Kip Warner (kip) wrote :

Very cooked. =(

Jeremy Foshee (jeremyfoshee) wrote :

This bug report was marked as Incomplete and has not had any updated comments for quite some time. As a result this bug is being closed. Please reopen if this is still an issue in the current Ubuntu development release http://cdimage.ubuntu.com/daily-live/current/ . Also, please be sure to provide any requested information that may have been missing. To reopen the bug, click on the current status under the Status column and change the status back to "New". Thanks.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: kj-expired
Changed in linux (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers