summaryrefslogtreecommitdiff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm1470
1 files changed, 858 insertions, 612 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 7a2bd55f36..24c24d5653 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -24,7 +24,7 @@
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
;;;
@@ -45,6 +45,7 @@
(define-module (gnu packages gtk)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
@@ -60,6 +61,8 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@@ -74,10 +77,14 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
+ #:use-module (gnu packages iso-codes)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages m4)
+ #:use-module (gnu packages man)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
@@ -89,6 +96,7 @@
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages cups)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
@@ -99,86 +107,103 @@
(define-public atk
(package
- (name "atk")
- (version "2.34.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l"))))
- (build-system meson-build-system)
- (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("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
+ (name "atk")
+ (version "2.36.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1217cmmykjgkkim0zr1lv5j13733m4w5vipmy4ivw0ll6rz28xpv"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
+ (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib" ,glib "bin") ; glib-mkenums, etc.
+ ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+ ("pkg-config" ,pkg-config)))
+ (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/")))
+ (license license:lgpl2.1+)
+ (home-page "https://wiki.gnome.org/Accessibility")))
(define-public cairo
(package
- (name "cairo")
- (version "1.16.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://cairographics.org/releases/cairo-"
- version ".tar.xz"))
- (patches (search-patches "cairo-CVE-2018-19876.patch"
- "cairo-CVE-2020-35492.patch"))
- (sha256
- (base32
- "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
- (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)
- ("xorgproto" ,xorgproto)
- ("zlib" ,zlib)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)))
+ (name "cairo")
+ (version "1.16.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://cairographics.org/releases/cairo-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))
+ (patches (search-patches
+ "cairo-CVE-2018-19876.patch"
+ "cairo-CVE-2020-35492.patch"))))
+ (build-system glib-or-gtk-build-system)
+ (outputs '("out" "doc"))
(arguments
- `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
- #: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.
-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 "https://cairographics.org/")))
+ `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
+ #:configure-flags
+ (list
+ "--disable-static"
+ ;; XXX: To be enabled.
+ ;; "--enable-gallium=yes"
+ ;; "--enable-gl=yes"
+ ;; " --enable-glesv2=yes"
+ ;; "--enable-glesv3=yes"
+ ;; "--enable-cogl=yes"
+ ;; "--enable-directfb=yes"
+ ;; "--enable-vg=yes"
+ "--enable-tee=yes" ;needed for GNU IceCat
+ "--enable-xml=yes" ;for cairo-xml support
+ (string-append "--with-html-dir="
+ (assoc-ref %outputs "doc")
+ "/share/gtk-doc/html"))))
+ (native-inputs
+ `(("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)))
+ (inputs
+ `(("drm" ,libdrm)
+ ("ghostscript" ,ghostscript)
+ ("libspectre" ,libspectre)
+ ("poppler" ,poppler)))
+ (propagated-inputs
+ `( ;; ("cogl" ,cogl)
+ ;; ("directfb" ,directfb)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("glib" ,glib)
+ ;; ("gtk+" ,gtk+)
+ ("libpng" ,libpng)
+ ;; ("librsvg" ,librsvg)
+ ;; ("opengl" ,mesa)
+ ("pixman" ,pixman)
+ ("x11" ,libx11)
+ ("xcb" ,libxcb)
+ ("xext" ,libxext)
+ ("xrender" ,libxrender)))
+ (synopsis "Multi-platform 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.")
+ (home-page "https://cairographics.org/")
+ (license
+ ;; This project is dual-licensed.
+ (list
+ license:lgpl2.1+
+ license:mpl1.1))))
(define-public cairo-sans-poppler
;; Variant used to break the dependency cycle between Poppler and Cairo.
@@ -201,15 +226,15 @@ affine transformation (scale, rotation, shear, etc.).")
(define-public harfbuzz
(package
(name "harfbuzz")
- (version "2.6.4")
+ (version "2.8.2")
(source (origin
(method url-fetch)
- (uri (string-append "https://www.freedesktop.org/software/"
- "harfbuzz/release/harfbuzz-"
+ (uri (string-append "https://github.com/harfbuzz/harfbuzz"
+ "/releases/download/" version "/harfbuzz-"
version ".tar.xz"))
(sha256
(base32
- "04iwq13w6zkdhljmsxrzgg4fyh04qnwfn57rgrl9kmijc7cvh4wl"))))
+ "1rvv86wpm3y04fqns1655268rhvhvms469837709v2z2bhwn316m"))))
(build-system gnu-build-system)
(outputs '("out"
"bin")) ; 160K, only hb-view depend on cairo
@@ -253,11 +278,13 @@ affine transformation (scale, rotation, shear, etc.).")
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
- `(#:configure-flags
- (list
- (string-append "--with-html-docdir="
- (assoc-ref %outputs "doc")
- "/share/doc/datrie/html"))))
+ (list #:configure-flags
+ #~(list (string-append "--with-html-docdir=" #$output:doc
+ "/share/doc/datrie/html"))
+
+ ;; Several tests refer to the 'test.tri' file, leading to race
+ ;; conditions when running tests in parallel.
+ #:parallel-tests? #f))
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
@@ -301,54 +328,61 @@ applications.")
(define-public pango
(package
- (name "pango")
- (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
- "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)
- ("fribidi" ,fribidi)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("glib" ,glib)
- ("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.
- ("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/")))
+ (name "pango")
+ (version "1.48.9")
+ (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
+ "1akj11n0ycqrm1rvi0fdfldqk7l5zk9vb8sq77009ap57xyna4x9"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #: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-layout'.*") "")
+ (("\\[ 'test-itemize'.*") "")
+ (("\\[ 'test-font'.*") "")
+ (("\\[ 'test-harfbuzz'.*") ""))
+ #t)))))
+ (propagated-inputs
+ ;; These are all in Requires or Requires.private of the '.pc' files.
+ `(("cairo" ,cairo)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("fribidi" ,fribidi)
+ ("glib" ,glib)
+ ("harfbuzz" ,harfbuzz)
+ ("libthai" ,libthai)
+ ;; Some packages, such as Openbox, expect Pango to be built with the
+ ;; optional libxft support.
+ ("libxft" ,libxft)
+ ("libxrender" ,libxrender)))
+ (inputs
+ `(("zlib" ,zlib)))
+ (native-inputs
+ `(("glib" ,glib "bin") ; glib-mkenums, etc.
+ ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+ ("help2man" ,help2man)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)))
+ (synopsis "Text and font handling library")
+ (description "Pango is a library for laying out and rendering of text, with
+an emphasis on internationalization. Pango can be used anywhere that text
+layout is needed, though most of the work on Pango so far has been done in the
+context of the GTK+ widget toolkit. Pango forms the core of text and font
+handling for GTK+-2.x.")
+ (home-page "https://pango.gnome.org/")
+ (license license:lgpl2.0+)))
(define-public pango-1.42
(package
@@ -368,10 +402,11 @@ used throughout the world.")
(add-after 'configure 'disable-layout-test
(lambda _
;; This test requires that fontconfig uses bitmap fonts
- ;; such as "gs-fonts"; however providing such a package
- ;; alone is not enough, as the requirement comes from
- ;; deeper in the font stack. Since this version of Pango
- ;; is only used for librsvg, simply disable the test.
+ ;; such as "font-ghostscript"; however providing such a
+ ;; package alone is not enough, as the requirement comes
+ ;; from deeper in the font stack. Since this version of
+ ;; Pango is only used for librsvg, simply disable the
+ ;; test.
(substitute* "tests/Makefile"
(("test-layout\\$\\(EXEEXT\\)") ""))
#t)))))))
@@ -560,64 +595,74 @@ highlighting and other features typical of a source code editor.")
(define-public gdk-pixbuf
(package
- (name "gdk-pixbuf")
- (version "2.40.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (patches (search-patches "gdk-pixbuf-CVE-2020-29385.patch"))
- (sha256
- (base32
- "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm"))))
- (build-system meson-build-system)
- (arguments
- `(#:configure-flags '("-Dinstalled_tests=false")
- #:phases
- (modify-phases %standard-phases
- (add-after
- 'unpack 'disable-failing-tests
- (lambda _
- (substitute* "tests/meson.build"
- ;; XXX FIXME: This test fails on armhf machines with:
- ;; SKIP Not enough memory to load bitmap image
- ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2)
- ((".*'cve-2015-4491'.*") "")
- ;; XXX FIXME: This test fails with:
- ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag:
- ;; assertion failed (error == NULL): Data differ
- ;; (gdk-pixbuf-error-quark, 0)
- ((".*'pixbuf-jpeg'.*") ""))
- #t))
- ;; The slow tests take longer than the specified timeout.
- ,@(if (any (cute string=? <> (%current-system))
- '("armhf-linux" "aarch64-linux"))
- '((replace 'check
- (lambda _
- (invoke "meson" "test" "--timeout-multiplier" "5"))))
- '()))))
- (propagated-inputs
- `(;; Required by gdk-pixbuf-2.0.pc
- ("glib" ,glib)
- ("libpng" ,libpng)
- ;; Used for testing and required at runtime.
- ("shared-mime-info" ,shared-mime-info)))
- (inputs
- `(("libjpeg" ,libjpeg-turbo)
- ("libtiff" ,libtiff)
- ("libx11" ,libx11)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
+ (name "gdk-pixbuf")
+ (version "2.42.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0k9f9177qxaryaxprwrhqnv5p2gdq4a8i6y05gm98qa8izc5v77y"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:configure-flags '("-Dinstalled_tests=false" "-Djasper=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-docbook
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "docs"
+ (substitute* "meson.build"
+ (("http://docbook.sourceforge.net/release/xsl/current/")
+ (string-append (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-1.79.2/")))
+ (substitute* (find-files "." "\\.xml$")
+ (("http://www.oasis-open.org/docbook/xml/4\\.3/")
+ (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook/"))))
+ #t))
+ (add-before 'configure 'disable-failing-tests
+ (lambda _
+ (substitute* "tests/meson.build"
+ (("\\[ 'pixbuf-fail', \\['conform', 'slow'\\], \\],")
+ ""))
+ #t))
+ ;; The slow tests take longer than the specified timeout.
+ ,@(if (any (cute string=? <> (%current-system))
+ '("armhf-linux" "aarch64-linux"))
+ '((replace 'check
+ (lambda _
+ (invoke "meson" "test" "--timeout-multiplier" "5"))))
+ '()))))
+ (propagated-inputs
+ `( ;; Required by gdk-pixbuf-2.0.pc
+ ("glib" ,glib)
+ ;; Required by gdk-pixbuf-xlib-2.0.pc
+ ("libx11" ,libx11)
+ ;; Used for testing and required at runtime.
+ ("shared-mime-info" ,shared-mime-info)))
+ (inputs
+ `(("jasper" ,jasper)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)))
+ (native-inputs
+ `(("docbook-xml" ,docbook-xml-4.3)
+ ("docbook-xsl" ,docbook-xsl)
("gettext" ,gettext-minimal)
- ("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/")))
+ ("glib" ,glib "bin") ; glib-mkenums, etc.
+ ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)))
+ (synopsis "Image loading library")
+ (description "GdkPixbuf is a library that loads image data in various
+formats and stores it as linear buffers in memory. The buffers can then be
+scaled, composited, modified, saved, or rendered.")
+ (home-page "https://wiki.gnome.org/Projects/GdkPixbuf")
+ (license license:lgpl2.1+)))
;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the
@@ -629,10 +674,9 @@ in the GNOME project.")
`(("librsvg" ,librsvg)
,@(package-inputs gdk-pixbuf)))
(arguments
- '(#:configure-flags '("-Dinstalled-tests=false")
- #:tests? #f ; tested by the gdk-pixbuf package already
- #:phases
- (modify-phases %standard-phases
+ (substitute-keyword-arguments (package-arguments gdk-pixbuf)
+ ((#:phases phases)
+ `(modify-phases ,phases
(add-after 'install 'register-svg-loader
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -646,78 +690,89 @@ in the GNOME project.")
(apply invoke
gdk-pixbuf-query-loaders
"--update-cache"
- loaders)))))))
- (synopsis
- "GNOME image loading and manipulation library, with SVG support")))
+ loaders))))))))
+ (synopsis "Image loading library, with SVG support")))
(define-public at-spi2-core
(package
- (name "at-spi2-core")
- (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
- "1ihixwhh3c16q6253qj9gf69741rb2pi51822a4rylsfcyywsafn"))))
- (build-system meson-build-system)
- (outputs '("out" "doc"))
- (arguments
- '(#:configure-flags
- (list "-Ddocs=true")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-documentation-path
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Ensure that the cross-references point to the "doc" output.
- (substitute* "doc/libatspi/meson.build"
- (("docpath =.*")
- (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
- #t))
- (add-before 'install 'prepare-doc-directory
- (lambda* (#:key outputs #:allow-other-keys)
- (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
- #t))
- (add-after 'install 'move-documentation
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (copy-recursively
- (string-append out "/share/gtk-doc")
- (string-append doc "/share/gtk-doc"))
- (delete-file-recursively
- (string-append out "/share/gtk-doc")))
- #t))
- (add-after 'install 'check
- (lambda _
- (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
- ;; Run test-suite under a dbus session.
- (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
- (string-append %output "/share"))
- ;; Don't fail on missing '/etc/machine-id'.
- (setenv "DBUS_FATAL_WARNINGS" "0") ;
- (invoke "dbus-launch" "ninja" "test")))
+ (name "at-spi2-core")
+ (version "2.40.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1"))))
+ (build-system meson-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:configure-flags
+ (list "-Ddocs=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-documentation-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Ensure that the cross-references point to the "doc" output.
+ (substitute* "doc/libatspi/meson.build"
+ (("docpath =.*")
+ (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
+ #t))
+ (add-before 'install 'prepare-doc-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
+ #t))
+ (add-after 'unpack 'patch-docbook-sgml
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook")))
+ (substitute* "doc/libatspi/libatspi-docs.sgml"
+ (("http://.*/docbookx\\.dtd")
+ (string-append xmldoc "/docbookx.dtd")))
+ #t)))
+ (add-after 'install 'move-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (copy-recursively
+ (string-append out "/share/gtk-doc")
+ (string-append doc "/share/gtk-doc"))
+ (delete-file-recursively
+ (string-append out "/share/gtk-doc")))
+ #t))
+ (add-after 'install 'check
+ (lambda _
+ (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+ ;; Run test-suite under a dbus session.
+ (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
+ (string-append %output "/share"))
+ ;; Don't fail on missing '/etc/machine-id'.
+ (setenv "DBUS_FATAL_WARNINGS" "0") ;
+ (invoke "dbus-launch" "ninja" "test")))
(delete 'check))))
- (propagated-inputs
- ;; atspi-2.pc refers to all these.
- `(("dbus" ,dbus)
- ("glib" ,glib)
- ("libxi" ,libxi)
- ("libxtst" ,libxtst)))
- (native-inputs
- `(("gettext" ,gettext-minimal)
- ("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc/stable)
- ("glib" ,glib "bin")
- ("pkg-config" ,pkg-config)))
- (synopsis "Assistive Technology Service Provider Interface, core components")
- (description
- "The Assistive Technology Service Provider Interface, core components,
+ (propagated-inputs
+ ;; atspi-2.pc refers to all these.
+ `(("dbus" ,dbus)
+ ("glib" ,glib)
+ ("libx11" ,libx11)
+ ("libxi" ,libxi)
+ ("libxtst" ,libxtst)))
+ (native-inputs
+ `(("docbook-xml" ,docbook-xml-4.3)
+ ("gettext" ,gettext-minimal)
+ ("glib" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk-doc" ,gtk-doc)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)))
+ (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/")))
+ (license license:lgpl2.1+)
+ (home-page "https://wiki.gnome.org/Accessibility/")))
;;; A minimal variant used to prevent a cycle with Inkscape.
(define at-spi2-core-minimal
@@ -739,199 +794,273 @@ is part of the GNOME accessibility project.")
(define-public at-spi2-atk
(package
- (name "at-spi2-atk")
- (version "2.34.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "05ncp7s5nddjinffs26mcvpbd63vk1m3cv5y530p3plgfhqgjvbp"))))
- (build-system meson-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- ;; Run test-suite under a dbus session.
- (lambda _
- (setenv "DBUS_FATAL_WARNINGS" "0")
- (invoke "dbus-launch" "meson" "test"))))))
- (propagated-inputs
- ;; TODO: Replace by at-spi2-core-minimal in the next staging window, or
- ;; when Inkscape 0.92 is upgraded to 1.0 to avoid a cycle.
- `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
- (inputs
- `(("atk" ,atk)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ;; For tests.
- ("dbus" ,dbus)
- ("libxml2" ,libxml2)))
- (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
- (description
- "The Assistive Technology Service Provider Interface
+ (name "at-spi2-atk")
+ (version "2.38.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0ks6r9sx27l80n3a7yjmkilxv48cqj183wc7cap3caw2myjhi86g"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ ;; Run test-suite under a dbus session.
+ (lambda _
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ (invoke "dbus-launch" "meson" "test"))))))
+ (propagated-inputs
+ ;; TODO: Replace by at-spi2-core-minimal in the next staging window, or
+ ;; when Inkscape 0.92 is upgraded to 1.0 to avoid a cycle.
+ `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
+ (inputs
+ `(("atk" ,atk)
+ ("glib" ,glib)))
+ (native-inputs
+ `(("dbus" ,dbus) ; For tests
+ ("gobject-introspection" ,gobject-introspection)
+ ("libxml2" ,libxml2)
+ ("pkg-config" ,pkg-config)))
+ (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/")))
+ (license license:lgpl2.1+)
+ (home-page "https://wiki.gnome.org/Accessibility/")))
(define-public gtk+-2
(package
- (name "gtk+")
- (version "2.24.32")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n"))
- (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
- "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
- "gtk2-theme-paths.patch"))))
- (build-system gnu-build-system)
- (outputs '("out" "bin" "doc"))
- (propagated-inputs
- `(("atk" ,atk)
- ("gdk-pixbuf" ,gdk-pixbuf+svg)
- ("pango" ,pango)))
- (inputs
- `(("cups" ,cups)
- ("libxcomposite" ,libxcomposite)
- ("libxcursor" ,libxcursor)
- ("libxdamage" ,libxdamage)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxrandr" ,libxrandr)))
- (native-inputs
- `(("perl" ,perl)
- ("gettext" ,gettext-minimal)
- ("glib" ,glib "bin")
- ("gobject-introspection" ,gobject-introspection)
- ("pkg-config" ,pkg-config)
- ("python-wrapper" ,python-wrapper)))
- (arguments
- `(#:configure-flags
- (list "--with-xinput=yes"
- (string-append "--with-html-dir="
- (assoc-ref %outputs "doc")
- "/share/gtk-doc/html"))
- #: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
+ (name "gtk+")
+ (version "2.24.33")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
+ (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
+ "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
+ "gtk2-theme-paths.patch"))))
+ (build-system gnu-build-system)
+ (outputs '("out" "bin" "doc"))
+ (propagated-inputs
+ `(("atk" ,atk)
+ ("cairo" ,cairo)
+ ;; SVG support is optional and requires librsvg, which pulls in rust.
+ ;; Rust is not supported well on every architecture yet.
+ ("gdk-pixbuf" ,(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ gdk-pixbuf+svg
+ gdk-pixbuf))
+ ("glib" ,glib)
+ ("pango" ,pango)))
+ (inputs
+ `(("cups" ,cups)
+ ("libx11" ,libx11)
+ ("libxcomposite" ,libxcomposite)
+ ("libxcursor" ,libxcursor)
+ ("libxext" ,libxext)
+ ("libxdamage" ,libxdamage)
+ ("libxi" ,libxi)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxrandr" ,libxrandr)
+ ("libxrender" ,libxrender)
+ ("libxshmfence" ,libxshmfence)))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("intltool" ,intltool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-wrapper" ,python-wrapper)
+ ("xorg-server" ,xorg-server-for-tests)))
+ (arguments
+ `(#:parallel-tests? #f
+ #:configure-flags
+ (list "--with-xinput=yes"
+ (string-append "--with-html-dir="
+ (assoc-ref %outputs "doc")
+ "/share/gtk-doc/html"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "gtk/Makefile.in"
+ (("aliasfilescheck\\.sh") ""))
+ (substitute* "gtk/tests/recentmanager.c"
+ (("g_test_add_func \\(\"/recent-manager.*;") ""))
+ (substitute* "gtk/tests/defaultvalue.c"
+ (("return g_test_run\\(\\);") ""))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 +extension GLX &")
+ (setenv "DISPLAY" ":1")
+ ;; Tests write to $HOME.
+ (setenv "HOME" (getcwd))
+ ;; Tests look for $XDG_RUNTIME_DIR.
+ (setenv "XDG_RUNTIME_DIR" (getcwd))
+ ;; For missing '/etc/machine-id'.
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ #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")
- (files '("lib/gtk-2.0")))))
- (synopsis "Cross-platform toolkit for creating graphical user interfaces")
- (description
- "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
+ #t)))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUIX_GTK2_PATH")
+ (files '("lib/gtk-2.0")))))
+ (search-paths native-search-paths)
+ (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 "https://www.gtk.org/")))
+ (license license:lgpl2.0+)
+ (home-page "https://www.gtk.org/")))
(define-public gtk+
- (package (inherit gtk+-2)
- (name "gtk+")
- (version "3.24.24")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "12ipk1d376bai9v820qzhxba93kkh5abi6mhyqr4hwjvqmkl77fc"))
- (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
- "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
- (propagated-inputs
- `(("at-spi2-atk" ,at-spi2-atk)
- ("atk" ,atk)
- ("gdk-pixbuf" ,gdk-pixbuf+svg)
- ("libepoxy" ,libepoxy)
- ("libxcursor" ,libxcursor)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxdamage" ,libxdamage)
- ("libxrandr" ,libxrandr)
- ("mesa" ,mesa)
- ("pango" ,pango)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)))
- (inputs
- `(("libxml2" ,libxml2)
- ;; XXX: colord depends on mozjs (through polkit), which fails on
- ;; on non-intel systems now.
- ;;("colord" ,colord)
- ("cups" ,cups) ;for printing support
- ;; XXX: rest depends on p11-kit, which fails on mips64el now.
- ;;("rest" ,rest)
- ("json-glib" ,json-glib)))
- (native-inputs
- `(("perl" ,perl)
- ("glib" ,glib "bin")
- ("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)
- ("gobject-introspection" ,gobject-introspection)
- ("python-wrapper" ,python-wrapper)
- ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
- ;; of updating xorg-server directly on the master branch.
- ("xorg-server" ,xorg-server-for-tests)))
- (arguments
- `(#:disallowed-references (,xorg-server-for-tests)
- ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
- ;; to "doc".
- #:configure-flags (list (string-append "--with-html-dir="
- (assoc-ref %outputs "doc")
- "/share/gtk-doc/html")
- ;; The header file <gdk/gdkwayland.h> is required
- ;; by gnome-control-center
- "--enable-wayland-backend"
- ;; This is necessary to build both backends.
- "--enable-x11-backend"
- ;; This enables the HTML5 websocket backend.
- "--enable-broadway-backend")
- #:phases (modify-phases %standard-phases
- (add-before 'configure 'pre-configure
- (lambda _
- ;; 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"))
- #t))
- (add-after 'install 'move-desktop-files
- ;; Move desktop files into 'bin' to avoid cycle references.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (bin (assoc-ref outputs "bin")))
- (mkdir-p (string-append bin "/share"))
- (rename-file (string-append out "/share/applications")
- (string-append bin "/share/applications"))
- #t))))))
- (native-search-paths
- (list (search-path-specification
- (variable "GUIX_GTK3_PATH")
- (files '("lib/gtk-3.0")))))))
+ (package
+ (inherit gtk+-2)
+ (name "gtk+")
+ (version "3.24.30")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1a9vg840fjq1mmm403b67k624qrkxh9shaz9pv7z9l8a6bzvyxds"))
+ (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
+ "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
+ (propagated-inputs
+ `(("atk" ,atk)
+ ("at-spi2-atk" ,at-spi2-atk)
+ ("cairo" ,cairo)
+ ("fribidi" ,fribidi)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ;; SVG support is optional and requires librsvg, which pulls in rust.
+ ;; Rust is not supported well on every architecture yet.
+ ("gdk-pixbuf" ,(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ gdk-pixbuf+svg
+ gdk-pixbuf))
+ ("glib" ,glib)
+ ("libcloudproviders" ,libcloudproviders)
+ ("libepoxy" ,libepoxy)
+ ("libx11" ,libx11)
+ ("libxcomposite" ,libxcomposite)
+ ("libxcursor" ,libxcursor)
+ ("libxdamage" ,libxdamage)
+ ("libxext" ,libxext)
+ ("libxfixes" ,libxfixes)
+ ("libxi" ,libxi)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxrandr" ,libxrandr)
+ ("libxrender" ,libxrender)
+ ("mesa" ,mesa)
+ ("pango" ,pango)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)))
+ (inputs
+ `(("colord" ,colord)
+ ("cups" ,cups)
+ ("graphene" ,graphene)
+ ("harfbuzz" ,harfbuzz)
+ ("iso-codes" ,iso-codes)
+ ("json-glib" ,json-glib)
+ ("libxml2" ,libxml2)
+ ("rest" ,rest)))
+ (native-inputs
+ `(("docbook-xml" ,docbook-xml-4.1.2)
+ ("gettext" ,gettext-minimal)
+ ("glib" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-wrapper" ,python-wrapper)
+ ("sassc" ,sassc)
+ ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
+ ;; of updating xorg-server directly on the master branch.
+ ("xorg-server" ,xorg-server-for-tests)
+ ("xsltproc" ,libxslt)))
+ (arguments
+ `(#:disallowed-references (,xorg-server-for-tests)
+ ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
+ ;; to "doc".
+ #:configure-flags (list (string-append "--with-html-dir="
+ (assoc-ref %outputs "doc")
+ "/share/gtk-doc/html")
+ "--enable-cloudproviders"
+ ;; The header file <gdk/gdkwayland.h> is required
+ ;; by gnome-control-center
+ "--enable-wayland-backend"
+ ;; This is necessary to build both backends.
+ "--enable-x11-backend"
+ ;; This enables the HTML5 websocket backend.
+ "--enable-broadway-backend")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "testsuite/gtk/Makefile.in"
+ (("builderparser cellarea check-icon-names check-cursor-names")
+ "builderparser cellarea check-cursor-names")
+ (("notify no-gtk-init object objects-finalize papersize rbtree")
+ "no-gtk-init papersize rbtree")
+ (("stylecontext templates textbuffer textiter treemodel treepath")
+ "stylecontext textbuffer textiter treemodel treepath"))
+ (substitute* "testsuite/a11y/Makefile.in"
+ (("accessibility-dump tree-performance text children derive")
+ "tree-performance text children derive"))
+ (substitute* "testsuite/reftests/Makefile.in"
+ (("TEST_PROGS = gtk-reftest")
+ "TEST_PROGS = "))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 +extension GLX &")
+ (setenv "DISPLAY" ":1")
+ ;; Tests write to $HOME.
+ (setenv "HOME" (getcwd))
+ ;; Tests look for $XDG_RUNTIME_DIR.
+ (setenv "XDG_RUNTIME_DIR" (getcwd))
+ ;; For missing '/etc/machine-id'.
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ #t))
+ (add-after 'install 'move-desktop-files
+ ;; Move desktop files into 'bin' to avoid cycle references.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (bin (assoc-ref outputs "bin")))
+ (mkdir-p (string-append bin "/share"))
+ (rename-file (string-append out "/share/applications")
+ (string-append bin "/share/applications"))
+ #t))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUIX_GTK3_PATH")
+ (files '("lib/gtk-3.0")))))))
;;;
;;; Guile bindings.
@@ -1248,23 +1377,45 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
(define-public cairomm
(package
(name "cairomm")
- (version "1.12.2")
+ (version "1.16.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.cairographics.org/releases/"
- name "-" version ".tar.gz"))
+ name "-" version ".tar.xz"))
(sha256
(base32
- "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25"))))
- (build-system gnu-build-system)
+ "1ya4y7qa000cjawqwswbqv26y5icfkmhs5iiiil4dxgrqn91923y"))))
+ (build-system meson-build-system)
+ (outputs '("out" "doc"))
(arguments
- ;; The examples lack -lcairo.
- '(#:make-flags '("LDFLAGS=-lcairo")))
- (native-inputs `(("pkg-config" ,pkg-config)))
+ `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:configure-flags
+ (list
+ "-Dbuild-documentation=true"
+ "-Dboost-shared=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share"))
+ (rename-file
+ (string-append out "/share/doc")
+ (string-append doc "/share/doc"))
+ #t))))))
+ (native-inputs
+ `(("boost" ,boost)
+ ("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("mm-common" ,mm-common)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)))
+ (inputs
+ `(("fontconfig" ,fontconfig)))
(propagated-inputs
`(("libsigc++" ,libsigc++)
- ("freetype" ,freetype)
- ("fontconfig" ,fontconfig)
("cairo" ,cairo)))
(home-page "https://cairographics.org/")
(synopsis "C++ bindings to the Cairo 2D graphics library")
@@ -1273,37 +1424,61 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
library.")
(license license:lgpl2.0+)))
-(define-public cairomm-1.13
+(define-public cairomm-1.14
(package
(inherit cairomm)
(name "cairomm")
- (version "1.13.1")
+ (version "1.14.2")
(source
(origin
(method url-fetch)
(uri
(string-append "https://www.cairographics.org/releases/"
- name "-" version ".tar.gz"))
+ name "-" version ".tar.xz"))
(sha256
- (base32 "1xlfl0fm5mgv53lr8xjv2kqsk3bz67qkk6qzvbrqmbvbvvbqp9wp"))))
+ (base32 "1qwdj9xw1w651kqwh82nipbryimm1ir5n3c6q34nphsx576bj9h1"))))
(propagated-inputs
- `(("cairo" ,cairo)
- ("sigc++" ,libsigc++)))))
+ `(("libsigc++" ,libsigc++-2)
+ ,@(package-propagated-inputs cairomm)))))
(define-public pangomm
(package
(name "pangomm")
- (version "2.42.0")
+ (version "2.48.0")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "0mmzxp3wniaafkxr30sb22mq9x44xckb5d60h1bl99lkzxks0vfa"))))
- (build-system gnu-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0y2vyp6azvhrii6rzs89kr08wg8z1p562awyr812131zqdsd83ly"))))
+ (build-system meson-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:configure-flags
+ (list
+ "-Dbuild-documentation=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share"))
+ (rename-file
+ (string-append out "/share/doc")
+ (string-append doc "/share/doc"))
+ #t))))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("m4" ,m4)
+ ("mm-common" ,mm-common)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)))
(propagated-inputs
`(("cairo" ,cairo)
("cairomm" ,cairomm)
@@ -1316,11 +1491,11 @@ library.")
library.")
(license license:lgpl2.1+)))
-(define-public pangomm-2.42
+(define-public pangomm-2.46
(package
(inherit pangomm)
(name "pangomm")
- (version "2.42.1")
+ (version "2.46.0")
(source
(origin
(method url-fetch)
@@ -1329,102 +1504,186 @@ library.")
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
- (base32 "03zli5amizhv9bfklwfq7xyf0b5dagchx1lnz9f0v1rhk69h9gql"))))
+ (base32 "06zczkaxf5p5kjgnzrfylzi40w9a8lxpndgs7rpn12qrsq27sy6k"))))
(propagated-inputs
- `(("cairomm" ,cairomm-1.13)
+ `(("cairomm" ,cairomm-1.14)
("glibmm" ,glibmm-2.64)
("pango" ,pango)))))
(define-public atkmm
(package
(name "atkmm")
- (version "2.28.0")
+ (version "2.36.0")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "0fnxrspxkhhbrjphqrpvl3zjm66n50s4cywrrrwkhbflgy8zqk2c"))))
- (build-system gnu-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0wwr0663jrqx2klsasffd9wpk3kqnwisj1y3ahdkjdk5hzrsjgy9"))))
+ (build-system meson-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+ #:configure-flags
+ (list
+ "-Dbuild-documentation=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share"))
+ (rename-file
+ (string-append out "/share/doc")
+ (string-append doc "/share/doc"))
+ #t))))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("m4" ,m4)
+ ("mm-common" ,mm-common)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)))
(propagated-inputs
`(("glibmm" ,glibmm) ("atk" ,atk)))
- (home-page "https://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+)))
+ (synopsis "C++ bindings for ATK")
+ (description "ATKmm is the C++ binding for the ATK library.")
+ (home-page "https://wiki.gnome.org/Accessibility")
+ (license
+ (list
+ ;; Library
+ license:lgpl2.1+
+ ;; Tools
+ license:gpl2+))))
+
+(define-public atkmm-2.28
+ (package
+ (inherit atkmm)
+ (name "atkmm")
+ (version "2.28.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32 "1b8vycqzr3lfvk2l73f4kk74hj48081zbh9r1r2ilr3h8xh7cs0i"))))
+ (propagated-inputs
+ `(("glibmm" ,glibmm-2.64)
+ ,@(package-propagated-inputs atkmm)))))
(define-public gtkmm
(package
(name "gtkmm")
- (version "3.24.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "1hxdnhavjyvbcpxhd5z17l9fj4182028s66lc0s16qqqrldhjwbd"))))
- (build-system gnu-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)
- ("glib" ,glib "bin") ;for 'glib-compile-resources'
- ("xorg-server" ,xorg-server-for-tests)))
+ (version "3.24.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32 "0hv7pviln4cpjvpz7m7ga5krcsbibqzixdcn0dwzpz0cx71p3swv"))))
+ (build-system meson-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:configure-flags '("-Dbuild-documentation=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 +extension GLX &")
+ (setenv "DISPLAY" ":1")
+ ;; For missing '/etc/machine-id'.
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ #t))
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share"))
+ (rename-file
+ (string-append out "/share/doc")
+ (string-append doc "/share/doc"))
+ #t))))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("glib:bin" ,glib "bin")
+ ("m4" ,m4)
+ ("mm-common" ,mm-common)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)
+ ("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
- `(("pangomm" ,pangomm)
- ("cairomm" ,cairomm)
- ("atkmm" ,atkmm)
+ `(("atkmm" ,atkmm-2.28)
+ ("cairomm" ,cairomm-1.14)
+ ("glibmm" ,glibmm)
("gtk+" ,gtk+)
- ("glibmm" ,glibmm)))
- (arguments
- `(#:disallowed-references (,xorg-server-for-tests)
- #:phases (modify-phases %standard-phases
- (add-before 'check 'run-xvfb
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((xorg-server (assoc-ref inputs "xorg-server")))
- ;; Tests such as 'object_move/test' require a running
- ;; X server.
- (system (string-append xorg-server "/bin/Xvfb :1 &"))
- (setenv "DISPLAY" ":1")
- ;; Don't fail because of the missing /etc/machine-id.
- (setenv "DBUS_FATAL_WARNINGS" "0")
- #t))))))
+ ("pangomm" ,pangomm-2.46)))
+ (synopsis "C++ Interfaces for GTK+ and GNOME")
+ (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.")
(home-page "https://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+)))
-
+ (license
+ (list
+ ;; Library
+ license:lgpl2.1+
+ ;; Tools
+ license:gpl2+))))
(define-public gtkmm-2
- (package (inherit gtkmm)
+ (package
+ (inherit gtkmm)
(name "gtkmm")
(version "2.24.5")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
- (version-major+minor version) "/"
- name "-" version ".tar.xz"))
- (sha256
- (base32
- "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
- (arguments '())
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
+ (build-system gnu-build-system)
+ (arguments
+ (substitute-keyword-arguments (package-arguments gtkmm)
+ ((#:modules modules %gnu-build-system-modules)
+ `((srfi srfi-1)
+ ,@modules))
+ ((#:configure-flags flags)
+ `(fold delete
+ ,flags
+ '("-Dbuild-documentation=true")))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("m4" ,m4)
+ ("mm-common" ,mm-common)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)
+ ("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
- `(("pangomm" ,pangomm)
- ("cairomm" ,cairomm)
- ("atkmm" ,atkmm)
+ `(("atkmm" ,atkmm-2.28)
+ ("cairomm" ,cairomm-1.14)
+ ("glibmm" ,glibmm-2.64)
("gtk+" ,gtk+-2)
- ("glibmm" ,glibmm)))))
+ ("pangomm" ,pangomm-2.46)))))
(define-public gtksourceviewmm
(package
@@ -1461,7 +1720,7 @@ printing and other features typical of a source code editor.")
(define-public python-pycairo
(package
(name "python-pycairo")
- (version "1.19.1")
+ (version "1.20.0")
(source
(origin
(method url-fetch)
@@ -1469,7 +1728,7 @@ printing and other features typical of a source code editor.")
version "/pycairo-" version ".tar.gz"))
(sha256
(base32
- "111fav9m1iagw3nh2ws2vzkjh34r97yl7rdlpvsngsqg521k251c"))))
+ "1326aa2ybhhhrvz3n4p22z5sic25m016ddb5yq0hvbprnw6a35an"))))
(build-system python-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1788,7 +2047,7 @@ information.")
(define-public gtk-doc
(package
(name "gtk-doc")
- (version "1.28")
+ (version "1.33.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -1796,8 +2055,10 @@ information.")
name "-" version ".tar.xz"))
(sha256
(base32
- "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
- (build-system gnu-build-system)
+ "0hxza8qp52lrq7s1vbilz2vh4170cail560zi8khl0zb42d706yc"))
+ (patches
+ (search-patches "gtk-doc-respect-xml-catalog.patch"))))
+ (build-system meson-build-system)
(arguments
`(#:parallel-tests? #f
#:phases
@@ -1805,82 +2066,67 @@ information.")
(add-after 'unpack 'patch-gtk-doc-scan
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "gtk-doc.xsl"
- (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
- (string-append (assoc-ref inputs "docbook-xsl")
- "/xml/xsl/docbook-xsl-"
- ,(package-version docbook-xsl)
- "/html/chunk.xsl"))
- (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
- (string-append (assoc-ref inputs "docbook-xsl")
- "/xml/xsl/docbook-xsl-"
- ,(package-version docbook-xsl)
- "/common/en.xml")))
- #t))
- (add-after 'patch-gtk-doc-scan 'patch-test-out
- (lambda _
- ;; sanity.sh counts the number of status lines. Since our
- ;; texlive regenerates the fonts every time and the font
- ;; generator metafont outputs a lot of extra lines, this
- ;; test would always fail. Disable it for now.
- (substitute* "tests/Makefile.in"
- (("empty.sh sanity.sh") "empty.sh"))
+ (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
+ (string-append (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl)
+ "/html/chunk.xsl"))
+ (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
+ (string-append (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl)
+ "/common/en.xml")))
#t))
- (add-before 'build 'set-HOME
+ (add-after 'unpack 'disable-failing-tests
(lambda _
- ;; FIXME: dblatex with texlive-union does not find the built
- ;; metafonts, so it tries to generate them in HOME.
- (setenv "HOME" "/tmp")
- #t))
- (add-before 'configure 'fix-docbook
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "configure"
- ;; The configure check is overzealous about making sure that
- ;; things are in place -- it uses the xmlcatalog tool to make
- ;; sure that docbook-xsl is available, but this tool can only
- ;; look in one catalog file, unlike the $XML_CATALOG_FILES
- ;; variable that Guix defines. Fool the test by using the
- ;; docbook-xsl catalog explicitly and get on with life.
- (("\"\\$XML_CATALOG_FILE\" \
-\"http://docbook.sourceforge.net/release/xsl/")
- (string-append (car (find-files (assoc-ref inputs "docbook-xsl")
- "^catalog.xml$"))
- " \"http://docbook.sourceforge.net/release/xsl/")))
+ (substitute* "tests/Makefile.am"
+ (("annotations.sh bugs.sh empty.sh fail.sh gobject.sh program.sh")
+ ""))
#t))
(add-after 'install 'wrap-executables
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (prog)
(wrap-program prog
- `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
- (find-files (string-append out "/bin")))
- #t))))
- #:configure-flags
- (list (string-append "--with-xml-catalog="
- (assoc-ref %build-inputs "docbook-xml")
- "/xml/dtd/docbook/catalog.xml"))))
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
+ (find-files (string-append out "/bin")))))))))
(native-inputs
- `(("pkg-config" ,pkg-config)
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
("itstool" ,itstool)
- ("libxml" ,libxml2)
- ("gettext" ,gettext-minimal)
- ("bc" ,bc)))
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-wrapper" ,python-wrapper)))
(inputs
- `(("perl" ,perl)
- ("python" ,python)
- ("xsltproc" ,libxslt)
+ `(("bc" ,bc)
("dblatex" ,dblatex)
("docbook-xml" ,docbook-xml-4.3)
("docbook-xsl" ,docbook-xsl)
- ("source-highlight" ,source-highlight)
("glib" ,glib)
- ("python-six" ,python-six)))
- (home-page "https://www.gtk.org/gtk-doc/")
- (synopsis "Documentation generator from C source code")
- (description
- "GTK-Doc generates API documentation from comments added to C code. It is
-typically used to document the public API of GTK+ and GNOME libraries, but it
-can also be used to document application code.")
- (license license:gpl2+)))
+ ("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)
+ ("python" ,python)
+ ("python-anytree" ,python-anytree)
+ ("python-lxml" ,python-lxml)
+ ("python-parameterized" ,python-parameterized)
+ ("python-pygments" ,python-pygments)
+ ("python-unittest2" ,python-unittest2)
+ ("source-highlight" ,source-highlight)
+ ("yelp-tools" ,yelp-tools)))
+ (home-page "https://wiki.gnome.org/DocumentationProject/GtkDoc")
+ (synopsis "GTK+ DocBook Documentation Generator")
+ (description "GtkDoc is a tool used to extract API documentation from C-code
+like Doxygen, but handles documentation of GObject (including signals and
+properties) that makes it very suitable for GTK+ apps and libraries. It uses
+docbook for intermediate files and can produce html by default and pdf/man-pages
+with some extra work.")
+ (license
+ (list
+ ;; Docs.
+ license:fdl1.1+
+ ;; Others.
+ license:gpl2+))))
;; This is a variant of the 'gtk-doc' package that is not updated often. It
;; is intended to be used as a native-input at build-time only. This allows