diff options
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r-- | gnu/packages/gtk.scm | 667 |
1 files changed, 286 insertions, 381 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5024455368..d92c9e0c28 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -232,7 +232,7 @@ tools have full access to view and control running applications.") ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (inputs - `(("bash-minimal" ,bash-minimal) + `(("bash-minimal" ,bash-minimal) ;for glib-or-gtk-wrap ("drm" ,libdrm) ("ghostscript" ,ghostscript) ("libspectre" ,libspectre) @@ -284,67 +284,41 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.") (define-public harfbuzz (package - (name "harfbuzz") - (version "2.8.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/harfbuzz/harfbuzz" - "/releases/download/" version "/harfbuzz-" - version ".tar.xz")) - (sha256 - (base32 - "1rvv86wpm3y04fqns1655268rhvhvms469837709v2z2bhwn316m")))) - (build-system gnu-build-system) - (outputs '("out" - "bin")) ; 160K, only hb-view depend on cairo - (inputs - (list cairo)) - (propagated-inputs - ;; There are all in the Requires or Requires.private field of '.pc'. - (list glib graphite2 icu4c)) - (native-inputs - `(("glib:bin" ,glib "bin") ;for glib-mkenums - ("gobject-introspection" ,gobject-introspection) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("which" ,which))) - (arguments - `(#:configure-flags `("--with-graphite2" - "--with-gobject" - ,(string-append - "--bindir=" (assoc-ref %outputs "bin") "/bin")))) - (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 "https://www.freedesktop.org/wiki/Software/HarfBuzz/"))) - -(define-public harfbuzz-3 - (package - (inherit harfbuzz) - (version "3.4.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/harfbuzz/harfbuzz" - "/releases/download/" version - "/harfbuzz-" version ".tar.xz")) - (sha256 - (base32 - "0lprrl8iih8ji1n17xwm5llz05a1hv4g04b7a3y229dq9myahn3i")))))) - -(define-public harfbuzz-4 - (package - (inherit harfbuzz) - (version "4.3.0") + (name "harfbuzz") + (version "5.3.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/harfbuzz/harfbuzz" - "/releases/download/" version - "/harfbuzz-" version ".tar.xz")) + "/releases/download/" version "/harfbuzz-" + version ".tar.xz")) (sha256 (base32 - "0c5mzwgz43d37h75p4b6cgjg4v24jdd96i7gjpgxirn8qks2i5m4")))))) + "0ka3nkk2lks2lgakq02vyibwdziv11dkpa2brkx230asnyby0v2a")))) + (build-system gnu-build-system) + (outputs '("out" + "bin")) ;160K, only hb-view depend on cairo + (inputs + (list cairo)) + (propagated-inputs + ;; There are all in the Requires or Requires.private field of '.pc'. + (list glib graphite2 icu4c)) + (native-inputs + (list `(,glib "bin") ;for glib-mkenums + gobject-introspection + pkg-config + python-wrapper + which)) + (arguments + (list #:configure-flags + #~(list "--with-graphite2" + "--with-gobject" + (string-append "--bindir=" #$output:bin "/bin")))) + (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 "https://www.freedesktop.org/wiki/Software/HarfBuzz/"))) (define-public harfbuzz-5 @@ -393,7 +367,7 @@ representing trie. Trie is a kind of digital search tree.") (define-public libthai (package (name "libthai") - (version "0.1.28") + (version "0.1.29") (source (origin (method url-fetch) @@ -401,7 +375,7 @@ representing trie. Trie is a kind of digital search tree.") (string-append "https://linux.thai.net/pub/thailinux/software/" "libthai/libthai-" version ".tar.xz")) (sha256 - (base32 "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z")))) + (base32 "1kab1w6i1fb76807xrwjfac8n2nky8jbvkhpnh117qahrdywr07w")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -426,7 +400,7 @@ applications.") (define-public pango (package (name "pango") - (version "1.48.10") + (version "1.50.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -435,7 +409,7 @@ applications.") (patches (search-patches "pango-skip-libthai-test.patch")) (sha256 (base32 - "166wxhsjb6hb0dk7wkkdcmpvasl9n0a0aa64mdgagzfdidwzbq91")))) + "0rj9sszflckk8gj47ppirpndpp3mzsx97l64lalj8kc580g2ypby")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -451,26 +425,27 @@ applications.") (("\\[ 'test-harfbuzz'.*") ""))))))) (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))) + (list cairo + fontconfig + freetype + fribidi + glib + harfbuzz + libthai + ;; Some packages, such as Openbox, expect Pango to be built with the + ;; optional libxft support. + libxft + libxrender)) (inputs - (list bash-minimal zlib)) + (list bash-minimal + 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))) + (list `(,glib "bin") ;glib-mkenums, etc. + gobject-introspection ;g-ir-compiler, etc. + help2man + perl + pkg-config + 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 @@ -480,22 +455,6 @@ handling for GTK+-2.x.") (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) -;; TODO: Make this the default package in next release cycle. -(define-public pango-next - (package - (inherit pango) - (name "pango-next") ;to avoid profile conflicts - (version "1.50.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/pango/" - (version-major+minor version) - "/pango-" version ".tar.xz")) - (patches (search-patches "pango-skip-libthai-test.patch")) - (sha256 - (base32 - "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) - (define-public pango-1.42 (package (inherit pango) @@ -542,9 +501,7 @@ handling for GTK+-2.x.") #~(begin (substitute* "pango/pangocairo-font.c" (("cairo_user_font_face_set_render_color_glyph_func") - "cairo_user_font_face_set_render_glyph_func")))))) - (inputs (modify-inputs (package-inputs pango) - (prepend harfbuzz-4))))) + "cairo_user_font_face_set_render_glyph_func")))))))) (define-public pangox-compat (package @@ -712,8 +669,8 @@ printing and other features typical of a source code editor.") glib-next gtk libxml2 - pcre2 - pango-next)) + pango + pcre2)) (home-page "https://wiki.gnome.org/Projects/GtkSourceView") (synopsis "GNOME source code widget") (description "GtkSourceView is a text widget that extends the standard @@ -740,7 +697,6 @@ highlighting and other features typical of a source code editor.") (propagated-inputs (modify-inputs (package-propagated-inputs gtksourceview) (replace "gtk" gtk+) - (replace "pango-next" pango) (replace "glib" glib))))) (define-public gtksourceview-3 @@ -765,7 +721,7 @@ highlighting and other features typical of a source code editor.") (define-public gdk-pixbuf (package (name "gdk-pixbuf") - (version "2.42.4") + (version "2.42.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -773,7 +729,7 @@ highlighting and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0k9f9177qxaryaxprwrhqnv5p2gdq4a8i6y05gm98qa8izc5v77y")))) + "1iplb43nn74pp3w1wjwwn522i9man6jia85k6j8v4494rcxfmb44")))) (build-system meson-build-system) (outputs '("out" "debug")) (arguments @@ -781,57 +737,42 @@ highlighting and other features typical of a source code editor.") #:configure-flags '("-Dinstalled_tests=false") #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (with-directory-excursion "docs" - (substitute* "meson.build" - (("http://docbook.sourceforge.net/release/xsl/current/") - (string-append (assoc-ref ,(if (%current-target-system) - '(or native-inputs inputs) - '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 ,(if (%current-target-system) - '(or native-inputs inputs) - 'inputs) "docbook-xml") - "/xml/dtd/docbook/")))))) (add-before 'configure 'disable-failing-tests (lambda _ (substitute* "tests/meson.build" (("\\[ 'pixbuf-fail', \\['conform', 'slow'\\], \\],") "")))) ;; The slow tests take longer than the specified timeout. - ,@(if (any (cute string=? <> (%current-system)) - '("armhf-linux" "aarch64-linux")) + ,@(if (target-arm? (%current-system)) '((replace 'check - (lambda _ - (invoke "meson" "test" "--timeout-multiplier" "5")))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "meson" "test" "--timeout-multiplier" "5"))))) '())))) (propagated-inputs - (list ;; Required by gdk-pixbuf-2.0.pc - glib - ;; Required by gdk-pixbuf-xlib-2.0.pc - ;; TODO: Remove on core-updates. - libx11 - ;; Used for testing and required at runtime. - shared-mime-info)) + (list glib ;in Requires of gdk-pixbuf-2.0.pc + + ;; These are in Requires.private of gdk-pixbuf-2.0.pc + libjpeg-turbo + libpng + libtiff + shared-mime-info)) ;required at runtime, too (inputs - `(,@(if (%current-target-system) - `(("bash-minimal" ,bash-minimal)) ; for glib-or-gtk-wrap - '()) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libtiff" ,libtiff))) + (if (%current-target-system) + (list bash-minimal) ;for glib-or-gtk-wrap + '())) (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. - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("xsltproc" ,libxslt))) + (list gettext-minimal + `(,glib "bin") ;glib-mkenums, etc. + gobject-introspection ;g-ir-compiler, etc. + perl + pkg-config + + ;; For the documentation. + docbook-xml-4.3 + docbook-xsl + libxml2 ;for XML_CATALOG_FILES + libxslt)) ;for xsltproc (native-search-paths ;; This file is produced by the gdk-pixbuf-loaders-cache-file ;; profile hook. @@ -876,11 +817,11 @@ ever use this library.") (license license:lgpl2.1+))) ;;; A minimal variant used to prevent a cycle with Inkscape. -(define-public at-spi2-core-minimal +(define-public at-spi2-core (hidden-package (package (name "at-spi2-core") - (version "2.40.0") + (version "2.45.90") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -888,33 +829,44 @@ ever use this library.") name "-" version ".tar.xz")) (sha256 (base32 - "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1")))) + "03dba3c6m3sfapkkbbgzvbi1qcmrrlppydxjjs1m8ds9qb9hl1g9")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:phases - (modify-phases %standard-phases - (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)))) + (list + #:glib-or-gtk? #t ;to wrap binaries and/or compile schemas + #:phases + #~(modify-phases %standard-phases + (delete 'check) + (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:" (getenv "XDG_DATA_DIRS"))) + ;; Don't fail on missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + (with-directory-excursion (string-append "../at-spi2-core-" + #$version "") + (invoke "dbus-run-session" "--" "ci/run-registryd-tests.sh") + (substitute* "ci/run-tests.sh" + (("ps auxwww") "") ;avoid a dependency on procps + (("meson test -C _build") + "meson test -C ../build")) ;adjust build directory + (invoke "dbus-run-session" "--" "ci/run-tests.sh"))))))) (inputs - (list bash-minimal)) + (list bash-minimal libxml2)) (propagated-inputs ;; atspi-2.pc refers to all these. (list dbus glib libx11 libxi libxtst)) (native-inputs - `(("gettext" ,gettext-minimal) - ("glib" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) + (list gettext-minimal + `(,glib "bin") + gobject-introspection + gsettings-desktop-schemas + pkg-config + python-dbusmock + python-pytest + python-wrapper)) (synopsis "Assistive Technology Service Provider Interface, core components") (description "The Assistive Technology Service Provider Interface, core components, @@ -922,86 +874,45 @@ is part of the GNOME accessibility project.") (license license:lgpl2.1+) (home-page "https://wiki.gnome.org/Accessibility/")))) -(define-public at-spi2-core - (package/inherit at-spi2-core-minimal - (outputs (cons "doc" (package-outputs at-spi2-core-minimal))) +(define-public at-spi2-core-with-documentation + (package/inherit at-spi2-core + (outputs (cons "doc" (package-outputs at-spi2-core))) (arguments - (substitute-keyword-arguments (package-arguments at-spi2-core-minimal) + (substitute-keyword-arguments (package-arguments at-spi2-core) ((#:configure-flags flags ''()) - `(cons ,(if (%current-target-system) - "-Ddocs=false" - "-Ddocs=true") - ,flags)) + #~(cons #$(if (%current-target-system) + "-Ddocs=false" + "-Ddocs=true") + #$flags)) ((#:phases phases) - `(modify-phases ,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"))))) - (add-before 'install 'prepare-doc-directory - (lambda* (#:key outputs #:allow-other-keys) - (mkdir-p (string-append (assoc-ref outputs "doc") "/share")))) - ,@(if (%current-target-system) - '() - '((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"))))))))))) + #~(modify-phases #$phases + (add-after 'unpack 'set-documentation-path + (lambda _ + ;; Ensure that the cross-references point to the "doc" output. + (substitute* "doc/libatspi/meson.build" + (("docpath =.*") + (string-append "docpath = '" #$output:doc + "/share/gtk-doc/html'\n"))))) + (add-before 'install 'prepare-doc-directory + (lambda _ + (mkdir-p (string-append #$output:doc "/share")))) + #$@(if (%current-target-system) + #~() + #~((add-after 'install 'move-documentation + (lambda _ + (copy-recursively + (string-append #$output "/share/gtk-doc") + (string-append #$output:doc "/share/gtk-doc")) + (delete-file-recursively + (string-append #$output "/share/gtk-doc")))))))))) (native-inputs - (append `(("docbook-xml" ,docbook-xml-4.3) - ("gtk-doc" ,gtk-doc/stable) - ("libxml2" ,libxml2)) ;for XML_CATALOG_FILES - (package-native-inputs at-spi2-core-minimal))) + (modify-inputs (package-native-inputs at-spi2-core) + (append docbook-xml-4.3 gtk-doc/stable))) (properties (alist-delete 'hidden? - (package-properties at-spi2-core-minimal))))) + (package-properties at-spi2-core))))) (define-public at-spi2-atk - (package - (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 - ;; Compiling tests requires "libxml2" to be in 'inputs'. - ,@(if (%current-target-system) - `(#:configure-flags '("-Dtests=false")) - '()) - #: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 - (list at-spi2-core-minimal)) ; required by atk-bridge-2.0.pc - (inputs - (list atk glib)) - (native-inputs - (list dbus ; For tests - gobject-introspection libxml2 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.1+) - (home-page "https://wiki.gnome.org/Accessibility/"))) + (deprecated-package "at-spi2-atk" at-spi2-core)) (define-public gtk+-2 (package @@ -1022,11 +933,11 @@ is part of the GNOME accessibility project.") (build-system gnu-build-system) (outputs '("out" "bin" "doc" "debug")) (propagated-inputs - (list atk cairo - (if (target-x86-64?) - librsvg-bootstrap - librsvg-2.40) - glib pango)) + (list atk + cairo + glib + (librsvg-for-system) + pango)) (inputs (list cups libx11 @@ -1050,41 +961,43 @@ is part of the GNOME accessibility project.") python-wrapper 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))))) + (list + #:parallel-tests? #f + #:configure-flags + #~(list "--with-xinput=yes" + (string-append "--with-html-dir=" #$output + "/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\\(\\);") "")) + ;; These require XPM support in Gdk-Pixbuf which is obsolete. + (substitute* "gtk/tests/textbuffer.c" + (("g_test_add_func.*test_fill_empty\\);") + "") + (("g_test_add_func.*test_tag\\);") + "")))) + (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"))) + (add-after 'install 'remove-cache + (lambda _ + (for-each delete-file + (find-files #$output "immodules.cache"))))))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK2_PATH") @@ -1117,14 +1030,12 @@ application suites.") "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (propagated-inputs (list atk - at-spi2-atk + at-spi2-core cairo fribidi fontconfig freetype - (if (target-x86-64?) - librsvg-bootstrap - librsvg-2.40) + (librsvg-for-system) glib libcloudproviders-minimal libepoxy @@ -1144,11 +1055,11 @@ application suites.") wayland wayland-protocols)) (inputs - (list colord-minimal ;to prevent a cycle with inkscape + (list colord-minimal ;to prevent a cycle with inkscape cups graphene harfbuzz - iso-codes/official ;XXX TODO core-updates: use iso-codes + iso-codes json-glib-minimal libxml2 rest)) @@ -1167,67 +1078,63 @@ application suites.") xorg-server-for-tests libxslt)) (arguments - `(#:imported-modules ((guix build glib-or-gtk-build-system) + (list + #:imported-modules `((guix build glib-or-gtk-build-system) ,@%gnu-build-system-modules) - #:modules ((guix build utils) + #:modules '((guix build utils) (guix build gnu-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)) - #: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 'generate-gdk-pixbuf-loaders-cache-file - (assoc-ref glib-or-gtk:%standard-phases - 'generate-gdk-pixbuf-loaders-cache-file)) - (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)))))) + #:disallowed-references (list 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=" + #$output "/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 'generate-gdk-pixbuf-loaders-cache-file + (assoc-ref glib-or-gtk:%standard-phases + 'generate-gdk-pixbuf-loaders-cache-file)) + (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 = ")))) + (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"))) + (add-after 'install 'move-desktop-files + ;; Move desktop files into 'bin' to avoid cycle references. + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append #$output:bin "/share")) + (rename-file (string-append #$output "/share/applications") + (string-append #$output:bin + "/share/applications"))))))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK3_PATH") @@ -1385,6 +1292,7 @@ application suites.") iso-codes json-glib libcloudproviders ;for cloud-providers support + libgudev ;for gstreamer-gl libjpeg-turbo libpng libtiff @@ -1395,9 +1303,7 @@ application suites.") ;; Following dependencies are referenced in .pc files. (list cairo fontconfig - (if (target-x86-64?) - librsvg-bootstrap - librsvg-2.40) + (librsvg-for-system) glib graphene libepoxy @@ -1412,7 +1318,7 @@ application suites.") libxkbcommon libxrandr libxrender - pango-next + pango vulkan-headers vulkan-loader ;for vulkan graphics API support wayland ;for wayland display-backend @@ -1792,7 +1698,7 @@ library.") (define-public pangomm (package (name "pangomm") - (version "2.50.0") + (version "2.50.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1800,48 +1706,45 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0nrvvf1fyzlimh7rvxcblnrvn2l9rz8mpn2iwzlzr6kv05zafym2")))) + "054jglmnbig14fs99qqi5y174z9j90r6dprpyszw42742cs95jfc")))) (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)))))) + (list + #: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 _ + (mkdir-p (string-append #$output:doc "/share")) + (rename-file (string-append #$output "/share/doc") + (string-append #$output:doc "/share/doc"))))))) (native-inputs - `(("dot" ,graphviz) - ("doxygen" ,doxygen) - ("m4" ,m4) - ("mm-common" ,mm-common) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python) - ("xsltproc" ,libxslt))) + (list graphviz + doxygen + m4 + mm-common + perl + pkg-config + python + libxslt)) (propagated-inputs - (list cairo cairomm glibmm pango-next)) + (list cairo + cairomm + glibmm + pango)) (home-page "https://pango.gnome.org//") (synopsis "C++ interface to the Pango text rendering library") - (description - "Pangomm provides a C++ programming 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 pangomm-2.46 (package (inherit pangomm) (name "pangomm") - (version "2.46.0") + (version "2.46.2") (source (origin (method url-fetch) @@ -1850,7 +1753,7 @@ library.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "06zczkaxf5p5kjgnzrfylzi40w9a8lxpndgs7rpn12qrsq27sy6k")))) + (base32 "1x56xb4k1d9g88a1d9rlcvy97mmj39rib6c3wfzpff04vjs2li2p")))) (propagated-inputs (list cairomm-1.14 glibmm-2.64 pango)))) @@ -1994,7 +1897,7 @@ tutorial.") (package (inherit gtkmm) (name "gtkmm") - (version "3.24.5") + (version "3.24.6") (source (origin (method url-fetch) @@ -2003,7 +1906,7 @@ tutorial.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1ri2msp3cmzi6r65ghwb8gfavfaxv0axpwi3q60nm7v8hvg36qw5")))) + (base32 "1mhi3ws43l051fha4zssfpykraa1qc2hd408l2xk65jfjhp18gjb")))) (propagated-inputs `(("atkmm-2.28" ,atkmm-2.28) ("cairomm-1.14" ,cairomm-1.14) @@ -2065,7 +1968,7 @@ printing and other features typical of a source code editor.") (define-public python-pycairo (package (name "python-pycairo") - (version "1.20.0") + (version "1.21.0") (source (origin (method url-fetch) @@ -2073,7 +1976,7 @@ printing and other features typical of a source code editor.") version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "1326aa2ybhhhrvz3n4p22z5sic25m016ddb5yq0hvbprnw6a35an")))) + "0jxpyibpjadw8ah1mqbhvryr795myiznb1ikm8wgjbamibqhf695")))) (build-system python-build-system) (native-inputs (list pkg-config python-pytest)) @@ -2083,6 +1986,8 @@ printing and other features typical of a source code editor.") (synopsis "Python bindings for cairo") (description "Pycairo is a set of Python bindings for the Cairo graphics library.") + (properties + '((upstream-name . "pycairo"))) (license license:lgpl3+))) ;; Pycairo no longer supports Python 2 since version 1.19.0, so we stick |