summaryrefslogtreecommitdiff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm364
1 files changed, 339 insertions, 25 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f636a0f1f8..d96a5f4643 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -27,7 +27,7 @@
;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
-;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
@@ -48,6 +48,8 @@
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 raingloom <raingloom@riseup.net>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -160,9 +162,11 @@
#:use-module (gnu packages spice)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages tex)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization)
@@ -248,6 +252,77 @@ Desktop. It is designed to be as simple as possible and has some unique
features to enable users to create their discs easily and quickly.")
(license license:gpl2+)))
+(define-public notification-daemon
+ (package
+ (name "notification-daemon")
+ (version "3.20.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("x11" ,libx11)))
+ (synopsis "Notification Daemon for GNOME Desktop")
+ (description "Notification-Daemon is the server implementation of the
+freedesktop.org desktop notification specification.")
+ (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
+ (license license:gpl2+)))
+
+(define-public mm-common
+ (package
+ (name "mm-common")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "util/mm-common-prepare.in"
+ (("ln") (string-append (assoc-ref inputs "coreutils")
+ "/bin/ln"))
+ (("cp") (string-append (assoc-ref inputs "coreutils")
+ "/bin/cp"))
+ (("sed") (string-append (assoc-ref inputs "sed")
+ "/bin/sed"))
+ (("cat") (string-append (assoc-ref inputs "coreutils")
+ "/bin/cat")))
+ #t)))))
+ (native-inputs
+ `(("coreutils" ,coreutils)
+ ("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("sed" ,sed)))
+ (inputs
+ `(("python" ,python)))
+ (synopsis "Module of GNOME C++ bindings")
+ (description "The mm-common module provides the build infrastructure
+and utilities shared among the GNOME C++ binding libraries. Release
+archives of mm-common include the Doxygen tag file for the GNU C++
+Library reference documentation.")
+ (home-page "https://gitlab.gnome.org/GNOME/mm-common")
+ (license license:gpl2+)))
+
(define-public phodav
(package
(name "phodav")
@@ -333,7 +408,7 @@ in the GNOME desktop.")
(define-public gnome-online-miners
(package
(name "gnome-online-miners")
- (version "3.30.0")
+ (version "3.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -341,7 +416,7 @@ in the GNOME desktop.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
+ "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -535,7 +610,18 @@ extraction, and lookup for applications on the desktop.")
(arguments
'(#:configure-flags '(;; Enable camera support for user selfie.
"-Dcheese=auto"
- "-Dsystemd=false")))
+ "-Dsystemd=false")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'set-gkbd-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Allow the "Preview" button in the keyboard layout
+ ;; selection dialog to display the layout.
+ (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
+ (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
+ (("\"gkbd-keyboard-display")
+ (string-append "\"" libgnomekbd
+ "/bin/gkbd-keyboard-display")))
+ #t))))))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
@@ -564,7 +650,8 @@ extraction, and lookup for applications on the desktop.")
("pwquality" ,libpwquality)
("rest" ,rest)
("upower" ,upower)
- ("webkitgtk" ,webkitgtk)))
+ ("webkitgtk" ,webkitgtk)
+ ("libgnomekbd" ,libgnomekbd)))
(synopsis "Initial setup wizard for GNOME desktop")
(description "This package provides a set-up wizard when a
user logs into GNOME for the first time. It typically provides a
@@ -5064,7 +5151,7 @@ supports image conversion, rotation, and slideshows.")
(synopsis "Extensions for the Eye of GNOME image viewer")
(native-inputs
`(("pkg-config" ,pkg-config)
- ("gettext" ,gnu-gettext)))
+ ("gettext" ,gettext-minimal)))
(inputs
`(("eog" ,eog)
("glib" ,glib)
@@ -6080,7 +6167,7 @@ window manager.")
(define-public gnome-online-accounts
(package
(name "gnome-online-accounts")
- (version "3.32.1")
+ (version "3.36.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6088,7 +6175,7 @@ window manager.")
name "-" version ".tar.xz"))
(sha256
(base32
- "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
+ "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
(outputs '("out" "lib"))
(build-system glib-or-gtk-build-system)
(arguments
@@ -6719,7 +6806,8 @@ libxml2.")
name "-" version ".tar.xz"))
(sha256
(base32
- "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
+ "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))
+ (patches (search-patches "gdm-default-session.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags
@@ -7642,7 +7730,7 @@ software that do not provide their own configuration interface.")
(let* ((out (assoc-ref %outputs "out"))
(apps (string-append out "/share/applications")))
(mkdir-p apps)
- (call-with-output-file (string-append apps "/defaults.list")
+ (call-with-output-file (string-append apps "/gnome-mimeapps.list")
(lambda (port)
(format port "[Default Applications]\n")
(format port "inode/directory=org.gnome.Nautilus.desktop\n")
@@ -7714,6 +7802,17 @@ associations for GNOME.")
("gjs" ,gjs)
("gnome-desktop" ,gnome-desktop)
("libgweather" ,libgweather)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'fix-desktop-file
+ ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
+ ;; See https://issues.guix.gnu.org/issue/39324.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (applications (string-append out "/share/applications")))
+ (substitute* (string-append applications "/org.gnome.Weather.desktop")
+ (("Exec=.*") "Exec=gnome-weather\n"))))))))
(synopsis "Weather monitoring for GNOME desktop")
(description "GNOME Weather is a small application that allows you to
monitor the current weather conditions for your city, or anywhere in the
@@ -8156,10 +8255,6 @@ alternative user interface themes, changes in window management behavior,
GNOME Shell appearance and extension, etc.")
(license license:gpl3+)))
-;; This package has been renamed by upstream.
-(define-public gnome-tweak-tool
- (deprecated-package "gnome-tweak-tool" gnome-tweaks))
-
(define-public gnome-shell-extensions
(package
(name "gnome-shell-extensions")
@@ -8890,10 +8985,15 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
(base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
(build-system meson-build-system)
(arguments
- `(#:imported-modules ((guix build python-build-system)
- ,@%meson-build-system-modules)
+ `(#:imported-modules
+ (,@%meson-build-system-modules
+ (guix build python-build-system))
+ #:modules
+ ((guix build meson-build-system)
+ ((guix build python-build-system) #:prefix python:)
+ (guix build utils))
#:glib-or-gtk? #t
- #:tests? #f ; no test suite
+ #:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-program
@@ -8904,9 +9004,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
#t))
(add-after 'install 'wrap-python
- (@@ (guix build python-build-system) wrap))
- (add-after 'install 'wrap-glib-or-gtk
- (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
+ (assoc-ref python:%standard-phases 'wrap)))))
(native-inputs
`(("intltool" ,intltool)
("itstool" ,itstool)
@@ -9133,7 +9231,7 @@ configurable file renaming. ")
(define-public workrave
(package
(name "workrave")
- (version "1.10.37")
+ (version "1.10.42")
(source
(origin
(method git-fetch)
@@ -9144,7 +9242,7 @@ configurable file renaming. ")
version)))))
(file-name (git-file-name name version))
(sha256
- (base32 "01cxy7606hx9wgxl550l4p2xa9hsy0rk7swsp58hyi842z2z0y13"))))
+ (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
(build-system glib-or-gtk-build-system)
(arguments
;; The only tests are maintainer tests (in po/), which fail.
@@ -9162,7 +9260,7 @@ configurable file renaming. ")
("libxscrnsaver" ,libxscrnsaver)))
(native-inputs `(("boost" ,boost)
("pkg-config" ,pkg-config)
- ("gettext" ,gnu-gettext)
+ ("gettext" ,gettext-minimal)
("autoconf" ,autoconf)
("autoconf-archive" , autoconf-archive)
("automake" ,automake)
@@ -9611,7 +9709,7 @@ repository and commit your work.")
(description
"Gamin is a file and directory monitoring system defined to be a subset
of the FAM (File Alteration Monitor) system. This is a service provided by a
-library which allows to detect when a file or a directory has been modified.")
+library which detects when a file or a directory has been modified.")
(license license:gpl2+)))
(define-public gnome-mahjongg
@@ -9859,7 +9957,7 @@ join_paths\\('build-aux', 'post_install.py'\\)\\)")
`(("appstream-glib" ,appstream-glib)
("cmake-minimal" ,cmake-minimal)
("desktop-file-utils" ,desktop-file-utils)
- ("gettext" ,gnu-gettext)
+ ("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("itstool" ,itstool)
@@ -9888,3 +9986,219 @@ to.")
license:public-domain
;; snowball
license:bsd-2))))
+
+(define-public libratbag
+ (package
+ (name "libratbag")
+ (version "0.13")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libratbag/libratbag.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "-Dsystemd=false"
+ "-Dlogind-provider=elogind")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (site (string-append
+ "/lib/python"
+ ,(version-major+minor (package-version python))
+ "/site-packages"))
+ (evdev (string-append
+ (assoc-ref inputs "python-evdev") site))
+ (pygo (string-append
+ (assoc-ref inputs "python-pygobject") site))
+ (python-wrap
+ `("PYTHONPATH" = (,evdev ,pygo))))
+ (wrap-program (string-append out "/bin/" "ratbagctl")
+ python-wrap)
+ #t))))))
+ (native-inputs
+ `(("check" ,check)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)
+ ("valgrind" ,valgrind)))
+ (inputs
+ `(("glib" ,glib)
+ ("json-glib" ,json-glib)
+ ("libevdev" ,libevdev)
+ ("libsystemd" ,elogind)
+ ("libunistring" ,libunistring)
+ ("python-evdev" ,python-evdev)
+ ("python-pygobject" ,python-pygobject)
+ ("udev" ,eudev)))
+ (home-page "https://github.com/libratbag/libratbag")
+ (synopsis "DBus daemon and utility for configuring gaming mice")
+ (description "libratbag provides @command{ratbagd}, a DBus daemon to
+configure input devices, mainly gaming mice. The daemon provides a generic
+way to access the various features exposed by these mice and abstracts away
+hardware-specific and kernel-specific quirks. There is also the
+@command{ratbagctl} command line interface for configuring devices.
+
+libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
+Steelseries.
+
+The ratbagd DBus service can be enabled by adding the following service to
+your operating-system definition:
+
+ (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
+ (license license:expat)))
+
+(define-public piper
+ (package
+ (name "piper")
+ (version "0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libratbag/piper.git")
+ (commit version)))
+ (sha256
+ (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("python-flake8" ,python-flake8)))
+ (inputs
+ `(("adwaita-icon-theme" ,adwaita-icon-theme)
+ ("gtk" ,gtk+)
+ ("gtk:bin" ,gtk+ "bin")
+ ("librsvg" ,librsvg)
+ ("python-evdev" ,python-evdev)
+ ("python-lxml" ,python-lxml)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)))
+ (arguments
+ `(#:imported-modules ((guix build python-build-system)
+ ,@%meson-build-system-modules)
+ #:modules (((guix build python-build-system) #:prefix python:)
+ (guix build meson-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'dont-update-gtk-icon-cache
+ (lambda _
+ (substitute* "meson.build"
+ (("meson.add_install_script('meson_install.sh')") ""))
+ #t))
+ ;; TODO: Switch to wrap-script when it is fixed.
+ (add-after 'install 'wrap-python
+ (assoc-ref python:%standard-phases 'wrap))
+ (add-after 'wrap-python 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program
+ (string-append (assoc-ref outputs "out" )"/bin/piper")
+ `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+ #t)))))
+ (home-page "https://github.com/libratbag/piper/")
+ (synopsis "Configure bindings and LEDs on gaming mice")
+ (description "Piper is a GTK+ application for configuring gaming mice with
+onboard configuration for key bindings via libratbag. Piper requires
+a @command{ratbagd} daemon running with root privileges. It can be run
+manually as root, but is preferably configured as a DBus service that can
+launch on demand. This can be configured by enabling the following service,
+provided there is a DBus service present:
+
+ (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
+ (license license:gpl2)))
+
+(define-public parlatype
+ ;; This is one commit away from 2.0, because the latter introduced
+ ;; a regression in ASR.
+ (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
+ (revision "0"))
+ (package
+ (name "parlatype")
+ (version (git-version "2.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gkarsay/parlatype.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:tests? #f ;require internet access
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-parlatype
+ ;; Add gstreamer plugin provided in this package to system's
+ ;; plugins.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (gst-plugin-path (string-append
+ out "/lib/gstreamer-1.0/"
+ ":"
+ (getenv "GST_PLUGIN_SYSTEM_PATH"))))
+ (wrap-program (string-append out "/bin/parlatype")
+ `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
+ #t)))))
+ (native-inputs
+ `(("appstream-glib" ,appstream-glib)
+ ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
+ ("gettext" ,gettext-minimal)
+ ("glib" ,glib "bin") ;for glib-compile-resources
+ ("pkg-config" ,pkg-config)
+ ("yelp-tools" ,yelp-tools)))
+ (inputs
+ `(("gst-plugins-base" ,gst-plugins-base)
+ ("gst-plugins-good" ,gst-plugins-good)
+ ("gstreamer" ,gstreamer)
+ ("gtk+" ,gtk+)
+ ("pocketsphinx" ,pocketsphinx)
+ ("pulseaudio" ,pulseaudio)
+ ("sphinxbase" ,sphinxbase)))
+ (home-page "http://gkarsay.github.io/parlatype/")
+ (synopsis "GNOME audio player for transcription")
+ (description "Parlatype is an audio player for the GNOME desktop
+environment. Its main purpose is the manual transcription of spoken
+audio files.")
+ (license license:gpl3+))))
+
+(define-public jsonrpc-glib
+ (package
+ (name "jsonrpc-glib")
+ (version "3.34.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
+ (build-system meson-build-system)
+ (inputs
+ `(("json-glib" ,json-glib)
+ ("glib" ,glib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+ ("gobject-introspection" ,gobject-introspection)
+ ("vala" ,vala)))
+ (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
+ (synopsis "JSON-RPC library for GLib")
+ (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
+peers in either a synchronous or asynchronous fashion. It also allows
+communicating using the GVariant serialization format instead of JSON when
+both peers support it. You might want that when communicating on a single
+host to avoid parser overhead and memory-allocator fragmentation.")
+ (license license:lgpl2.1+)))