mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-15 19:35:25 -05:00
e926ba716e
* gnu/packages/gtk.scm (ganv): New variable.
772 lines
29 KiB
Scheme
772 lines
29 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||
;;;
|
||
;;; This file is part of GNU Guix.
|
||
;;;
|
||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||
;;; under the terms of the GNU General Public License as published by
|
||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||
;;; your option) any later version.
|
||
;;;
|
||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
;;; GNU General Public License for more details.
|
||
;;;
|
||
;;; You should have received a copy of the GNU General Public License
|
||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
(define-module (gnu packages gtk)
|
||
#:use-module ((guix licenses) #:prefix license:)
|
||
#:use-module (guix utils)
|
||
#:use-module (guix packages)
|
||
#:use-module (guix download)
|
||
#:use-module (guix build-system gnu)
|
||
#:use-module (guix build-system python)
|
||
#:use-module (guix build-system waf)
|
||
#:use-module (gnu packages compression)
|
||
#:use-module (gnu packages fontutils)
|
||
#:use-module (gnu packages ghostscript)
|
||
#:use-module (gnu packages glib)
|
||
#:use-module (gnu packages gnome)
|
||
#:use-module (gnu packages icu4c)
|
||
#:use-module (gnu packages image)
|
||
#:use-module (gnu packages pdf)
|
||
#:use-module (gnu packages perl)
|
||
#:use-module (gnu packages pkg-config)
|
||
#:use-module (gnu packages python)
|
||
#:use-module (gnu packages guile)
|
||
#:use-module (gnu packages cups)
|
||
#:use-module (gnu packages xml)
|
||
#:use-module (gnu packages xorg)
|
||
#:use-module (gnu packages xdisorg))
|
||
|
||
(define-public atk
|
||
(package
|
||
(name "atk")
|
||
(version "2.15.3")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"177a9x6lz2im0mfgxv2crv0l740wy7rg5vlnb8wyyf4fmnh0q19f")))) ; 2.15.3
|
||
(build-system gnu-build-system)
|
||
(inputs `(("glib" ,glib)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("glib" ,glib "bin") ; glib-mkenums, etc.
|
||
("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
|
||
(synopsis "GNOME accessibility toolkit")
|
||
(description
|
||
"ATK provides the set of accessibility interfaces that are implemented
|
||
by other toolkits and applications. Using the ATK interfaces, accessibility
|
||
tools have full access to view and control running applications.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://developer.gnome.org/atk/")))
|
||
|
||
(define-public cairo
|
||
(package
|
||
(name "cairo")
|
||
(version "1.12.18")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://cairographics.org/releases/cairo-"
|
||
version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1dpmlxmmigpiyv0jchjsn2l1a29655x24g5073hy8p4lmjvz0nfw"))))
|
||
(build-system gnu-build-system)
|
||
(propagated-inputs
|
||
`(("fontconfig" ,fontconfig)
|
||
("freetype" ,freetype)
|
||
("glib" ,glib)
|
||
("libpng" ,libpng)
|
||
("libx11" ,libx11)
|
||
("libxext" ,libxext)
|
||
("libxrender" ,libxrender)
|
||
("pixman" ,pixman)))
|
||
(inputs
|
||
`(("ghostscript" ,ghostscript)
|
||
("libspectre" ,libspectre)
|
||
("poppler" ,poppler)
|
||
("xextproto" ,xextproto)
|
||
("zlib" ,zlib)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("python" ,python-wrapper)))
|
||
(arguments
|
||
`(#:tests? #f)) ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
|
||
(synopsis "2D graphics library")
|
||
(description
|
||
"Cairo is a 2D graphics library with support for multiple output devices.
|
||
Currently supported output targets include the X Window System (via both
|
||
Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
|
||
output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
|
||
|
||
Cairo is designed to produce consistent output on all output media while
|
||
taking advantage of display hardware acceleration when available
|
||
eg. through the X Render Extension).
|
||
|
||
The cairo API provides operations similar to the drawing operators of
|
||
PostScript and PDF. Operations in cairo including stroking and filling cubic
|
||
Bézier splines, transforming and compositing translucent images, and
|
||
antialiased text rendering. All drawing operations can be transformed by any
|
||
affine transformation (scale, rotation, shear, etc.)")
|
||
(license license:lgpl2.1) ; or Mozilla Public License 1.1
|
||
(home-page "http://cairographics.org/")))
|
||
|
||
(define-public harfbuzz
|
||
(package
|
||
(name "harfbuzz")
|
||
(version "0.9.22")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
|
||
version ".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"1nkimwadri6v2kzrmz8y0crmy59gw0kg4i4f6cc786bngs0815lq"))))
|
||
(build-system gnu-build-system)
|
||
(inputs
|
||
`(("cairo" ,cairo)
|
||
("graphite2" ,graphite2)
|
||
("icu4c" ,icu4c)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("python" ,python-wrapper)))
|
||
(arguments
|
||
`(#:configure-flags `("--with-graphite2=yes")))
|
||
(synopsis "OpenType text shaping engine")
|
||
(description
|
||
"HarfBuzz is an OpenType text shaping engine.")
|
||
(license (license:x11-style "file://COPYING"
|
||
"See 'COPYING' in the distribution."))
|
||
(home-page "http://www.freedesktop.org/wiki/Software/HarfBuzz/")))
|
||
|
||
(define-public pango
|
||
(package
|
||
(name "pango")
|
||
(version "1.36.8")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/pango/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"))))
|
||
(build-system gnu-build-system)
|
||
(propagated-inputs
|
||
`(("cairo" ,cairo)
|
||
("harfbuzz" ,harfbuzz)))
|
||
(inputs
|
||
`(("zlib" ,zlib)
|
||
|
||
;; Some packages, such as Openbox, expect Pango to be built with the
|
||
;; optional libxft support.
|
||
("libxft" ,libxft)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("glib" ,glib "bin") ; glib-mkenums, etc.
|
||
("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
|
||
(synopsis "GNOME text and font handling library")
|
||
(description
|
||
"Pango is the core text and font handling library used in GNOME
|
||
applications. It has extensive support for the different writing systems
|
||
used throughout the world.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://developer.gnome.org/pango/")))
|
||
|
||
(define-public pangox-compat
|
||
(package
|
||
(name "pangox-compat")
|
||
(version "0.0.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
|
||
(build-system gnu-build-system)
|
||
(inputs
|
||
`(("glib" ,glib)
|
||
("pango" ,pango)))
|
||
(native-inputs
|
||
`(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(home-page "https://developer.gnome.org/pango")
|
||
(synopsis "Obsolete pango functions")
|
||
(description "Pangox was a X backend to pango. It is now obsolete and no
|
||
longer provided by recent pango releases. pangox-compat provides the
|
||
functions which were removed.")
|
||
(license license:lgpl2.0+)))
|
||
|
||
(define-public ganv
|
||
(package
|
||
(name "ganv")
|
||
(version "1.4.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://download.drobilla.net/ganv-"
|
||
version
|
||
".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l"))))
|
||
(build-system waf-build-system)
|
||
(arguments `(#:tests? #f)) ; no check target
|
||
(inputs
|
||
`(("gtk" ,gtk+-2)
|
||
("gtkmm" ,gtkmm-2)))
|
||
(native-inputs
|
||
`(("glib" ,glib "bin") ; for glib-genmarshal, etc.
|
||
("pkg-config" ,pkg-config)))
|
||
(home-page "http://drobilla.net/software/ganv/")
|
||
(synopsis "GTK+ widget for interactive graph-like environments")
|
||
(description
|
||
"Ganv is an interactive GTK+ widget for interactive “boxes and lines” or
|
||
graph-like environments, e.g. modular synths or finite state machine
|
||
diagrams.")
|
||
(license license:gpl3+)))
|
||
|
||
(define-public gtksourceview
|
||
(package
|
||
(name "gtksourceview")
|
||
(version "2.10.5") ; This is the last version which builds against gtk+2
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))))
|
||
(build-system gnu-build-system)
|
||
(inputs
|
||
`(("gtk" ,gtk+-2)
|
||
("libxml2" ,libxml2)
|
||
;; These two are needed only to allow the tests to run successfully.
|
||
("xorg-server" ,xorg-server)
|
||
("shared-mime-info" ,shared-mime-info)))
|
||
(native-inputs
|
||
`(("intltool" ,intltool)
|
||
("glib" ,glib "bin") ; for glib-genmarshal, etc.
|
||
("pkg-config" ,pkg-config)))
|
||
(arguments
|
||
`(#:phases
|
||
;; Unfortunately, some of the tests in "make check" are highly dependent
|
||
;; on the environment therefore, some black magic is required.
|
||
(alist-cons-before
|
||
'check 'start-xserver
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
(let ((xorg-server (assoc-ref inputs "xorg-server"))
|
||
(mime (assoc-ref inputs "shared-mime-info")))
|
||
|
||
;; There must be a running X server and make check doesn't start one.
|
||
;; Therefore we must do it.
|
||
(system (format #f "~a/bin/Xvfb :1 &" xorg-server))
|
||
(setenv "DISPLAY" ":1")
|
||
|
||
;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
|
||
(system "ln -s gtksourceview gtksourceview-2.0")
|
||
(setenv "XDG_DATA_HOME" (getcwd))
|
||
|
||
;; Finally, the mimetypes must be available.
|
||
(setenv "XDG_DATA_DIRS" (string-append mime "/share/")) ))
|
||
%standard-phases)))
|
||
(synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
|
||
(description
|
||
"GtkSourceView is a portable C library that extends the standard GTK+
|
||
framework for multiline text editing with support for configurable syntax
|
||
highlighting, unlimited undo/redo, search and replace, a completion framework,
|
||
printing and other features typical of a source code editor.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://developer.gnome.org/gtksourceview/")))
|
||
|
||
(define-public gdk-pixbuf
|
||
(package
|
||
(name "gdk-pixbuf")
|
||
(version "2.31.1")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1kajvfckn88bzcdnl73b933gmjhwjm3dhsj1yrpixhfsc4y5x9r5"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
'(#:configure-flags '("--with-x11")))
|
||
(propagated-inputs ; required by gdk-pixbuf-2.0.pc
|
||
`(("glib" ,glib)
|
||
("libpng" ,libpng)))
|
||
(inputs
|
||
`(("libjpeg" ,libjpeg)
|
||
("libtiff" ,libtiff)
|
||
("libx11" ,libx11)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("glib" ,glib "bin") ; glib-mkenums, etc.
|
||
("gobject-introspection", gobject-introspection))) ; g-ir-compiler, etc.
|
||
(synopsis "GNOME image loading and manipulation library")
|
||
(description
|
||
"GdkPixbuf is a library for image loading and manipulation developed
|
||
in the GNOME project.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://developer.gnome.org/gdk-pixbuf/")))
|
||
|
||
(define-public at-spi2-core
|
||
(package
|
||
(name "at-spi2-core")
|
||
(version "2.10.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1ns44yibdgcwzwri7sr075hfs5rh5lgxkh71247a0822az3mahcn"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("dbus" ,dbus)
|
||
("glib" ,glib)
|
||
("libxi" ,libxi)
|
||
("libxtst" ,libxtst)))
|
||
(native-inputs
|
||
`(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(arguments
|
||
`(#:tests? #f)) ; FIXME: dbind/dbtest fails; one should disable tests in
|
||
; a more fine-grained way.
|
||
(synopsis "Assistive Technology Service Provider Interface, core components")
|
||
(description
|
||
"The Assistive Technology Service Provider Interface, core components,
|
||
is part of the GNOME accessibility project.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://projects.gnome.org/accessibility/")))
|
||
|
||
(define-public at-spi2-atk
|
||
(package
|
||
(name "at-spi2-atk")
|
||
(version "2.10.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"150sqc21difazqd53llwfdaqnwfy73bic9hia41xpfy9kcpzz9yy"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("atk" ,atk)
|
||
("at-spi2-core" ,at-spi2-core)
|
||
("dbus" ,dbus)
|
||
("glib" ,glib)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)))
|
||
(arguments
|
||
`(#:tests? #f)) ; FIXME: droute/droute-test fails; one should disable
|
||
; tests in a more fine-grained way.
|
||
(synopsis "Assistive Technology Service Provider Interface, ATK bindings")
|
||
(description
|
||
"The Assistive Technology Service Provider Interface
|
||
is part of the GNOME accessibility project.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "https://projects.gnome.org/accessibility/")))
|
||
|
||
(define-public gtk+-2
|
||
(package
|
||
(name "gtk+")
|
||
(version "2.24.21")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1qyw73pr9ryqhir2h1kbx3vm70km4dg2fxrgkrdlpv0rvlb94bih"))))
|
||
(build-system gnu-build-system)
|
||
(propagated-inputs
|
||
`(("atk" ,atk)
|
||
("gdk-pixbuf" ,gdk-pixbuf)
|
||
("pango" ,pango)))
|
||
(native-inputs
|
||
`(("perl" ,perl)
|
||
("glib" ,glib "bin")
|
||
("pkg-config" ,pkg-config)
|
||
("python-wrapper" ,python-wrapper)))
|
||
(arguments
|
||
`(#:phases
|
||
(alist-cons-before
|
||
'configure 'disable-tests
|
||
(lambda _
|
||
;; FIXME: re-enable tests requiring an X server
|
||
(substitute* "gtk/Makefile.in"
|
||
(("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")))
|
||
%standard-phases)))
|
||
(synopsis "Cross-platform toolkit for creating graphical user interfaces")
|
||
(description
|
||
"GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
|
||
graphical user interfaces. Offering a complete set of widgets, GTK+ is
|
||
suitable for projects ranging from small one-off tools to complete
|
||
application suites.")
|
||
(license license:lgpl2.0+)
|
||
(home-page "http://www.gtk.org/")))
|
||
|
||
(define-public gtk+
|
||
(package (inherit gtk+-2)
|
||
(name "gtk+")
|
||
(version "3.14.7")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv"))))
|
||
(propagated-inputs
|
||
`(("at-spi2-atk" ,at-spi2-atk)
|
||
("atk" ,atk)
|
||
("gdk-pixbuf" ,gdk-pixbuf)
|
||
("libxi" ,libxi)
|
||
("libxinerama" ,libxinerama)
|
||
("libxdamage" ,libxdamage)
|
||
("pango" ,pango)))
|
||
(inputs
|
||
`(("libxml2" ,libxml2)
|
||
("cups" ,cups))) ;for printing support
|
||
(native-inputs
|
||
`(("perl" ,perl)
|
||
("glib" ,glib "bin")
|
||
("pkg-config" ,pkg-config)
|
||
("gobject-introspection" ,gobject-introspection)
|
||
("python-wrapper" ,python-wrapper)
|
||
("xorg-server" ,xorg-server)))
|
||
(arguments
|
||
`(#:phases
|
||
(alist-replace
|
||
'configure
|
||
(lambda* (#:key inputs #:allow-other-keys #:rest args)
|
||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||
;; Disable most tests, failing in the chroot with the message:
|
||
;; D-Bus library appears to be incorrectly set up; failed to read
|
||
;; machine uuid: Failed to open "/etc/machine-id": No such file or
|
||
;; directory.
|
||
;; See the manual page for dbus-uuidgen to correct this issue.
|
||
(substitute* "testsuite/Makefile.in"
|
||
(("SUBDIRS = gdk gtk a11y css reftests")
|
||
"SUBDIRS = gdk"))
|
||
(apply configure args)))
|
||
%standard-phases)))))
|
||
|
||
;;;
|
||
;;; Guile bindings.
|
||
;;;
|
||
|
||
(define-public guile-cairo
|
||
(package
|
||
(name "guile-cairo")
|
||
(version "1.4.1")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append
|
||
"http://download.gna.org/guile-cairo/guile-cairo-"
|
||
version
|
||
".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"1f5nd9n46n6cwfl1byjml02q3y2hgn7nkx98km1czgwarxl7ws3x"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
'(#:phases (alist-cons-before
|
||
'configure 'set-module-directory
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
;; Install modules under $out/share/guile/site/2.0.
|
||
(let ((out (assoc-ref outputs "out")))
|
||
(substitute* "Makefile.in"
|
||
(("scmdir = ([[:graph:]]+).*" _ value)
|
||
(string-append "scmdir = " value "/2.0\n")))
|
||
(substitute* "cairo/Makefile.in"
|
||
(("moduledir = ([[:graph:]]+).*" _ value)
|
||
(string-append "moduledir = "
|
||
"$(prefix)/share/guile/site/2.0/cairo\n'")))))
|
||
(alist-cons-after
|
||
'install 'install-missing-file
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
;; By default 'vector-types.scm' is not installed, so do
|
||
;; it here.
|
||
(let ((out (assoc-ref outputs "out")))
|
||
(copy-file "cairo/vector-types.scm"
|
||
(string-append out "/share/guile/site/2.0"
|
||
"/cairo/vector-types.scm"))))
|
||
%standard-phases))))
|
||
(inputs
|
||
`(("guile-lib" ,guile-lib)
|
||
("expat" ,expat)
|
||
("guile" ,guile-2.0)))
|
||
(propagated-inputs
|
||
;; The .pc file refers to 'cairo'.
|
||
`(("cairo" ,cairo)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)))
|
||
(home-page "http://www.nongnu.org/guile-cairo/")
|
||
(synopsis "Cairo bindings for GNU Guile")
|
||
(description
|
||
"Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
|
||
Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API
|
||
stable, providing a firm base on which to do graphics work. Finally, and
|
||
importantly, it is pleasant to use. You get a powerful and well-maintained
|
||
graphics library with all of the benefits of Scheme: memory management,
|
||
exceptions, macros, and a dynamic programming environment.")
|
||
(license license:lgpl3+)))
|
||
|
||
|
||
;;;
|
||
;;; C++ bindings.
|
||
;;;
|
||
|
||
(define-public cairomm
|
||
(package
|
||
(name "cairomm")
|
||
(version "1.11.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://cairographics.org/releases/cairomm-"
|
||
version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"138052ybc58q5yl92m2p0br0k0a9g1pi9gfhmn4y220yih4pgxnc"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
;; The examples lack -lcairo.
|
||
'(#:make-flags '("LDFLAGS=-lcairo")))
|
||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||
(propagated-inputs
|
||
`(("libsigc++" ,libsigc++)
|
||
("freetype" ,freetype)
|
||
("fontconfig" ,fontconfig)
|
||
("cairo" ,cairo)))
|
||
(home-page "http://cairographics.org/")
|
||
(synopsis "C++ bindings to the Cairo 2D graphics library")
|
||
(description
|
||
"Cairomm provides a C++ programming interface to the Cairo 2D graphics
|
||
library.")
|
||
(license license:lgpl2.0+)))
|
||
|
||
(define-public pangomm
|
||
(package
|
||
(name "pangomm")
|
||
(version "2.34.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0hcyvv7c5zmivprdam6cp111i6hn2y5jsxzk00m6j9pncbzvp0hf"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||
(propagated-inputs
|
||
`(("cairo" ,cairo)
|
||
("cairomm" ,cairomm)
|
||
("glibmm" ,glibmm)
|
||
("pango" ,pango)))
|
||
(home-page "http://www.pango.org/")
|
||
(synopsis "C++ interface to the Pango text rendering library")
|
||
(description
|
||
"Pangomm provides a C++ programming interface to the Pango text rendering
|
||
library.")
|
||
(license license:lgpl2.1+)))
|
||
|
||
(define-public atkmm
|
||
(package
|
||
(name "atkmm")
|
||
(version "2.22.7")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||
(propagated-inputs
|
||
`(("glibmm" ,glibmm) ("atk" ,atk)))
|
||
(home-page "http://www.gtkmm.org")
|
||
(synopsis "C++ interface to the ATK accessibility library")
|
||
(description
|
||
"ATKmm provides a C++ programming interface to the ATK accessibility
|
||
toolkit.")
|
||
(license license:lgpl2.1+)))
|
||
|
||
(define-public gtkmm
|
||
(package
|
||
(name "gtkmm")
|
||
(version "3.14.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"12z4g2in82nk92nfjs2hmrdcwbav8v3laz1813x2dhkf5jk2ixfr"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||
(propagated-inputs
|
||
`(("pangomm" ,pangomm)
|
||
("cairomm" ,cairomm)
|
||
("atkmm" ,atkmm)
|
||
("gtk+" ,gtk+)
|
||
("glibmm" ,glibmm)))
|
||
(home-page "http://gtkmm.org/")
|
||
(synopsis
|
||
"C++ interface to the GTK+ graphical user interface library")
|
||
(description
|
||
"gtkmm is the official C++ interface for the popular GUI library GTK+.
|
||
Highlights include typesafe callbacks, and a comprehensive set of widgets that
|
||
are easily extensible via inheritance. You can create user interfaces either
|
||
in code or with the Glade User Interface designer, using libglademm. There's
|
||
extensive documentation, including API reference and a tutorial.")
|
||
(license license:lgpl2.1+)))
|
||
|
||
|
||
(define-public gtkmm-2
|
||
(package (inherit gtkmm)
|
||
(name "gtkmm")
|
||
(version "2.24.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0gcm91sc1a05c56kzh74l370ggj0zz8nmmjvjaaxgmhdq8lpl369"))))
|
||
(propagated-inputs
|
||
`(("pangomm" ,pangomm)
|
||
("cairomm" ,cairomm)
|
||
("atkmm" ,atkmm)
|
||
("gtk+" ,gtk+-2)
|
||
("glibmm" ,glibmm)))))
|
||
|
||
(define-public python-pycairo
|
||
(package
|
||
(name "python-pycairo")
|
||
(version "1.10.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://cairographics.org/releases/pycairo-"
|
||
version ".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"))))
|
||
(build-system python-build-system)
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)))
|
||
(propagated-inputs ;pycairo.pc references cairo
|
||
`(("cairo" ,cairo)))
|
||
(arguments
|
||
`(#:tests? #f
|
||
#:phases (alist-cons-before
|
||
'build 'configure
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(zero? (system* "./waf" "configure"
|
||
(string-append "--prefix="
|
||
(assoc-ref outputs "out")))))
|
||
(alist-replace
|
||
'build
|
||
(lambda _
|
||
(zero? (system* "./waf" "build")))
|
||
(alist-replace
|
||
'install
|
||
(lambda _
|
||
(zero? (system* "./waf" "install")))
|
||
%standard-phases)))))
|
||
(home-page "http://cairographics.org/pycairo/")
|
||
(synopsis "Python bindings for cairo")
|
||
(description
|
||
"Pycairo is a set of Python bindings for the Cairo graphics library.")
|
||
(license license:lgpl3+)))
|
||
|
||
(define-public python2-py2cairo
|
||
(package (inherit python-pycairo)
|
||
(name "python2-py2cairo")
|
||
(version "1.10.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://cairographics.org/releases/py2cairo-"
|
||
version ".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"))))
|
||
(arguments
|
||
`(#:python ,python-2
|
||
,@(package-arguments python-pycairo)))
|
||
;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
|
||
(license (list license:lgpl2.1 license:mpl1.1))))
|
||
|
||
(define-public python2-pygtk
|
||
(package
|
||
(name "python2-pygtk")
|
||
(version "2.24.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://ftp.gnome.org/pub/GNOME/sources"
|
||
"/pygtk/" (version-major+minor version)
|
||
"/pygtk-" version ".tar.bz2"))
|
||
(sha256
|
||
(base32
|
||
"04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)))
|
||
(inputs
|
||
`(("python" ,python-2)
|
||
("glib" ,glib)))
|
||
(propagated-inputs
|
||
`(("python-pycairo" ,python2-py2cairo) ;loaded at runtime
|
||
("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
|
||
("gtk+" ,gtk+-2)))
|
||
(arguments
|
||
`(#:tests? #f
|
||
#:phases (alist-cons-after
|
||
'install 'install-pth
|
||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||
;; pygtk's modules are stored in a subdirectory of python's
|
||
;; site-packages directory. Add a .pth file so that python
|
||
;; will add that subdirectory to its module search path.
|
||
(let* ((out (assoc-ref outputs "out"))
|
||
(site (string-append out "/lib/python"
|
||
,(version-major+minor
|
||
(package-version python-2))
|
||
"/site-packages")))
|
||
(call-with-output-file (string-append site "/pygtk.pth")
|
||
(lambda (port)
|
||
(format port "gtk-2.0~%")))))
|
||
%standard-phases)))
|
||
(home-page "http://www.pygtk.org/")
|
||
(synopsis "Python bindings for GTK+")
|
||
(description
|
||
"PyGTK allows you to write full featured GTK programs in Python. It is
|
||
targetted at GTK 2.x, and can be used in conjunction with gnome-python to
|
||
write GNOME applications.")
|
||
(license license:lgpl2.1+)))
|