summaryrefslogtreecommitdiff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm170
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)))