Package: release.debian.org Severity: normal Tags: stretch User: release.debian....@packages.debian.org Usertags: pu
This update addresses three sets of bugs: - The firmware-{adi,ralink} pckages were supposed to be replaced by firmware-misc-nonfree between jessie and stretch, but I failed to include transitional packages to make this work (#907320). - Security vulnerabilities in packet processing in Broadcom wifi firmware (CVE-2016-0801, CVE-2017-0561, CVE-2017-9417, #869639, a.k.a. "Broadpwn"). - Security vulnerabilities in WPA2 key handling in Broadcom wifi firmware (CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, CVE-2017-13081, a.k.a. "KRACK"). (The security vulnerabilities went unfixed for a long time so it doesn't make much difference if the fixes wait for the next point release.) The following source diff excludes generated files debian/control, debian/firmware-*.copyright, and debian/rules.gen. Ben. --- diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py index 491bbe329c54..b087b7e602d5 100755 --- a/debian/bin/gencontrol.py +++ b/debian/bin/gencontrol.py @@ -1,9 +1,10 @@ #!/usr/bin/env python3 -import os, re, sys, codecs +import os, re, sys, locale sys.path.insert(0, "debian/lib/python") sys.path.append(sys.argv[1] + "/lib/python") +locale.setlocale(locale.LC_CTYPE, "C.UTF-8") from config import Config from debian_linux.debian import Package, PackageRelation @@ -92,7 +93,7 @@ Package._fields['Description'] = PackageDescription for dir in self.dirs: filename = "%s/%s.in" % (dir, name) if os.path.exists(filename): - f = codecs.open(filename, 'r', 'utf-8') + f = open(filename, 'r') if prefix == 'control': return read_control(f) elif prefix == 'templates': @@ -145,7 +146,7 @@ Package._fields['Description'] = PackageDescription makefile = Makefile() self.do_source(packages) - self.do_meta(packages, makefile) + self.do_extra(packages, makefile) self.do_main(packages, makefile) self.write(packages, makefile) @@ -154,17 +155,17 @@ Package._fields['Description'] = PackageDescription source = self.templates["control.source"] packages['source'] = self.process_package(source[0], ()) - def do_meta(self, packages, makefile): + def do_extra(self, packages, makefile): config_entry = self.config['base',] vars = {} vars.update(config_entry) - for entry in self.templates["control.binary.meta"]: + for entry in self.templates["control.extra"]: package_binary = self.process_package(entry, {}) assert package_binary['Package'].startswith('firmware-') package = package_binary['Package'].replace('firmware-', '') - f = open('debian/copyright.meta') + f = open('debian/copyright.debian') open("debian/firmware-%s.copyright" % package, 'w').write(f.read()) makeflags = MakeFlags() @@ -203,8 +204,8 @@ Package._fields['Description'] = PackageDescription f = open('%s/copyright' % package_dir) open("debian/firmware-%s.copyright" % package, 'w').write(f.read()) else: - vars['license'] = codecs.open("%s/LICENSE" % package_dir, 'r', 'utf-8').read() - codecs.open("debian/firmware-%s.copyright" % package, 'w', 'utf-8').write(self.substitute(copyright, vars)) + vars['license'] = open("%s/LICENSE" % package_dir, 'r').read() + open("debian/firmware-%s.copyright" % package, 'w').write(self.substitute(copyright, vars)) try: os.unlink('debian/firmware-%s.bug-presubj' % package) @@ -308,19 +309,19 @@ Package._fields['Description'] = PackageDescription if 'initramfs-tools' in config_entry.get('support', []): postinst = self.templates['postinst.initramfs-tools'] - codecs.open("debian/firmware-%s.postinst" % package, 'w', 'utf-8').write(self.substitute(postinst, vars)) + open("debian/firmware-%s.postinst" % package, 'w').write(self.substitute(postinst, vars)) if 'license-accept' in config_entry: - license = codecs.open("%s/LICENSE.install" % package_dir, 'r', 'utf-8').read() + license = open("%s/LICENSE.install" % package_dir, 'r').read() preinst = self.templates['preinst.license'] preinst_filename = "debian/firmware-%s.preinst" % package - codecs.open(preinst_filename, 'w', 'utf-8').write(self.substitute(preinst, vars)) + open(preinst_filename, 'w').write(self.substitute(preinst, vars)) templates = self.process_templates(self.templates['templates.license'], vars) license_split = re.split(r'\n\s*\n', license) templates[0]['Description'].extend(license_split) templates_filename = "debian/firmware-%s.templates" % package - self.write_rfc822(codecs.open(templates_filename, 'w', 'utf-8'), templates) + self.write_rfc822(open(templates_filename, 'w'), templates) desc = packages_binary[0]['Description'] desc.append( @@ -336,7 +337,7 @@ You must agree to the terms of this license before it is installed.""" vars['firmware-list'] = ''.join(firmware_meta_list) package_meta_temp = self.templates["metainfo.xml"] # XXX Might need to escape some characters - codecs.open("debian/firmware-%s.metainfo.xml" % package, 'w', 'utf-8').write(self.substitute(package_meta_temp, vars)) + open("debian/firmware-%s.metainfo.xml" % package, 'w').write(self.substitute(package_meta_temp, vars)) def process_template(self, in_entry, vars): e = Template() @@ -370,10 +371,10 @@ You must agree to the terms of this license before it is installed.""" self.write_makefile(makefile) def write_control(self, list): - self.write_rfc822(codecs.open("debian/control", 'w', 'utf-8'), list) + self.write_rfc822(open("debian/control", 'w'), list) def write_makefile(self, makefile): - f = codecs.open("debian/rules.gen", 'w', 'utf-8') + f = open("debian/rules.gen", 'w') makefile.write(f) f.close() diff --git a/debian/changelog b/debian/changelog index 745d4613345b..af2adeb54d68 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,26 @@ +firmware-nonfree (20161130-4) stretch; urgency=medium + + * debian/bin/gencontrol.py: Set encoding to UTF-8 globally + * Add back firmware-{adi,ralink} as transitional packages (Closes: #907320) + * debian/control: Point Vcs URLs to Salsa + * Update to linux-support 4.9.0-8 + * firmware-brcm80211: Update Broadcom wifi firmware to fix security issues + (Closes: #869639): + - BCM4339 (CVE-2016-0801) + - BCM4354 (CVE-2016-0801, CVE-2017-0561, CVE-2017-9417, CVE-2017-13077, + CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, CVE-2017-13081) + - BCM4356-PCIe (CVE-2016-0801, CVE-2017-0561, CVE-2017-9417, + CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, + CVE-2017-13081) + - BCM43340 (CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, + CVE-2017-13081) (also fixes issues when operating in 5GHz band) + - BCM43362 (CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, + CVE-2017-13081) + - BCM43430 (CVE-2017-13077, CVE-2017-13078, CVE-2017-13079, CVE-2017-13080, + CVE-2017-13081) + + -- Ben Hutchings <b...@decadent.org.uk> Sat, 13 Oct 2018 20:27:06 +0100 + firmware-nonfree (20161130-3) unstable; urgency=medium * misc-nonfree: Include Intel OPA Gen1 firmware (Closes: #862458) diff --git a/debian/config/brcm80211/brcm/brcmfmac43340-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43340-sdio.bin new file mode 100644 index 000000000000..a945f80dbeb6 Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac43340-sdio.bin differ diff --git a/debian/config/brcm80211/brcm/brcmfmac43362-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43362-sdio.bin new file mode 100644 index 000000000000..62b3643420ed Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac43362-sdio.bin differ diff --git a/debian/config/brcm80211/brcm/brcmfmac4339-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac4339-sdio.bin new file mode 100644 index 000000000000..bc8316d80f32 Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac4339-sdio.bin differ diff --git a/debian/config/brcm80211/brcm/brcmfmac43430-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43430-sdio.bin new file mode 100644 index 000000000000..4b2945eaca56 Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac43430-sdio.bin differ diff --git a/debian/config/brcm80211/brcm/brcmfmac4354-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac4354-sdio.bin new file mode 100644 index 000000000000..e2f7b1f04fbb Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac4354-sdio.bin differ diff --git a/debian/config/brcm80211/brcm/brcmfmac4356-pcie.bin b/debian/config/brcm80211/brcm/brcmfmac4356-pcie.bin new file mode 100644 index 000000000000..3bf706e08c3b Binary files /dev/null and b/debian/config/brcm80211/brcm/brcmfmac4356-pcie.bin differ diff --git a/debian/config/misc-nonfree/defines b/debian/config/misc-nonfree/defines index 907c2e98a95e..c06c0a1d150c 100644 --- a/debian/config/misc-nonfree/defines +++ b/debian/config/misc-nonfree/defines @@ -3,8 +3,8 @@ desc: various drivers in the Linux kernel longdesc: various drivers in the Linux kernel. This is a collection of firmware blobs which are not individually large enough to warrant a standalone package -replaces: firmware-linux (<< 0.19), firmware-ivtv (<< 0.38~), firmware-linux-nonfree (<< 20151018-1~), firmware-adi, firmware-ralink -breaks: firmware-linux (<< 0.19), firmware-ivtv (<< 0.38~), firmware-linux-nonfree (<< 20151018-1~), firmware-adi, firmware-ralink +replaces: firmware-linux (<< 0.19), firmware-ivtv (<< 0.38~), firmware-linux-nonfree (<< 20151018-1~), firmware-adi (<< 20151018-1~), firmware-ralink (<< 20151018-1~) +breaks: firmware-linux (<< 0.19), firmware-ivtv (<< 0.38~), firmware-linux-nonfree (<< 20151018-1~), firmware-adi (<< 20151018-1~), firmware-ralink (<< 20151018-1~) provides: firmware-adi, firmware-ralink files: 3com/typhoon.bin diff --git a/debian/copyright.meta b/debian/copyright.debian similarity index 100% rename from debian/copyright.meta rename to debian/copyright.debian diff --git a/debian/rules.defs b/debian/rules.defs index 021b3c43a799..68526d069c09 100644 --- a/debian/rules.defs +++ b/debian/rules.defs @@ -1 +1 @@ -KERNELVERSION := 4.9.0-1 +KERNELVERSION := 4.9.0-8 diff --git a/debian/source/include-binaries b/debian/source/include-binaries index 3d9c8c1471b8..db82e0ae2a96 100644 --- a/debian/source/include-binaries +++ b/debian/source/include-binaries @@ -1,4 +1,10 @@ debian/config/amd-graphics/radeon/si58_mc.bin +debian/config/brcm80211/brcm/brcmfmac4339-sdio.bin +debian/config/brcm80211/brcm/brcmfmac4354-sdio.bin +debian/config/brcm80211/brcm/brcmfmac4356-pcie.bin +debian/config/brcm80211/brcm/brcmfmac43340-sdio.bin +debian/config/brcm80211/brcm/brcmfmac43362-sdio.bin +debian/config/brcm80211/brcm/brcmfmac43430-sdio.bin debian/config/ipw2x00/ipw2100-1.3-i.fw debian/config/ipw2x00/ipw2100-1.3-p.fw debian/config/ipw2x00/ipw2100-1.3.fw diff --git a/debian/templates/control.binary.meta.in b/debian/templates/control.extra.in similarity index 59% rename from debian/templates/control.binary.meta.in rename to debian/templates/control.extra.in index 4971599202eb..be0be449cf3b 100644 --- a/debian/templates/control.binary.meta.in +++ b/debian/templates/control.extra.in @@ -18,3 +18,18 @@ Description: Binary firmware for various drivers in the Linux kernel (meta-packa This package depends on non-free firmware which may be used with drivers in the Linux kernel. +Package: firmware-adi +Section: non-free/oldlibs +Architecture: all +Depends: firmware-misc-nonfree, ${misc:Depends} +Description: Binary firmware for Analog Devices Inc. DSL modem chips (dummmy package) + This is a dummy transitional package. It can be safely removed. +Multi-Arch: foreign + +Package: firmware-ralink +Section: non-free/oldlibs +Architecture: all +Depends: firmware-misc-nonfree, ${misc:Depends} +Description: Binary firmware for Ralink wireless cards (dummmy package) + This is a dummy transitional package. It can be safely removed. +Multi-Arch: foreign diff --git a/debian/templates/control.source.in b/debian/templates/control.source.in index 6d5c4505592a..7ae4c1c45b6b 100644 --- a/debian/templates/control.source.in +++ b/debian/templates/control.source.in @@ -5,6 +5,6 @@ Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org> Uploaders: Bastian Blank <wa...@debian.org>, Steve Langasek <vor...@debian.org>, maximilian attems <m...@debian.org>, Ben Hutchings <b...@decadent.org.uk> Build-Depends: debhelper (>= 9) Standards-Version: 3.9.8 -Vcs-Git: https://anonscm.debian.org/git/kernel/firmware-nonfree.git -Vcs-Browser: https://anonscm.debian.org/cgit/kernel/firmware-nonfree.git +Vcs-Git: https://salsa.debian.org/kernel-team/firmware-nonfree.git +Vcs-Browser: https://salsa.debian.org/kernel-team/firmware-nonfree XS-Autobuild: yes