gnu: Add CRDA.
* gnu/packages/linux.scm (crda): New variable.
This commit is contained in:
		
							parent
							
								
									c80b4a3e83
								
							
						
					
					
						commit
						cc205dac76
					
				
					 1 changed files with 69 additions and 0 deletions
				
			
		|  | @ -1704,6 +1704,75 @@ interface.") | ||||||
|     (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html") |     (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html") | ||||||
|     (license gpl2+))) |     (license gpl2+))) | ||||||
| 
 | 
 | ||||||
|  | (define-public crda | ||||||
|  |   (package | ||||||
|  |     (name "crda") | ||||||
|  |     (version "3.18") | ||||||
|  |     (source (origin | ||||||
|  |               (method url-fetch) | ||||||
|  |               (uri (string-append "mirror://kernel.org/software/network/crda/" | ||||||
|  |                                   "crda-" version ".tar.xz")) | ||||||
|  |               (sha256 | ||||||
|  |                (base32 | ||||||
|  |                 "1gydiqgb08d9gbx4l6gv98zg3pljc984m50hmn3ysxcbkxkvkz23")) | ||||||
|  |               (patches (list (search-patch "crda-optional-gcrypt.patch"))))) | ||||||
|  |     (build-system gnu-build-system) | ||||||
|  |     (arguments | ||||||
|  |      '(#:phases (modify-phases %standard-phases | ||||||
|  |                   (delete 'configure) | ||||||
|  |                   (add-before | ||||||
|  |                    'build 'no-werror-no-ldconfig | ||||||
|  |                    (lambda _ | ||||||
|  |                      (substitute* "Makefile" | ||||||
|  |                        (("-Werror")  "") | ||||||
|  |                        (("ldconfig") "true")) | ||||||
|  |                      #t)) | ||||||
|  |                   (add-before | ||||||
|  |                    'build 'set-regulator-db-file-name | ||||||
|  |                    (lambda* (#:key inputs #:allow-other-keys) | ||||||
|  |                      ;; Tell CRDA where to find our database. | ||||||
|  |                      (let ((regdb (assoc-ref inputs "wireless-regdb"))) | ||||||
|  |                        (substitute* "crda.c" | ||||||
|  |                          (("\"/lib/crda/regulatory.bin\"") | ||||||
|  |                           (string-append "\"" regdb | ||||||
|  |                                          "/lib/crda/regulatory.bin\""))) | ||||||
|  |                        #t)))) | ||||||
|  |        #:test-target "verify" | ||||||
|  |        #:make-flags (let ((out   (assoc-ref %outputs "out")) | ||||||
|  |                           (regdb (assoc-ref %build-inputs "wireless-regdb"))) | ||||||
|  |                       (list "CC=gcc" "V=1" | ||||||
|  | 
 | ||||||
|  |                             ;; Disable signature-checking on 'regulatory.bin'. | ||||||
|  |                             ;; The reason is that this simplifies maintenance | ||||||
|  |                             ;; on our side (no need to manage a distro key | ||||||
|  |                             ;; pair), and we can guarantee integrity of | ||||||
|  |                             ;; 'regulatory.bin' by other means anyway, such as | ||||||
|  |                             ;; 'guix gc --verify'.  See | ||||||
|  |                             ;; <https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb> | ||||||
|  |                             ;; for a discssion. | ||||||
|  |                             "USE_OPENSSL=0" | ||||||
|  | 
 | ||||||
|  |                             (string-append "PREFIX=" out) | ||||||
|  |                             (string-append "SBINDIR=" out "/sbin/") | ||||||
|  |                             (string-append "UDEV_RULE_DIR=" | ||||||
|  |                                            out "/lib/udev/rules.d") | ||||||
|  |                             (string-append "LDFLAGS=-Wl,-rpath=" | ||||||
|  |                                            out "/lib -L.") | ||||||
|  |                             (string-append "REG_BIN=" regdb | ||||||
|  |                                            "/lib/crda/regulatory.bin"))))) | ||||||
|  |     (native-inputs `(("pkg-config" ,pkg-config) | ||||||
|  |                      ("python" ,python-2) | ||||||
|  |                      ("wireless-regdb" ,wireless-regdb))) | ||||||
|  |     (inputs `(("libnl" ,libnl))) | ||||||
|  |     (home-page | ||||||
|  |      "https://wireless.wiki.kernel.org/en/developers/Regulatory/CRDA") | ||||||
|  |     (synopsis "Central regulatory domain agent (CRDA) for WiFi") | ||||||
|  |     (description | ||||||
|  |      "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for | ||||||
|  | communication between the kernel Linux and user space for regulatory | ||||||
|  | compliance.") | ||||||
|  |     (license copyleft-next))) | ||||||
|  | 
 | ||||||
| (define-public wireless-regdb | (define-public wireless-regdb | ||||||
|   (package |   (package | ||||||
|     (name "wireless-regdb") |     (name "wireless-regdb") | ||||||
|  |  | ||||||
		Reference in a new issue