@@ -941,7 +941,6 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
- %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
@@ -37,6 +37,7 @@ (define-module (gnu packages firmware)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@@ -90,9 +91,9 @@ (define-module (gnu packages firmware)
#:export (make-ergodox-firmware
make-qmk-firmware))
-(define-public ath9k-htc-firmware
+(define-public ath9k-htc-ar7010-firmware
(package
- (name "ath9k-htc-firmware")
+ (name "ath9k-htc-ar7010-firmware")
(version "1.4.0")
(source (origin
(method git-fetch)
@@ -106,51 +107,45 @@ (define-public ath9k-htc-firmware
(sha256
(base32
"16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
- (file-name (git-file-name name version))
- (patches (search-patches "ath9k-htc-firmware-objcopy.patch"
- "ath9k-htc-firmware-gcc-compat.patch"))))
- (build-system gnu-build-system)
+ (file-name (git-file-name "open-ath9k-htc-firmware" version))
+ (patches (search-patches "ath9k-htc-firmware-gcc-compat.patch"))))
+ (build-system cmake-build-system)
(arguments
- '(#:target #f ; Package produces firmware.
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'pre-configure
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (chdir "target_firmware")
-
- ;; 'configure' is a simple script that runs 'cmake' with
- ;; the right flags.
- (substitute* "configure"
- (("^TARGET.*$") "TARGET=xtensa-ath9k-elf\n")
- (("^TOOLCHAIN=.*$")
- (string-append "TOOLCHAIN="
- (assoc-ref (or native-inputs inputs) "cross-gcc")
- "\n")))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (fw-dir (string-append out "/lib/firmware")))
- (for-each (lambda (file)
- (install-file file fw-dir))
- (find-files "." "\\.fw$"))
- #t))))
- #:tests? #f))
-
- ;; The firmware is cross-compiled using a "bare bones" compiler (no libc.)
- ;; Use our own tool chain for that.
- (native-inputs `(("cross-gcc" ,(cross-gcc "xtensa-ath9k-elf"))
- ("cross-binutils" ,(cross-binutils "xtensa-ath9k-elf"))
- ("cmake" ,cmake-minimal)
- ("perl" ,perl)))
+ (list #:target "xtensa-ath9k-elf"
+ #:tests? #f
+ #:configure-flags #~'("-DTARGET_MAGPIE=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'change-directory
+ (lambda _
+ (chdir "target_firmware")))
+ (replace 'install
+ (lambda _
+ (let ((fw-dir (string-append #$output "/lib/firmware")))
+ (for-each (lambda (file)
+ (install-file file fw-dir))
+ (find-files "." "\\.fw$"))))))))
+ (native-inputs (list perl))
(home-page "https://wireless.wiki.kernel.org/en/users/Drivers/ath9k_htc")
- (synopsis "Firmware for the Atheros AR7010 and AR9271 USB 802.11n NICs")
+ (synopsis "Firmware for the Atheros AR7010 USB 802.11n NICs")
(description
- "This is the firmware for the Qualcomm Atheros AR7010 and AR9271 USB
-802.11n NICs (aka Wi-Fi USB dongles). It is used by the ath9k driver of
-Linux-libre.")
+ "This is the firmware for the Qualcomm Atheros AR7010 802.11n USB NICs
+(aka Wi-Fi USB dongle). It is used by the ath9k driver of Linux-libre.")
(license (license:non-copyleft "http://directory.fsf.org/wiki/License:ClearBSD"))))
+(define-public ath9k-htc-ar9271-firmware
+ (package
+ (inherit ath9k-htc-ar7010-firmware)
+ (name "ath9k-htc-ar9271-firmware")
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments ath9k-htc-ar7010-firmware)
+ ((#:configure-flags flags) #~'("-DTARGET_K2=ON"))))
+ (synopsis "Firmware for the Atheros AR9271 USB 802.11n NICs")
+ (description
+ "This is the firmware for the Qualcomm Atheros AR9271 802.11n USB NICs
+(aka Wi-Fi USB dongle). It is used by the ath9k driver of Linux-libre.")))
+
(define-public b43-tools
(let ((commit "27892ef741e7f1d08cb939744f8b8f5dac7b04ae")
(revision "1"))
deleted file mode 100644
@@ -1,14 +0,0 @@
-The firmware is cross-compiled, but the build system ends up using
-'objcopy' instead of '$TARGET-objcopy' by default. Force it to
-use the right one.
-
---- source/target_firmware/configure 2014-10-28 20:57:26.834436561 +0100
-+++ source/target_firmware/configure 2014-10-28 20:57:29.666436530 +0100
-@@ -11,6 +11,7 @@ mkdir -p build
- cat > "$TOOLCHAIN_FILE" <<EOF
- INCLUDE(CMakeForceCompiler)
-
-+SET(CMAKE_OBJCOPY ${TARGET}-objcopy)
- SET(CMAKE_SYSTEM_PROCESSOR xtensa)
- SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN}/$TARGET)
- SET(CMAKE_STRIP :)
@@ -876,7 +876,8 @@ (define* (operating-system-with-provenance os
(define %base-firmware
;; Firmware usable by default.
- (list ath9k-htc-firmware
+ (list ath9k-htc-ar7010-firmware
+ ath9k-htc-ar9271-firmware
openfwwf-firmware))
(define %base-packages-artwork