Subject: bug#27275: [PATCH 1/2] pull: Add a dependency to guile-git.

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 7 Jun 2017 14:05:52 +0200

* build-aux/build-self.scm (guile-git, guile-bytestructures): New
  variables.
  (build): Add guile-git and guile-bytestructures to %load-path and
  %load-compiled-path.
* gnu/packages/guile.scm (guile2.2-bytestructures, guile2.2-git): New
  variables.
* gnu/packages/package-management.scm (guix)[propagated-inputs]: Add
  guile-git.
  [wrap-program]: Add guile-git to path.
---
 build-aux/build-self.scm            | 19 +++++++++++++++++++
 gnu/packages/guile.scm              |  8 ++++++++
 gnu/packages/package-management.scm |  3 +++
 3 files changed, 30 insertions(+)

diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index a1335fea1..b1c8afcb2 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -97,6 +97,15 @@ Guile major version (2.0 or 2.2), or #f if none of the packages matches."
                              "guile2.2-ssh"
                              "guile2.0-ssh"))
 
+(define guile-git
+  ;; TODO: Add guile2.0-git.
+  (package-for-current-guile "guile-git"
+                             "guile2.2-git"))
+
+(define guile-bytestructures
+  ;; TODO: Add guile2.0-bytestructures.
+  (package-for-current-guile "guile-bytestructures"
+                             "guile2.2-bytestructures"))
 
 ;; The actual build procedure.
 
@@ -152,11 +161,21 @@ files."
                                    #$(effective-version))))
           (set! %load-path
             (cons* json
+                   (string-append #$guile-git "/share/guile/site/"
+                                  #$(effective-version))
+                   (string-append #$guile-bytestructures "/share/guile/site/"
+                                  #$(effective-version))
                    (string-append #$guile-ssh "/share/guile/site/"
                                   #$(effective-version))
                    %load-path))
           (set! %load-compiled-path
             (cons* json
+                   (string-append #$guile-git "/lib/guile/"
+                                  #$(effective-version)
+                                  "/site-ccache")
+                   (string-append #$guile-bytestructures "/lib/guile/"
+                                  #$(effective-version)
+                                  "/site-ccache")
                    (string-append #$guile-ssh "/lib/guile/"
                                   #$(effective-version)
                                   "/site-ccache")
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 5b85a61c1..b12ba1cad 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1593,6 +1593,10 @@ an abstraction over raw memory.  It's also more powerful than the C
 type system, elevating types to first-class status.")
     (license license:gpl3+)))
 
+;; TODO: Add guile2.0-bytestructures.
+(define-public guile2.2-bytestructures
+  (deprecated-package "guile2.2-bytestructures" guile-bytestructures))
+
 (define-public guile-aspell
   (package
     (name "guile-aspell")
@@ -1803,6 +1807,10 @@ is not available for Guile 2.0.")
 manipulate repositories of the Git version control system.")
       (license license:gpl3+))))
 
+;; TODO: Add guile2.0-git.
+(define-public guile2.2-git
+  (deprecated-package "guile2.2-git" guile-git))
+
 (define-public guile-syntax-highlight
   (let ((commit "a047675e66861b647426372aa2ba7820f749616d")
         (revision "0"))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 12e1f9e6c..f47e78459 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -185,6 +185,7 @@
                         (let* ((out    (assoc-ref outputs "out"))
                                (guile  (assoc-ref inputs "guile"))
                                (json   (assoc-ref inputs "guile-json"))
+                               (git    (assoc-ref inputs "guile-git"))
                                (ssh    (assoc-ref inputs "guile-ssh"))
                                (gnutls (assoc-ref inputs "gnutls"))
                                (effective
@@ -195,6 +196,7 @@
                                (path   (string-append
                                         json "/share/guile/site/" effective ":"
                                         ssh "/share/guile/site/" effective ":"
+                                        git "/share/guile/site/" effective ":"
                                         gnutls "/share/guile/site/" effective)))
 
                           (wrap-program (string-append out "/bin/guix")
@@ -250,6 +252,7 @@
       (propagated-inputs
        `(("gnutls" ,gnutls/guile-2.2)             ;for 'guix download' & co.
          ("guile-json" ,guile-json)
+         ("guile-git" ,guile-git)
          ("guile-ssh" ,guile-ssh)))
 
       (home-page "https://www.gnu.org/software/guix/")
-- 
2.13.0