From 9c2563a80b6f1d8fb8677f5314e6180ea9916aa5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Fri, 21 Jun 2019 18:11:25 +0200
Subject: [PATCH] build-system/python: Export 'python-version'.

* guix/build/python-build-system.scm (get-python-version): Rename to...
(python-version): ... this.  Update callers.  Make public.
* gnu/packages/gstreamer.scm (python-gst)[arguments]: Adjust accordingly.
* gnu/packages/machine-learning.scm (ghmm)[arguments]: Likewise.
* gnu/packages/openldap.scm (389-ds-base)[arguments]: Import (guix
build python-build-system).  Use 'python-version'.
* gnu/packages/package-management.scm (conda)[arguments]: Use
'python-version'.
---
 gnu/packages/gstreamer.scm          |  4 +---
 gnu/packages/machine-learning.scm   |  3 +--
 gnu/packages/openldap.scm           | 13 +++++--------
 gnu/packages/package-management.scm |  3 +--
 guix/build/python-build-system.scm  | 11 ++++++-----
 5 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2a818e078c2..39a4eb5fc0b 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -447,9 +447,7 @@ (define-public python-gst
                            (guix build python-build-system))
        #:configure-flags
        (let* ((python (assoc-ref %build-inputs "python"))
-              (python-version ((@@ (guix build python-build-system)
-                                   get-python-version)
-                               python))
+              (python-version (python-version python))
               (python-sitedir (string-append
                                "lib/python" python-version "/site-packages")))
          (list (string-append
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index ba7772f66b0..e216b9474ac 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -210,8 +210,7 @@ (define-public ghmm
              (assoc-ref %standard-phases 'check))
            (add-before 'check 'fix-PYTHONPATH
              (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((python-version ((@@ (guix build python-build-system)
-                                           get-python-version)
+               (let ((python-version (python-version
                                       (assoc-ref inputs "python"))))
                  (setenv "PYTHONPATH"
                          (string-append (getenv "PYTHONPATH")
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index 43f111cf40a..2f80920ed47 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -211,7 +211,11 @@ (define-public 389-ds-base
     (arguments
      `(#:modules ((srfi srfi-1)
                   (guix build gnu-build-system)
+                  ((guix build python-build-system)
+                   #:select (python-version))
                   (guix build utils))
+       #:imported-modules ((guix build python-build-system)
+                           ,@%gnu-build-system-modules)
        #:configure-flags
        (list (string-append "--with-db="
                             (assoc-ref %build-inputs "bdb"))
@@ -263,16 +267,9 @@ (define-public 389-ds-base
          (add-after 'unpack 'fix-install-location-of-python-tools
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (get-python-version
-                     ;; FIXME: copied from python-build-system
-                     (lambda (python)
-                       (let* ((version     (last (string-split python #\-)))
-                              (components  (string-split version #\.))
-                              (major+minor (take components 2)))
-                         (string-join major+minor "."))))
                     (pythondir (string-append
                                 out "/lib/python"
-                                (get-python-version (assoc-ref inputs "python"))
+                                (python-version (assoc-ref inputs "python"))
                                 "/site-packages/")))
                ;; Install directory must be on PYTHONPATH.
                (setenv "PYTHONPATH"
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index e1e7d6a5a04..81b3c321e4c 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -831,8 +831,7 @@ (define-public conda
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (target (string-append out "/lib/python"
-                                             ((@@ (guix build python-build-system)
-                                                  get-python-version)
+                                             (python-version
                                               (assoc-ref inputs "python"))
                                              "/site-packages/")))
                  ;; The installer aborts if the target directory is not on
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index 7c00306b3e4..09bd8465c83 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
@@ -32,6 +32,7 @@ (define-module (guix build python-build-system)
   #:export (%standard-phases
             add-installed-pythonpath
             site-packages
+            python-version
             python-build))
 
 ;; Commentary:
@@ -147,7 +148,7 @@ (define* (check #:key tests? test-target use-setuptools? #:allow-other-keys)
       (format #t "test suite not run~%"))
   #t)
 
-(define (get-python-version python)
+(define (python-version python)
   (let* ((version     (last (string-split python #\-)))
          (components  (string-split version #\.))
          (major+minor (take components 2)))
@@ -158,7 +159,7 @@ (define (site-packages inputs outputs)
   (let* ((out (assoc-ref outputs "out"))
          (python (assoc-ref inputs "python")))
     (string-append out "/lib/python"
-                   (get-python-version python)
+                   (python-version python)
                    "/site-packages/")))
 
 (define (add-installed-pythonpath inputs outputs)
@@ -202,7 +203,7 @@ (define bindirs
          (python (assoc-ref inputs "python"))
          (var `("PYTHONPATH" prefix
                 ,(cons (string-append out "/lib/python"
-                                      (get-python-version python)
+                                      (python-version python)
                                       "/site-packages")
                        (search-path-as-string->list
                         (or (getenv "PYTHONPATH") ""))))))
@@ -222,7 +223,7 @@ (define* (rename-pth-file #:key name inputs outputs #:allow-other-keys)
   (let* ((out (assoc-ref outputs "out"))
          (python (assoc-ref inputs "python"))
          (site-packages (string-append out "/lib/python"
-                                       (get-python-version python)
+                                       (python-version python)
                                        "/site-packages"))
          (easy-install-pth (string-append site-packages "/easy-install.pth"))
          (new-pth (string-append site-packages "/" name ".pth")))
-- 
GitLab