gnu: libnl: Add "python2" and "python3" outputs.
authorDave Love <fx@gnu.org>
Wed, 2 Aug 2017 12:39:28 +0000 (13:39 +0100)
committerMarius Bakke <mbakke@fastmail.com>
Thu, 17 Aug 2017 22:36:27 +0000 (00:36 +0200)
* gnu/packages/linux.scm (libnl)[native-inputs]: Add SWIG and PKG-CONFIG.
[inputs]: Add PYTHON-2 and PYTHON-3.
[outputs]: Add python2, python3.
[arguments]: Add 'install-python' phase.

Co-authored-by: Marius Bakke <mbakke@fastmail.com>
gnu/packages/linux.scm

index 2df4c86..7aa04bc 100644 (file)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages selinux)
+  #:use-module (gnu packages swig)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -1467,6 +1468,8 @@ transparently through a bridge.")
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
+       ("pkg-config" ,pkg-config)
+       ("swig" ,swig)
        ("libnl3-doc"
         ,(origin
            (method url-fetch)
@@ -1476,10 +1479,31 @@ transparently through a bridge.")
                  "/libnl-doc-" version ".tar.gz"))
            (sha256
             (base32 "0srab805yj8wb13l64qjyp3mdbqapxg5vk46v3zlhhzpmxqw8j7r"))))))
-    (outputs '("out" "doc"))
+    (inputs
+     `(("python-2" ,python-2)
+       ("python-3" ,python-3)))
+    (outputs '("out" "doc" "python2" "python3"))
     (arguments
-     `(#:phases
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-1))
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'install 'install-python
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define (python-inst python)
+               (let ((ldflags (format #f "LDFLAGS=-Wl,-rpath=~a/lib"
+                                      (assoc-ref %outputs "out")))
+                     (pyout (assoc-ref %outputs python)))
+                 (and
+                  (zero? (system (format #f "~a ~a setup.py build"
+                                         ldflags python pyout)))
+                  (zero?
+                   (system (format #f "~a ~a setup.py install --prefix=~a"
+                                   ldflags python pyout)))
+                  (zero? (system* python "setup.py" "clean")))))
+             (with-directory-excursion "./python"
+               (every python-inst '("python2" "python3")))))
          (add-after 'install 'install-doc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((dest (string-append (assoc-ref outputs "doc")