summary refs log tree commit diff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm78
1 files changed, 46 insertions, 32 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 057c808597..d724d79a85 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
@@ -734,38 +734,52 @@ application suites.")
     (name "guile-cairo")
     (version "1.4.1")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://download.gna.org/guile-cairo/guile-cairo-"
-                   version
-                   ".tar.gz"))
-             (sha256
-              (base32
-               "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
+              (method url-fetch)
+              (uri (string-append
+                    "http://download.gna.org/guile-cairo/guile-cairo-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (alist-cons-before
-                 'configure 'set-module-directory
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; Install modules under $out/share/guile/site/2.0.
-                   (let ((out (assoc-ref outputs "out")))
-                     (substitute* "Makefile.in"
-                       (("scmdir = ([[:graph:]]+).*" _ value)
-                        (string-append "scmdir = " value "/2.0\n")))
-                     (substitute* "cairo/Makefile.in"
-                       (("moduledir = ([[:graph:]]+).*" _ value)
-                        (string-append "moduledir = "
-                                       "$(prefix)/share/guile/site/2.0/cairo\n'")))))
-                 (alist-cons-after
-                  'install 'install-missing-file
-                  (lambda* (#:key outputs #:allow-other-keys)
-                    ;; By default 'vector-types.scm' is not installed, so do
-                    ;; it here.
-                    (let ((out (assoc-ref outputs "out")))
-                      (copy-file "cairo/vector-types.scm"
-                                 (string-append out "/share/guile/site/2.0"
-                                                "/cairo/vector-types.scm"))))
-                  %standard-phases))))
+     '(#:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  (ice-9 popen)
+                  (ice-9 rdelim))
+
+       #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'set-module-directory
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Install modules under $out/share/guile/site/2.0.
+                      (let ((out (assoc-ref outputs "out"))
+                            (effective
+                             (read-line
+                              (open-pipe* OPEN_READ "guile" "-c"
+                                          "(display (effective-version))"))))
+                        (substitute* "Makefile.in"
+                          (("scmdir = ([[:graph:]]+).*" _ value)
+                           (string-append "scmdir = " value "/" effective "\n")))
+                        (substitute* "cairo/Makefile.in"
+                          (("moduledir = ([[:graph:]]+).*" _ value)
+                           (string-append "moduledir = "
+                                          "$(prefix)/share/guile/site/"
+                                          effective "/cairo\n'")))
+                        #t)))
+                  (add-after 'install 'install-missing-file
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; By default 'vector-types.scm' is not installed, so do
+                      ;; it here.
+                      (let ((out (assoc-ref outputs "out"))
+                            (effective
+                             (read-line
+                              (open-pipe* OPEN_READ "guile" "-c"
+                                          "(display (effective-version))"))))
+                        (install-file "cairo/vector-types.scm"
+                                      (string-append out "/share/guile/site/"
+                                                     effective "/cairo"))
+                        #t))))))
     (inputs
      `(("guile-lib" ,guile-lib)
        ("expat" ,expat)
@@ -774,7 +788,7 @@ application suites.")
      ;; The .pc file refers to 'cairo'.
      `(("cairo" ,cairo)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "http://www.nongnu.org/guile-cairo/")
     (synopsis "Cairo bindings for GNU Guile")
     (description