Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 666588 - sys-firmware/{b43-firmware,b43legacy-firmware}: Remove bindist restriction
Summary: sys-firmware/{b43-firmware,b43legacy-firmware}: Remove bindist restriction
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Rick Farina (Zero_Chaos)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-19 21:05 UTC by Matt Turner
Modified: 2019-04-01 07:40 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Turner gentoo-dev 2018-09-19 21:05:57 UTC
Both sys-firmware/b43-firmware and sys-firmware/b43legacy-firmware packages have

LICENSE="Broadcom"
...
RESTRICT="mirror binchecks strip"

The Broadcom license says
"""
2.1.    License Grants.  Subject to the terms and conditions of this Agreement, Broadcom hereby grants to Licensee a non-exclusive, non-transferable, royalty-free license (i) to use and integrate the Software in conjunction with any other software; and (ii) to reproduce and distribute the Software complete, unmodified and only for use with a Broadcom Product.

[...]

2.3.    Restriction on Distribution.  Licensee shall only distribute the Software (a) under the terms of this Agreement and a copy of this Agreement accompanies such distribution, and (b) [snip liability disclaimer]
"""

Looks to me like this is fine to mirror?

As far as I know, this mirror restriction has prevented Gentoo ISOs from shipping with this firmware, which would be nice to do.
Comment 1 Ulrich Müller gentoo-dev 2018-09-20 06:38:33 UTC
The log of profiles/license_groups indicates that robbat2 and I had discussed this previously:

commit 63050b96add7e84293da52754ed5de5055c68d9b
Author: Ulrich Müller <ulm@gentoo.org>
Date:   Sun Mar 2 00:03:22 2014 +0000

    Move Broadcom license from EULA to BINARY-REDISTRIBUTABLE group, as discussed with robbat2.

So yes, the mirror restriction can be dropped.
Comment 2 Matt Turner gentoo-dev 2018-09-20 06:49:39 UTC
Great, thank you for the confirmation. I will drop the mirror restriction.
Comment 3 Larry the Git Cow gentoo-dev 2018-09-20 06:51:38 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d65c32d0a96c607081049505c548521c9282301

commit 3d65c32d0a96c607081049505c548521c9282301
Author:     Matt Turner <mattst88@gentoo.org>
AuthorDate: 2018-09-20 06:50:40 +0000
Commit:     Matt Turner <mattst88@gentoo.org>
CommitDate: 2018-09-20 06:51:24 +0000

    sys-firmware/b43-firmware: Drop mirror restriction
    
    Closes: https://bugs.gentoo.org/666588

 sys-firmware/b43-firmware/b43-firmware-5.100.138.ebuild   | 2 +-
 sys-firmware/b43-firmware/b43-firmware-6.30.163.46.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1b75cb1ccccce9aef9c04056655badeb4f4cb63

commit c1b75cb1ccccce9aef9c04056655badeb4f4cb63
Author:     Matt Turner <mattst88@gentoo.org>
AuthorDate: 2018-09-20 06:50:13 +0000
Commit:     Matt Turner <mattst88@gentoo.org>
CommitDate: 2018-09-20 06:51:24 +0000

    sys-firmware/b43legacy-firmware: Drop mirror restriction
    
    Closes: https://bugs.gentoo.org/666588

 sys-firmware/b43legacy-firmware/b43legacy-firmware-3.130.20.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 4 Larry the Git Cow gentoo-dev 2018-09-20 06:55:22 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/releng.git/commit/?id=678b4c1f9ff610e2280ab5cdea173382f527aaad

commit 678b4c1f9ff610e2280ab5cdea173382f527aaad
Author:     Matt Turner <mattst88@gentoo.org>
AuthorDate: 2018-09-20 06:54:09 +0000
Commit:     Matt Turner <mattst88@gentoo.org>
CommitDate: 2018-09-20 06:55:04 +0000

    specs/ppc: Replace fwcutter with actual firmware
    
    With the mirror restriction lifted, we can actually ship this on
    install CDs.
    
    Bug: https://bugs.gentoo.org/666588

 releases/weekly/specs/ppc/ppc32/installcd-stage1.spec | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 5 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-15 20:38:59 UTC
While I agree that the mirror restriction is unnessesary, the license is pretty clear on modified files:

    2.1.    License Grants.  Subject to the terms and conditions of this Agreement,
    Broadcom hereby grants to Licensee a non-exclusive, non-transferable,
    royalty-free license (i) to use and integrate the Software in conjunction with
    any other software; and (ii) to reproduce and distribute the Software complete,
    unmodified and only for use with a Broadcom Product.


I've added RESTRICT="bindist" to this ebuild as I feel is appropriate.  If license teams disagree then they may revert my change and I will not argue.  As I am the maintainer, I'm going with my reading of the license until someone else (say from the license team) wants to give this a blessing.

I firmly believe we cannot distribute binaries here, but I won't battle the licensing team if they disagree.
Comment 6 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-16 02:25:11 UTC
might be worth noting that other distros do not distribute the cut firmware either:

