summary refs log tree commit diff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm88
1 files changed, 88 insertions, 0 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 42ca2b1af6..79f3276ba8 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -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,92 @@ 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+)))
+
+(define-public guile-present
+  (package
+    (name "guile-present")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://wingolog.org/pub/guile-present/"
+                                  "guile-present-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
+              (patches (list (search-patch "guile-present-coding.patch")))
+              (modules '((guix build utils)))
+              (snippet
+               '(substitute* "Makefile.in"
+                  (("godir = .*$")
+                   "godir = $(moddir)\n")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-after
+                 'install 'post-install
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out   (assoc-ref outputs "out"))
+                          (bin   (string-append out "/bin"))
+                          (guile (assoc-ref inputs "guile")))
+                     (substitute* (find-files bin ".*")
+                       (("guile")
+                        (string-append guile "/bin/guile -L "
+                                       out "/share/guile/site/2.0 -C "
+                                       out "/share/guile/site/2.0 ")))))
+                 %standard-phases)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("guile" ,guile-2.0)))
+    (propagated-inputs
+     ;; These are used by the (present …) modules.
+     `(("guile-lib" ,guile-lib)
+       ("guile-cairo" ,guile-cairo)
+       ("guile-rsvg" ,guile-rsvg)))
+    (home-page "http://wingolog.org/software/guile-present/")
+    (synopsis "Create SVG or PDF presentations in Guile")
+    (description
+     "Guile-Present defines a declarative vocabulary for presentations,
+together with tools to render presentation documents as SVG or PDF.
+Guile-Present can be used to make presentations programmatically, but also
+includes a tools to generate PDF presentations out of Org mode and Texinfo
+documents.")
+    (license license:lgpl3+)))
 
 ;;;
 ;;; C++ bindings.