diff options
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r-- | gnu/packages/gtk.scm | 170 |
1 files changed, 135 insertions, 35 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 55dd29a81f..905dd9f1d7 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -9,13 +9,13 @@ ;;; Copyright © 2015 Andy Wingo <[email protected]> ;;; Copyright © 2015 David Hashe <[email protected]> ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <[email protected]> -;;; Copyright © 2016, 2017, 2020 Efraim Flashner <[email protected]> +;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <[email protected]> ;;; Copyright © 2016 Fabian Harfert <[email protected]> ;;; Copyright © 2016 Kei Kebreau <[email protected]> ;;; Copyright © 2016 Patrick Hetu <[email protected]> ;;; Copyright © 2016 Nikita <[email protected]> ;;; Copyright © 2017 Roel Janssen <[email protected]> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <[email protected]> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2017, 2019, 2020 Marius Bakke <[email protected]> ;;; Copyright © 2018 Alex Vong <[email protected]> ;;; Copyright © 2018, 2020 Arun Isaac <[email protected]> @@ -26,6 +26,7 @@ ;;; Copyright © 2020 Guillaume Le Vaillant <[email protected]> ;;; Copyright © 2020, 2021 Maxim Cournoyer <[email protected]> ;;; Copyright © 2021 Leo Famulari <[email protected]> +;;; Copyright © 2021 Simon Streit <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -79,6 +80,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) @@ -90,6 +92,7 @@ #: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)) @@ -125,11 +128,12 @@ tools have full access to view and control running applications.") (package (name "cairo") (version "1.16.0") - (replacement cairo/fixed) (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")))) @@ -176,15 +180,6 @@ affine transformation (scale, rotation, shear, etc.).") (license license:lgpl2.1) ; or Mozilla Public License 1.1 (home-page "https://cairographics.org/"))) -(define cairo/fixed - (package - (inherit cairo) - (source (origin - (inherit (package-source cairo)) - (patches (append (search-patches "cairo-CVE-2018-19876.patch" - "cairo-CVE-2020-35492.patch") - (origin-patches (package-source cairo)))))))) - (define-public cairo-sans-poppler ;; Variant used to break the dependency cycle between Poppler and Cairo. (package/inherit cairo @@ -572,6 +567,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")))) @@ -631,15 +627,6 @@ in the GNOME project.") (license license:lgpl2.0+) (home-page "https://developer.gnome.org/gdk-pixbuf/"))) -(define gdk-pixbuf/fixed - (package - (inherit gdk-pixbuf) - (source (origin - (inherit (package-source gdk-pixbuf)) - (patches - (append (search-patches "gdk-pixbuf-CVE-2020-29385.patch") - (origin-patches (package-source gdk-pixbuf)))))))) - ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends ;; on gdk-pixbuf, so this new variable. Also, librsvg adds 90MiB to the ;; closure size. @@ -1592,7 +1579,7 @@ write GNOME applications.") (define-public perl-cairo (package (name "perl-cairo") - (version "1.108") + (version "1.109") (source (origin (method url-fetch) (uri (string-append @@ -1600,12 +1587,12 @@ write GNOME applications.") version ".tar.gz")) (sha256 (base32 - "1nh5iya63q6j2w0cdi24x2ygpi8k8wwccnbh8cisnx8nqmywnhk0")))) + "0zq78dv22arg35ma6kah9cwfd1zx8gg7amsibzd128qw81p766c2")))) (build-system perl-build-system) (native-inputs `(("perl-extutils-depends" ,perl-extutils-depends) ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig))) - (inputs + (propagated-inputs `(("cairo" ,cairo))) (home-page "https://metacpan.org/release/Cairo") (synopsis "Perl interface to the cairo 2d vector graphics library") @@ -1614,6 +1601,30 @@ cairo. It supports multiple output targets, including PNG, PDF and SVG. Cairo produces identical output on all those targets.") (license license:lgpl2.1+))) +(define-public perl-cairo-gobject + (package + (name "perl-cairo-gobject") + (version "1.005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/" + "Cairo-GObject-" version ".tar.gz")) + (sha256 + (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd")))) + (build-system perl-build-system) + (native-inputs + `(("perl-extutils-depends" ,perl-extutils-depends) + ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig))) + (propagated-inputs + `(("perl-cairo" ,perl-cairo) + ("perl-glib" ,perl-glib))) + (home-page "https://metacpan.org/dist/Cairo-GObject") + (synopsis "Integrate Cairo into the Glib type system") + (description "Cairo::GObject registers Cairo's types with Glib's type systems, +so that they can be used normally in signals and properties.") + (license license:lgpl2.1+))) + (define-public perl-gtk2 (package (name "perl-gtk2") @@ -1651,6 +1662,48 @@ object-oriented way, freeing you from the casting and memory management in C, yet remaining very close in spirit to original API.") (license license:lgpl2.1+))) +(define-public perl-gtk3 + (package + (name "perl-gtk3") + (version "0.038") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-" + version ".tar.gz")) + (sha256 + (base32 "1k3sfcvxxx7ir7ail7w1lkmr4np0k3criljzw5wir63lmbr4pp3h")))) + (build-system perl-build-system) + (arguments + `(#: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")))))) + (native-inputs + `(("adwaita-icon-theme" ,adwaita-icon-theme) + ("gtk+:bin" ,gtk+ "bin") + ("gobject-introspection" ,gobject-introspection) + ("perl-extutils-depends" ,perl-extutils-depends) + ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig) + ("perl-test-simple" ,perl-test-simple) + ("xorg-server" ,xorg-server-for-tests))) + (propagated-inputs + `(("gtk+" ,gtk+) + ("perl-cairo-gobject" ,perl-cairo-gobject) + ("perl-carp" ,perl-carp) + ("perl-exporter" ,perl-exporter) + ("perl-glib-object-introspection" ,perl-glib-object-introspection))) + (home-page "https://metacpan.org/dist/Gtk3") + (synopsis "Perl interface to the 3.x series of the gtk+ toolkit") + (description "Perl bindings to the 3.x series of the gtk+ toolkit. +This module allows you to write graphical user interfaces in a Perlish and +object-oriented way, freeing you from the casting and memory management in C, +yet remaining very close in spirit to original API.") + (license license:lgpl2.1+))) + (define-public perl-pango (package (name "perl-pango") @@ -1691,7 +1744,7 @@ and routines to assist in editing internationalized text.") (define-public girara (package (name "girara") - (version "0.3.4") + (version "0.3.6") (source (origin (method git-fetch) @@ -1700,7 +1753,7 @@ and routines to assist in editing internationalized text.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k")))) + (base32 "0whwwj31fxfaf4r4qvxb4kl3mj05xj3n9c6nzdn46r30bkg9z4dw")))) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check-0.14) ("gettext" ,gettext-minimal) @@ -2355,19 +2408,19 @@ foreground and background colors, text justification and more.") (define-public gtkdatabox (package (name "gtkdatabox") - (version "0.9.3.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/gtkdatabox/gtkdatabox/" - version "/gtkdatabox-" version ".tar.gz")) - (sha256 - (base32 - "1rdxnjgh6v3yjqgsfmamyzpfxckzchps4kqvvz88nifmd7ckhjfh")))) + (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+-2" ,gtk+-2))) + `(("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 @@ -2375,3 +2428,50 @@ 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))) |