https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#Installing_b43.2Fb43legacy_firmware

https://wiki.debian.org/bcm43xx#b43_and_b43legacy

https://fedoraproject.org/wiki/Firmware#List_of_firmware_which_we_can_NOT_package

They all use a package that specifically does not redistribute the cut firmware, choosing instead to cut it on the user's machine.
Comment 7 Ulrich Müller gentoo-dev 2019-03-16 11:37:05 UTC
@robbat2: Would it be o.k. if I quoted your e-mail message on the subject from 2014-02-28 here (message id <robbat2-20140228T181746-353624381Z@orbis-terrarum.net>)?

@zerochaos: IIUC, fwcutter only extracts the firmware from the driver file? Or does it actually modify it?
Comment 8 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-16 16:43:55 UTC
fwcutter extracts just the firmware from inside of the broadcom binary driver.

Looking at the source code I'd say it modifies it, but only because this looks vastly more complex than what you would need to do for simply cutting a file at specific bytes.

https://github.com/mbuesch/b43-tools/tree/master/fwcutter
Comment 9 Ulrich Müller gentoo-dev 2019-03-17 09:58:57 UTC
Trying to summarise from a discussion on IRC:

The Broadcom license defines:
1.1. “Broadcom Product” means any of the proprietary integrated circuit product(s) sold by Broadcom with which the Software was designed to be used, [...]

Whereas file(1) reports for the single file in the tarball (taking b43-firmware-6.30.163.46 as example):
broadcom-wl-6.30.163.46.wl_apsta.o: ELF 32-bit LSB relocatable, MIPS, MIPS32 rel2 version 1 (SYSV), with debug_info, not stripped

Arguably, one could conclude from 1.1. that "the Software" is what actually runs on their product. Since this is true only for the extracted firmware but not for the .o file, "the Software" would be the former in this interpretation.

Also, do we actually know if the tarball referenced in SRC_URI originates from Broadcom directly? If it was packaged by somebody else, then the same that is true for bindist restriction is also true for mirror restriction:
- If we interpret "the Software" to be the original package from Broadcom, then the file fetched by the ebuild isn't "complete" and "unmodified" (clause 2.1.(ii)), and we cannot mirror it, i.e., we would need both mirror and bindist restrictions.
- If we interpret "the Software" as the actual firmware running on the Broadcom device, then it would be unmodified and we can both mirror it and distribute the binary package, i.e., we won't need either of the restrictions.

Disclaimer: IANAL, TINLA.
Comment 10 Ulrich Müller gentoo-dev 2019-03-17 11:16:38 UTC
Also, how do we know in the first place that the "Broadcom" license applies to this package?

The README file in the b43-firmware-5.100.138 distfile indicates that the driver was extracted from a Netgear source package:
http://www.downloads.netgear.com/files/GPL/WNDR4500-V1.0.0.40_1.0.10_src.tar.zip

In that tarball, I see only a ReleaseNotes.html saying "Broadcom Corporation Confidential. For evaluation use only.", but no license that would give us the right to redistribute the file. Presumably, Netgear has an agreement with Broadcom that they can distribute it, but that wouldn't mean anything for us.
Comment 11 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-18 14:26:42 UTC
From "go ahead and remove the restriction" to (six months later) no it needs mirror restriction...or maybe even we can't distribute this at all....

Thanks guys. Seriously.  Thanks for playing with fire while my name is on the package.
Comment 12 Ulrich Müller gentoo-dev 2019-03-18 15:39:15 UTC
(In reply to Rick Farina (Zero_Chaos) from comment #11)
> From "go ahead and remove the restriction" to (six months later) no it needs
> mirror restriction...or maybe even we can't distribute this at all....

Well, my comment #1 was based on the assumption that the package is distributed under the Broadcom license. Apparently, that license label was added to the ebuild following bug 446658 comment #7. Do we know for certain that it is correct?
Comment 13 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-18 16:38:04 UTC
(In reply to Ulrich Müller from comment #12)
> (In reply to Rick Farina (Zero_Chaos) from comment #11)
> > From "go ahead and remove the restriction" to (six months later) no it needs
> > mirror restriction...or maybe even we can't distribute this at all....
> 
> Well, my comment #1 was based on the assumption that the package is
> distributed under the Broadcom license. Apparently, that license label was
> added to the ebuild following bug 446658 comment #7. Do we know for certain
> that it is correct?

I have no means of proving the license applies to this file as broadcom has never clarified anything which I can find.

I can confirm that all other distros download the file directly to the user system and do no mirror it.  Hence the original mirror restriction.
Comment 14 Ulrich Müller gentoo-dev 2019-03-19 17:31:59 UTC
As discussed today on IRC, it is unclear what exactly constitutes the "software made available [...] in binary code". So we should err on the safe side and keep the bindist restriction in place.
Comment 15 Rick Farina (Zero_Chaos) gentoo-dev 2019-03-19 20:32:14 UTC
bindist restriction remains in place
no mirror restriction needed at this time as far as we can tell