~ruther/guix-local

1a51fe2768e7be1fd5eace4ef1b6d6f0b51e2e50 — Ludovic Courtès 10 years ago 821664f
gnu: Add Guile-RSVG.

* gnu/packages/gtk.scm (guile-rsvg): New variable.
* gnu/packages/patches/guile-rsvg-pkgconfig.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
3 files changed, 57 insertions(+), 0 deletions(-)

M gnu-system.am
M gnu/packages/gtk.scm
A gnu/packages/patches/guile-rsvg-pkgconfig.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 487,6 487,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/guile-default-utf8.patch			\
  gnu/packages/patches/guile-linux-syscalls.patch		\
  gnu/packages/patches/guile-relocatable.patch			\
  gnu/packages/patches/guile-rsvg-pkgconfig.patch		\
  gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
  gnu/packages/patches/hop-bigloo-4.0b.patch			\
  gnu/packages/patches/hop-linker-flags.patch			\

M gnu/packages/gtk.scm => gnu/packages/gtk.scm +40 -0
@@ 33,6 33,8 @@
  #:use-module (guix build-system waf)
  #:use-module (gnu packages)
  #:use-module (gnu packages algebra)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages check)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages docbook)


@@ 632,6 634,44 @@ graphics library with all of the benefits of Scheme: memory management,
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 (list (search-patch "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
images onto Cairo surfaces.")
    (home-page "http://wingolog.org/projects/guile-rsvg/")
    (license license:lgpl2.1+)))

;;;
;;; C++ bindings.

A gnu/packages/patches/guile-rsvg-pkgconfig.patch => gnu/packages/patches/guile-rsvg-pkgconfig.patch +16 -0
@@ 0,0 1,16 @@
This patch fixes a bug in guile-rsvg's build system, whereby the CFLAGS
and LDFLAGS for Guile would not be captured.

--- guile-rsvg-2.18.1/configure.ac	2015-08-31 22:30:30.578909480 +0200
+++ guile-rsvg-2.18.1/configure.ac	2015-08-31 22:32:15.071516084 +0200
@@ -39,6 +39,10 @@ AC_SUBST(WARN_CFLAGS)
 
 GUILE_PKG([2.2 2.0 1.8])
 
+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_CAIRO, guile-cairo >= 1.4.0)
 AC_SUBST(GUILE_CAIRO_LIBS)
 AC_SUBST(GUILE_CAIRO_CFLAGS)