X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/869b63cb93c68a2825bfe25b652d5481555f9b12..44d66cf764df1a5f92e32c101bc88b20b8ac96b1:/gnu/packages/gtk.scm?ds=sidebyside diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 0ab5c36ca1..51c11ea36a 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Federico Beffa @@ -9,19 +9,22 @@ ;;; Copyright © 2015 Andy Wingo ;;; Copyright © 2015 David Hashe ;;; Coypright © 2015, 2016, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2020 Efraim Flashner ;;; Copyright © 2016 Fabian Harfert ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Patrick Hetu -;;; Copyright © 2016 ng0 +;;; Copyright © 2016 Nikita ;;; Copyright © 2017 Roel Janssen -;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2019, 2020 Marius Bakke ;;; Copyright © 2018 Alex Vong -;;; Copyright © 2018 Arun Isaac +;;; Copyright © 2018, 2020 Arun Isaac ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Meiyo Peng ;;; Copyright © 2019 Giacomo Leidi +;;; Copyright © 2020 Brendan Tildesley +;;; Copyright © 2020 Guillaume Le Vaillant +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,12 +87,13 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26)) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match)) (define-public atk (package (name "atk") - (version "2.32.0") + (version "2.34.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -97,7 +101,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1k4i817bd2w5b9z394f2yyx95591l2746wa40am0vvz4gzdgwhfb")))) + "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib))) ; required by atk.pc (native-inputs @@ -146,6 +150,7 @@ tools have full access to view and control running applications.") (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 @@ -271,8 +276,8 @@ used throughout the world.") (home-page "https://developer.gnome.org/pango/"))) (define-public pango-1.42 - (package/inherit - pango + (package + (inherit pango) (version "1.42.4") (source (origin (method url-fetch) @@ -300,7 +305,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))) @@ -314,14 +319,14 @@ functions which were removed.") (define-public ganv (package (name "ganv") - (version "1.4.2") + (version "1.6.0") (source (origin (method url-fetch) (uri (string-append "https://download.drobilla.net/ganv-" version ".tar.bz2")) (sha256 (base32 - "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l")))) + "0pik2d3995z0rjcjhb4hsj5fsph3m8khg6j10k6mx4j2j727aq6l")))) (build-system waf-build-system) (arguments `(#:phases @@ -333,7 +338,6 @@ functions which were removed.") (string-append "-Wl,-rpath=" (assoc-ref outputs "out") "/lib")) #t))) - #:python ,python-2 ;XXX: The bundled waf fails with Python 3.7.0. #:tests? #f)) ; no check target (inputs `(("gtk" ,gtk+-2) @@ -349,24 +353,6 @@ graph-like environments, e.g. modular synths or finite state machine diagrams.") (license license:gpl3+))) -(define-public ganv-devel - (let ((commit "12f7d6b0438c94dd87f773a92eee3453d971846e") - (revision "1")) - (package - (inherit ganv) - (name "ganv") - (version (string-append "1.5.4-" revision "." - (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.drobilla.net/ganv.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1cr8w02lr6bk9mkxa12j3imq721b2an2yn4bj5wnwmpm91ddn2gi"))))))) - (define-public gtksourceview-2 (package (name "gtksourceview") @@ -531,7 +517,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 @@ -580,7 +566,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.32.1") + (version "2.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -588,7 +574,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw")))) + "1ihixwhh3c16q6253qj9gf69741rb2pi51822a4rylsfcyywsafn")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments @@ -634,10 +620,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 @@ -646,10 +632,28 @@ is part of the GNOME accessibility project.") (license license:lgpl2.0+) (home-page "https://projects.gnome.org/accessibility/"))) +;;; A minimal variant used to prevent a cycle with Inkscape. +(define at-spi2-core-minimal + (package + (inherit at-spi2-core) + (name "at-spi2-core-minimal") + (outputs (delete "doc" (package-outputs at-spi2-core))) + (arguments + (substitute-keyword-arguments (package-arguments at-spi2-core) + ((#:configure-flags configure-flags) + `(delete "-Ddocs=true" ,configure-flags)) + ((#:phases phases) + `(modify-phases ,phases + (delete 'set-documentation-path) + (delete 'prepare-doc-directory) + (delete 'move-documentation))))) + (native-inputs + (alist-delete "gtk-doc" (package-native-inputs at-spi2-core))))) + (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.32.0") + (version "2.34.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -657,7 +661,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "0p54wx6f6q7s8w0b1j0sgw87pikllp79q5g3lfiwqazs779ycl8b")))) + "05ncp7s5nddjinffs26mcvpbd63vk1m3cv5y530p3plgfhqgjvbp")))) (build-system meson-build-system) (arguments '(#:phases @@ -668,6 +672,8 @@ is part of the GNOME accessibility project.") (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))) @@ -755,7 +761,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.24.12") + (version "3.24.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -763,7 +769,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "10xyyhlfb0yk4hglngxh2zsv9xrxkqv343df8h01dvagc6jyp10k")) + "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (propagated-inputs @@ -865,12 +871,22 @@ application suites.") (string-append name "dir = " prefix "/guile/site/@GUILE_EFFECTIVE_VERSION@" suffix))) + + ;; Guile 2.x used to pull in and + ;; other headers but this is no longer the case in 3.0. + (substitute* (find-files "." "\\.[ch]$") + (("^ *# *include.*libguile\\.h.*$") + "#include \n#include \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))) @@ -887,6 +903,19 @@ graphics library with all of the benefits of Scheme: memory management, exceptions, macros, and a dynamic programming environment.") (license license:lgpl3+))) +(define-public guile2.2-cairo + (package + (inherit guile-cairo) + (name "guile2.2-cairo") + (inputs + `(("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") @@ -896,13 +925,13 @@ exceptions, macros, and a dynamic programming environment.") (version (string-append "2.18.1-" revision "." (string-take commit 7))) (source (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/wingo/guile-rsvg/" - "repository/archive.tar.gz?ref=" - commit)) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/wingo/guile-rsvg/") + (commit commit))) (sha256 (base32 - "0vdzjx8l5nc4y2xjqs0g1rqn1zrwfsm30brh5gz00r1x41a2pvv2")) + "0cnbl40df2sbhpc32cma6j6w312rfvcgbxxqaixgf0ymim3fb248")) (patches (search-patches "guile-rsvg-pkgconfig.patch")) (modules '((guix build utils))) (snippet @@ -923,7 +952,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))) @@ -931,9 +960,23 @@ exceptions, macros, and a dynamic programming environment.") (description "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG images onto Cairo surfaces.") - (home-page "http://wingolog.org/projects/guile-rsvg/") + (home-page "https://wingolog.org/projects/guile-rsvg/") (license license:lgpl2.1+)))) +(define-public guile2.2-rsvg + (package + (inherit guile-rsvg) + (name "guile2.2-rsvg") + (inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile2.2-lib) + ,@(fold alist-delete (package-inputs guile-rsvg) + '("guile" "guile-lib")))) + (propagated-inputs `(("guile-cairo" ,guile2.2-cairo))))) + +(define-public guile3.0-rsvg + (deprecated-package "guile3.0-rsvg" guile-rsvg)) + (define-public guile-present (package (name "guile-present") @@ -945,30 +988,46 @@ images onto Cairo surfaces.") (sha256 (base32 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m")) - (patches (search-patches "guile-present-coding.patch")))) + (patches (search-patches "guile-present-coding.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Allow builds with Guile 3.0. + (substitute* "configure" + (("2\\.2 2\\.0") + "3.0 2.2 2.0")) + + ;; Install .go files in the right place. + (substitute* "Makefile.in" + (("/ccache") "/site-ccache")) + #t)))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) - (guile (assoc-ref inputs "guile"))) + (guile (assoc-ref inputs "guile")) + (version + ,(match (assoc "guile" (package-inputs this-package)) + (("guile" guile) + (version-major+minor (package-version guile)))))) (substitute* (find-files bin ".*") (("guile") (string-append guile "/bin/guile -L " - out "/share/guile/site/2.0 -C " - out "/share/guile/site/2.0 ")))) + out "/share/guile/site/" version " -C " + 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) ("guile-cairo" ,guile-cairo) ("guile-rsvg" ,guile-rsvg))) - (home-page "http://wingolog.org/software/guile-present/") + (home-page "https://wingolog.org/software/guile-present/") (synopsis "Create SVG or PDF presentations in Guile") (description "Guile-Present defines a declarative vocabulary for presentations, @@ -978,6 +1037,19 @@ includes a tools to generate PDF presentations out of Org mode and Texinfo documents.") (license license:lgpl3+))) +(define-public guile2.2-present + (package + (inherit guile-present) + (name "guile2.2-present") + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs + `(("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 (name "guile-gnome") @@ -1011,9 +1083,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 @@ -1085,7 +1157,7 @@ library.") ("cairomm" ,cairomm) ("glibmm" ,glibmm) ("pango" ,pango))) - (home-page "http://www.pango.org/") + (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 @@ -1218,7 +1290,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.1") (source (origin (method url-fetch) @@ -1226,7 +1298,7 @@ printing and other features typical of a source code editor.") version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "165n0g7gp2a0qi8558snvfans17x83jv2lv7bx4vr1rxjbn3a2hg")))) + "111fav9m1iagw3nh2ws2vzkjh34r97yl7rdlpvsngsqg521k251c")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1240,14 +1312,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))))) @@ -1271,6 +1350,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 @@ -1360,6 +1444,16 @@ produces identical output on all those targets.") `(("gtk+" ,gtk+-2))) (propagated-inputs `(("perl-pango" ,perl-pango))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'remove-broken-test + ;; See https://gitlab.gnome.org/GNOME/perl-gtk2/issues/3. + (lambda _ + (substitute* "t/GdkPixbuf.t" + (("tests => 112") "tests => 111") + (("ok \\(defined \\$pixbuf, \"Don't crash on partial pixmap data\"\\);") + "# ok (defined $pixbuf, \"Don't crash on partial pixmap data\");"))))))) (home-page "https://metacpan.org/release/Gtk2") (synopsis "Perl interface to the 2.x series of the Gimp Toolkit library") (description "Perl bindings to the 2.x series of the Gtk+ widget set. @@ -1408,7 +1502,7 @@ and routines to assist in editing internationalized text.") (define-public girara (package (name "girara") - (version "0.3.3") + (version "0.3.4") (source (origin (method git-fetch) @@ -1417,7 +1511,7 @@ and routines to assist in editing internationalized text.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0q0yfv2777s72p473lw0ll435n7vz4v204cmp9naq8am7a6i6avn")))) + (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k")))) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check) ("gettext" ,gettext-minimal) @@ -1613,14 +1707,14 @@ glass artworks done by Venicians glass blowers.") (define-public gtkspell3 (package (name "gtkspell3") - (version "3.0.9") + (version "3.0.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gtkspell/" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "09jdicmpipmj4v84gnkqwbmj4lh8v0i6pn967rb9jx4zg2ia9x54")))) + "0cjp6xdcnzh6kka42w9g0w2ihqjlq8yl8hjm9wsfnixk6qwgch5h")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -1631,7 +1725,7 @@ glass artworks done by Venicians glass blowers.") ("gtk+" ,gtk+) ("pango" ,pango))) (propagated-inputs - `(("enchant" ,enchant-1.6))) ;gtkspell3-3.0.pc refers to it + `(("enchant" ,enchant))) ; gtkspell3-3.0.pc refers to it (home-page "http://gtkspell.sourceforge.net") (synopsis "Spell-checking addon for GTK's TextView widget") (description @@ -1647,7 +1741,7 @@ misspelled words in a GtkTextView widget.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/CristianHenzel/ClipIt.git") + (url "https://github.com/CristianHenzel/ClipIt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1671,30 +1765,24 @@ Parcellite and adds bugfixes and features.") (define-public graphene (package (name "graphene") - (version "1.6.0") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/ebassi/graphene/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/ebassi/graphene/releases/" + "download/" version + "/graphene-" version ".tar.xz")) (sha256 - (base32 "1zd2daj7y590wnzn4jw0niyc4fnzgxrcl9i7nwhy8b25ks2hz5wq")))) - (build-system gnu-build-system) + (base32 "16b4hz73bnrgv5v8n96dczkd6xp9qc06lrl43zln3jnl3psrfva0")))) + (build-system meson-build-system) (arguments - `(#:configure-flags '("--enable-introspection=yes"))) + `(#:configure-flags '("-Dinstalled_tests=false"))) (native-inputs - `(("autoconf" ,autoconf) - ("which" ,which) - ("pkg-config" ,pkg-config) - ("automake" ,automake) - ("libtool" ,libtool))) + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) (inputs `(("python" ,python) - ("python-2" ,python-2) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection))) - (home-page "http://ebassi.github.io/graphene") + ("glib" ,glib))) + (home-page "https://ebassi.github.io/graphene/") (synopsis "Thin layer of graphic data types") (description "This library provides graphic types and their relative API; it does not deal with windowing system surfaces, drawing, scene graphs, or @@ -1704,14 +1792,14 @@ input.") (define-public spread-sheet-widget (package (name "spread-sheet-widget") - (version "0.3") + (version "0.5") (source (origin (method url-fetch) (uri (string-append "https://alpha.gnu.org/gnu/ssw/" "spread-sheet-widget-" version ".tar.gz")) (sha256 - (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y")))) + (base32 "0vxqv229vp6l278hz11ayrfirn4gj736clh4wlmn0h21bh5b8pfc")))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ; for glib-genmarshal, etc. @@ -1768,7 +1856,7 @@ independent of your desktop environment, and supports global key bindings.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/v1cont/yad.git") + (url "https://github.com/v1cont/yad") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1828,6 +1916,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" "") @@ -1854,3 +1950,152 @@ displayed on the other side of the bus.") ;; Dual-licensed under either LGPLv2.1 or LGPLv3. (license (list license:lgpl2.1 license:lgpl3)))) + +(define-public gtk-layer-shell + (package + (name "gtk-layer-shell") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/wmww/gtk-layer-shell/releases/download/v" + version "/gtk-layer-shell-" version ".tar.xz")) + (sha256 + (base32 "0ncklk3z0fzlz6p76jdcrr1ykyp1f4ykjjch4x2hfp9bwsnl4a3m")))) + (build-system meson-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("gobject-introspection" ,gobject-introspection))) + (inputs `(("wayland" ,wayland) + ("gtk+" ,gtk+))) + (home-page "https://github.com/wmww/gtk-layer-shell") + (synopsis "Library to create Wayland desktop components using the Layer +Shell protocol") + (description "Layer Shell is a Wayland protocol for desktop shell +components, such as panels, notifications and wallpapers. It can be used to +anchor windows to a corner or edge of the output, or stretch them across the +entire output. It supports all Layer Shell features including popups and +popovers.") + (license license:expat))) + +(define-public goocanvas + (package + (name "goocanvas") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/goocanvas/" + (version-major+minor version) + "/goocanvas-" version ".tar.xz")) + (sha256 + (base32 "141fm7mbqib0011zmkv3g8vxcjwa7hypmq71ahdyhnj2sjvy4a67")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib-bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("python-pygobject" ,python-pygobject))) + (arguments + `(#:configure-flags '("--disable-rebuilds" + "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure" + (("\\(gi._overridesdir\\)") + (string-append "((gi._overridesdir).replace(\\\"" + (assoc-ref inputs "python-pygobject") + "\\\", \\\"" + (assoc-ref outputs "out") + "\\\"))"))) + #t))))) + (synopsis "Canvas widget for GTK+") + (description "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D +library for drawing.") + (home-page "https://wiki.gnome.org/GooCanvas") + (license license:lgpl2.0))) + +(define-public gtksheet + (package + (name "gtksheet") + (version "4.3.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fpaquet/gtksheet") + (commit (string-append "V" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10qzmdkjkkvkcadxn019cbyhwaahxcfv1apv54lc711bqvh63v8r")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--enable-glade" + "--enable-introspection") + #:phases + (modify-phases %standard-phases + ;; The "configure" script is present, but otherwise the project is + ;; not bootstrapped properly. Delete configure so the bootstrap phase + ;; will take over. + (add-after 'unpack 'delete-configure + (lambda _ + (delete-file "configure") + #t)) + ;; Fix glade install directories. + (add-before 'bootstrap 'configure-glade-directories + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "configure.ac" + (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2.0`") + (string-append (assoc-ref outputs "out") "/share/glade/catalogs")) + (("`\\$PKG_CONFIG --variable=moduledir gladeui-2.0`") + (string-append (assoc-ref outputs "out") "/lib/glade/modules")) + (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2.0`") + (string-append (assoc-ref outputs "out") "/share/pixmaps"))) + #t)) + ;; Fix incorrect typelib version. This is a known upstream bug. See + ;; https://github.com/fpaquet/gtksheet/issues/23 + (add-after 'install 'fix-typelib-version + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (string-append (assoc-ref outputs "out") + "/lib/girepository-1.0") + (rename-file "GtkSheet-4.0.typelib" + (string-append "GtkSheet-" ,version ".typelib"))) + #t))))) + (inputs + `(("glade" ,glade3) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("libxml2" ,libxml2))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gobject-introspection" ,gobject-introspection) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://fpaquet.github.io/gtksheet/") + (synopsis "Spreadsheet widget for GTK+") + (description "GtkSheet is a matrix widget for GTK+. It consists of an +scrollable grid of cells where you can allocate text. Cell contents can be +edited interactively through a specially designed entry, GtkItemEntry. It is +also a container subclass, allowing you to display buttons, images and any +other widget in it. You can also set many attributes such as border, +foreground and background colors, text justification and more.") + (native-search-paths + (list + (search-path-specification + (variable "GLADE_CATALOG_SEARCH_PATH") + (files '("share/glade/catalogs"))) + (search-path-specification + (variable "GLADE_MODULE_SEARCH_PATH") + (files '("lib/glade/modules"))))) + (license license:lgpl2.0+)))