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