aboutsummaryrefslogtreecommitdiff
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
guix-1b0f266e40aead09be95a984bd9c6cec3dff397e.zip
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")