aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm170
1 files changed, 115 insertions, 55 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bea4850d15..f375ca9b82 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -16,7 +16,7 @@
;;; Copyright © 2016 ng0 <ng0@n0.is>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -148,7 +148,9 @@ tools have full access to view and control running applications.")
("python" ,python-wrapper)))
(arguments
`(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
- #:configure-flags '("--enable-tee"))) ; needed for GNU Icecat
+ #:configure-flags '("--enable-tee" ;needed for GNU Icecat
+ "--enable-xml" ;for cairo-xml support
+ "--disable-static")))
(synopsis "2D graphics library")
(description
"Cairo is a 2D graphics library with support for multiple output devices.
@@ -184,7 +186,7 @@ affine transformation (scale, rotation, shear, etc.).")
(define-public harfbuzz
(package
(name "harfbuzz")
- (version "2.5.3")
+ (version "2.6.4")
(source (origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/"
@@ -192,7 +194,7 @@ affine transformation (scale, rotation, shear, etc.).")
version ".tar.xz"))
(sha256
(base32
- "0p45xk5bblsw8lfs7y7z80b4rvda9f2hlpr28flkrfmpjz3hvl7y"))))
+ "04iwq13w6zkdhljmsxrzgg4fyh04qnwfn57rgrl9kmijc7cvh4wl"))))
(build-system gnu-build-system)
(outputs '("out"
"bin")) ; 160K, only hb-view depend on cairo
@@ -224,16 +226,28 @@ affine transformation (scale, rotation, shear, etc.).")
(define-public pango
(package
(name "pango")
- (version "1.42.4")
+ (version "1.44.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/pango/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
+ (patches (search-patches "pango-skip-libthai-test.patch"))
(sha256
(base32
- "17bwb7dgbncrfsmchlib03k9n3xaalirb39g3yb43gg8cg6p8aqx"))))
- (build-system gnu-build-system)
+ "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'disable-cantarell-tests
+ (lambda _
+ (substitute* "tests/meson.build"
+ ;; XXX FIXME: These tests require "font-cantarell", but
+ ;; adding it here would introduce a circular dependency.
+ (("\\[ 'test-harfbuzz'.*") "")
+ (("\\[ 'test-itemize'.*") "")
+ (("\\[ 'test-layout'.*") ""))
+ #t)))))
(propagated-inputs
;; These are all in Requires or Requires.private of the '.pc' files.
`(("cairo" ,cairo)
@@ -241,13 +255,13 @@ affine transformation (scale, rotation, shear, etc.).")
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("glib" ,glib)
- ("harfbuzz" ,harfbuzz)))
- (inputs
- `(("zlib" ,zlib)
+ ("harfbuzz" ,harfbuzz)
;; Some packages, such as Openbox, expect Pango to be built with the
;; optional libxft support.
("libxft" ,libxft)))
+ (inputs
+ `(("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; glib-mkenums, etc.
@@ -260,6 +274,21 @@ used throughout the world.")
(license license:lgpl2.0+)
(home-page "https://developer.gnome.org/pango/")))
+(define-public pango-1.42
+ (package
+ (inherit pango)
+ (version "1.42.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/pango/"
+ (version-major+minor version) "/"
+ "pango-" version ".tar.xz"))
+ (sha256
+ (base32
+ "17bwb7dgbncrfsmchlib03k9n3xaalirb39g3yb43gg8cg6p8aqx"))))
+ (build-system gnu-build-system)
+ (arguments '())))
+
(define-public pangox-compat
(package
(name "pangox-compat")
@@ -275,7 +304,7 @@ used throughout the world.")
(build-system gnu-build-system)
(inputs
`(("glib" ,glib)
- ("pango" ,pango)))
+ ("pango" ,pango-1.42)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
@@ -506,7 +535,7 @@ highlighting and other features typical of a source code editor.")
;; Used for testing and required at runtime.
("shared-mime-info" ,shared-mime-info)))
(inputs
- `(("libjpeg" ,libjpeg)
+ `(("libjpeg" ,libjpeg-turbo)
("libtiff" ,libtiff)
("libx11" ,libx11)))
(native-inputs
@@ -609,10 +638,10 @@ in the GNOME project.")
("libxi" ,libxi)
("libxtst" ,libxtst)))
(native-inputs
- `(("gobject-introspection" ,gobject-introspection)
+ `(("gettext" ,gettext-minimal)
+ ("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("glib" ,glib "bin")
- ("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(synopsis "Assistive Technology Service Provider Interface, core components")
(description
@@ -674,7 +703,7 @@ is part of the GNOME accessibility project.")
"gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
"gtk2-theme-paths.patch"))))
(build-system gnu-build-system)
- (outputs '("out" "doc"))
+ (outputs '("out" "bin" "doc"))
(propagated-inputs
`(("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf+svg)
@@ -701,14 +730,19 @@ is part of the GNOME accessibility project.")
(assoc-ref %outputs "doc")
"/share/gtk-doc/html"))
#: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 ."))
- #t)
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-before 'configure 'disable-tests
+ (lambda _
+ ;; FIXME: re-enable tests requiring an X server
+ (substitute* "gtk/Makefile.in"
+ (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))
+ #t))
+ (add-after 'install 'remove-cache
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ delete-file
+ (find-files (assoc-ref outputs "out") "immodules.cache"))
+ #t)))))
(native-search-paths
(list (search-path-specification
(variable "GUIX_GTK2_PATH")
@@ -736,7 +770,6 @@ application suites.")
"120yz5gxqbv7sgdbcy4i0b6ixm8jpjzialdrqs0gv15q7bwnjk8w"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
- (outputs '("out" "bin" "doc"))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
@@ -844,10 +877,14 @@ application suites.")
"#include <libguile.h>\n#include <string.h>\n"))
#t)))))
(build-system gnu-build-system)
+ (arguments
+ ;; Uses of 'scm_t_uint8' & co. are deprecated; don't stop the build
+ ;; because of them.
+ '(#:configure-flags '("--disable-Werror")))
(inputs
`(("guile-lib" ,guile-lib)
("expat" ,expat)
- ("guile" ,guile-2.2)))
+ ("guile" ,guile-3.0)))
(propagated-inputs
;; The .pc file refers to 'cairo'.
`(("cairo" ,cairo)))
@@ -864,22 +901,19 @@ graphics library with all of the benefits of Scheme: memory management,
exceptions, macros, and a dynamic programming environment.")
(license license:lgpl3+)))
-(define-public guile3.0-cairo
+(define-public guile2.2-cairo
(package
(inherit guile-cairo)
- (name "guile3.0-cairo")
- (arguments
- (substitute-keyword-arguments (package-arguments guile-cairo)
- ((#:configure-flags flags ''())
- ;; Uses of 'scm_t_uint8' & co. are deprecated; don't stop the build
- ;; because of them.
- `(cons "--disable-Werror" ,flags))))
+ (name "guile2.2-cairo")
(inputs
- `(("guile" ,guile-3.0)
- ("guile-lib" ,guile3.0-lib)
+ `(("guile" ,guile-2.2)
+ ("guile-lib" ,guile2.2-lib)
,@(fold alist-delete (package-inputs guile-cairo)
'("guile" "guile-lib"))))))
+(define-public guile3.0-cairo
+ (deprecated-package "guile3.0-cairo" guile-cairo))
+
(define-public guile-rsvg
;; Use a recent snapshot that supports Guile 2.2 and beyond.
(let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
@@ -916,7 +950,7 @@ exceptions, macros, and a dynamic programming environment.")
("automake" ,automake)
("libtool" ,libtool)
("texinfo" ,texinfo)))
- (inputs `(("guile" ,guile-2.2)
+ (inputs `(("guile" ,guile-3.0)
("librsvg" ,librsvg)
("guile-lib" ,guile-lib))) ;for (unit-test)
(propagated-inputs `(("guile-cairo" ,guile-cairo)))
@@ -927,16 +961,19 @@ images onto Cairo surfaces.")
(home-page "https://wingolog.org/projects/guile-rsvg/")
(license license:lgpl2.1+))))
-(define-public guile3.0-rsvg
+(define-public guile2.2-rsvg
(package
(inherit guile-rsvg)
- (name "guile3.0-rsvg")
+ (name "guile2.2-rsvg")
(inputs
- `(("guile" ,guile-3.0)
- ("guile-lib" ,guile3.0-lib)
+ `(("guile" ,guile-2.2)
+ ("guile-lib" ,guile2.2-lib)
,@(fold alist-delete (package-inputs guile-rsvg)
'("guile" "guile-lib"))))
- (propagated-inputs `(("guile-cairo" ,guile3.0-cairo)))))
+ (propagated-inputs `(("guile-cairo" ,guile2.2-cairo)))))
+
+(define-public guile3.0-rsvg
+ (deprecated-package "guile3.0-rsvg" guile-rsvg))
(define-public guile-present
(package
@@ -982,7 +1019,7 @@ images onto Cairo surfaces.")
out "/lib/guile/" version "/site-ccache "))))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)))
- (inputs `(("guile" ,guile-2.2)))
+ (inputs `(("guile" ,guile-3.0)))
(propagated-inputs
;; These are used by the (present …) modules.
`(("guile-lib" ,guile-lib)
@@ -998,15 +1035,18 @@ includes a tools to generate PDF presentations out of Org mode and Texinfo
documents.")
(license license:lgpl3+)))
-(define-public guile3.0-present
+(define-public guile2.2-present
(package
(inherit guile-present)
- (name "guile3.0-present")
- (inputs `(("guile" ,guile-3.0)))
+ (name "guile2.2-present")
+ (inputs `(("guile" ,guile-2.2)))
(propagated-inputs
- `(("guile-lib" ,guile3.0-lib)
- ("guile-cairo" ,guile3.0-cairo)
- ("guile-rsvg" ,guile3.0-rsvg)))))
+ `(("guile-lib" ,guile2.2-lib)
+ ("guile-cairo" ,guile2.2-cairo)
+ ("guile-rsvg" ,guile2.2-rsvg)))))
+
+(define-public guile3.0-present
+ (deprecated-package "guile3.0-present" guile-present))
(define-public guile-gnome
(package
@@ -1041,9 +1081,9 @@ documents.")
("glib" ,glib)))
(inputs `(("guile" ,guile-2.2)))
(propagated-inputs
- `(("guile-cairo" ,guile-cairo)
+ `(("guile-cairo" ,guile2.2-cairo)
("g-wrap" ,g-wrap)
- ("guile-lib" ,guile-lib)))
+ ("guile-lib" ,guile2.2-lib)))
(arguments
`(#:tests? #f ;FIXME
#:phases (modify-phases %standard-phases
@@ -1248,7 +1288,7 @@ printing and other features typical of a source code editor.")
(define-public python-pycairo
(package
(name "python-pycairo")
- (version "1.17.1")
+ (version "1.19.0")
(source
(origin
(method url-fetch)
@@ -1256,7 +1296,7 @@ printing and other features typical of a source code editor.")
version "/pycairo-" version ".tar.gz"))
(sha256
(base32
- "165n0g7gp2a0qi8558snvfans17x83jv2lv7bx4vr1rxjbn3a2hg"))))
+ "176i283glkpycka8wwyndwld0zp1yn9xj9rpvllqgja698vsjnsg"))))
(build-system python-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1270,14 +1310,21 @@ printing and other features typical of a source code editor.")
(license license:lgpl3+)
(properties `((python2-variant . ,(delay python2-pycairo))))))
+;; Pycairo no longer supports Python 2 since version 1.19.0, so we stick
+;; with this older version here.
(define-public python2-pycairo
(let ((pycairo (package-with-python2
(strip-python2-variant python-pycairo))))
(package
(inherit pycairo)
- (propagated-inputs
- `(("python2-funcsigs" ,python2-funcsigs)
- ,@(package-propagated-inputs pycairo)))
+ (version "1.18.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/pygobject/pycairo/releases"
+ "/download/v" version "/pycairo-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0cb5n4r4nl0k1g90b1gz9iyk4lp7hi03db98i1p52a870bym7f6w"))))
;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
(license (list license:lgpl2.1 license:mpl1.1)))))
@@ -1301,6 +1348,11 @@ printing and other features typical of a source code editor.")
`(("pkg-config" ,pkg-config)))
(inputs
`(("python" ,python-2)
+
+ ;; XXX: The package fails to build with the latest Pango (propagated
+ ;; from GTK+2), so we provide it with this older version.
+ ("pango" ,pango-1.42)
+
("libglade" ,libglade)
("glib" ,glib)))
(propagated-inputs
@@ -1862,6 +1914,14 @@ shell scripts. Example of how to use @code{yad} can be consulted at
"/lib/girepository-1.0"))
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'do-not-treat-warnings-as-errors
+ (lambda _
+ ;; Prevent the build from failing due to deprecation warnings
+ ;; from newer GLib and GTK versions.
+ (substitute* (find-files "." "^Makefile.in$")
+ ((" -Werror")
+ ""))
+ #t))
(add-before 'configure 'set-environment
(lambda _
(setenv "HAVE_VALGRIND_TRUE" "")