me
/
guix
Archived
1
0
Fork 0

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.
master
Mathieu Othacehe 2019-09-30 15:03:18 +02:00
parent e53bf62e31
commit c41f88699d
No known key found for this signature in database
GPG Key ID: 8354763531769CA6
1 changed files with 43 additions and 23 deletions

View File

@ -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")