X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/f589cbc4dc4119e3501a0c20822e72cf841d08f3..e35383a76f0a1d1ba01f4b355d8df4ac341216b3:/gnu/packages/gtk.scm diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 159b5f4705..138fa7c314 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1,29 +1,32 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès -;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2014, 2015, 2017, 2018, 2019, 2021 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Andy Wingo ;;; Copyright © 2015 David Hashe -;;; Coypright © 2015, 2016, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2020 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus +;;; Copyright © 2016, 2017, 2020, 2021 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, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2017–2021 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 +;;; Copyright © 2021 Leo Famulari +;;; Copyright © 2021 Simon Streit ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +49,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) @@ -60,6 +64,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -82,9 +87,11 @@ #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages cups) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages pulseaudio) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match)) @@ -124,6 +131,8 @@ tools have full access to view and control running applications.") (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")))) @@ -170,9 +179,14 @@ affine transformation (scale, rotation, shear, etc.).") (license license:lgpl2.1) ; or Mozilla Public License 1.1 (home-page "https://cairographics.org/"))) +(define-public cairo-sans-poppler + ;; Variant used to break the dependency cycle between Poppler and Cairo. + (package/inherit cairo + (inputs (alist-delete "poppler" (package-inputs cairo))) + (properties `((hidden? . #t))))) + (define-public cairo-xcb - (package - (inherit cairo) + (package/inherit cairo (name "cairo-xcb") (inputs `(("mesa" ,mesa) @@ -223,6 +237,67 @@ affine transformation (scale, rotation, shear, etc.).") "See 'COPYING' in the distribution.")) (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/"))) +(define-public libdatrie + (package + (name "libdatrie") + (version "0.2.13") + (source + (origin + (method url-fetch) + (uri + (string-append "https://linux.thai.net/pub/ThaiLinux/software/" + "libthai/libdatrie-" version ".tar.xz")) + (sha256 + (base32 "1gplcx9ddglpxmqm10qn38kjmvdh4hnhj14rzgqag095psr1n8qj")))) + (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")))) + (native-inputs + `(("doxygen" ,doxygen) + ("pkg-config" ,pkg-config))) + (synopsis "Double-Array Trie Library") + (description "Libdatrie is an implementation of double-array structure for +representing trie. Trie is a kind of digital search tree.") + (home-page "https://linux.thai.net/~thep/datrie/datrie.html") + (license license:lgpl2.1+))) + +(define-public libthai + (package + (name "libthai") + (version "0.1.28") + (source + (origin + (method url-fetch) + (uri + (string-append "https://linux.thai.net/pub/thailinux/software/" + "libthai/libthai-" version ".tar.xz")) + (sha256 + (base32 "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z")))) + (build-system gnu-build-system) + (outputs '("out" "doc")) + (arguments + `(#:configure-flags + (list + (string-append "--with-html-docdir=" + (assoc-ref %outputs "doc") + "/share/doc/libthai/html")))) + (native-inputs + `(("doxygen" ,doxygen) + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("datrie" ,libdatrie))) + (synopsis "Thai language support library") + (description "LibThai is a set of Thai language support routines aimed to +ease developers’ tasks to incorporate Thai language support in their +applications.") + (home-page "https://linux.thai.net/projects/libthai") + (license license:lgpl2.1+))) + (define-public pango (package (name "pango") @@ -287,7 +362,18 @@ used throughout the world.") (base32 "17bwb7dgbncrfsmchlib03k9n3xaalirb39g3yb43gg8cg6p8aqx")))) (build-system gnu-build-system) - (arguments '()))) + (arguments + '(#:phases (modify-phases %standard-phases + (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. + (substitute* "tests/Makefile" + (("test-layout\\$\\(EXEEXT\\)") "")) + #t))))))) (define-public pangox-compat (package @@ -318,14 +404,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 @@ -337,7 +423,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) @@ -353,24 +438,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") @@ -499,6 +566,7 @@ highlighting and other features typical of a source code editor.") (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")))) @@ -554,7 +622,7 @@ in the GNOME project.") ;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the ;; closure size. (define-public gdk-pixbuf+svg - (package (inherit gdk-pixbuf) + (package/inherit gdk-pixbuf (name "gdk-pixbuf+svg") (inputs `(("librsvg" ,librsvg) @@ -640,7 +708,7 @@ in the GNOME project.") (native-inputs `(("gettext" ,gettext-minimal) ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) + ("gtk-doc" ,gtk-doc/stable) ("glib" ,glib "bin") ("pkg-config" ,pkg-config))) (synopsis "Assistive Technology Service Provider Interface, core components") @@ -650,6 +718,24 @@ 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") @@ -672,6 +758,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))) @@ -759,7 +847,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.24.14") + (version "3.24.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -767,7 +855,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "120yz5gxqbv7sgdbcy4i0b6ixm8jpjzialdrqs0gv15q7bwnjk8w")) + "12ipk1d376bai9v820qzhxba93kkh5abi6mhyqr4hwjvqmkl77fc")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (propagated-inputs @@ -851,14 +939,14 @@ application suites.") (define-public guile-cairo (package (name "guile-cairo") - (version "1.10.0") + (version "1.11.2") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-cairo/guile-cairo-" version ".tar.gz")) (sha256 (base32 - "0p6xrhf2k6n5dybn88050za7h90gnd7534n62l53vsca187pwgdf")) + "0yx0844p61ljd4d3d63qrawiygiw6ks02fwv2cqx7nav5kfd8ck2")) (modules '((guix build utils))) (snippet (begin @@ -869,18 +957,40 @@ 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"))) + `(#:configure-flags '("--disable-Werror") + #:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-go-files + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) + ;; compile to the destination + (for-each (lambda (file) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) + (find-files module-dir "\\.scm$")) + #t)))))) (inputs `(("guile-lib" ,guile-lib) ("expat" ,expat) @@ -923,13 +1033,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 @@ -941,10 +1051,36 @@ exceptions, macros, and a dynamic programming environment.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (replace 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi")))))) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases + (modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (invoke "autoreconf" "-vfi"))) + (add-after 'install 'install-go-files + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) + ;; compile to the destination + (for-each (lambda (file) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) + (find-files module-dir "\\.scm$")) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) @@ -1136,6 +1272,23 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.") library.") (license license:lgpl2.0+))) +(define-public cairomm-1.13 + (package + (inherit cairomm) + (name "cairomm") + (version "1.13.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.cairographics.org/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 "1xlfl0fm5mgv53lr8xjv2kqsk3bz67qkk6qzvbrqmbvbvvbqp9wp")))) + (propagated-inputs + `(("cairo" ,cairo) + ("sigc++" ,libsigc++))))) + (define-public pangomm (package (name "pangomm") @@ -1162,6 +1315,25 @@ library.") library.") (license license:lgpl2.1+))) +(define-public pangomm-2.42 + (package + (inherit pangomm) + (name "pangomm") + (version "2.42.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "03zli5amizhv9bfklwfq7xyf0b5dagchx1lnz9f0v1rhk69h9gql")))) + (propagated-inputs + `(("cairomm" ,cairomm-1.13) + ("glibmm" ,glibmm-2.64) + ("pango" ,pango))))) + (define-public atkmm (package (name "atkmm") @@ -1288,7 +1460,7 @@ printing and other features typical of a source code editor.") (define-public python-pycairo (package (name "python-pycairo") - (version "1.19.0") + (version "1.19.1") (source (origin (method url-fetch) @@ -1296,7 +1468,7 @@ printing and other features typical of a source code editor.") version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "176i283glkpycka8wwyndwld0zp1yn9xj9rpvllqgja698vsjnsg")))) + "111fav9m1iagw3nh2ws2vzkjh34r97yl7rdlpvsngsqg521k251c")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1401,7 +1573,7 @@ write GNOME applications.") (define-public perl-cairo (package (name "perl-cairo") - (version "1.107") + (version "1.109") (source (origin (method url-fetch) (uri (string-append @@ -1409,7 +1581,7 @@ write GNOME applications.") version ".tar.gz")) (sha256 (base32 - "0sg1gf1f2pjq7pji0zsv4rbi3bzpsx82z98k7yqxafzrvlkf27ay")))) + "0zq78dv22arg35ma6kah9cwfd1zx8gg7amsibzd128qw81p766c2")))) (build-system perl-build-system) (native-inputs `(("perl-extutils-depends" ,perl-extutils-depends) @@ -1511,7 +1683,7 @@ and routines to assist in editing internationalized text.") (sha256 (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k")))) (native-inputs `(("pkg-config" ,pkg-config) - ("check" ,check) + ("check" ,check-0.14) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("xorg-server" ,xorg-server-for-tests))) @@ -1643,6 +1815,17 @@ 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+))) +;; 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 +;; the main 'gtk-doc', 'dblatex' and 'imagemagick' packages to be freely +;; updated on the 'master' branch without triggering an excessive number of +;; rebuilds. +(define-public gtk-doc/stable + (hidden-package + (package/inherit gtk-doc + (inputs (alist-replace "dblatex" `(,dblatex/stable) + (package-inputs gtk-doc)))))) + (define-public gtk-engines (package (name "gtk-engines") @@ -1705,14 +1888,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) @@ -1723,7 +1906,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 @@ -1739,7 +1922,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 @@ -1764,40 +1947,47 @@ Parcellite and adds bugfixes and features.") (package (name "graphene") (version "1.10.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ebassi/graphene/releases/" - "download/" version - "/graphene-" version ".tar.xz")) - (sha256 - (base32 "16b4hz73bnrgv5v8n96dczkd6xp9qc06lrl43zln3jnl3psrfva0")))) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/ebassi/graphene.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14a0j1rvjlc7yhfdmhmckdmkzy4ch61qbzywdlw1xv58h23wx29p")))) (build-system meson-build-system) (arguments - `(#:configure-flags '("-Dinstalled_tests=false"))) + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:configure-flags + (list + "-Dinstalled_tests=false"))) (native-inputs - `(("gobject-introspection" ,gobject-introspection) + `(("git" ,git-minimal) + ("gobject-introspection" ,gobject-introspection) + ("mutest" ,mutest) ("pkg-config" ,pkg-config))) (inputs - `(("python" ,python) - ("glib" ,glib))) - (home-page "https://ebassi.github.io/graphene/") + `(("glib" ,glib) + ("python" ,python))) (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 -input.") + (description "Graphene provides graphic types and their relative API; it +does not deal with windowing system surfaces, drawing, scene graphs, or input.") + (home-page "https://ebassi.github.io/graphene/") (license license:expat))) (define-public spread-sheet-widget (package (name "spread-sheet-widget") - (version "0.3") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "https://alpha.gnu.org/gnu/ssw/" "spread-sheet-widget-" version ".tar.gz")) (sha256 - (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y")))) + (base32 "09rzgp7gabnzab460x874a1ibgyjiibpwzsz5srn9zs6jv2jdxjb")))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ; for glib-genmarshal, etc. @@ -1854,7 +2044,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 @@ -1889,6 +2079,53 @@ shell scripts. Example of how to use @code{yad} can be consulted at @url{https://sourceforge.net/p/yad-dialog/wiki/browse_pages/}.") (license license:gpl3+))) +(define-public dragon-drop + (package + (name "dragon-drop") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mwh/dragon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra")))) + (build-system gnu-build-system) + (inputs `(("gtk+" ,gtk+))) + (native-inputs `(("pkg-config" ,pkg-config))) + (arguments + `(#:tests? #f ; no check + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + ;; makefile uses PREFIX for the binary location + (string-append "PREFIX=" (assoc-ref %outputs "out") + "/bin")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure script + (synopsis "Drag and drop source/target for X") + (description + "Dragon is a lightweight drag-and-drop source for X where you can run: + +@example +dragon file.tar.gz +@end example + +to get a window with just that file in it, ready to be dragged where you need it. +What if you need to drag into something? Using: + +@example +dragon --target +@end example + +you get a window you can drag files and text into. Dropped items are +printed to standard output.") + (home-page "https://github.com/mwh/dragon") + (license license:gpl3+))) + (define-public libdbusmenu (package (name "libdbusmenu") @@ -1914,6 +2151,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" "") @@ -1944,16 +2189,18 @@ displayed on the other side of the bus.") (define-public gtk-layer-shell (package (name "gtk-layer-shell") - (version "0.1.0") + (version "0.6.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")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/wmww/gtk-layer-shell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "0ncklk3z0fzlz6p76jdcrr1ykyp1f4ykjjch4x2hfp9bwsnl4a3m")))) + (base32 "1kcp4p3s7sdh9lwniybjdarfy8z69j2j23hfrw98amhwhq39gdcc")))) (build-system meson-build-system) + (arguments `(#:configure-flags (list "-Dtests=true"))) (native-inputs `(("pkg-config" ,pkg-config) ("gobject-introspection" ,gobject-introspection))) (inputs `(("wayland" ,wayland) @@ -1985,7 +2232,7 @@ popovers.") `(("gettext" ,gettext-minimal) ("glib-bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) + ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) ("python" ,python))) (inputs @@ -2013,3 +2260,146 @@ popovers.") library for drawing.") (home-page "https://wiki.gnome.org/GooCanvas") (license license:lgpl2.0))) + +(define-public gtksheet + (package + (name "gtksheet") + (version "4.3.5") + (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 + "13jwr1vly4ga3f09dajwky1cdrz5bmggwga3vnnd6j6zzia7dpyr")))) + (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)) + (add-after 'unpack 'rename-type + (lambda _ + (substitute* "glade/glade-gtksheet-editor.c" + (("GladeEditableIface") "GladeEditableInterface")) + #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))))) + (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+))) + +(define-public gtkdatabox + (package + (name "gtkdatabox") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/gtkdatabox/gtkdatabox-1/" + "gtkdatabox-" version ".tar.gz")) + (sha256 + (base32 "1qykm551bx8j8pfgxs60l2vhpi8lv4r8va69zvn2594lchh71vlb")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (synopsis "Display widget for dynamic data") + (description "GtkDatabox is a widget for live display of large amounts of +fluctuating numerical data. It enables data presentation (for example, on +linear or logarithmic scales, as dots or lines, with markers/labels) as well as +user interaction (e.g. measuring distances).") + (home-page "https://sourceforge.net/projects/gtkdatabox/") + (license license:lgpl2.1+))) + +(define-public volctl + (package + (name "volctl") + (version "0.8.2") + (source (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/buzz/volctl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cx27j83pz2qffnzb85fbl1x6pp3irv1kbw7g1hri7kaw6ky4xiz")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((pulse (assoc-ref inputs "pulseaudio")) + (xfixes (assoc-ref inputs "libxfixes"))) + (substitute* "volctl/lib/xwrappers.py" + (("libXfixes.so") + (string-append xfixes "/lib/libXfixes.so"))) + (substitute* "volctl/lib/pulseaudio.py" + (("libpulse.so.0") + (string-append pulse "/lib/libpulse.so.0"))) + #t)))))) + (inputs + `(("gtk+" ,gtk+) + ("libxfixes" ,libxfixes) + ("pulseaudio" ,pulseaudio))) + (propagated-inputs + `(("python-click" ,python-click) + ("python-pycairo" ,python-pycairo) + ("python-pygobject" ,python-pygobject) + ("python-pyyaml" ,python-pyyaml))) + (home-page "https://buzz.github.io/volctl/") + (synopsis "Per-application volume control and on-screen display (OSD) for graphical desktops") + (description "Volctl is a PulseAudio-enabled tray icon volume control and +OSD applet for graphical desktops. It's not meant to be an replacement for a +full-featured mixer application. If you're looking for that check out the +excellent pavucontrol.") + + ;; XXX: 'setup.py' says "GPLv2" but nothing says "version 2 only". Is + ;; GPLv2+ intended? + (license license:gpl2)))