summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-07-02 22:45:33 +0200
committerLudovic Courtès <ludo@gnu.org>2017-07-02 22:52:30 +0200
commit1b0f266e40aead09be95a984bd9c6cec3dff397e (patch)
tree0076be5d4f4fc82114dc27deb5433f5587126266
parent61f81618a87ce4fc3b93c3ac3fa7aa2f148c1ed8 (diff)
downloadguix-1b0f266e40aead09be95a984bd9c6cec3dff397e.tar.gz
gnu: Switch guile-cairo and dependents to Guile 2.2 again.
Fixes <https://bugs.gnu.org/27551>.
Reported by Leo Famulari <leo@famulari.name>.

This reinstates the following commits:

  e3ddb1e83 * gnu: guile-cairo: Switch to Guile 2.2.
  ae5c6ef39 * gnu: guile-gnome: Update to 2.16.5.
  0fd8013fc * gnu: guile-rsvg: Update to commit 05c6a2fd.
  66b9183c4 * gnu: guile-lib: Switch to Guile 2.2.

and adds the following changes:

* gnu/bootloader/grub.scm (svg->png): Add 'package->derivation' call for
GUILE-2.2.  Pass #:guile-for-build to 'gexp->derivation'.
* gnu/build/svg.scm (svg->png): Add 'em' and 'ex' to the 'let-values'
form to account for all the values returned by
'rsvg-handle-get-dimensions', which Guile 2.2 does not truncate.
-rw-r--r--gnu/bootloader/grub.scm35
-rw-r--r--gnu/build/svg.scm4
-rw-r--r--gnu/packages/gtk.scm94
-rw-r--r--gnu/packages/guile.scm9
-rw-r--r--gnu/packages/patches/guile-rsvg-pkgconfig.patch2
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/skribilo.scm2
7 files changed, 83 insertions, 67 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index f1cc3324db..880491c983 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -34,6 +34,7 @@
   #:autoload   (gnu packages bootloaders) (grub)
   #:autoload   (gnu packages compression) (gzip)
   #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
