aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2019-09-30 15:03:18 +0200
committerMathieu Othacehe <m.othacehe@gmail.com>2019-11-15 17:32:27 +0100
commitc41f88699d8dce182ab422433d9f87cdb83ce2a4 (patch)
tree52c4984e411bdff421a294e9f16eec727442d701
parente53bf62e31793d199d7691f99bbf2767e7067b29 (diff)
downloadguix-c41f88699d8dce182ab422433d9f87cdb83ce2a4.tar.gz
guix-c41f88699d8dce182ab422433d9f87cdb83ce2a4.zip
gnu: libnl: Move python outputs to separate packages.
Cross compiling python extensions is currently broken. To allow libnl cross compilation, move its python2 and python3 outputs to separate packages. * gnu/packages/linux.scm (libnl)[outputs]: Remove python2 and python3 and replace by ... (libnl-python-package): ... this new procedure, (libnl-python2, libnl-python3): new variables.
-rw-r--r--gnu/packages/linux.scm66
1 files changed, 43 insertions, 23 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ed6df21ae0..911bd592b6 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1997,35 +1997,18 @@ transparently through a bridge.")
"/libnl-doc-" version ".tar.gz"))
(sha256
(base32 "19p5y8q3cm5wqvamqc4s5syxnnkvzxy3gw8ivxk6fv9ybn8jm35h"))))))
- (inputs
- `(("python-2" ,python-2)
- ("python-3" ,python-3)))
- (outputs '("out" "doc" "python2" "python3"))
+ (outputs `("out" "doc"))
(arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (add-after 'install 'install-python
- (lambda* (#:key outputs #:allow-other-keys)
- (define (python-inst python)
- (invoke python "setup.py" "build")
- (invoke python "setup.py" "install"
- (string-append "--prefix="
- (assoc-ref %outputs python)))
- (invoke python "setup.py" "clean"))
- (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib"
- (assoc-ref %outputs "out")))
- (with-directory-excursion "./python"
- (for-each python-inst '("python2" "python3")))
- #t))
(add-after 'install 'install-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
(let ((dest (string-append (assoc-ref outputs "doc")
"/share/doc/libnl")))
(mkdir-p dest)
- (invoke "tar" "xf" (assoc-ref inputs "libnl3-doc")
+ (invoke "tar" "xf" (assoc-ref
+ (or native-inputs inputs)
+ "libnl3-doc")
"--strip-components=1" "-C" dest)))))))
(home-page "https://www.infradead.org/~tgr/libnl/")
(synopsis "NetLink protocol library suite")
@@ -2040,6 +2023,43 @@ configuration and monitoring interfaces.")
;; 'nl-addr-add.c'), so the result is GPLv2-only.
(license license:gpl2)))
+;; libnl python extensions used to be outputs of libnl. However, as
+;; cross-compiling python extensions is currently broken, create separate
+;; packages for libnl python extensions.
+(define (libnl-python-package python)
+ (let ((name (string-append "libnl-" python)))
+ (package
+ (inherit libnl)
+ (name name)
+ (inputs `(,@(cond
+ ((string=? python "python2")
+ `(("python-2" ,python-2)))
+ ((string=? python "python3")
+ `(("python-3" ,python-3))))))
+ (propagated-inputs `(("libnl" ,libnl)))
+ (outputs '("out"))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (define (python-inst python)
+ (invoke python "setup.py" "build")
+ (invoke python "setup.py" "install"
+ (string-append "--prefix="
+ (assoc-ref %outputs "out")))
+ (invoke python "setup.py" "clean"))
+ (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib"
+ (assoc-ref inputs "libnl")))
+ (with-directory-excursion "./python" (python-inst ,python))
+ #t))))))))
+
+(define-public libnl-python2 (libnl-python-package "python2"))
+(define-public libnl-python3 (libnl-python-package "python3"))
+
(define-public iw
(package
(name "iw")