#: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)
(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
;;; 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.
(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))
(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)))
(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
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)
(define-public guile-gnome
(package
(name "guile-gnome")
- (version "2.16.4")
+ (version "2.16.5")
(source (origin
(method url-fetch)
(uri
version ".tar.gz"))
(sha256
(base32
- "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd"))))
+ "1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("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)
(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")
"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.
("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
$(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
;; 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
+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)
;;; 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>
;;;
"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")
;; 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")