aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/specifications.scm
blob: b4b59ea0f608fa2a98b5c317c8b1372fe848cbbb (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; 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 specifications)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix gexp)
  #:use-module (guix utils)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module (guix build-system copy))

(define-public specification-ipld
  (let ((commit "84a5cc6c168314a26be0d447c26fe76e46ce2a42")
        (revision "0"))
    (package
      (name "specification-ipld")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/ipld/ipld")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0avgjp4hjkh4jmsxx09vnwi74rax6409k28h29jwfl95v42h6yyl"))))
      (build-system copy-build-system)
      (arguments
       '(#:install-plan '(("./specs/schemas" "share/ipld/specs/"))
         #:phases (modify-phases %standard-phases
                    (delete 'strip))))
      (home-page "https://ipld.io/")
      (synopsis "InterPlanetary Linked Data")
      (description
       "This package provides specification schemas of
@acronym{InterPlanetary Linked Data, IPLD} which may be used for the test
suites of application implementing the standard.")
      ;; This library is dual-licensed under either of Apache 2.0 or MIT
      ;; terms.
      (license (list license:expat license:asl2.0)))))

(define-public specification-multibase
  (let ((commit "4c8344e37852773de155f587dcf5897771b3fc19")
        (revision "1"))
    (package
      (name "specification-multibase")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/multiformats/multibase")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0lz4kdysa6nx7wf1i59647w7dgm344xpvfnsac3pfk2qdky2kq8b"))))
      (build-system copy-build-system)
      (arguments
       '(#:install-plan
         '(("." "share/multibase/"))))
      (home-page "https://github.com/multiformats/multibase")
      (synopsis "Self identifying base encodings")
      (description
       "Multibase is a protocol for disambiguating the encoding of
base-encoded (e.g., @code{base32}, @code{base36}, @code{base64}, @code{base58}, etc.)
binary appearing in text.")
      (license (list license:expat license:cc-by-sa3.0)))))

(define-public specification-multicodec
  (let ((commit "36789e0856be22fa02f4dc55582ec670b2b4318b")
        (revision "0"))
    (package
      (name "specification-multicodec")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/multiformats/multicodec")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0dyawicg8q4f8g6xj5bsj5l3c8rb8mrafjkrabc6a3p65845wp2r"))))
      (build-system copy-build-system)
      (arguments
       '(#:install-plan '(("." "share/multicodec/"))
         #:phases (modify-phases %standard-phases
                    (delete 'strip))))
      (home-page "https://github.com/multiformats/multicodec")
      (synopsis "Compact self-describing codecs")
      (description
       "Multicodec is an agreed-upon codec table.  It is designed for use in binary
representations, such as keys or identifiers (i.e @url{https://github.com/ipld/cid,
CID}).")
      (license (list license:expat license:cc-by-sa3.0)))))

(define-public specification-multihash
  (let ((commit "931febb97565395b1b6cd39ac677799df265a9e7")
        (revision "0"))
    (package
      (name "specification-multihash")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/multiformats/multihash")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "1axr35z3iz061fng0170bh873vy20rj2mspznycxm1qkrkrh7p5j"))))
      (build-system copy-build-system)
      (arguments
       '(#:install-plan '(("." "share/multihash/"))
         #:phases (modify-phases %standard-phases
                    (delete 'strip))))
      (home-page "https://github.com/multiformats/multihash")
      (synopsis "Self-describing hashes")
      (description
       "Multihash is a protocol for differentiating outputs from various
well-established cryptographic hash functions, addressing size + encoding
considerations.")
      (license (list license:expat license:cc-by-sa3.0)))))

(define-public specification-runtime-spec
  (package
    (name "specification-runtime-spec")
    (version "1.2.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/opencontainers/runtime-spec")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "102smpg308dq984f6zkjzwq5jz8jbfswiwfwxcrp1hh197jydxf9"))))
    (build-system copy-build-system)
    (outputs '("out" "golang-src"))
    (arguments
     (list
      #:install-plan
      #~'(("./schema" "share/runtime-spec/schema")
          ("." "share/doc/" #:include-regexp ("\\.md$")))
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'install 'copy-src
            (lambda _
              (copy-recursively "specs-go"
               (string-append #$output:golang-src
                              "/src/github.com"
                              "/opencontainers/runtime-spec/specs-go")))))))
    (home-page "https://opencontainers.org/")
    (synopsis "OCI Runtime Specification")
    (description
     "The Open Container Initiative develops specifications for standards on
Operating System process and application containers.  This package provides
documentation, schemas and source of Golang module.")
    (license license:asl2.0)))