+  #:autoload   (gnu packages guile) (guile-2.2)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (srfi srfi-1)
@@ -118,21 +119,25 @@ otherwise."
 
 (define* (svg->png svg #:key width height)
   "Build a PNG of HEIGHT x WIDTH from SVG."
-  (gexp->derivation "grub-image.png"
-                    (with-imported-modules '((gnu build svg))
-                      #~(begin
-                          ;; We need these two libraries.
-                          (add-to-load-path (string-append #+guile-rsvg
-                                                           "/share/guile/site/"
-                                                           (effective-version)))
-                          (add-to-load-path (string-append #+guile-cairo
-                                                           "/share/guile/site/"
-                                                           (effective-version)))
-
-                          (use-modules (gnu build svg))
-                          (svg->png #+svg #$output
-                                    #:width #$width
-                                    #:height #$height)))))
+  ;; Note: Guile-RSVG & co. are now built for Guile 2.2, so we use 2.2 here.
+  ;; TODO: Remove #:guile-for-build when 2.2 has become the default.
+  (mlet %store-monad ((guile (package->derivation guile-2.2 #:graft? #f)))
+    (gexp->derivation "grub-image.png"
+                      (with-imported-modules '((gnu build svg))
+                        #~(begin
+                            ;; We need these two libraries.
+                            (add-to-load-path (string-append #+guile-rsvg
+                                                             "/share/guile/site/"
+                                                             (effective-version)))
+                            (add-to-load-path (string-append #+guile-cairo
+                                                             "/share/guile/site/"
+                                                             (effective-version)))
+
+                            (use-modules (gnu build svg))
+                            (svg->png #+svg #$output
+                                      #:width #$width
+                                      #:height #$height)))
+                      #:guile-for-build guile)))
 
 (define* (grub-background-image config #:key (width 1024) (height 768))
   "Return the GRUB background image defined in CONFIG with a ratio of
diff --git a/gnu/build/svg.scm b/gnu/build/svg.scm
index f7e92a1a19..b5474ec4a0 100644
--- a/gnu/build/svg.scm
+++ b/gnu/build/svg.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -50,7 +50,7 @@ dimensions of IN-SVG."
   (define svg
     (rsvg-handle-new-from-file in-svg))
 
-  (let-values (((origin-width origin-height)
+  (let-values (((origin-width origin-height em ex)
                 (rsvg-handle-get-dimensions svg)))
     (let* ((surf (cairo-image-surface-create 'argb32
                                              origin-width origin-height))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 1d9ee15246..d5b472049d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -795,7 +795,7 @@ application suites.")
     (inputs
      `(("guile-lib" ,guile-lib)
        ("expat" ,expat)
-       ("guile" ,guile-2.0)))
+       ("guile" ,guile-2.2)))
     (propagated-inputs
      ;; The .pc file refers to 'cairo'.
      `(("cairo" ,cairo)))
@@ -813,43 +813,49 @@ exceptions, macros, and a dynamic programming environment.")
     (license license:lgpl3+)))
 
 (define-public guile-rsvg
-  (package
-    (name "guile-rsvg")
-    (version "2.18.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://wingolog.org/pub/guile-rsvg/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
-              (patches (search-patches "guile-rsvg-pkgconfig.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(substitute* (find-files "." "Makefile\\.am")
-                  (("/share/guile/site")
-                   "/share/guile/site/2.0")))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-before 'configure 'bootstrap
-                              (lambda _
-                                (zero? (system* "autoreconf" "-vfi")))))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-                     ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-2.0)
-              ("librsvg" ,librsvg)
-              ("guile-lib" ,guile-lib)))          ;for (unit-test)
-    (propagated-inputs `(("guile-cairo" ,guile-cairo)))
-    (synopsis "Render SVG images using Cairo from Guile")
-    (description
-     "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
+  ;; Use a recent snapshot that supports Guile 2.2 and beyond.
+  (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
+        (revision "0"))
+    (package
+      (name "guile-rsvg")
+      (version (string-append "2.18.1-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://gitlab.com/wingo/guile-rsvg/"
+                                    "repository/archive.tar.gz?ref="
+                                    commit))
+                (sha256
+                 (base32
+                  "0vdzjx8l5nc4y2xjqs0g1rqn1zrwfsm30brh5gz00r1x41a2pvv2"))
+                (patches (search-patches "guile-rsvg-pkgconfig.patch"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(substitute* (find-files "." "Makefile\\.am")
+                    (("/share/guile/site")
+                     "/share/guile/site/@GUILE_EFFECTIVE_VERSION@")))
+                (file-name (string-append name "-" version ".tar.gz"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-before 'configure 'bootstrap
+                      (lambda _
+                        (zero? (system* "autoreconf" "-vfi")))))))
+      (native-inputs `(("pkg-config" ,pkg-config)
+                       ("autoconf" ,autoconf)
+                       ("automake" ,automake)
+                       ("libtool" ,libtool)
+                       ("texinfo" ,texinfo)))
+      (inputs `(("guile" ,guile-2.2)
+                ("librsvg" ,librsvg)
+                ("guile-lib" ,guile-lib)))        ;for (unit-test)
+      (propagated-inputs `(("guile-cairo" ,guile-cairo)))
+      (synopsis "Render SVG images using Cairo from Guile")
+      (description
+       "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
 images onto Cairo surfaces.")
-    (home-page "http://wingolog.org/projects/guile-rsvg/")
-    (license license:lgpl2.1+)))
+      (home-page "http://wingolog.org/projects/guile-rsvg/")
+      (license license:lgpl2.1+))))
 
 (define-public guile-present
   (package
@@ -883,7 +889,7 @@ images onto Cairo surfaces.")
                                        out "/share/guile/site/2.0 ")))))
                  %standard-phases)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (propagated-inputs
      ;; These are used by the (present …) modules.
      `(("guile-lib" ,guile-lib)
@@ -902,7 +908,7 @@ documents.")
 (define-public guile-gnome
    (package
     (name "guile-gnome")
-    (version "2.16.4")
+    (version "2.16.5")
     (source (origin
               (method url-fetch)
               (uri
@@ -911,7 +917,7 @@ documents.")
                               version ".tar.gz"))
              (sha256
               (base32
-               "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd"))))
+               "1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -930,7 +936,7 @@ documents.")
        ("pango" ,pango)
        ("libffi" ,libffi)
        ("glib" ,glib)))
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (propagated-inputs
      `(("guile-cairo" ,guile-cairo)
        ("g-wrap" ,g-wrap)
@@ -943,7 +949,7 @@ documents.")
                        (let ((out (assoc-ref outputs "out")))
                          (substitute* (find-files "." "^Makefile.in$")
                            (("guilesite :=.*guile/site" all)
-                            (string-append all "/2.0")))
+                            (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
                          #t))))))
     (outputs '("out" "debug"))
     (synopsis "Guile interface for GTK+ programming for GNOME")
@@ -951,7 +957,9 @@ documents.")
      "Includes guile-clutter, guile-gnome-gstreamer,
 guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
     (home-page "https://www.gnu.org/software/guile-gnome/")
-    (license license:gpl2+)))
+    (license license:gpl2+)
+    (properties '((upstream-name . "guile-gnome-platform")
+                  (ftp-directory . "/gnu/guile-gnome/guile-gnome-platform")))))
 
 ;;;
 ;;; C++ bindings.
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 7f6d15515c..6bff343429 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -624,7 +624,7 @@ format is also supported.")
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.0) ("which" ,which)))
-    (propagated-inputs `(("guile-lib" ,guile-lib)))
+    (propagated-inputs `(("guile-lib" ,guile2.0-lib)))
     (home-page "https://github.com/artyom-poptsov/guile-ics")
     (synopsis "Guile parser library for the iCalendar format")
     (description
@@ -661,7 +661,7 @@ The library is shipped with documentation in Info format and usage examples.")
 $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))
              #t)))))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (home-page "http://www.nongnu.org/guile-lib/")
     (synopsis "Collection of useful Guile Scheme modules")
     (description
@@ -675,8 +675,11 @@ for Guile\".")
     ;; details.
     (license license:gpl3+)))
 
+(define-public guile2.0-lib
+  (package-for-guile-2.0 guile-lib))
+
 (define-public guile2.2-lib
-  (package-for-guile-2.2 guile-lib))
+  (deprecated-package "guile2.2-lib" guile-lib))
 
 (define-public guile-json
   (package
diff --git a/gnu/packages/patches/guile-rsvg-pkgconfig.patch b/gnu/packages/patches/guile-rsvg-pkgconfig.patch
index 2272b4e1cd..51483a3472 100644
--- a/gnu/packages/patches/guile-rsvg-pkgconfig.patch
+++ b/gnu/packages/patches/guile-rsvg-pkgconfig.patch
@@ -9,7 +9,7 @@ and LDFLAGS for Guile would not be captured.
  
 +dnl The above macro fails to set the 'GUILE_CFLAGS' and 'GUILE_LIBS'
 +dnl substitution variables, hence this line.
-+PKG_CHECK_MODULES(GUILE, guile-2.0)
++PKG_CHECK_MODULES(GUILE, guile-$GUILE_EFFECTIVE_VERSION)
 +
  PKG_CHECK_MODULES(GUILE_CAIRO, guile-cairo >= 1.4.0)
  AC_SUBST(GUILE_CAIRO_LIBS)
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index f94d56992e..482ae1b862 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
@@ -100,7 +100,7 @@ scientific data.")
                      "godir = $(moddir)\n"))))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (propagated-inputs `(("guile-cairo" ,guile-cairo)))
     (home-page "http://wingolog.org/software/guile-charting/")
     (synopsis "Create charts and graphs in Guile")
diff --git a/gnu/packages/skribilo.scm b/gnu/packages/skribilo.scm
index 78b4806c8c..458d91e569 100644
--- a/gnu/packages/skribilo.scm
+++ b/gnu/packages/skribilo.scm
@@ -74,7 +74,7 @@
     ;; The 'skribilo' command needs them, and for people using Skribilo as a
     ;; library, these inputs are needed as well.
     (propagated-inputs `(("guile-reader" ,guile2.0-reader)
-                         ("guile-lib" ,guile-lib)))
+                         ("guile-lib" ,guile2.0-lib)))
 
     (home-page "http://www.nongnu.org/skribilo/")
     (synopsis "Document production tool written in Guile Scheme")