summary refs log tree commit diff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm358
1 files changed, 98 insertions, 260 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f0b4d01e3d..ef65c5bcca 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -44,7 +44,7 @@
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
@@ -1587,15 +1587,17 @@ on the GNOME Desktop with a single simple application.")
     (build-system meson-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'set-adwaita-theme-file-name
+                  (add-after 'unpack 'patch-schemas
                     (lambda* (#:key inputs #:allow-other-keys)
-                      ;; Provide the correct file name of the default GNOME
-                      ;; background, 'adwaita-timed.xml'.
                       (let ((theme (assoc-ref inputs "gnome-backgrounds")))
                         (substitute* (find-files "schemas"
                                                  "\\.gschema\\.xml\\.in$")
+                          ;; Provide the correct file name of the default GNOME
+                          ;; background, 'adwaita-timed.xml'.
                           (("@datadir@/backgrounds/gnome")
-                           (string-append theme "/share/backgrounds/gnome")))
+                           (string-append theme "/share/backgrounds/gnome"))
+                          ;; Do not reference fonts, that may not exist.
+                          (("'Source Code Pro 10'") "'Monospace 11'"))
                         #t))))))
     (inputs
      `(("glib" ,glib)
@@ -2160,245 +2162,84 @@ dealing with different structured file formats.")
 library.")
     (license license:lgpl2.0+)))
 
-(define* (computed-origin-method gexp-promise hash-algo hash
-                                 #:optional (name "source")
-                                 #:key (system (%current-system))
-                                 (guile (default-guile)))
-  "Return a derivation that executes the G-expression that results
-from forcing GEXP-PROMISE."
-  (mlet %store-monad ((guile (package->derivation guile system)))
-    (gexp->derivation (or name "computed-origin")
-                      (force gexp-promise)
-                      #:graft? #f       ;nothing to graft
-                      #:system system
-                      #:guile-for-build guile)))
-
-(define librsvg-next-source
-  (let* ((version         "2.46.4")
-         (upstream-source (origin
-                           (method url-fetch)
-                           (uri (string-append "mirror://gnome/sources/librsvg/"
-                                               (version-major+minor version)  "/"
-                                               "librsvg-" version ".tar.xz"))
-                           (sha256
-                            (base32
-                             "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl")))))
-    (origin
-      (method computed-origin-method)
-      (file-name (string-append "librsvg-" version ".tar.xz"))
-      (sha256 #f)
-      (uri
-       (delay
-        (with-imported-modules '((guix build utils))
-          #~(begin
-              (use-modules (guix build utils))
-              (set-path-environment-variable
-               "PATH" '("bin")
-               (list "/tmp"
-                     #+(canonical-package xz)
-                     #+(canonical-package gzip)
-                     #+(canonical-package tar)))
-              (invoke "tar" "xvf" #+upstream-source)
-              (with-directory-excursion (string-append "librsvg-" #$version)
-                ;; The following crate(s) are needed in addition to the ones replaced:
-                (begin
-                  (invoke
-                   "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor")
-                  (invoke
-                   "tar" "xvf" #+(package-source rust-proc-macro2-0.4) "-C" "vendor")
-                  (invoke
-                   "tar" "xvf" #+(package-source rust-quote-0.6) "-C" "vendor")
-                  (invoke
-                   "tar" "xvf" #+(package-source rust-unicode-xid-0.1) "-C" "vendor")
-                  (invoke
-                   "tar" "xvf" #+(package-source rust-maybe-uninit-2.0) "-C" "vendor"))
-                (for-each
-                  (lambda (crate)
-                    (delete-file-recursively (string-append "vendor/" (car crate)))
-                    (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
-                  '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
-;; alga 0.9
-                    ("approx" . #+(package-source rust-approx-0.3))
-                    ("arrayvec" . #+(package-source rust-arrayvec-0.4))
-                    ("atty" . #+(package-source rust-atty-0.2))
-                    ("autocfg" . #+(package-source rust-autocfg-1.0))
-                    ("bitflags" . #+(package-source rust-bitflags-1))
-;; block 0.1
-                    ("bstr" . #+(package-source rust-bstr-0.2))
-                    ("byteorder" . #+(package-source rust-byteorder-1.3))
-;; cairo-rs 0.7
-;; cairo-sys-rs 0.9
-                    ("cast" . #+(package-source rust-cast-0.2))
-                    ("cfg-if" . #+(package-source rust-cfg-if-0.1))
-                    ("clap" . #+(package-source rust-clap-2))
-                    ("cloudabi" . #+(package-source rust-cloudabi-0.0))
-                    ("criterion" . #+(package-source rust-criterion-0.2))
-                    ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
-                    ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
-                    ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
-                    ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
-                    ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
-;; cssparser 0.25
-;; cssparser-macros 0.3
-                    ("csv" . #+(package-source rust-csv-1.1))
-                    ("csv-core" . #+(package-source rust-csv-core-0.1))
-;; data-url 0.1
-;; downcast-rs 1.0
-                    ("dtoa" . #+(package-source rust-dtoa-0.4))
-;; dtoa-short 0.3
-                    ("either" . #+(package-source rust-either-1.5))
-                    ("encoding" . #+(package-source rust-encoding-0.2))
-                    ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
-                    ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
-                    ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
-                    ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
-                    ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
-                    ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
-;; float-cmp 0.5
-;; fragile 0.3
-                    ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
-                    ("futf" . #+(package-source rust-futf-0.1))
-;; gdk-pixbuf 0.7
-;; gdk-pixbuf-sys 0.9
-                    ("generic-array" . #+(package-source rust-generic-array-0.12))
-;; gio 0.7
-                    ("gio-sys" . #+(package-source rust-gio-sys-0.9))
-;; glib 0.8
-                    ("glib-sys" . #+(package-source rust-glib-sys-0.9))
-                    ("gobject-sys" . #+(package-source rust-gobject-sys-0.9))
-                    ("idna" . #+(package-source rust-idna-0.2))
-                    ("itertools" . #+(package-source rust-itertools-0.8))
-                    ("itoa" . #+(package-source rust-itoa-0.4))
-                    ("language-tags" . #+(package-source rust-language-tags-0.2))
-                    ("lazy_static" . #+(package-source rust-lazy-static-1))
-                    ("libc" . #+(package-source rust-libc-0.2))
-                    ("libm" . #+(package-source rust-libm-0.1))
-                    ("locale_config" . #+(package-source rust-locale-config-0.3))
-                    ("log" . #+(package-source rust-log-0.4))
-                    ("mac" . #+(package-source rust-mac-0.1))
-                    ("malloc_buf" . #+(package-source rust-malloc-buf-0.0))
-;; markup5ever 0.9
-                    ("matches" . #+(package-source rust-matches-0.1))
-;; matrixmultiply 0.2
-                    ("memchr" . #+(package-source rust-memchr-2.2))
-                    ("memoffset" . #+(package-source rust-memoffset-0.5))
-;; nalgebra 0.18
-                    ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
-                    ("nodrop" . #+(package-source rust-nodrop-0.1))
-                    ("num-complex" . #+(package-source rust-num-complex-0.2))
-                    ("num-integer" . #+(package-source rust-num-integer-0.1))
-                    ("num-rational" . #+(package-source rust-num-rational-0.2))
-                    ("num-traits" . #+(package-source rust-num-traits-0.2))
-                    ("num_cpus" . #+(package-source rust-num-cpus-1.10))
-                    ("objc" . #+(package-source rust-objc-0.2))
-                    ("objc-foundation" . #+(package-source rust-objc-foundation-0.1))
-                    ("objc_id" . #+(package-source rust-objc-id-0.1))
-;; pango 0.7
-;; pango-sys 0.9
-;; pangocairo 0.8
-;; pangocairo-sys 0.10
-                    ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
-                    ("phf" . #+(package-source rust-phf-0.7))
-                    ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
-                    ("phf_generator" . #+(package-source rust-phf-generator-0.7))
-                    ("phf_shared" . #+(package-source rust-phf-shared-0.7))
-                    ("pkg-config" . #+(package-source rust-pkg-config-0.3))
-                    ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
-                    ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
-;; procedural-masquerade 0.1
-                    ("quote" . #+(package-source rust-quote-1.0))
-                    ("rand" . #+(package-source rust-rand-0.6))
-                    ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
-                    ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
-                    ("rand_core" . #+(package-source rust-rand-core-0.4))
-                    ("rand_hc" . #+(package-source rust-rand-hc-0.1))
-                    ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
-                    ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
-                    ("rand_os" . #+(package-source rust-rand-os-0.1))
-                    ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
-                    ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
-                    ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
-;; rawpointer 0.2
-                    ("rayon" . #+(package-source rust-rayon-1.3))
-                    ("rayon-core" . #+(package-source rust-rayon-core-1.7))
-;; rctree 0.3
-                    ("rdrand" . #+(package-source rust-rdrand-0.4))
-                    ("regex" . #+(package-source rust-regex-1.3))
-                    ("regex-automata" . #+(package-source rust-regex-automata-0.1))
-                    ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
-                    ("rustc_version" . #+(package-source rust-rustc-version-0.2))
-                    ("ryu" . #+(package-source rust-ryu-1.0))
-                    ("same-file" . #+(package-source rust-same-file-1.0))
-                    ("scopeguard" . #+(package-source rust-scopeguard-1.0))
-                    ("semver" . #+(package-source rust-semver-0.9))
-                    ("semver-parser" . #+(package-source rust-semver-parser-0.7))
-                    ("serde" . #+(package-source rust-serde-1.0))
-                    ("serde_derive" . #+(package-source rust-serde-derive-1.0))
-                    ("serde_json" . #+(package-source rust-serde-json-1.0))
-                    ("siphasher" . #+(package-source rust-siphasher-0.2))
-                    ("smallvec" . #+(package-source rust-smallvec-0.6))
-                    ("string_cache" . #+(package-source rust-string-cache-0.7))
-                    ("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
-                    ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
-                    ("syn" . #+(package-source rust-syn-1.0))
-                    ("tendril" . #+(package-source rust-tendril-0.4))
-                    ("textwrap" . #+(package-source rust-textwrap-0.11))
-                    ("thread_local" . #+(package-source rust-thread-local-1.0))
-                    ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
-                    ("typenum" . #+(package-source rust-typenum-1.10))
-                    ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
-                    ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
-                    ("unicode-width" . #+(package-source rust-unicode-width-0.1))
-                    ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
-                    ("url" . #+(package-source rust-url-2.1))
-                    ("utf-8" . #+(package-source rust-utf-8-0.7))
-                    ("walkdir" . #+(package-source rust-walkdir-2.2))
-                    ("winapi" . #+(package-source rust-winapi-0.3))
-                    ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
-                    ("winapi-util" . #+(package-source rust-winapi-util-0.1))
-                    ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
-                    ("xml-rs" . #+(package-source rust-xml-rs-0.8)))))
-              (format #t "Replacing vendored crates in the tarball and repacking ...~%")
-              (force-output)
-              (invoke "tar" "cfa" #$output
-                      ;; Avoid non-determinism in the archive.  We set the
-                      ;; mtime of files in the archive to early 1980 because
-                      ;; the build process fails if the mtime of source
-                      ;; files is pre-1980, due to the creation of zip
-                      ;; archives.
-                      "--mtime=@315619200" ; 1980-01-02 UTC
-                      "--owner=root:0"
-                      "--group=root:0"
-                      "--sort=name"
-                      (string-append "librsvg-" #$version))
-              #t)))))))
-
 (define-public librsvg-next
   (package
+    (inherit librsvg)
     (name "librsvg")
     (version "2.46.4")
-    (source librsvg-next-source)
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       (list "--disable-static"
-             "--enable-vala") ; needed for e.g. gnome-mines
-       #:make-flags '("CC=gcc")
-       #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/librsvg/"
+                                  (version-major+minor version)  "/"
+                                  "librsvg-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file-recursively "vendor")
+                       ;; Don't demand an exact version for string_cache
+                       (substitute* "rsvg_internals/Cargo.toml"
+                         (("\"=") "\""))
+                       #t))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:modules ((guix build cargo-build-system)
+                  (guix build utils)
+                  ((guix build gnu-build-system) #:prefix gnu:))
+       #:vendor-dir "vendor"
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-cssparser" ,rust-cssparser-0.25)
+        ("rust-data-url" ,rust-data-url-0.1)
+        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
+        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-float-cmp" ,rust-float-cmp-0.5)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gio" ,rust-gio-0.7)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-itertools" ,rust-itertools-0.8)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-locale-config" ,rust-locale-config-0.3)
+        ("rust-markup5ever" ,rust-markup5ever-0.9)
+        ("rust-nalgebra" ,rust-nalgebra-0.18)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-pango" ,rust-pango-0.7)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pangocairo" ,rust-pangocairo-0.8)
+        ("rust-phf" ,rust-phf-0.7)
+        ("rust-rayon" ,rust-rayon-1.3)
+        ("rust-rctree" ,rust-rctree-0.3)
+        ("rust-string-cache" ,rust-string-cache-0.7)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-url" ,rust-url-2.1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))
+       #:cargo-development-inputs
+       (("rust-cairo-rs" ,rust-cairo-rs-0.7)
+        ("rust-criterion" ,rust-criterion-0.2))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'configure 'patch-cargo-checksums
+         (add-after 'unpack 'prepare-for-build
            (lambda _
-             (use-modules (guix build cargo-utils))
-             (substitute* "librsvg/Cargo.toml"
-               (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
-             (substitute* "rsvg_internals/Cargo.toml"
-               (("\"=") "\""))
-             (generate-all-checksums "vendor")
-             (delete-file "Cargo.lock")
-             (invoke "cargo" "generate-lockfile")))
+             ;; In lieu of #:make-flags
+             (setenv "CC" "gcc")
+             ;; Something about the build environment resists building
+             ;; successfully with the '--locked' flag.
+             (substitute* '("Makefile.am"
+                            "Makefile.in")
+               (("--locked") ""))
+             #t))
          (add-before 'configure 'pre-configure
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda _
              (substitute* "gdk-pixbuf-loader/Makefile.in"
                ;; By default the gdk-pixbuf loader is installed under
                ;; gdk-pixbuf's prefix.  Work around that.
@@ -2410,6 +2251,27 @@ from forcing GEXP-PROMISE."
                (("gdk_pixbuf_cache_file = .*$")
                 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
              #t))
+         (add-after 'configure 'gnu-configure
+           (assoc-ref gnu:%standard-phases 'configure))
+           ;(lambda* (#:key outputs #:allow-other-keys)
+           ;  ((assoc-ref gnu:%standard-phases 'configure)
+           ;   #:outputs outputs
+           ;   #:configure-flags ("--disable-static"
+           ;                      "--enable-vala"))))
+         (add-after 'configure 'dont-vendor-self
+           (lambda* (#:key vendor-dir #:allow-other-keys)
+             ;; Don't keep the whole tarball in the vendor directory
+             (delete-file-recursively
+               (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
+             #t))
+         (replace 'build
+           (assoc-ref gnu:%standard-phases 'build))
+         (replace 'check
+           (lambda* args
+             ((assoc-ref gnu:%standard-phases 'check)
+              #:test-target "check")))
+         (replace 'install
+           (assoc-ref gnu:%standard-phases 'install))
          (add-before 'check 'remove-failing-tests
            (lambda _
              (with-directory-excursion "tests/fixtures/reftests"
@@ -2431,30 +2293,6 @@ from forcing GEXP-PROMISE."
                            ;; This test fails on aarch64:
                            "bugs/777834-empty-text-children.svg")))
              #t)))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; This is the minimum supported Rust version in Librsvg 2.46.
-       ("rust" ,rust-1.34)
-       ("cargo" ,rust-1.34 "cargo")
-       ("vala" ,vala)
-       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-    (inputs
-     `(("pango" ,pango)
-       ("libcroco" ,libcroco)
-       ("bzip2" ,bzip2)
-       ("libgsf" ,libgsf)
-       ("libxml2" ,libxml2)))
-    (propagated-inputs
-     ;; librsvg-2.0.pc refers to all of that.
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)))
-    (home-page "https://wiki.gnome.org/LibRsvg")
-    (synopsis "Render SVG files using Cairo")
-    (description
-     "Librsvg is a C library to render SVG files using the Cairo 2D graphics
-library.")
     (license license:lgpl2.1+)))
 
 (define-public libidl