Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

10290 lines
395 KiB

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
;;; 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>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; 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>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gnome)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aspell)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages calendar)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages djvu)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages file-systems)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages geo)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages ibus)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lirc)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages rust)
#:use-module (gnu packages samba)
#:use-module (gnu packages scanner)
#:use-module (gnu packages selinux)
#:use-module (gnu packages slang)
#:use-module (gnu packages speech)
#: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)
#:use-module (gnu packages vpn)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu artwork)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix store)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public brasero
(package
(name "brasero")
(version "3.12.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/brasero/"
(version-major+minor version) "/"
"brasero-" version ".tar.xz"))
(sha256
(base32
"0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags (list
(string-append "--with-girdir="
(assoc-ref %outputs "out")
"/share/gir-1.0")
(string-append "--with-typelibdir="
(assoc-ref %outputs "out")
"/lib/girepository-1.0"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'embed-growisofs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "plugins/growisofs/burn-growisofs.c"
(("\"growisofs") (string-append "\"" (which "growisofs"))))
#t)))))
(propagated-inputs
`(("hicolor-icon-theme" ,hicolor-icon-theme)))
(native-inputs
`(("intltool" ,intltool)
("itstool" ,itstool)
("glib" ,glib "bin") ; glib-compile-schemas, etc.
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)))
(inputs
`(("dvd+rw-tools" ,dvd+rw-tools)
("glib" ,glib)
("gnome-doc-utils" ,gnome-doc-utils)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
("libice" ,libice)
("libnotify" ,libnotify)
("libsm" ,libsm)
("libxml2" ,libxml2)
("totem-pl-parser" ,totem-pl-parser)))
(home-page "https://wiki.gnome.org/Apps/Brasero")
(synopsis "CD/DVD burning tool for Gnome")
(description "Brasero is an application to burn CD/DVD for the Gnome
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")
(version "2.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)))
(inputs
`(("avahi" ,avahi)
("libgudev" ,libgudev)
("libsoup" ,libsoup)))
(synopsis "WebDav server implementation using libsoup")
(description "PhoDav was initially developed as a file-sharing mechanism for Spice,
but it is generic enough to be reused in other projects,
in particular in the GNOME desktop.")
(home-page "https://wiki.gnome.org/phodav")
(license license:lgpl2.1+)))
(define-public gnome-color-manager
(package
(name "gnome-color-manager")
(version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-before
'check 'pre-check
(lambda _
;; Tests require a running X server.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t)))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gtk+:bin" ,gtk+ "bin")
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("adwaita-icon-theme" ,adwaita-icon-theme)
("appstream-glib" ,appstream-glib)
("colord-gtk" ,colord-gtk)
("exiv2" ,exiv2)
("gnome-desktop" ,gnome-desktop)
("libcanberra" ,libcanberra)
("libexif" ,libexif)
("libtiff" ,libtiff)
("libxrandr" ,libxrandr)
("libxtst" ,libxtst)
("libxxf86vm" ,libxxf86vm)
("vte" ,vte)
("xorgproto" ,xorgproto)))
(synopsis "Color profile manager for the GNOME desktop")
(description "GNOME Color Manager is a session framework that makes
it easy to manage, install and generate color profiles
in the GNOME desktop.")
(home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
(license license:gpl2+)))
(define-public gnome-online-miners
(package
(name "gnome-online-miners")
(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
"1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("gnome-online-accounts" ,gnome-online-accounts)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("grilo" ,grilo)
("libgdata" ,libgdata)
("libgfbgraph" ,gfbgraph)
("libzapojit" ,libzapojit)
("rest" ,rest)
("tracker" ,tracker)))
(synopsis "Web Crawlers for GNOME")
(description "GNOME Online Miners provides a set of crawlers that
go through your online content and index them locally in Tracker.
It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
(home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
(license license:gpl2+)))
(define-public gssdp
(package
(name "gssdp")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gtk+" ,gtk+)
("libsoup" ,libsoup)))
(synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
Protocol} for GNOME")
(description "This package provides a library to handle resource discovery
and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
a debugging tool, @command{gssdp-device-sniffer}.")
(home-page "https://gitlab.gnome.org/GNOME/gssdp")
(license license:lgpl2.0+)))
(define-public gupnp
(package
(name "gupnp")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gssdp" ,gssdp)
("gtk+" ,gtk+)
("libsoup" ,libsoup)))
(synopsis "PnP API for GNOME")
(description "This package provides GUPnP, an object-oriented framework
for creating UPnP devices and control points, written in C using
@code{GObject} and @code{libsoup}.")
(home-page "https://gitlab.gnome.org/GNOME/gupnp")
(license license:lgpl2.0+)))
(define-public gupnp-dlna
(package
(name "gupnp-dlna")
(version "0.10.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("libxml" ,libxml2)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gstreamer" ,gstreamer)
("gupnp" ,gupnp)))
(propagated-inputs
`(("gst-plugins-base" ,gst-plugins-base)
("gst-plugins-good" ,gst-plugins-good)))
(synopsis "GUPnP DLNA for GNOME")
(description "This package provides a small utility library to
support DLNA-related tasks such as media profile guessing, transcoding to a
given profile, etc. DLNA is a subset of UPnP A/V.")
(home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
(license license:lgpl2.0+)))
(define-public gupnp-av
(package
(name "gupnp-av")
(version "0.12.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("libxml" ,libxml2)
("pkg-config" ,pkg-config)))
(inputs
`(("gtk+" ,gtk+)
("gupnp" ,gupnp)))
(synopsis "GUPnP A/V for GNOME")
(description "This package provides a small library for handling
and implementation of UPnP A/V profiles.")
(home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
(license license:lgpl2.0+)))
(define-public libmediaart
(package
(name "libmediaart")
(version "1.9.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
("gtk+:doc", gtk+ "doc")
("vala" ,vala)))
(synopsis "Media art library for the GNOME desktop")
(description
"The libmediaart library is the foundation for media art caching,
extraction, and lookup for applications on the desktop.")
(home-page "https://gitlab.gnome.org/GNOME/libmediaart")
(license license:lgpl2.1+)))
(define-public gnome-initial-setup
(package
(name "gnome-initial-setup")
(version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
(version-major+minor version)
"/gnome-initial-setup-" version ".tar.xz"))
(sha256
(base32
"1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags '(;; Enable camera support for user selfie.
"-Dcheese=auto"
"-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")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("accountsservice" ,accountsservice)
;("adwaita-icon-theme" ,adwaita-icon-theme)
("gdm" ,gdm)
("geoclue" ,geoclue)
("gnome-desktop" ,gnome-desktop)
("gnome-getting-started-docs" ,gnome-getting-started-docs)
("gnome-online-accounts" ,gnome-online-accounts)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("gstreamer" ,gstreamer)
("ibus" ,ibus)
("json-glib" ,json-glib)
("krb5" ,mit-krb5)
("libgweather" ,libgweather)
("libnma" ,libnma)
("libsecret" ,libsecret)
("network-manager" ,network-manager)
("packagekit" ,packagekit)
("polkit" ,polkit)
("pwquality" ,libpwquality)
("rest" ,rest)
("upower" ,upower)
("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
tour of all gnome components and allows the user to set them up.")
(home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
(license license:gpl2)))
(define-public gnome-user-share
(package
(name "gnome-user-share")
(version "3.33.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:configure-flags
`("-Dsystemd=false"
;; Enable nautilus extension for file sharing.
"-Dnautilus_extension=true")))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)
("yelp-tools" ,yelp-tools)))
(inputs
`(("glib" ,glib)
("gnome-bluetooth" ,gnome-bluetooth)
("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
("libnotify" ,libnotify)
("nautilus" ,nautilus))) ; For nautilus extension.
(synopsis "File sharing for GNOME desktop")
(description "GNOME User Share is a small package that binds together
various free software projects to bring easy to use user-level file
sharing to the masses.")
(home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
(license license:gpl2+)))
(define-public sushi
(package
(name "sushi")
(version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'glib-or-gtk-wrap 'wrap-typelib
(lambda* (#:key outputs #:allow-other-keys)
(let ((prog (string-append (assoc-ref outputs "out")
"/bin/sushi")))
;; Put existing typelibs before sushi's deps, so as to correctly
;; infer gdk-pixbuf
(wrap-program prog
`("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
#t))))))
(native-inputs
`(("glib:bin" ,glib "bin")
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)))
(inputs
`(("clutter" ,clutter)
("clutter-gst" ,clutter-gst)
("clutter-gtk" ,clutter-gtk)
("evince" ,evince) ; For file previewing.
("freetype" ,freetype)
("gdk-pixbuf" ,gdk-pixbuf)
("gjs" ,gjs)
("gst-plugins-base" ,gst-plugins-base)
("gstreamer" ,gstreamer)
("gtksourceview" ,gtksourceview-3)
("harfbuzz" ,harfbuzz)
("libepoxy" ,libepoxy)
("libmusicbrainz" ,libmusicbrainz)
("libxml2" ,libxml2)
("neon" ,neon)
("webkitgtk" ,webkitgtk)))
(synopsis "File previewer for the GNOME desktop")
(description "Sushi is a DBus-activated service that allows applications to
preview files on the GNOME desktop.")
(home-page "https://gitlab.gnome.org/GNOME/sushi")
(license license:gpl2+)))
(define-public rygel
(package
(name "rygel")
(version "0.38.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("gssdp" ,gssdp)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+)
("gupnp" ,gupnp)
("gupnp-av" ,gupnp-av)
("gupnp-dlna" ,gupnp-dlna)
("libgee" ,libgee)
("libmediaart" ,libmediaart)
("libsoup" ,libsoup)
("libxslt" ,libxslt)
("libunistring" ,libunistring)
("tracker" ,tracker)))
(synopsis "Share audio, video, and pictures with other devices")
(description
"Rygel is a home media solution (@dfn{UPnP AV MediaServer and
MediaRenderer}) for GNOME that allows you to easily share audio, video, and
pictures, and to control a media player on your home network.
Rygel achieves interoperability with other devices by trying to conform to the
strict requirements of DLNA and by converting media on-the-fly to formats that
client devices can handle.")
(home-page "https://wiki.gnome.org/Projects/Rygel")
(license (list
;; For logo (data/icons/*).
license:cc-by-sa3.0
;; For all others.
license:lgpl2.1+))))
(define-public libnma
(package
(name "libnma")
(version "1.8.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
(build-system meson-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
(let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook")))
(substitute* "libnma-docs.xml"
(("http://.*/docbookx\\.dtd")
(string-append xmldoc "/docbookx.dtd")))
#t))))))
(native-inputs
`(("docbook-xml" ,docbook-xml-4.3)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gtk-doc" ,gtk-doc)
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gcr" ,gcr)
("gtk+" ,gtk+)
("iso-codes" ,iso-codes)
("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
("network-manager" ,network-manager)))
(synopsis "Network Manager's applet library")
(description "Libnma is an applet library for Network Manager. It was
initially part of network-manager-applet and has now become a separate
project.")
(home-page "https://gitlab.gnome.org/GNOME/libnma")
;; Some files carry the "GPL-2.0+" SPDX identifier while others say
;; "LGPL-2.1+".
(license license:gpl2+)))
(define-public gnome-menus
(package
(name "gnome-menus")
(version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-menus/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib" ,glib)
("pkg-config" ,pkg-config)))
(synopsis "Menu support for GNOME desktop")
(description "GNOME Menus contains the libgnome-menu library, the layout
configuration files for the GNOME menu, as well as a simple menu editor.")
(home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
(license license:lgpl2.0+)))
(define-public deja-dup
(package
(name "deja-dup")
(version "40.6")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
version "/deja-dup-" version ".tar.bz2"))
(sha256
(base32
"0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:configure-flags
(list
;; Otherwise, the RUNPATH will lack the final path component.
(string-append "-Dc_link_args=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib/deja-dup"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((python (assoc-ref inputs "python")))
(substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
"libdeja/tests/scripts/instance-error.test")
(("/bin/rm")
(which "rm")))
(substitute* "libdeja/tests/runner.vala"
(("/bin/sh")
(which "sh")))
(substitute* "libdeja/tests/scripts/instance-error.test"
(("`which python3`")
(string-append python "/bin/python3"))))))
(add-after 'unpack 'patch-libgpg-error
(lambda* (#:key inputs #:allow-other-keys)
(let ((libgpg-error (assoc-ref inputs "libgpg-error")))
(substitute* "meson.build"
(("(gpgerror_libs = ).*" _ var)
(format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
#t))
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "data/post-install.sh"
(("gtk-update-icon-cache") "true"))
#t)))))
(inputs
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("duplicity" ,duplicity)
("python" ,python)
("python-pygobject" ,python-pygobject)
("gtk+" ,gtk+)
("json-glib" ,json-glib)
("libnotify" ,libnotify)
("libgpg-error" ,libgpg-error)
("libsecret" ,libsecret)
("libsoup" ,libsoup)
("packagekit" ,packagekit)))
(native-inputs
`(("appstream-glib" ,appstream-glib)
("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
("glib" ,glib "bin") ; for glib-compile-schemas.
("gobject-introspection" ,gobject-introspection)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(home-page "https://wiki.gnome.org/Apps/DejaDup")
(synopsis "Simple backup tool, for regular encrypted backups")
(description
"Déjà Dup is a simple backup tool, for regular encrypted backups. It
uses duplicity as the backend, which supports incremental backups and storage
either on a local, or remote machine via a number of methods.")
(license license:gpl3+)))
(define-public gnome-user-docs
(package
(name "gnome-user-docs")
(version "3.32.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-user-docs/"
(version-major+minor version)
"/gnome-user-docs-" version ".tar.xz"))
(sha256
(base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(synopsis "User documentation for the GNOME desktop")
(description
"The GNOME User Documentation explains how to use the GNOME desktop and its
components. It covers usage and setup of the core GNOME programs by end-users
and system administrators.")
(home-page "https://live.gnome.org/DocumentationProject")
(license license:cc-by3.0)))
(define-public gnome-getting-started-docs
(package
(name "gnome-getting-started-docs")
(version "3.32.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
(version-major+minor version)
"/gnome-getting-started-docs-" version ".tar.xz"))
(sha256
(base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(synopsis "Help to get new users started with the GNOME desktop")
(description
"The GNOME Getting Started Documentation contains GNOME's intuitive
\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
It is normally used together with @command{gnome-initial-setup}, but is also
useful as a tutorial and users' guide for new or less experienced users.")
(home-page "https://live.gnome.org/DocumentationProject")
(license license:cc-by-sa3.0)))
(define-public dia
;; This version from GNOME's repository includes fixes for compiling with
;; recent versions of the build tools. The latest activity on the
;; pre-GNOME version has been in 2014, while GNOME has continued applying
;; fixes in 2016.
(let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
(package
(name "dia")
(version (git-version "0.97.3" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/GNOME/dia.git/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
(build-system gnu-build-system)
(inputs
`(("freetype" ,freetype)
("gdk-pixbuf" ,gdk-pixbuf)
("gtk+" ,gtk+-2)
("libart-lgpl" ,libart-lgpl)
("libxml2" ,libxml2)
("pango" ,pango)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("intltool" ,intltool)
("glib" ,glib "bin")
("libtool" ,libtool)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper)))
(home-page "https://wiki.gnome.org/Apps/Dia")
(synopsis "Diagram creation for GNOME")
(description "Dia can be used to draw different types of diagrams, and
includes support for UML static structure diagrams (class diagrams), entity
relationship modeling, and network diagrams. The program supports various file
formats like PNG, SVG, PDF and EPS.")
(license license:gpl2+))))
;; This is the unstable release, but it is required for the current stable
;; release of gvfs (1.38.1).
(define-public libgdata
(package
(name "libgdata")
(version "0.17.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'disable-failing-tests
(lambda _
;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
;; They have been removed in libgdata 0.17.6, so just do the same.
(substitute* "gdata/tests/Makefile"
(("picasaweb\\$\\(EXEEXT\\) ") ""))
#t)))))
(native-inputs
`(("glib:bin" ,glib "bin")
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("uhttpmock" ,uhttpmock)))
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
("glib-networking" ,glib-networking)))
(propagated-inputs
`(("gcr" ,gcr)
("glib" ,glib)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("json-glib" ,json-glib)
("liboauth" ,liboauth)
("libsoup" ,libsoup)
("libxml2" ,libxml2)))
(home-page "https://wiki.gnome.org/Projects/libgdata")
(synopsis "Library for accessing online service APIs")
(description
"libgdata is a GLib-based library for accessing online service APIs using
the GData protocol — most notably, Google's services. It provides APIs to
access the common Google services, and has full asynchronous support.")
(license license:lgpl2.1+)))
(define-public libgxps
(package
(name "libgxps")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
(build-system meson-build-system)
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)))
(inputs
`(("gtk+" ,gtk+)
("libjpeg" ,libjpeg-turbo)
("lcms" ,lcms)
("libtiff" ,libtiff)))
(propagated-inputs
;; In Requires of libgxps.pc.
`(("cairo" ,cairo)
("glib" ,glib)
("libarchive" ,libarchive)))
(home-page "https://wiki.gnome.org/Projects/libgxps")
(synopsis "GObject-based library for handling and rendering XPS documents")
(description
"libgxps is a GObject-based library for handling and rendering XPS
documents. This package also contains binaries that can convert XPS documents
to other formats.")
(license license:lgpl2.1+)))
(define-public gnome-characters
(package
(name "gnome-characters")
(version "3.30.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gnome-characters/" (version-major+minor version)
"/gnome-characters-" version ".tar.xz"))
(sha256
(base32
"08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
;; GNOME Characters needs Typelib files from GTK and
;; gnome-desktop.
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/gnome-characters")
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH"))))
#t)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)
("python" ,python-minimal)))
(inputs
`(("gjs" ,gjs)
("gtk+" ,gtk+)
("libunistring" ,libunistring)
("gnome-desktop" ,gnome-desktop)))
(home-page "https://wiki.gnome.org/Apps/CharacterMap")
(synopsis "Find and insert unusual characters")
(description "Characters is a simple utility application to find
and insert unusual characters. It allows you to quickly find the
character you are looking for by searching for keywords.")
(license license:bsd-3)))
(define-public gnome-common
(package
(name "gnome-common")
(version "3.18.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
(build-system gnu-build-system)
(home-page "https://www.gnome.org/")
(synopsis "Bootstrap GNOME modules built from Git")
(description "gnome-common contains various files needed to bootstrap
GNOME modules built from Git. It contains a common \"autogen.sh\" script that
can be used to configure a source directory checked out from Git and some
commonly used macros.")
(license license:gpl2+)))
(define-public gnome-contacts
(package
(name "gnome-contacts")
(version "3.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-contacts/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dcheese=false")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'generate-vapis
(lambda* (#:key inputs #:allow-other-keys)
;; To generate goa's missing .vapi file
(define goa
(assoc-ref inputs "gnome-online-accounts:lib"))
(invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
"--library=goa-1.0"
(string-append goa "/share/gir-1.0/Goa-1.0.gir"))
#t))
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "build-aux/meson_post_install.py"
(("gtk-update-icon-cache") "true"))
#t)))))
(native-inputs
`(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("docbook-xml" ,docbook-xml)
("dockbook-xsl" ,docbook-xsl)
("evolution-data-server" ,evolution-data-server)
("gettext" ,gettext-minimal)
("gnome-desktop" ,gnome-desktop)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("gobject-introspection" ,gobject-introspection)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+)
("libgee" ,libgee)
("libxslt" ,libxslt)
("telepathy-glib" ,telepathy-glib)
("vala" ,vala)))
(propagated-inputs
`(("folks", folks)
("telepathy-mission-control" ,telepathy-mission-control)))
(synopsis "GNOME's integrated address book")
(description
"GNOME Contacts organizes your contact information from online and
offline sources, providing a centralized place for managing your contacts.")
(home-page "https://wiki.gnome.org/Apps/Contacts")
(license license:gpl2+)))
(define-public gnome-desktop
(package
(name "gnome-desktop")
(version "3.34.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
(build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")))
(substitute* "libgnome-desktop/gnome-languages.c"
(("\"locale\"")
(string-append "\"" libc "/bin/locale\"")))
#t)))
(add-before 'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
;; Tests require a running X server and locales.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
(setenv "GUIX_LOCPATH"
(string-append (assoc-ref inputs "glibc-locales")
"/lib/locale"))
#t)))))
(native-inputs
`(("glib:bin" ,glib "bin") ; for gdbus-codegen
("glibc-locales" ,glibc-locales) ; for tests
("gobject-introspection" ,gobject-introspection)
("itstool" ,itstool)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)
("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
;; Required by gnome-desktop-3.0.pc.
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)
("iso-codes" ,iso-codes)
("libseccomp" ,libseccomp)
("libx11" ,libx11)
("xkeyboard-config" ,xkeyboard-config)))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
("libxext" ,libxext)
("libxkbfile" ,libxkbfile)
("libxrandr" ,libxrandr)))
(home-page "https://www.gnome.org/")
(synopsis
"Libgnome-desktop, gnome-about, and desktop-wide documents")
(description
"The libgnome-desktop library provides API shared by several applications
on the desktop, but that cannot live in the platform for various reasons.
There is no API or ABI guarantee, although we are doing our best to provide
stability. Documentation for the API is available with gtk-doc.
The gnome-about program helps find which version of GNOME is installed.")
; Some bits under the LGPL.
(license license:gpl2+)))
(define-public gnome-doc-utils
(package
(name "gnome-doc-utils")
(version "0.20.10")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)
("docbook-xml" ,docbook-xml-4.4)
("python2-libxml2" ,python2-libxml2)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("pkg-config" ,pkg-config)
("python-2" ,python-2)))
(home-page "https://wiki.gnome.org/GnomeDocUtils")
(synopsis
"Documentation utilities for the Gnome project")
(description
"Gnome-doc-utils is a collection of documentation utilities for the
Gnome project. It includes xml2po tool which makes it easier to translate
and keep up to date translations of documentation.")
(license license:gpl2+))) ; xslt under lgpl
(define-public gnome-disk-utility
(package
(name "gnome-disk-utility")
(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
"1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags '("-Dlogind=libelogind")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "meson_post_install.py"
(("gtk-update-icon-cache") "true"))
#t)))))
(native-inputs
`(("glib:bin" ,glib "bin")
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("libxml2" ,libxml2)
("libxslt" ,libxslt)))
(inputs
`(("elogind" ,elogind)
("glib" ,glib)
("appstream-glib" ,appstream-glib)
("gnome-settings-daemon" ,gnome-settings-daemon)
("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
("libdvdread" ,libdvdread)
("libnotify" ,libnotify)
("libpwquality" ,libpwquality)
("libsecret" ,libsecret)
("udisks" ,udisks)))
(home-page "https://git.gnome.org/browse/gnome-disk-utility")
(synopsis "Disk management utility for GNOME")
(description "Disk management utility for GNOME.")
(license license:gpl2+)))
(define-public gnome-font-viewer
(package
(name "gnome-font-viewer")
(version "3.30.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
(version-major+minor version)
"/gnome-font-viewer-" version ".tar.xz"))
(sha256
(base32
"1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
(build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-post-install-script
(lambda _
(substitute* "meson-postinstall.sh"
(("update-desktop-database") (which "true")))
#t)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("gnome-desktop" ,gnome-desktop)
("gtk+" ,gtk+)))
(home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
(synopsis "GNOME Fonts")
(description "Application to show you the fonts installed on your computer
for your use as thumbnails. Selecting any thumbnails shows the full view of how
the font would look under various sizes.")
(license license:gpl2+)))
(define-public gcr
(package
(name "gcr")
(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
"0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
;; These fail because /var/lib/dbus/machine-id is not present in the
;; build environment.
(add-after 'unpack 'disable-failing-tests
(lambda _
(substitute* "Makefile.in"
(("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
""))
#t))
(add-before 'check 'pre-check
(lambda _
;; Some tests expect to write to $HOME.
(setenv "HOME" "/tmp")
#t)))))
(inputs
`(("dbus" ,dbus)
("gnupg" ,gnupg) ;called as a child process during tests
("libgcrypt" ,libgcrypt)))
(native-inputs
`(("python" ,python-wrapper) ;for tests
("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("libxml2" ,libxml2)
("vala" ,vala)
("xsltproc" ,libxslt)))
;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
(propagated-inputs
`(("p11-kit" ,p11-kit)
("glib" ,glib)
("gtk+" ,gtk+)))
(home-page "https://www.gnome.org")
(synopsis "Libraries for displaying certificates and accessing key stores")
(description
"The GCR package contains libraries used for displaying certificates and
accessing key stores. It also provides the viewer for crypto files on the
GNOME Desktop.")
(license license:lgpl2.1+)))
(define-public libgnome-keyring
(package
(name "libgnome-keyring")
(version "3.12.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
(build-system gnu-build-system)
(inputs
`(("libgcrypt" ,libgcrypt)
("dbus" ,dbus)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin")
("intltool" ,intltool)))
(propagated-inputs
;; Referred to in .h files and .pc.
`(("glib" ,glib)))
(home-page "https://www.gnome.org")
(synopsis "Accessing passwords from the GNOME keyring")
(description
"Client library to access passwords from the GNOME keyring.")
;; Though a couple of files are LGPLv2.1+.
(license license:lgpl2.0+)))
(define-public gnome-keyring
(package
(name "gnome-keyring")
(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
"0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
;not exist
#:configure-flags
(list
(string-append "--with-pkcs11-config="
(assoc-ref %outputs "out") "/share/p11-kit/modules/")
(string-append "--with-pkcs11-modules="
(assoc-ref %outputs "out") "/share/p11-kit/modules/"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-/bin/sh-reference
(lambda _
(substitute* "po/Makefile.in.in"
(("/bin/sh") (which "sh")))
#t))
(add-after 'unpack 'fix-docbook
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "docs/Makefile.am"
(("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
(string-append (assoc-ref inputs "docbook-xsl")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml"))
;; Rerun the whole thing to avoid version mismatch ("This is
;; Automake 1.15.1, but the definition used by this
;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
;; use 'autoreconf' because it insists on running 'libtoolize'.
(invoke "autoconf")
(invoke "aclocal")
(invoke "automake" "-ac"))))))
(inputs
`(("libgcrypt" ,libgcrypt)
("linux-pam" ,linux-pam)
("openssh" ,openssh)
("dbus" ,dbus)
("gcr" ,gcr)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin")
("glib" ,glib) ; for m4 macros
("python" ,python-2) ;for tests
("intltool" ,intltool)
("autoconf" ,autoconf)
("automake" ,automake)
("libxslt" ,libxslt) ;for documentation
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)))
(home-page "https://www.gnome.org")
(synopsis "Daemon to store passwords and encryption keys")
(description
"gnome-keyring is a program that keeps passwords and other secrets for
users. It is run as a daemon in the session, similar to ssh-agent, and other
applications locate it via an environment variable or D-Bus.
The program can manage several keyrings, each with its own master password,
and there is also a session keyring which is never stored to disk, but
forgotten when the session ends.")
(license license:lgpl2.1+)))
(define-public evince
(package
(name "evince")
(version "3.34.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/evince/"
(version-major+minor version) "/"
"evince-" version ".tar.xz"))
(sha256
(base32
"05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-nautilus" "--enable-introspection")
#:phases
(modify-phases %standard-phases
(add-before 'install 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "data/Makefile"
(("gtk-update-icon-cache") "true"))
#t)))))
(inputs
`(("libarchive" ,libarchive)
("libgxps" ,libgxps)
("libspectre" ,libspectre)
("djvulibre" ,djvulibre)
("ghostscript" ,ghostscript)
("poppler" ,poppler)
("libtiff" ,libtiff)
;; TODO:
;; Build libkpathsea as a shared library for DVI support.
;; ("libkpathsea" ,texlive-bin)
("gnome-desktop" ,gnome-desktop)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gspell" ,gspell)
("libgnome-keyring" ,libgnome-keyring)
("adwaita-icon-theme" ,adwaita-icon-theme)
("gdk-pixbuf" ,gdk-pixbuf)
("atk" ,atk)
("pango" ,pango)
("gtk+" ,gtk+)
("glib" ,glib)
("libxml2" ,libxml2)
("libsm" ,libsm)
("libice" ,libice)
("shared-mime-info" ,shared-mime-info)
("dconf" ,dconf)
("libcanberra" ,libcanberra)
("libsecret" ,libsecret)
;; For tests.
("dogtail" ,python2-dogtail)))
(native-inputs
`(("itstool" ,itstool)
("intltool" ,intltool)
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(home-page
"https://www.gnome.org/projects/evince/")
(synopsis "GNOME's document viewer")
(description
"Evince is a document viewer for multiple document formats. It
currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
of Evince is to replace the multiple document viewers that exist
on the GNOME Desktop with a single simple application.")
(license license:gpl2+)))
(define-public gsettings-desktop-schemas
(package
(name "gsettings-desktop-schemas")
(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
"1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
(build-system meson-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-schemas
(lambda* (#:key inputs #:allow-other-keys)
(let ((theme (assoc-ref inputs "gnome-backgrounds")))
(substitute* (find-files "schemas"
"\\.gschema\\.xml\\.in$")
;; Provide the correct file name of the default GNOME
;; background, 'adwaita-timed.xml'.
(("@datadir@/backgrounds/gnome")
(string-append theme "/share/backgrounds/gnome"))
;; Do not reference fonts, that may not exist.
(("'Source Code Pro 10'") "'Monospace 11'"))
#t))))))
(inputs
`(("glib" ,glib)
("gnome-backgrounds" ,gnome-backgrounds)))
(native-inputs
`(("intltool" ,intltool)
("glib" ,glib "bin") ; glib-compile-schemas, etc.
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)))
(home-page "https://launchpad.net/gsettings-desktop-schemas")
(synopsis
"GNOME settings for various desktop components")
(description
"Gsettings-desktop-schemas contains a collection of GSettings schemas
for settings shared by various components of the GNOME desktop.")
(license license:lgpl2.1+)))
(define-public icon-naming-utils
(package
(name "icon-naming-utils")
(version "0.8.90")
(source
(origin
(method url-fetch)
(uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
version ".tar.bz2"))
(sha256
(base32
"1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)
("perl-xml-simple" ,perl-xml-simple)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'install 'set-load-paths
;; Tell 'icon-name-mapping' where XML::Simple is.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/libexec/icon-name-mapping")))
(wrap-program
prog
`("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
#t)))))
(home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
(synopsis
"Utility to implement the Freedesktop Icon Naming Specification")
(description
"To help with the transition to the Freedesktop Icon Naming
Specification, the icon naming utility maps the icon names used by the
GNOME and KDE desktops to the icon names proposed in the specification.")
(license license:lgpl2.1+)))
(define-public gnome-icon-theme
(package
(name "gnome-icon-theme")
(version "3.12.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
;; Don't create 'icon-theme.cache'.
(let* ((coreutils (assoc-ref %build-inputs "coreutils"))
(true (string-append coreutils "/bin/true")))
(list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
(native-inputs
`(("icon-naming-utils" ,icon-naming-utils)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "https://wiki.gnome.org/Personalization")
(synopsis "GNOME icon theme")
(description "Icons for the GNOME desktop.")
(license license:lgpl3))) ; or Creative Commons BY-SA 3.0
;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
(define-public adwaita-icon-theme
(package (inherit gnome-icon-theme)
(name "adwaita-icon-theme")
(version "3.34.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
(native-inputs
`(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
(define-public tango-icon-theme
(package
(name "tango-icon-theme")
(version "0.8.90")
(source (origin
(method url-fetch)
(uri (string-append "http://tango.freedesktop.org/releases/"
"tango-icon-theme-" version ".tar.bz2"))
(sha256
(base32
"034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
(build-system gnu-build-system)
(native-inputs
`(("icon-naming-utils" ,icon-naming-utils)
("intltool" ,intltool)
("imagemagick" ,imagemagick)
("pkg-config" ,pkg-config)))
(home-page "http://tango-project.org/")
(synopsis "Tango icon theme")
(description "This is an icon theme that follows the Tango visual
guidelines.")
(license license:public-domain)))
(define-public shared-mime-info
(package
(name "shared-mime-info")
(version "1.15")
(source (origin
(method url-fetch)
(uri (string-append
"https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
"b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
".tar.xz"))
(sha256
(base32
"146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
(build-system gnu-build-system)
(arguments
;; The build system appears not to be parallel-safe.
'(#:parallel-build? #f))
(inputs
`(("glib" ,glib)
("libxml2" ,libxml2)))
(native-inputs
`(("gettext" ,gettext-minimal)
("itstool" ,itstool)
("pkg-config" ,pkg-config)))
(home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
(synopsis "Database of common MIME types")
(description
"The shared-mime-info package contains the core database of common types
and the update-mime-database command used to extend it. It requires glib2 to
be installed for building the update command. Additionally, it uses intltool
for translations, though this is only a dependency for the maintainers. This
database is translated at Transifex.")
(license license:gpl2+)))
(define-public system-config-printer
(package
(name "system-config-printer")
(version "1.5.12")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/OpenPrinting/system-config-printer/releases/"
"download/" version
"/system-config-printer-" version ".tar.xz"))
(sha256
(base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:imported-modules ((guix build python-build-system)
,@%glib-or-gtk-build-system-modules)
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-Makefile.am
(lambda _
;; The Makefile generates some scripts, so set a valid shebang
(substitute* "Makefile.am"
(("/bin/bash") (which "bash")))
(delete-file "configure")
#t))
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
;; Modify the man XML otherwise xmlto tries to access the network
(substitute* "man/system-config-printer.xml"
(("http://www.oasis-open.org/docbook/xml/4.1.2/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/")))
#t))
(add-after 'install 'wrap-for-python
(@@ (guix build python-build-system) wrap))
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH")))
(for-each
(lambda (program)
(wrap-program program
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
(map (lambda (name)
(string-append out "/bin/" name))
'("system-config-printer"
"system-config-printer-applet"
"install-printerdriver"
"scp-dbus-service"))))
#t)))))
(inputs
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gobject-introspection" ,gobject-introspection)
("python" ,python)
("cups" ,cups)
("python-dbus" ,python-dbus)
("python-pygobject" ,python-pygobject)
("python-pycups" ,python-pycups)
("python-requests" ,python-requests)
("python-pycairo" ,python-pycairo)
("libnotify" ,libnotify)
("packagekit" ,packagekit)))
(native-inputs
`(("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils)
("glib" ,glib)
("autoconf" ,autoconf)
("automake" ,automake)
("intltool" ,intltool)
("xmlto" ,xmlto)
("docbook-xml" ,docbook-xml-4.1.2)
("docbook-xsl" ,docbook-xsl)
("libxml2" ,libxml2)))
(home-page "https://github.com/zdohnal/system-config-printer")
(synopsis "CUPS administration tool")
(description
"system-config-printer is a CUPS administration tool. It's written in
Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
configuring CUPS.")
(license license:gpl2+)))
(define-public hicolor-icon-theme
(package
(name "hicolor-icon-theme")
(version "0.17")
(source
(origin
(method url-fetch)
(uri (string-append "https://icon-theme.freedesktop.org/releases/"
"hicolor-icon-theme-" version ".tar.xz"))
(sha256
(base32
"1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no check target
(home-page "https://icon-theme.freedesktop.org/releases/")
(synopsis
"Freedesktop icon theme")
(description
"Freedesktop icon theme.")
(license license:gpl2)))
(define-public libnotify
(package
(name "libnotify")
(version "0.7.7")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static")))
(propagated-inputs
`(;; In Requires of libnotify.pc.
("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)))
(inputs
`(("gtk+" ,gtk+)
("libpng" ,libpng)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)))
(home-page "https://developer-next.gnome.org/libnotify/")
(synopsis
"GNOME desktop notification library")
(description
"Libnotify is a library that sends desktop notifications to a
notification daemon, as defined in the Desktop Notifications spec. These
notifications can be used to inform the user about an event or display
some form of information without getting in the user's way.")
(license license:lgpl2.1+)))
(define-public libpeas
(package
(name "libpeas")
(version "1.24.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
(build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'start-xserver
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server"))
(disp ":1"))
(setenv "DISPLAY" disp)
;; Tests require a running X server.
(system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
#t))))))
(inputs
`(("gtk+" ,gtk+)
("glade" ,glade3)
("python" ,python)
("python-pygobject" ,python-pygobject)))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
;; The .pc file "Requires" gobject-introspection.
`(("gobject-introspection" ,gobject-introspection)))
(home-page "https://wiki.gnome.org/Libpeas")
(synopsis "GObject plugin system")
(description
"Libpeas is a gobject-based plugin engine, targeted at giving every
application the chance to assume its own extensibility. It also has a set of
features including, but not limited to: multiple extension points; on-demand
(lazy) programming language support for C, Python and JS; simplicity of the
API.")
(license license:lgpl2.0+)))
(define-public gtkglext
(package
(name "gtkglext")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
version "/gtkglext-" version ".tar.gz"))
(sha256
(base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
(patches (search-patches
"gtkglext-disable-disable-deprecated.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Fix a collision between a local variable and a definition from
;; glibc's string.h.
(add-after 'unpack 'fix-collision
(lambda _
(substitute* "gdk/gdkglshapes.c"
((" index") " triangle_index"))
#t)))))
(inputs `(("gtk+" ,gtk+-2)
("mesa" ,mesa)
("glu" ,glu)
("libx11" ,libx11)
("libxt" ,libxt)))
(native-inputs `(("pkg-config" ,pkg-config)
("glib" ,glib "bin")))
(propagated-inputs `(("pangox-compat" ,pangox-compat)))
(home-page "https://projects.gnome.org/gtkglext")
(synopsis "OpenGL extension to GTK+")
(description "GtkGLExt is an OpenGL extension to GTK+. It provides
additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
API add-ons to make GTK+ widgets OpenGL-capable.")
(license license:lgpl2.1+)))
(define-public glade3
(package
(name "glade")
(version "3.22.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; needs X, GL, and software rendering
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-docbook
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "man/Makefile.in"
(("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
(string-append (assoc-ref inputs "docbook-xsl")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
#t)))))
(inputs
`(("gtk+" ,gtk+)
("libxml2" ,libxml2)))
(native-inputs
`(("intltool" ,intltool)
("itstool" ,itstool)
("libxslt" ,libxslt) ;for xsltproc
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)
("python" ,python-2)
("pkg-config" ,pkg-config)))
(home-page "https://glade.gnome.org")
(synopsis "GTK+ rapid application development tool")
(description "Glade is a rapid application development (RAD) tool to
enable quick & easy development of user interfaces for the GTK+ toolkit and
the GNOME desktop environment.")
(license license:lgpl2.0+)))
(define-public libcroco
(package
(name "libcroco")
(version "0.6.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("libxml2" ,libxml2)
("zlib" ,zlib)))
(home-page "https://github.com/GNOME/libcroco")
(synopsis "CSS2 parsing and manipulation library")
(description
"Libcroco is a standalone CSS2 parsing and manipulation library.
The parser provides a low level event driven SAC-like API and a CSS object
model like API. Libcroco provides a CSS2 selection engine and an experimental
XML/CSS rendering engine.")
;; LGPLv2.1-only.
(license license:lgpl2.1)))
(define-public libgsf
(package
(name "libgsf")
(version "1.14.47")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
;; For tests.
("perl" ,perl)
("perl-xml-parser" ,perl-xml-parser)))
(inputs
`(("zlib" ,zlib)
("bzip2" ,bzip2)))
(propagated-inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
("libxml2" ,libxml2)))
(home-page "https://www.gnome.org/projects/libgsf")
(synopsis "GNOME's Structured File Library")
(description
"Libgsf aims to provide an efficient extensible I/O abstraction for
dealing with different structured file formats.")
;; LGPLv2.1-only.
(license license:lgpl2.1)))
(define-public librsvg
(package
(name "librsvg")
(version "2.40.21")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--disable-static"
"--enable-vala") ; needed for e.g. gnome-mines
#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "gdk-pixbuf-loader/Makefile.in"
;; By default the gdk-pixbuf loader is installed under
;; gdk-pixbuf's prefix. Work around that.
(("gdk_pixbuf_moduledir = .*$")
(string-append "gdk_pixbuf_moduledir = "
"$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
"loaders\n"))
;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
(("gdk_pixbuf_cache_file = .*$")
"gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
#t))
(add-before 'check 'remove-failing-tests
(lambda _
(with-directory-excursion "tests/fixtures/reftests"
(for-each delete-file
'(;; This test fails on i686:
"svg1.1/masking-path-04-b.svg"
;; This test fails on armhf:
"svg1.1/masking-mask-01-b.svg"
;; This test fails on aarch64:
"bugs/777834-empty-text-children.svg")))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
("vala" ,vala)
("glib" ,glib "bin") ; glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
(inputs
`(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
;; this ancient version of librsvg.
("pango" ,pango-1.42)
("libcroco" ,libcroco)
("bzip2" ,bzip2)
("libgsf" ,libgsf)
("libxml2" ,libxml2)))
(propagated-inputs
;; librsvg-2.0.pc refers to all of that.
`(("cairo" ,cairo)
("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)))
(home-page "https://wiki.gnome.org/LibRsvg")
(synopsis "Render SVG files using Cairo")
(description
"Librsvg is a C library to render SVG files using the Cairo 2D graphics
library.")
(license license:lgpl2.0+)))
(define-public librsvg-next
(package
(inherit librsvg)
(name "librsvg")
(version "2.46.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/librsvg/"
(version-major+minor version) "/"
"librsvg-" version ".tar.xz"))
(sha256
(base32
"0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "vendor")
;; Don't demand an exact version for string_cache
(substitute* "rsvg_internals/Cargo.toml"
(("\"=") "\""))
#t))))
(build-system cargo-build-system)
(arguments
`(#:modules ((guix build cargo-build-system)
(guix build utils)
((guix build gnu-build-system) #:prefix gnu:))
#:vendor-dir "vendor"
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.7)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
("rust-cssparser" ,rust-cssparser-0.25)
("rust-data-url" ,rust-data-url-0.1)
("rust-downcast-rs" ,rust-downcast-rs-1.1)
("rust-encoding" ,rust-encoding-0.2)
("rust-float-cmp" ,rust-float-cmp-0.5)
("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
("rust-gio" ,rust-gio-0.7)
("rust-gio-sys" ,rust-gio-sys-0.9)
("rust-glib" ,rust-glib-0.8)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-itertools" ,rust-itertools-0.8)
("rust-language-tags" ,rust-language-tags-0.2)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-locale-config" ,rust-locale-config-0.3)
("rust-markup5ever" ,rust-markup5ever-0.9)
("rust-nalgebra" ,rust-nalgebra-0.18)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-pkg-config" ,rust-pkg-config-0.3)
("rust-pango" ,rust-pango-0.7)
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-pangocairo" ,rust-pangocairo-0.8)
("rust-phf" ,rust-phf-0.7)
("rust-rayon" ,rust-rayon-1.3)
("rust-rctree" ,rust-rctree-0.3)
("rust-string-cache" ,rust-string-cache-0.7)
("rust-regex" ,rust-regex-1.3)
("rust-url" ,rust-url-2.1)
("rust-xml-rs" ,rust-xml-rs-0.8))
#:cargo-development-inputs
(("rust-cairo-rs" ,rust-cairo-rs-0.7)
("rust-criterion" ,rust-criterion-0.2))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'prepare-for-build
(lambda _
;; In lieu of #:make-flags
(setenv "CC" "gcc")
;; Something about the build environment resists building
;; successfully with the '--locked' flag.
(substitute* '("Makefile.am"
"Makefile.in")
(("--locked") ""))
#t))
(add-before 'configure 'pre-configure
(lambda _
(substitute* "gdk-pixbuf-loader/Makefile.in"
;; By default the gdk-pixbuf loader is installed under
;; gdk-pixbuf's prefix. Work around that.
(("gdk_pixbuf_moduledir = .*$")
(string-append "gdk_pixbuf_moduledir = "
"$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
"loaders\n"))
;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
(("gdk_pixbuf_cache_file = .*$")
"gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
#t))
(add-after 'configure 'gnu-configure
(assoc-ref gnu:%standard-phases 'configure))
;(lambda* (#:key outputs #:allow-other-keys)
; ((assoc-ref gnu:%standard-phases 'configure)
; #:outputs outputs
; #:configure-flags ("--disable-static"
; "--enable-vala"))))
(add-after 'configure 'dont-vendor-self
(lambda* (#:key vendor-dir #:allow-other-keys)
;; Don't keep the whole tarball in the vendor directory
(delete-file-recursively
(string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
#t))
(replace 'build
(assoc-ref gnu:%standard-phases 'build))
(replace 'check
(lambda* args
((assoc-ref gnu:%standard-phases 'check)
#:test-target "check")))
(replace 'install
(assoc-ref gnu:%standard-phases 'install))
(add-before 'check 'remove-failing-tests
(lambda _
(with-directory-excursion "tests/fixtures/reftests"
(for-each delete-file
'(;; The images produced by these tests differ slightly
;; from their reference counterparts due to differences
;; in the build environment (missing fonts, etc). See
;; <tests/README.md> for details.
;; These fail on x86_64.
"svg1.1/coords-viewattr-02-b.svg"
"svg1.1/filters-composite-04-f.svg"
"svg1.1/filters-image-01-b.svg"
"svg1.1/filters-conv-02-f.svg"
"svg1.1/filters-conv-04-f.svg"
;; This test fails on i686:
"svg1.1/masking-path-04-b.svg"
;; This test fails on armhf:
"svg1.1/masking-mask-01-b.svg"
;; This test fails on aarch64:
"bugs/777834-empty-text-children.svg")))
#t)))))
(license license:lgpl2.1+)))
(define-public libidl
(package
(name "libidl")
(version "0.8.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libIDL/"
(version-major+minor version) "/"
"libIDL-" version ".tar.bz2"))
(sha256
(base32
"08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
(build-system gnu-build-system)
(inputs `(("glib" ,glib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("flex" ,flex)
("bison" ,bison)))
(home-page "http://freecode.com/projects/libidl")
(synopsis "Create trees of CORBA Interface Definition Language files")
(description "Libidl is a library for creating trees of CORBA Interface
Definition Language (idl) files, which is a specification for defining
portable interfaces. libidl was initially written for orbit (the orb from the
GNOME project, and the primary means of libidl distribution). However, the
functionality was designed to be as reusable and portable as possible.")
(properties `((upstream-name . "libIDL")))
(license license:lgpl2.0+)))
(define-public orbit2
(package
(name "orbit2")
(version "2.14.19")
(source (origin
(method url-fetch)
(uri (let ((upstream-name "ORBit2"))
(string-append "mirror://gnome/sources/" upstream-name "/"
(version-major+minor version) "/"
upstream-name "-" version ".tar.bz2")))
(sha256
(base32
"0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
(build-system gnu-build-system)
(arguments
`(;; The "timeout-server" test hangs when run in parallel.
#:parallel-tests? #f
#:configure-flags
'(;; We don't need static libraries, plus they don't build reproducibly
;; (non-deterministic ordering of .o files in the archive.)
"--disable-static"
;; The programmer kindly gives us a hook to turn off deprecation
;; warnings ...
"DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
;; ... which they then completly ignore !!
#:phases
(modify-phases %standard-phases
(add-before 'configure 'ignore-deprecations
(lambda _
(substitute* "linc2/src/Makefile.in"
(("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
#t)))))
(inputs `(("glib" ,glib)
("libidl" ,libidl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://projects.gnome.org/orbit2/")
(synopsis "CORBA 2.4-compliant Object Request Broker")
(description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
featuring mature C, C++ and Python bindings.")
;; Licence notice is unclear. The Web page simply say "GPL" without giving
;; a version. SOME of the code files have licence notices for GPLv2+.
;; The tarball contains files of the text of GPLv2 and LGPLv2.
(license license:gpl2+)
(properties `((upstream-name . "ORBit2")))))
(define-public libbonobo
(package
(name "libbonobo")
(version "2.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version)
"/" name "-" version ".tar.bz2"))
(sha256
(base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
(patches (search-patches
"libbonobo-activation-test-race.patch"))))
(build-system gnu-build-system)
(arguments
;; The programmer kindly gives us a hook to turn off deprecation warnings ...
`(#:configure-flags
'("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
;; ... which they then completly ignore !!
#:phases
(modify-phases %standard-phases
(add-before 'configure 'ignore-deprecations
(lambda _
(substitute* "activation-server/Makefile.in"
(("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
#t)))
;; There's apparently a race condition between the server stub
;; generation and linking of the example under 'samples/echo' that can
;; lead do undefined references when building in parallel, as reported
;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
;; Thus, disable parallel builds.
#:parallel-build? #f))
(inputs `(("popt" ,popt)
("libxml2" ,libxml2)))
;; The following are Required by the .pc file
(propagated-inputs
`(("glib" ,glib)
("orbit2" ,orbit2)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; for glib-genmarshal, etc.
("flex" ,flex)
("bison" ,bison)))
(home-page "https://developer.gnome.org/libbonobo/")
(synopsis "Framework for creating reusable components for use in GNOME applications")
(description "Bonobo is a framework for creating reusable components for
use in GNOME applications, built on top of CORBA.")
;; Licence not explicitly stated. Source files contain no licence notices.
;; Tarball contains text of both GPLv2 and LGPLv2
;; GPLv2 covers both conditions
(license license:gpl2+)))
(define-public gconf
(package
(name "gconf")
(version "3.2.6")
(source (origin
(method url-fetch)
(uri
(let ((upstream-name "GConf"))
(string-append "mirror://gnome/sources/" upstream-name "/"
(version-major+minor version) "/"
upstream-name "-" version ".tar.xz")))
(sha256
(base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
(build-system gnu-build-system)
(inputs `(("dbus-glib" ,dbus-glib)
("libxml2" ,libxml2)))
(propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
("orbit2" ,orbit2)))
(native-inputs
`(("intltool" ,intltool)
("glib" ,glib "bin") ; for glib-genmarshal, etc.
("pkg-config" ,pkg-config)))
(home-page "https://projects.gnome.org/gconf/")
(synopsis "Store application preferences")
(description "Gconf is a system for storing application preferences. It
is intended for user preferences; not arbitrary data storage.")
(license license:lgpl2.0+)
(properties '((upstream-name . "GConf")))))
(define-public gnome-mime-data
(package
(name "gnome-mime-data")
(version "2.18.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
("intltool" ,intltool)))
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'configure 'use-our-intltool
(lambda _
;; Do not use the bundled intltool commands, which lack
;; the "dotless @INC" fixes of our 'intltool' package.
(substitute* (find-files "." "^Makefile$")
(("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
(string-append "INTLTOOL_" tool " = intltool-"
(string-downcase tool) "\n")))
#t)))))
(home-page "https://www.gnome.org")
(synopsis "Base MIME and Application database for GNOME")
(description "GNOME Mime Data is a module which contains the base MIME
and Application database for GNOME. The data stored by this module is
designed to be accessed through the MIME functions in GnomeVFS.")
(license license:gpl2+)))
(define-public gnome-vfs
(package
(name "gnome-vfs")
(version "2.24.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'ignore-deprecations
(lambda _
(substitute* '("libgnomevfs/Makefile.in"
"daemon/Makefile.in")
(("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
#t))
(add-before 'configure 'patch-test-async-cancel-to-never-fail
(lambda _
(substitute* "test/test-async-cancel.c"
(("EXIT_FAILURE") "77"))
#t)))))