(define-public specification-specreduce-data
  (let ((commit "dcba1c601348ee3a5797ae2d84a068d83393058e")
        (revision "0"))
    (package
      (name "specification-specreduce-data")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/astropy/specreduce-data")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "1c6mrjfykkfbbyg489h7czr65nz6bcb3gszz5xa2cg2ccs00m8ii"))))
      (build-system copy-build-system)
      (arguments
       '(#:install-plan '(("specreduce_data/" "share/specreduce_data//"))
         #:phases (modify-phases %standard-phases
                    (delete 'strip))))
      (home-page "https://specreduce.readthedocs.io/")
      (synopsis "Reference and calibration data for the reducing optical/IR spectra")
      (description
       "This package provides a general reference and calibration data for
spectroscopic data reduction (e.g. standard star spectra, atmospheric
extinction curves, line lists for calibration lamps).")
      (license license:bsd-3))))
on 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+))) ;;; Minimal variant, used to break a cycle with Inkscape. (define-public libcloudproviders-minimal (package (name "libcloudproviders-minimal") (version "0.3.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libcloudproviders/" (version-major+minor version) "/libcloudproviders-" version ".tar.xz")) (sha256 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:configure-flags (list "-Dintrospection=false" "-Denable-gtk-doc=false" "-Dvapigen=false"))) (native-inputs (list `(,glib "bin") pkg-config vala)) (inputs (list glib glib-networking)) (synopsis "Cloudproviders Integration API") (description "Libcloudproviders is a DBus API that allows cloud storage sync clients to expose their services. Clients such as file managers and desktop environments can then provide integrated access to the cloud providers services.") (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/") (license license:lgpl3+))) (define-public libcloudproviders (package/inherit libcloudproviders-minimal (name "libcloudproviders") (outputs (cons "doc" (package-outputs libcloudproviders-minimal))) (arguments (substitute-keyword-arguments (package-arguments libcloudproviders-minimal) ((#:configure-flags _) '(list "-Denable-gtk-doc=true")) ;false by default ((#:phases phases '%standard-phases) `(modify-phases %standard-phases (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (doc (assoc-ref outputs "doc"))) (mkdir-p (string-append doc "/share")) (rename-file (string-append out "/share/gtk-doc") (string-append doc "/share/gtk-doc"))))))))) (native-inputs (append `(("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc/stable)) (package-native-inputs libcloudproviders-minimal))))) (define-public libgrss (package (name "libgrss") (version "0.7.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7")) (patches (search-patches "libgrss-CVE-2016-2001.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments (list #:configure-flags #~(list "--enable-gtk-doc" (string-append "--with-html-dir=" #$output "/share/gtk-doc/html")))) (native-inputs (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable pkg-config)) (propagated-inputs (list glib libsoup-minimal-2 libxml2)) (synopsis "Glib library for feeds") (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom, and other formats.") (home-page "https://wiki.gnome.org/Projects/Libgrss") (license license:lgpl3+))) (define-public gnome-js-common (package (name "gnome-js-common") (version "0.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--disable-static") #:phases (modify-phases %standard-phases ,@(if (or (target-riscv64?) (target-ppc64le?) (target-aarch64?)) `((add-after 'unpack 'update-config-scripts (lambda* (#:key native-inputs inputs #:allow-other-keys) (for-each (lambda (file) (install-file (search-input-file (or native-inputs inputs) (string-append "/bin/" file)) ".")) '("config.guess" "config.sub"))))) '())))) (native-inputs `(,@(if (or (target-riscv64?) (target-ppc64le?) (target-aarch64?)) `(("config" ,config)) `()) ("gettext" ,gettext-minimal) ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (synopsis "Common JS Modules") (description "GNOME-JS-Common provides common modules for GNOME JavaScript bindings.") (home-page "https://wiki.gnome.org/Projects/Seed") (license license:gpl3+))) (define-public seed (package (name "seed") (version "3.8.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0")) (patches (search-patches "seed-webkit.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments (list #:configure-flags #~(list "--disable-static" "--enable-xorg-module" (string-append "--with-html-dir=" #$output:doc "/share/gtk-doc/html") "--with-webkit=4.0") #:phases #~(modify-phases %standard-phases ;; The seed-webkit.patch patches configure.ac. ;; So the source files need to be re-bootstrapped. (add-after 'unpack 'trigger-bootstrap (lambda _ (for-each delete-file (list "configure" "Makefile.in")))) (add-after 'unpack 'patch-tests (lambda* (#:key outputs #:allow-other-keys) (substitute* (find-files "." "\\.js$") (("#!/usr/bin/env seed") (string-append "#!" (getcwd) "/src/seed")))))))) (native-inputs (list autoconf automake docbook-xml-4.1.2 gettext-minimal gobject-introspection gtk-doc/stable intltool libtool pkg-config)) (inputs (list cairo dbus dbus-glib gnome-js-common gtk+ gtk+-2 libffi libxml2 mpfr readline sqlite libxscrnsaver)) (propagated-inputs (list glib webkitgtk-with-libsoup2)) (synopsis "GObject JavaScriptCore bridge") (description "Seed is a library and interpreter, dynamically bridging (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the GNOME platform. It serves as something which enables you to write standalone applications in JavaScript, or easily enable your application to be extensible in JavaScript.") (home-page "https://wiki.gnome.org/Projects/Seed") (license license:lgpl2.0+))) (define-public libdmapsharing (package (name "libdmapsharing") (version "3.9.10") (source (origin (method url-fetch) (uri (string-append "https://www.flyn.org/projects/" name "/" name "-" version ".tar.gz")) (sha256 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments (list #:tests? #f ; Tests require networking. #:configure-flags #~(list "--disable-static" (string-append "--with-html-dir=" #$output:doc "/share/gtk-doc/html")))) (native-inputs (list check docbook-xml-4.3 gobject-introspection pedansee pkg-config vala)) (inputs (list avahi (librsvg-for-system) libgee gst-plugins-base gtk+)) (propagated-inputs (list glib glib-networking gstreamer libsoup-minimal-2)) (synopsis "Media management library") (description "Libdmapsharing is a library which allows programs to access, share and control the playback of media content using DMAP (DAAP, DPAP & DACP). It is written in C using GObject and libsoup.") (home-page "https://launchpad.net/gtx") (license license:lgpl2.1+))) (define-public gtx (package (name "gtx") (version "0.2.2") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/gtx/trunk/" version "/+download/gtx-" version ".tar.gz")) (sha256 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments `(#:configure-flags (list "--disable-static" "--enable-gtk-doc" (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html")))) (native-inputs (list gobject-introspection gtk-doc/stable pkg-config)) (propagated-inputs (list glib)) (synopsis "GLib Testing Framework") (description "GTX is a small collection of convenience functions intended to enhance the GLib testing framework. With specific emphasis on easing the pain of writing test cases for asynchronous interactions.") (home-page "https://launchpad.net/gtx") (license license:lgpl2.1+))) (define-public dee (package (name "dee") (version "1.2.7") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/dee/1.0/" version "/+download/dee-" version ".tar.gz")) (sha256 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v")) (patches (search-patches "dee-vapi.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments (list #:configure-flags #~(list "--disable-maintainer-flags" (string-append "--with-pygi-overrides-dir=" #$output "/lib/python" #$(version-major+minor (package-version python)) "/site-packages/gi/overrides") (string-append "--with-html-dir=" #$output "/share/gtk-doc/html")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/test-icu.c" (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\",\ Fixture, 0,") "") (("setup, test_ascii_folder, teardown\\);") "")))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running dbus-daemon. (system "dbus-daemon &") ;; For missing '/etc/machine-id'. (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs (list dbus dbus-test-runner docbook-xml-4.3 gobject-introspection gtk-doc/stable ;; Would only be required by configure flag "--enable-extended-tests". ;;gtx pkg-config python-pygobject python-wrapper vala-0.52)) (inputs (list icu4c)) (propagated-inputs (list glib)) (synopsis "Model to synchronize multiple instances over DBus") (description "Dee is a library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus. It also consists of utility objects which extend DBus allowing for peer-to-peer discoverability of known objects without needing a central registrar.") (home-page "https://launchpad.net/dee") (license ;; Dual-licensed (list license:lgpl3+ license:gpl3+)))) (define-public zeitgeist (package (name "zeitgeist") (version "1.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch")))) (build-system glib-or-gtk-build-system) (arguments (list #:configure-flags #~(list "--enable-explain-queries" "--enable-fts" "--enable-docs") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "test/direct/Makefile.am" ((" log-test ") "")) (substitute* "test/c/Makefile.am" ((" test-log ") "")))) (add-before 'bootstrap 'remove-autogen-script (lambda _ ;; To honor `autoreconf -vif` by build-system. (delete-file "autogen.sh")))))) (native-inputs (list autoconf automake docbook-xml-4.3 gettext-minimal gobject-introspection gtk-doc/stable libtool pkg-config vala xorg-server-for-tests)) (inputs (list dee gtk+ json-glib sqlite telepathy-glib python-wrapper python-rdflib xapian)) (propagated-inputs (list glib)) (synopsis "Desktop Activity Logging") (description "Zeitgeist is a service which logs the users’s activities and events, anywhere from files opened to websites visited and conversations. It makes this information readily available for other applications to use. It is able to establish relationships between items based on similarity and usage patterns.") (home-page "https://zeitgeist.freedesktop.org/") (license ;; Dual-licensed (list license:lgpl2.1+ license:gpl2+)))) (define-public gnome-recipes (package (name "gnome-recipes") (version "2.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/GNOME/recipes") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache (lambda _ (substitute* "meson_post_install.py" (("gtk-update-icon-cache") (which "true"))))) (add-after 'unpack 'unpack-libgd (lambda _ (copy-recursively #$(this-package-native-input "libgd-checkout") "subprojects/libgd")))))) (inputs (list glib gnome-autoar gnome-online-accounts gspell gtk+ json-glib libcanberra libsoup rest)) (native-inputs (list desktop-file-utils ;for update-desktop-database gettext-minimal `(,glib "bin") (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/GNOME/libgd") (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0"))) (file-name "libgd-checkout") (sha256 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))) itstool pkg-config python)) (home-page "https://wiki.gnome.org/Apps/Recipes") (synopsis "Discover recipes for preparing food") (description "GNOME Recipes helps you discover what to cook today, tomorrow, the rest of the week and for special occasions.") (license license:gpl3+))) (define-public gnome-photos (package (name "gnome-photos") (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "17l2bkdg8iracgw2mgx5vqfs3d6cdvd22mfdqq4jiinkjw1j33p7")))) (build-system meson-build-system) (arguments (list #:disallowed-references (list (this-package-native-input "git-minimal")) #:glib-or-gtk? #t #:configure-flags #~(list "-Ddogtail=false" ; Not available ;; Required for RUNPATH validation. (string-append "-Dc_link_args=-Wl,-rpath=" #$output "/lib/gnome-photos")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-gtk-update-icon-cache (lambda _ (setenv "DESTDIR" "/"))) (add-after 'install 'wrap-gnome-photos (lambda* (#:key outputs #:allow-other-keys) (wrap-program (search-input-file outputs "bin/gnome-photos") `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH"))))))))) (native-inputs (list dbus desktop-file-utils gettext-minimal git-minimal/pinned `(,glib "bin") gobject-introspection gsettings-desktop-schemas itstool pkg-config)) (inputs (list babl bash-minimal cairo gegl-0.4.44 geocode-glib gexiv2 gfbgraph gnome-online-accounts gnome-online-miners grilo grilo-plugins gtk+ libdazzle libgdata libhandy libjpeg-turbo libportal libpng (librsvg-for-system) python-pygobject rest tracker tracker-miners)) (synopsis "Access, organize and share your photos on GNOME desktop") (description "GNOME Photos is a simple and elegant replacement for using a file manager to deal with photos. Enhance, crop and edit in a snap. Seamless cloud integration is offered through GNOME Online Accounts.") (home-page "https://wiki.gnome.org/Apps/Photos") (license license:gpl3+))) (define-public gnome-music (package (name "gnome-music") (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0l8xiw1nv8agskrpgiyr7kinna3gms1hv5d64hh4fqifaz4smlcv")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false")))) (add-after 'install 'wrap-gnome-music (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (pylib (string-append out "/lib/python" #$(version-major+minor (package-version (this-package-input "python"))) "/site-packages"))) (wrap-program (string-append out "/bin/gnome-music") `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) `("GST_PLUGIN_SYSTEM_PATH" suffix (,(getenv "GST_PLUGIN_SYSTEM_PATH"))) `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH"))) `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))))))))) (native-inputs (list desktop-file-utils gettext-minimal `(,glib "bin") gobject-introspection itstool pkg-config)) (inputs (list bash-minimal gnome-online-accounts grilo grilo-plugins gst-plugins-base gst-plugins-good gstreamer gtk gvfs json-glib libadwaita libdazzle libmediaart libsoup python-pycairo python-pygobject python tracker tracker-miners)) (synopsis "Simple music player for GNOME desktop") (description "GNOME Music is the new GNOME music playing application that aims to combine an elegant and immersive browsing experience with simple and straightforward controls.") (home-page "https://wiki.gnome.org/Apps/Music") (license license:gpl2+))) (define-public portablexdr (package (name "portablexdr") (version "4.9.1") (source (origin (method url-fetch) (uri (string-append "https://people.redhat.com/~rjones/" name "/files/" name "-" version ".tar.gz")) (sha256 (base32 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w")))) (build-system gnu-build-system) (synopsis "External Data Representation Library") (description "PortableXDR is an implementation of External Data Representation (XDR) Library. It is a standard data serialization format, for uses such as computer network protocols. It allows data to be transferred between different kinds of computer systems.") (home-page "https://people.redhat.com/~rjones/portablexdr/") (license (list license:gpl2+ license:lgpl2.1+)))) (define-public tepl (package (name "tepl") (version "6.4.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "08bkp3wrvmcks0082lfw4a0ian9c6j68rdb43px0bkyhd43b4mjy")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-problematic-tests (lambda _ ;; Only keep unit tests, as the interactive tests have ;; other dependencies. (substitute* "tests/meson.build" ((".*'interactive-tests'.*") "")))) (add-before 'check 'start-xserver (lambda _ (system "Xvfb :1 &") (setenv "DISPLAY" ":1")))))) (native-inputs (list `(,glib "bin") gobject-introspection gtk-doc libxml2 pkg-config xorg-server-for-tests)) (inputs (list uchardet)) (propagated-inputs ;; These are all required by tepl6.pc. (list amtk glib gsettings-desktop-schemas gtk+ gtksourceview-4)) (synopsis "Text editor product line") (description "Tepl is a library that eases the development of GtkSourceView-based text editors and IDEs.") (home-page "https://wiki.gnome.org/Projects/Tepl") (license license:lgpl2.1+))) (define-public krb5-auth-dialog (package (name "krb5-auth-dialog") (version "3.26.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x")))) (build-system glib-or-gtk-build-system) (native-inputs (list intltool itstool libxml2 pkg-config python-wrapper)) (inputs (list glib gtk+ libnotify mit-krb5 network-manager)) (synopsis "Popup dialogs for Kerberos 5") (description "krb5-auth-dialog is a simple dialog that monitors Kerberos tickets, and pops up a dialog when they are about to expire.") (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog") (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 (list intltool pkg-config)) (inputs (list glib gtk+ 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 metacity (package (name "metacity") (version "3.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/metacity/" (version-major+minor version) "/" "metacity-" version ".tar.xz")) (sha256 (base32 "1ifnbpiflaw72m0flysa5qy44c1axd2rr9zcparz5210c7vlkfh0")))) (build-system glib-or-gtk-build-system) (native-inputs (list gettext-minimal libtool autoconf automake pkg-config (list glib "bin") grep)) (inputs (list libcanberra zenity libsm libice gtk+ pango gsettings-desktop-schemas gobject-introspection libgtop libxcomposite libxcursor libxfixes libxdamage libxext libxpresent libxres libxrender libxinerama libx11 libxrandr)) (home-page "https://gitlab.gnome.org/GNOME/metacity") (synopsis "Simple compositing window manager") (description "Metacity is a window manager with a focus on simplicity and usability rather than novelties or gimmicks. Its author has characterized it as a \"boring window manager for the adult in you.\"") (license license:gpl2+))) (define-public mm-common (package (name "mm-common") (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/mm-common/" (version-major+minor version) "/" "mm-common-" version ".tar.xz")) (sha256 (base32 "1rv211kalivq8zlq7s7bd3dhm4f33jhrwf1vxrfbrnmwgl1lcp5m")))) (build-system meson-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch (lambda* (#:key inputs #:allow-other-keys) (substitute* "util/mm-common-prepare.in" (("ln") (search-input-file inputs "/bin/ln")) (("cp") (search-input-file inputs "/bin/cp")) (("sed") (search-input-file inputs "/bin/sed")) (("cat") (search-input-file inputs "/bin/cat")))))))) (native-inputs (list coreutils gettext-minimal pkg-config sed)) (inputs (list 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 "3.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1l9qs70yvwi9r8ph081mrsdy412kk0m9l9pgy77hsc2hdp8c4bir")))) (build-system meson-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-udev-rules-directory (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (rules (string-append out "/lib/udev/rules.d"))) (substitute* "data/meson.build" (("udev\\.get_pkgconfig_variable\\('udevdir'\\)") (format #f "'~a'" rules)))))) (add-before 'check 'set-temporary-home ;; Tests want to write into HOME. (lambda _ (setenv "HOME" "/tmp")))))) (native-inputs (list docbook-xml-4.3 gettext-minimal `(,glib "bin") gsettings-desktop-schemas gtk-doc/stable pkg-config)) (inputs (list avahi libgudev)) (propagated-inputs ;; These inputs are required by the pkg-config file. (list glib libsoup libxml2)) (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.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx")))) (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 (list adwaita-icon-theme appstream-glib colord-gtk exiv2 gnome-desktop libcanberra libexif libtiff libxrandr libxtst libxxf86vm vte 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")) (patches (search-patches "gnome-online-miners-tracker-3.patch")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-configure (lambda _ (substitute* "configure.ac" (("AX_CHECK_ENABLE_DEBUG.*") "")))) (add-after 'fix-configure 'autoreconf (lambda _ (invoke "autoreconf" "-vif")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gtk+:bin" ,gtk+ "bin") ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs `(("gnome-online-accounts" ,gnome-online-accounts) ("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.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0iil7wgix0nzhf3i2w6g1wjqly49r9rsffca97ai9kr2vfpvbv9g")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list "-Dgtk_doc=true" ;; Manpages are built using pandoc. #$@(if (this-package-native-input "pandoc") #~("-Dmanpages=true") #~("-Dmanpages=false"))))) (native-inputs (append (if (supported-package? pandoc) (list pandoc) '()) (list gettext-minimal `(,glib "bin") gi-docgen gobject-introspection pkg-config vala))) (inputs (list gtk)) (propagated-inputs ;; The .pc file "Requires" libsoup. (list libsoup)) (synopsis "GNOME GObject-based API over @acronym{SSDP, Simple Service Discovery Protocol}") (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 gssdp-1.4 (package (inherit gssdp) (name "gssdp") (version "1.4.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "10hm8cgh2p8441xc83kswjgghrrqpzgblvc5523jp0pvayfq8xl6")))) (arguments (list #:configure-flags #~(list "-Dgtk_doc=true"))) (propagated-inputs (modify-inputs (package-propagated-inputs gssdp) (replace "libsoup" libsoup-minimal-2))))) (define-public gupnp (package (name "gupnp") (version "1.6.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0kx0ymsab4x927ir2a5f7mfk9sck5kswbig6n38r4dwbqzl51p69")))) (build-system meson-build-system) (arguments (list #:configure-flags #~'("-Dgtk_doc=true") #:phases #~(modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ ;; Tests require a writable HOME. (setenv "HOME" (getcwd))))))) (native-inputs (list gettext-minimal gi-docgen `(,glib "bin") gobject-introspection gtk-doc/stable pkg-config vala)) (propagated-inputs ;; These libraries are required by the .pc file. (list glib gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’. gssdp libsoup libxml2)) (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-1.4 (package (inherit gupnp) (name "gupnp") (version "1.4.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0vz3ifs8mi3zaz8zj8v27zfkf6xg82y39mcgqspa38jdp01gn3sr")))) (arguments (substitute-keyword-arguments (package-arguments gupnp) ((#:phases phases) #~(modify-phases #$phases (add-after 'unpack 'meson-compatibility (lambda _ (substitute* "subprojects/gssdp-1.2.wrap" (("provides") "provide")))))))) (propagated-inputs (modify-inputs (package-propagated-inputs gupnp) (replace "libsoup" libsoup-minimal-2) (replace "gssdp" gssdp-1.4))))) (define-public gupnp-dlna (package (name "gupnp-dlna") (version "0.12.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1rj8j2nz835slqs09bfp6hmyyf6v5azwjzin7v9jhmmwhmpvjlrx")))) (build-system meson-build-system) (native-inputs (list gettext-minimal `(,glib "bin") gobject-introspection gtk-doc/stable libxml2 pkg-config vala)) (inputs (list gstreamer gupnp)) (propagated-inputs (list gst-plugins-base 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.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0kry7arwmvs8b4175wia3l0s02ap1shq68f29g2xjrhc9g6f175p")))) (build-system meson-build-system) (native-inputs (list gettext-minimal `(,glib "bin") gobject-introspection gtk-doc/stable libxml2 pkg-config vala)) (inputs (list gtk+ 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.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "05vzcxm8fqizz77qzdxlsqb5lsqzc4681sy8z63haf6vswjm1g63")))) (build-system meson-build-system) (native-inputs (list `(,glib "bin") gettext-minimal gobject-introspection pkg-config vala)) (inputs (list gdk-pixbuf)) (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 "44.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-initial-setup/" (version-major version) "/gnome-initial-setup-" version ".tar.xz")) (sha256 (base32 "0y61y3rvz1hqmhjxl9mjwxcdvdxslyaghajav6l79a9yxi859508")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list "-Dsystemd=false") #:glib-or-gtk? #t #: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. (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c" (("\"gkbd-keyboard-display") (string-append "\"" (search-input-file inputs "bin/gkbd-keyboard-display"))))))))) (native-inputs (list gettext-minimal `(,glib "bin") gobject-introspection pkg-config)) (inputs (list accountsservice elogind gdm geoclue gnome-desktop gnome-online-accounts gstreamer ibus json-glib mit-krb5 libadwaita libgnomekbd libgweather4 libnma libpwquality libsecret network-manager packagekit polkit rest-next upower webkitgtk)) (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 "43.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1kiq2n39yz7szcf7wrs5vhd2hdn04zx1pxgp7qskycaq0nm0dwqd")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:configure-flags #~(list "-Dsystemduserunitdir=/tmp/empty"))) (native-inputs (list gettext-minimal `(,glib "bin") gobject-introspection `(,gtk "bin") pkg-config yelp-tools)) (inputs (list glib gtk)) (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 "44.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1sa3x8w8fhjj641yx5praabkqxfdsnafqnlb8jx2g451mvh2y03c")))) (build-system meson-build-system) (arguments (list #: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")))))))))) (native-inputs (list `(,glib "bin") gettext-minimal gobject-introspection pkg-config)) (inputs (list bash-minimal clutter clutter-gst clutter-gtk evince ; For file previewing. freetype gdk-pixbuf gjs gst-plugins-base gstreamer gtksourceview-4 harfbuzz libepoxy libmusicbrainz libxml2 neon webkitgtk-for-gtk3)) (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.42.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "17yqnw802vp92cs7ci7kjrixbj446gcriai2dggal4375qnn0cqi")))) (build-system meson-build-system) (arguments ;; Disable the tracker plugin. (list #:configure-flags #~(list "-Dplugins=external,gst-launch,lms,media-export, mpris,playbin,ruih,tracker3"))) (native-inputs (list gettext-minimal `(,glib "bin") ; for glib-compile-schemas, etc. gobject-introspection gtk-doc/stable pkg-config python vala docbook-xml docbook-xsl libxslt)) (inputs (list gdk-pixbuf gssdp gstreamer gst-plugins-base gst-editing-services gtk+ gupnp gupnp-av gupnp-dlna json-glib libgee libmediaart libsoup libxslt libunistring tracker)) (propagated-inputs ;; The .pc files require.private gmodule-2.0 (list glib)) (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.10.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1avdsw1l61gwr29lzvlr4dh3qz6ypsc3xvfahrcprlqa34mzp9jk")))) (build-system meson-build-system) (arguments ;; GTK 4.x depends on Rust (indirectly) so pull it only on platforms ;; where it is supported. (list #:configure-flags (if (supported-package? gtk) #~(list "-Dlibnma_gtk4=true") #~(list "-Dlibnma_gtk4=false")) #:phases #~(modify-phases %standard-phases ;; We follow upstream's recommendation at ;; https://gitlab.gnome.org/GNOME/libnma/-/commit/9166164387b0367becbe3400af696f925fef0ab1 (add-after 'install 'delete-org.gnome.nm-applet.gschema (lambda _ (delete-file (string-append #$output "/share/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml"))))))) (native-inputs (list docbook-xml-4.3 gettext-minimal `(,glib "bin") gtk-doc/stable gobject-introspection pkg-config vala)) (inputs (list gcr-3 (if (supported-package? gtk) gtk gtk+) iso-codes/pinned mobile-broadband-provider-info 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.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-menus/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-introspection-install-dir (lambda _ (substitute* "libmenu/Makefile.in" (("@INTROSPECTION_GIRDIR@") (string-append #$output "/share/gir-1.0/")) (("@INTROSPECTION_TYPELIBDIR@") (string-append #$output "/lib/girepository-1.0/")))))))) (native-inputs (list gettext-minimal glib gobject-introspection 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 "45.2") (source (origin (method url-fetch) (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/" version "/deja-dup-" version ".tar.bz2")) (sha256 (base32 "000cwy1haiglkvn5plmhrs2a1fhpcpw6z4mdzck7ybmky795amza")))) (build-system meson-build-system) (arguments (list #: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/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)))))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) ;; Add duplicity to the search path (wrap-program (string-append (assoc-ref outputs "out") "/bin/deja-dup") `("PATH" ":" prefix (,(dirname (search-input-file inputs "/bin/duplicity")))))))))) (inputs (list bash-minimal duplicity gsettings-desktop-schemas gtk json-glib libadwaita libgpg-error libnotify libsecret libsoup libhandy packagekit python python-pygobject)) (native-inputs (list appstream-glib desktop-file-utils gettext-minimal `(,glib "bin") ;for glib-compile-schemas gobject-introspection `(,gtk "bin") ;for gtk-update-icon-cache itstool pkg-config 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-commander (package (name "gnome-commander") (version "1.16.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" "gnome-commander-" version ".tar.xz")) (sha256 (base32 "1cyh20nz2f81rb6di99idvw4xjn969mjhj3n2q17kzjhlv20079z")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t)) (native-inputs (list desktop-file-utils flex gettext-minimal `(,glib "bin") gobject-introspection googletest `(,gtk+-2 "bin") intltool itstool libtool pkg-config)) (inputs (list gconf glib gtk+-2 libxml2)) (home-page "https://gcmd.github.io/") (synopsis "Two-pane graphical file manager for the GNOME desktop") (description "GNOME Commander is a two-pane graphical file manager using GNOME libraries. It aims to fulfill the demands of more advanced users who like to focus on file management, their work through special applications and running smart commands.") (license license:gpl2+))) (define-public gnome-user-docs (package (name "gnome-user-docs") (version "44.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-user-docs/" (version-major version) "/gnome-user-docs-" version ".tar.xz")) (sha256 (base32 "0ds2mccrgmb4jgw196jjm7xzlvnir8k80g1v55sd4nn00prc1b9g")))) (build-system gnu-build-system) (native-inputs (list gettext-minimal itstool pkg-config 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://wiki.gnome.org/DocumentationProject") (license license:cc-by3.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 since. (let ((commit "b903dd83aa5aab1b41c7864dd5027d1b6a0a190c") (revision "4")) (package (name "dia") (version (git-version "0.97.3" revision 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 "0j5q7whwpzzfsinjryp3g0xh3cyy88drwyr0w8x0666mj6h70h6a")))) (build-system meson-build-system) ;; XXX: Parallel builds may cause: [74/566] [...] ;; fatal error: dia-lib-enums.h: No such file or directory (arguments '(#:parallel-build? #f)) (inputs (list graphene gtk+-2 libxml2 libxslt ;; XXX: PDF plugin fails to build with poppler 21.07.0. ;; poppler python)) (native-inputs (list appstream-glib docbook-xsl `(,glib "bin") gettext-minimal pkg-config)) (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+)))) (define-public libgdata (package (name "libgdata") (version "0.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx")))) (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'check 'set-home-for-tests (lambda _ (setenv "HOME" "/tmp")))))) (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("uhttpmock" ,uhttpmock))) (inputs (list cyrus-sasl glib-networking vala)) (propagated-inputs `(("gcr" ,gcr-3) ("glib" ,glib) ("gnome-online-accounts" ,gnome-online-accounts) ("json-glib" ,json-glib) ("liboauth" ,liboauth) ("libsoup" ,libsoup-minimal-2) ("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.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd")))) (build-system meson-build-system) (native-inputs (list gobject-introspection pkg-config)) (inputs (list gtk+ libjpeg-turbo lcms libtiff)) (propagated-inputs ;; In Requires of libgxps.pc. (list cairo glib 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 "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gnome-characters/" (version-major version) "/gnome-characters-" version ".tar.xz")) (sha256 (base32 "02zm3w43lvsnld3681z9w1428pwdza2gv4k05vwsx461ih15rc85")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-gtk-update-icon-cache (lambda _ (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false") (("update_desktop_database: true") "update_desktop_database: false")))) (add-after 'install 'wrap (lambda* (#:key outputs #:allow-other-keys) ;; GNOME Characters needs Typelib files from GTK and ;; gnome-desktop. (wrap-program (search-input-file outputs "bin/gnome-characters") `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))))))) (native-inputs (list gettext-minimal `(,glib "bin") pkg-config python-minimal)) (inputs (list bash-minimal ;for wrap-program gjs gnome-desktop gtk libadwaita libunistring)) (home-page "https://wiki.gnome.org/Apps/Characters") (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 "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-contacts/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1vbvvv8954j4znczqa41j892rvj36k21ah5f5lwgcsphq4xidlbx")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t ;; FIXME: Cannot build the Valadoc, because both gtk+ and gtk are in the ;; same profile (evolution-data-server propagates both). #:configure-flags #~'("-Ddocs=false") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache (lambda _ (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false"))))))) (native-inputs (list desktop-file-utils docbook-xml docbook-xml-4.2 docbook-xsl gettext-minimal `(,glib "bin") gobject-introspection libxslt pkg-config)) (inputs (list evolution-data-server gnome-desktop gnome-online-accounts gst-plugins-base gtk libadwaita libgee libportal qrencode telepathy-glib vala)) (propagated-inputs (list folks 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 "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0hlxqprraiwnccf98dykbhx80j31c3scdi7i3jy19fl4bms77is2")))) (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'patch-path (lambda* (#:key inputs #:allow-other-keys) (substitute* "libgnome-desktop/gnome-languages.c" (("\"locale\"") (format #f "~s" (search-input-file inputs "bin/locale")))))) (add-before 'configure 'patch-bubblewrap (lambda* (#:key inputs #:allow-other-keys) (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c" (("\"bwrap\",") (string-append "\"" (which "bwrap") "\",")) (("\"--ro-bind\", \"/usr\", \"/usr\",") (string-append "\"--ro-bind\", \"" (%store-directory) "\", \"" (%store-directory) "\",")) (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") "")))) (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 "XDG_CACHE_HOME" "/tmp/xdg-cache") (setenv "XDG_CONFIG_HOME" "/tmp") (setenv "GUIX_LOCPATH" (search-input-directory inputs "lib/locale"))))))) (native-inputs (list `(,glib "bin") ;for gdbus-codegen glibc-locales ;for tests gobject-introspection itstool intltool pkg-config libxml2 xorg-server-for-tests)) (propagated-inputs ;; Required by gnome-desktop-3.0.pc. (list gsettings-desktop-schemas gtk gtk+ iso-codes/pinned libseccomp libx11 xkeyboard-config)) (inputs (list bubblewrap gdk-pixbuf glib libxext libxkbfile 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-disk-utility (package (name "gnome-disk-utility") (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1vx3wyvidjyzr4141p3zrvgx88rp7vwj6n3sf7c3gnvci6bi00q2")))) (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.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false") (("glib_compile_schemas: true") "glib_compile_schemas: false") (("update_desktop_database: true") "update_desktop_database: false"))))))) (native-inputs (list docbook-xml docbook-xsl `(,glib "bin") gettext-minimal pkg-config libxml2 libxslt)) (inputs (list elogind glib appstream-glib gnome-settings-daemon gtk+ libcanberra libdvdread libhandy libnotify libpwquality libsecret udisks)) (home-page "https://gitlab.gnome.org/GNOME/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 "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-font-viewer/" (version-major version) "/gnome-font-viewer-" version ".tar.xz")) (sha256 (base32 "15wzpdbx9wrw4r5l04srw89ak3j3jcmrvpbm27pw53121grisld1")))) (build-system meson-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-post-install-script (lambda _ (substitute* "meson-postinstall.sh" (("update-desktop-database") (which "true"))))) (add-after 'install 'patch-thumbnailer (lambda* (#:key outputs #:allow-other-keys) (substitute* (search-input-file outputs "share/thumbnailers/gnome-font-viewer.thumbnailer") (("gnome-thumbnail-font") (search-input-file outputs "bin/gnome-thumbnail-font")))))))) (native-inputs (list gettext-minimal `(,glib "bin") pkg-config)) (inputs (list glib gnome-desktop gtk libadwaita libxml2)) (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 "4.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "10x3yg0vp22lpib4hfivr7140wn6iv0qha3f46wikaab50lsvslw")))) (build-system meson-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-fatal-warnings-option ;; Otherwise, the gi-docgen tool would fail because of the ;; "Fontconfig error: No writable cache directories" warnings. (lambda _ (substitute* (find-files "." "^meson\\.build$") ((".*'--fatal-warnings',.*") "")))) (add-after 'unpack 'skip-gtk-update-icon-cache (lambda _ (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false")))) (add-before 'check 'pre-check (lambda _ ;; Some tests expect to write to $HOME. (setenv "HOME" "/tmp"))) (replace 'check (lambda* (#:key parallel-tests? tests? #:allow-other-keys) (when tests? (setenv "MESON_TESTTHREADS" (if parallel-tests? (number->string (parallel-job-count)) "1")) ;; Work around the "mock prompter couldn't get session bus ;; address: Cannot spawn a message bus without a machine-id" ;; error by manually creating the session bus via ;; 'dbus-run-session'. (invoke "dbus-run-session" "--" "meson" "test" "-t" "0"))))))) (inputs (list dbus gnupg libgcrypt libsecret)) (native-inputs (list gettext-minimal gi-docgen `(,glib "bin") gobject-introspection gtk-doc libxml2 libxslt openssh pkg-config python-wrapper vala)) ;; GLib and p11-kit are mentioned in gck.pc and gcr.pc ;; GTK is kept for symmetry with gcr-3, which propagates gtk+. (propagated-inputs (list glib gtk p11-kit)) (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 gcr-3 (package (inherit gcr) (name "gcr") (version "3.41.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1dqsgrb62fgmy4w63bjl3b525nil4idrrdcscia1h3isaly0zlds")))) (arguments (substitute-keyword-arguments (package-arguments gcr) ((#:phases phases) #~(modify-phases #$phases (replace 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "meson_post_install.py" (("gtk-update-icon-cache") "true")))))))) ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc (propagated-inputs (list glib gtk+ p11-kit)))) (define-public gdl (package (name "gdl") (version "3.40.0") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/GNOME/gdl.git") (commit (string-append "GDL_" (string-map (match-lambda (#\. #\_) (c c)) version))))) (file-name (git-file-name name version)) (sha256 (base32 "11hp93gqk7m64h84q5hndzlwj4w6hl0cbmzrk2pkdn04ikm2zj4v")))) (build-system gnu-build-system) (native-inputs (list autoconf automake `(,glib "bin") ; for glib-genmarshal, etc. gnome-common gtk-doc/stable intltool pkg-config libtool which)) (inputs (list libxml2)) (propagated-inputs ;; The gdl-3.0.pc file 'Requires' GTK+. (list gtk+)) (home-page "https://gitlab.gnome.org/GNOME/gdl/") (synopsis "GNOME docking library") (description "This library provides docking features for gtk+.") (license license:lgpl2.1+))) ;;; A minimal variant used to break a cycle with Inkscape. (define-public gdl-minimal (package/inherit gdl (name "gdl-minimal") (arguments '(#:phases (modify-phases %standard-phases (add-after 'unpack 'disable-doc-generation ;; XXX: There is no easy way to disable generating the ;; documentation. (lambda _ (substitute* "configure.in" (("GTK_DOC_CHECK.*") "") (("docs/.*") "")) (substitute* "Makefile.am" (("gdl docs po") "gdl po")) #t))))) (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl))))) (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 (list libgcrypt dbus)) (native-inputs (list pkg-config `(,glib "bin") intltool)) (propagated-inputs ;; Referred to in .h files and .pc. (list 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 "42.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list (string-append "--with-pkcs11-config=" #$output "/share/p11-kit/modules/") (string-append "--with-pkcs11-modules=" #$output "/share/p11-kit/modules/")) #:parallel-tests? #f #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-/bin/sh-reference (lambda _ (substitute* "po/Makefile.in.in" (("/bin/sh") (which "sh"))))) (delete 'check) (add-after 'install 'check (lambda* (#:key tests? parallel-tests? #:allow-other-keys) (when tests? (setenv "HOME" "/tmp") ;some tests require a writable HOME (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS") ":" #$output "/share")) (invoke "dbus-run-session" "make" "check" "-j" (if parallel-tests? (number->string (parallel-job-count)) "1")))))))) (inputs (list dbus gcr-3 libgcrypt linux-pam openssh)) (native-inputs (list dbus ;for tests docbook-xml-4.3 docbook-xml docbook-xsl gettext-minimal `(,glib "bin") glib ;for m4 macros libxslt ;for documentation pkg-config python-wrapper)) ;for tests (propagated-inputs (list gcr-3)) ;; XXX: There are concerning test failures on i686-linux and other 32-bit ;; platforms: <https://gitlab.gnome.org/GNOME/gnome-keyring/-/issues/124>. (supported-systems %64bit-supported-systems) (home-page "https://www.gnome.org") (synopsis "Daemon to store passwords and encryption keys") (description "@command{gnome-keyring} is a program that keeps passwords and other secrets for users. It is run as a daemon in the session, similar to @command{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 "44.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/evince/" (version-major version) "/" "evince-" version ".tar.xz")) (sha256 (base32 "08inp13kksa027ij9ai10734jxdn1y7s0skbgzsyk9j739ca32rv")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:build-type "release" #:configure-flags '("-Dnautilus=false") #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "meson.build" (("(glib_compile_schemas|gtk_update_icon_cache|\ update_desktop_database): true" _ tool) (string-append tool ": false")))))))) (inputs (list libarchive libgxps libspectre djvulibre ghostscript poppler libtiff texlive-libkpathsea ; for DVI support gnome-desktop gsettings-desktop-schemas gspell libgnome-keyring adwaita-icon-theme gdk-pixbuf at-spi2-core pango gtk+ glib libxml2 libsm libice shared-mime-info dconf libcanberra libsecret libhandy)) (native-inputs (list itstool gettext-minimal gi-docgen `(,glib "bin") gobject-introspection pkg-config libxml2)) (home-page "https://wiki.gnome.org/Apps/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 "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "03pc3wlfmf07586x89h63fr42pdpvqx64ak4ks298nchmmff8bgb")))) (build-system meson-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-schemas (lambda* (#:key inputs #:allow-other-keys) (substitute* (find-files "schemas" "\\.gschema\\.xml\\.in$") ;; Provide the correct file name of the default ;; GNOME background, 'adwaita-timed.xml'. (("@datadir@/backgrounds/gnome") (search-input-directory inputs "/share/backgrounds/gnome")) ;; Do not reference fonts, that may not exist. (("'Source Code Pro 10'") "'Monospace 11'"))))))) (inputs (list glib gnome-backgrounds gobject-introspection)) (native-inputs (list gettext-minimal `(,glib "bin") ;glib-compile-schemas, etc. gobject-introspection pkg-config python)) ;for build-aux/meson/post-install.py (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 python-liblarch (package (name "python-liblarch") (version "3.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/getting-things-gnome/liblarch") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "125rmrdbc84lapfh8c77zxnmwas20xdfamqmilhv1smkxn2q4sh3")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver (lambda* (#:key inputs #:allow-other-keys) (system (format #f "~a/bin/Xvfb :1 &" (assoc-ref inputs "xorg-server"))) (setenv "DISPLAY" ":1")))))) (native-inputs (list xorg-server-for-tests)) (inputs (list gtk+)) (propagated-inputs (list python-pygobject)) (home-page "https://wiki.gnome.org/Projects/liblarch") (synopsis "Library to easily handle complex data structures") (description "Liblarch is a Python library built to easily handle data structures such as lists, trees and acyclic graphs. There's also a GTK binding that will allow you to use your data structure in a @code{Gtk.Treeview}. Liblarch support multiple views of one data structure and complex filtering. That way, you have a clear separation between your data themselves (Model) and how they are displayed (View).") (license license:lgpl3+))) (define-public gtg (package (name "gtg") (version "0.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/getting-things-gnome/gtg") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1wcivqp4z3a2jdr2wdrldzwy9v6hlfp5sk0pmh80znlgvl7q3jiv")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #: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)) #:phases #~(modify-phases %standard-phases (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (search-input-file outputs "bin/gtg") `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,(python:site-packages inputs outputs))) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))) (native-inputs (list desktop-file-utils gettext-minimal `(,glib "bin") gobject-introspection itstool pkg-config python)) (inputs (list bash-minimal (librsvg-for-system) gsettings-desktop-schemas gtk+ gtksourceview-4 pango python python-dbus python-liblarch python-lxml python-pycairo python-pygobject python-pyxdg)) (home-page "https://wiki.gnome.org/Apps/GTG") (synopsis "Personal organizer for the GNOME desktop") (description "Getting Things GNOME! (GTG) is a personal tasks and TODO list items organizer for the GNOME desktop environment inspired by the Getting Things Done (GTD) methodology. GTG is designed with flexibility, adaptability, and ease of use in mind so it can be used as more than just GTD software. GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.") (license license:gpl3+))) (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 (list perl 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 adwaita-icon-theme (package (name "adwaita-icon-theme") (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0k3638gkdpjcr9pbsmpfj7vdqdm9s04j4d5sh1fx5v5z3dhcb2a8")))) (build-system gnu-build-system) (arguments (list #:make-flags ;; Don't create 'icon-theme.cache'. #~(list "GTK_UPDATE_ICON_CACHE="))) (native-inputs ;; The following requires the SVG pixbuf loader, provided by librsvg, ;; available on x86_64 only. `(,@(if (target-64bit?) `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg '()))) (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme") (synopsis "GNOME icon theme") (description "Icons for the GNOME desktop.") (license license:lgpl3))) ; or Creative Commons BY-SA 3.0 (define-public gnome-icon-theme (deprecated-package "gnome-icon-theme" adwaita-icon-theme)) (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 (list icon-naming-utils intltool imagemagick 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 system-config-printer (package (name "system-config-printer") (version "1.5.16") (source (origin (method url-fetch) (uri (string-append "https://github.com/OpenPrinting/system-config-printer/releases/" "download/v" version "/system-config-printer-" version ".tar.xz")) (sha256 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb")))) (build-system glib-or-gtk-build-system) (arguments (list #:imported-modules `((guix build python-build-system) ,@%glib-or-gtk-build-system-modules) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-build-files (lambda _ (substitute* "configure.ac" (("AC_INIT.*" all) (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n")) ;; XXX: AX macros appear unavailable (("AX_REQUIRE_DEFINED.*") "")) ;; The Makefile generates some scripts, so set a valid shebang (substitute* "Makefile.am" (("/bin/bash") (which "bash"))) (delete-file "configure"))) #$@(if (this-package-native-input "config") #~((add-after 'unpack 'update-config-scripts (lambda* (#:key native-inputs inputs #:allow-other-keys) (for-each (lambda (file) (install-file (search-input-file (or native-inputs inputs) (string-append "/bin/" file)) ".")) '("config.guess" "config.sub"))))) #~()) (add-after 'install 'add-install-to-pythonpath (@@ (guix build python-build-system) add-install-to-pythonpath)) (add-after 'add-install-to-pythonpath '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"))))))))) (inputs (list gsettings-desktop-schemas gobject-introspection python cups gtk+ python-dbus python-pygobject python-pycups python-requests python-pycairo libnotify packagekit)) (native-inputs (append (if (target-riscv64?) (list config) '()) (list pkg-config desktop-file-utils glib autoconf automake gettext-minimal xmlto docbook-xml-4.1.2 docbook-xsl 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.8.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "1h7nn9pz797bfmpz3d0s46yjv4ydppnzwifzdx0d6shm8vwkx3zf")))) (outputs '("out" "doc")) (build-system meson-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'install 'move-doc (lambda _ (let* ((old (string-append #$output "/share/doc")) (new (string-append #$output:doc "/share/doc"))) (mkdir-p (dirname new)) (rename-file old new))))))) (propagated-inputs (list gdk-pixbuf glib)) ;in Requires of libnotify.pc. (inputs (list gtk+ libpng)) (native-inputs (list pkg-config `(,glib "bin") gobject-introspection ;; For the documentation. gi-docgen gtk-doc/stable libxslt docbook-xsl)) (home-page "https://gitlab.gnome.org/GNOME/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.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "0k3v4c9xs7pxpckkagl9ba70nlxl2n23w6ixc8bqd3ndrk1bjz19")))) (build-system meson-build-system) (arguments (list #:configure-flags #~'("-Dvapi=true" "-Dgtk_doc=true") #:phases #~(modify-phases %standard-phases (add-before 'check 'start-xserver (lambda* (#:key inputs #:allow-other-keys) (let ((disp ":1")) (setenv "DISPLAY" disp) (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache") (setenv "XDG_CONFIG_HOME" "/tmp") ;; Tests require a running X server. (system (format #f "~a ~a &" (search-input-file inputs "bin/Xvfb") disp)))))))) (inputs (list gtk+ glade3 python python-pygobject)) (native-inputs (list pkg-config gettext-minimal gi-docgen `(,glib "bin") gobject-introspection xorg-server-for-tests vala)) (propagated-inputs ;; The .pc file "Requires" gobject-introspection. (list glib gobject-introspection)) (home-page "https://wiki.gnome.org/Projects/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 (list gtk+-2 mesa glu libx11 libxt)) (native-inputs (list pkg-config `(,glib "bin"))) (propagated-inputs (list 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.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i")))) (build-system meson-build-system) (arguments (list #: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")))) #$@(if (this-package-input "gjs") '() '((add-after 'unpack 'skip-gjs-test (lambda _ ;; When the optional dependency on GJS is missing, skip ;; the GJS plugin tests. (substitute* "tests/modules.c" (("g_test_add.*JavaScript.*" all) (string-append "// " all "\n"))) (delete-file "tests/catalogs/gjsplugin.xml"))))) (add-before 'check 'pre-check (lambda _ (setenv "HOME" "/tmp") ;; Tests require a running X server. (system "Xvfb :1 &") (setenv "DISPLAY" ":1")))))) (inputs (append ;; GJS depends on Rust so remove the GJS dependency on other platforms. (if (supported-package? gjs) (list gjs) '()) (list gtk+ libxml2))) (native-inputs (list at-spi2-core ;for tests docbook-xml-4.2 docbook-xsl gettext-minimal `(,glib "bin") gobject-introspection hicolor-icon-theme itstool libxslt ;for xsltproc python python-pygobject pkg-config xorg-server-for-tests)) (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+) (native-search-paths (list (search-path-specification (variable "GLADE_CATALOG_SEARCH_PATH") (files '("share/glade/catalogs"))) (search-path-specification (variable "GLADE_MODULE_SEARCH_PATH") (files '("lib/glade/modules"))))))) (define-public blueprint-compiler (package (name "blueprint-compiler") (version "0.12.0") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/jwestman/blueprint-compiler") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "15cm2bksmygf8sifryrawxxblvvw27p4w3m42gvp3jlq50a15xm6")))) (build-system meson-build-system) (arguments (list #: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)) #:phases #~(modify-phases %standard-phases (add-after 'glib-or-gtk-wrap 'wrap-python (assoc-ref python:%standard-phases 'wrap)) (add-before 'check 'pre-check (lambda _ (system "Xvfb :1 &") (setenv "DISPLAY" ":1")))))) (native-inputs (list gtk libadwaita python python-pygobject xorg-server-for-tests)) (inputs (list python)) (synopsis "Template markup language") (description "Blueprint is a markup language for GTK user interfaces. Internally, it compiles to GTKBuilder XML.") (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler") (license license:lgpl3+))) (define-public blueprint-compiler-0.4 (package (inherit blueprint-compiler) (name "blueprint-compiler") (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/jwestman/blueprint-compiler") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy")))))) (define-public cambalache (package (name "cambalache") (version "0.12.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/jpu/cambalache") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "1da8d5msk4ivmk5inaq8w0m78dsp7crarr9jmybag1c8qmqsjq4h")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:imported-modules `((guix build python-build-system) ,@%meson-build-system-modules) #:modules '((guix build meson-build-system) ((guix build python-build-system) #:prefix python:) (guix build utils)) #:tests? #f ; XXX: tests spawn a socket... #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-source (lambda* (#:key inputs #:allow-other-keys) (substitute* "cambalache/cmb_view.py" (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd) (format #f "~s" (search-input-file inputs (string-append "bin/" cmd))))))) (add-after 'unpack 'patch-build (lambda _ (substitute* "meson.build" (("find_program\\('gtk-update-icon-cache'.*\\)") "") (("find_program\\('update-desktop-database'.*\\)") "")) (substitute* "postinstall.py" (("gtk-update-icon-cache") "true") (("update-desktop-database") "true")))) (add-after 'unpack 'fake-cc (lambda _ (substitute* "tools/cmb_init_dev.py" (("\"cc") (string-append "\"" #$(cc-for-target)))))) (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap)) (delete 'check) (add-after 'install 'add-install-to-pythonpath (assoc-ref python:%standard-phases 'add-install-to-pythonpath)) (add-after 'add-install-to-pythonpath 'pre-check (lambda _ (system "Xvfb :1 &") (setenv "DISPLAY" ":1"))) (add-after 'pre-check 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? (with-directory-excursion ".." (invoke "python3" "-m" "pytest"))))) (add-after 'glib-or-gtk-wrap 'wrap-typelib (lambda _ (for-each (lambda (prog) (unless (wrapped-program? prog) (wrap-program prog `("GI_TYPELIB_PATH" suffix (,(string-append #$output "/lib/girepository-1.0") ,(getenv "GI_TYPELIB_PATH"))) ;; icons and schemas `("XDG_DATA_DIRS" suffix #$(map (lambda (input) (file-append (this-package-input input) "/share")) '("adwaita-icon-theme" "hicolor-icon-theme" "gsettings-desktop-schemas"))) ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to ;; load its own icons in pure environments. `("GDK_PIXBUF_MODULE_FILE" = (,(getenv "GDK_PIXBUF_MODULE_FILE")))))) (find-files (string-append #$output "/bin")))))))) (inputs (list bash-minimal adwaita-icon-theme hicolor-icon-theme gsettings-desktop-schemas gtk gtksourceview-4 `(,gtk+ "bin") ; broadwayd