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.
This commit is contained in:
parent
61f81618a8
commit
1b0f266e40
|
@ -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)))
|
||||
;; 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)))))
|
||||
(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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue