nongnu: broadcom-bt-firmware: Update to 12.0.1.1012.

* nongnu/packages/linux.scm (broadcom-bt-firmware): Update to 12.0.1.1012.
[source]: Get files from Windows Update.
[arguments]: Update ini-parsing code for new format.
[native-inputs]: New source is a cab file, so exchange unzip for cabextract.
[description]: Add new chipset supported in this release.
[license]: Link to license/user agreement text.
This commit is contained in:
Alex Griffin 2019-06-01 09:24:35 -05:00
parent 7b46603979
commit ff6e9e05e5

View File

@ -236,18 +236,19 @@ Linux device driver for the following chipsets:
(define-public broadcom-bt-firmware (define-public broadcom-bt-firmware
(package (package
(name "broadcom-bt-firmware") (name "broadcom-bt-firmware")
(version "12.0.1.710") (version "12.0.1.1012")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://dlcdnet.asus.com/pub/ASUS/wireless/" (uri
"USB-BT400/DR_USB_BT400_" (string-append
(string-filter (char-set-complement (char-set #\.)) "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/04/"
version) "852bb503-de7b-4810-a7dd-cbab62742f09_7cf83a4c194116648d17707ae37d564f9c70bec2"
"_Windows.zip")) ".cab"))
(file-name (string-append name "-" version ".cab"))
(sha256 (sha256
(base32 (base32
"1jzg1yl2hrfdh9prr2ds4rl6c69m2f8bf94m72p3rlddjvi8jj58")))) "1b1qjwxjk4y91l3iz157kms8601n0mmiik32cs6w9b1q4sl4pxx9"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils) `(#:modules ((guix build utils)
@ -258,23 +259,22 @@ Linux device driver for the following chipsets:
(use-modules (guix build utils) (use-modules (guix build utils)
(ice-9 rdelim) (ice-9 rdelim)
(ice-9 regex)) (ice-9 regex))
(let ((PATH (string-append (assoc-ref %build-inputs "unzip") "/bin:" (let ((PATH (string-append (assoc-ref %build-inputs "cabextract") "/bin:"
(assoc-ref %build-inputs "bluez") "/bin")) (assoc-ref %build-inputs "bluez") "/bin"))
(source (assoc-ref %build-inputs "source")) (source (assoc-ref %build-inputs "source"))
(firmware-dir (string-append %output "/lib/firmware/brcm/"))) (firmware-dir (string-append %output "/lib/firmware/brcm/")))
(setenv "PATH" PATH) (setenv "PATH" PATH)
(system* "unzip" source) (system* "cabextract" source)
(chdir "Win10_USB-BT400_DRIVERS/Win10_USB-BT400_Driver_Package/64/")
(mkdir-p firmware-dir) (mkdir-p firmware-dir)
;; process the inf file to get the correct filenames ;; process the inf file to get the correct filenames
(with-input-from-file "bcbtums-win8x64-brcm.inf" (with-input-from-file "bcbtums.inf"
(lambda () (lambda ()
(do ((line (read-line) (read-line)) (do ((line (read-line) (read-line))
(devices '())) (devices '()))
((eof-object? line) #t) ((eof-object? line) #t)
;; these two `lets' are like awk patterns matching against ;; these two `lets' are like awk patterns matching against
;; records. link devices in this file with its vids and pids ;; records. link devices in this file with its vids and pids
(let ((rcrd (string-match "%=Blue(.*),.*VID_(....).*PID_(....)" (let ((rcrd (string-match "%.*%=(.*),.*VID_(....).*PID_(....)"
line))) line)))
(when rcrd (when rcrd
(set! devices (set! devices
@ -286,10 +286,9 @@ Linux device driver for the following chipsets:
(let ((rcrd (string-match "\\[(RAMUSB.*)\\.CopyList\\]" line))) (let ((rcrd (string-match "\\[(RAMUSB.*)\\.CopyList\\]" line)))
(when rcrd (when rcrd
(let* ((key (match:substring rcrd 1)) (let* ((key (match:substring rcrd 1))
;; this happens to be 3 lines down every time (hex-file (begin (do ((line (read-line) (read-line)))
(hex-file (begin (read-line) ((string-match "^([0-9A-Z_.]+\\.hex)" line)
(read-line) (string-drop-right line 1)))))
(string-drop-right (read-line) 1)))
(chipset (car (string-tokenize (chipset (car (string-tokenize
hex-file hex-file
char-set:letter+digit))) char-set:letter+digit)))
@ -305,7 +304,7 @@ Linux device driver for the following chipsets:
hex-file))))))))))) hex-file)))))))))))
(native-inputs (native-inputs
`(("bluez" ,bluez) `(("bluez" ,bluez)
("unzip" ,unzip))) ("cabextract" ,cabextract)))
(home-page "http://www.broadcom.com/support/bluetooth") (home-page "http://www.broadcom.com/support/bluetooth")
(synopsis "Broadcom bluetooth firmware") (synopsis "Broadcom bluetooth firmware")
(description (description
@ -315,9 +314,15 @@ chipsets from Broadcom:
@item BCM4335C0 @item BCM4335C0
@item BCM4350C5 @item BCM4350C5
@item BCM4356A2 @item BCM4356A2
@item BCM4371C2
@item BCM20702A1 @item BCM20702A1
@item BCM20702B0 @item BCM20702B0
@item BCM20703A1 @item BCM20703A1
@item BCM43142A0 @item BCM43142A0
@end itemize") @end itemize")
(license (undistributable "http://www.broadcom.com/support/bluetooth")))) (license
(undistributable
(string-append
"https://raw.githubusercontent.com/winterheart/broadcom-bt-firmware"
"/b60fa04881bf8f9b9d578f57d1dfa596cae2a82e"
"/LICENSE.broadcom_bcm20702")))))