Subject: [bug#42049] [PATCH 2/4] gnu: crates-io: Use propagated-inputs and propagated-native-inputs.

From: Jakub Kądziołka <[email-masked]>
Date: Thu, 25 Jun 2020 23:26:32 +0200

* gnu/packages/crates-io.scm
  (rust-curl-sys-0.4, rust-freetype-rs-0.23, rust-freetype-sys-0.9,
  rust-git2-0.11, rust-grep-pcre2-0.1, rust-libgit2-sys-0.10,
  rust-libz-sys-1.0, rust-libssh2-sys-0.2, rust-pcre2-0.2,
  rust-pcre2-sys-0.2, rust-servo-fontconfig-0.4,
  rust-servo-fontconfig-sys-4): Don't include transitive dependencies in inputs.
  (rust-capnp-rpc-0.10, rust-expat-sys-2.1, rust-libz-sys-1.0,
  rust-pcre2-sys-0.2, rust-pkg-config-0.3, rust-servo-fontconfig-sys-4):
  Make inputs propagated.
  (rust-flate2-1.0, rust-grep-0.2): Don't skip build.
* gnu/packages/rust-apps.scm (exa, ripgrep): Don't include some
  transitive dependencies in inputs.
* gnu/packages/sequoia.scm (sequoia): Likewise.
---
 gnu/packages/crates-io.scm | 83 ++++++++++++--------------------------
 gnu/packages/rust-apps.scm |  9 +----
 gnu/packages/sequoia.scm   |  3 +-
 3 files changed, 29 insertions(+), 66 deletions(-)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bc29df5871..5a4b513f1a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2482,15 +2482,15 @@ messages.")
        (sha256
         (base32 "1j6xg7yays1hlm1045wviyn1642yvvi2p4kba26yk07a0kafr3jn"))))
     (build-system cargo-build-system)
-    (native-inputs
-     `(("capnproto" ,capnproto)))
     (arguments
      `(#:cargo-inputs
        (("rust-capnp" ,rust-capnp-0.10)
         ("rust-capnp-futures" ,rust-capnp-futures-0.10)
         ("rust-futures" ,rust-futures-0.1))
        #:cargo-development-inputs
-       (("rust-capnpc" ,rust-capnpc-0.10))))
+       (("rust-capnpc" ,rust-capnpc-0.10))
+       #:propagated-native-inputs
+       (("capnproto" ,capnproto))))
     (home-page "https://github.com/capnproto/capnproto-rust")
     (synopsis "Cap'n Proto remote procedure call protocol implementation")
     (description "This package provides an implementation of the Cap'n Proto
@@ -4659,13 +4659,10 @@ Transparency logs for use with sct crate.")
             (let ((openssl (assoc-ref inputs "openssl")))
               (setenv "OPENSSL_DIR" openssl))
             #t)))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("curl" ,curl)
        ("nghttp2" ,nghttp2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+       ("openssl" ,openssl)))
     (home-page "https://github.com/alexcrichton/curl-rust")
     (synopsis "Native bindings to the libcurl library")
     (description
@@ -6341,10 +6338,10 @@ variables.")
     (arguments
      `(#:cargo-inputs
        (("rust-cmake" ,rust-cmake-0.1)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:propagated-native-inputs
+       (("pkg-config" ,pkg-config))))
+    (propagated-inputs
      `(("expat" ,expat)))
     (home-page "http://www.libexpat.org/")
     (synopsis "XML parser library written in C")
@@ -6663,8 +6660,7 @@ cross platform API.")
          "0hlb2zmn5ixrgr0i1qvrd3a7j4fpp002d0kddn2hm7hjj49z9zrc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-cloudflare-zlib-sys"
          ,rust-cloudflare-zlib-sys-0.2)
@@ -7014,9 +7010,6 @@ values to other threads.")
         ("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
        (("rust-unicode-normalization" ,rust-unicode-normalization-0.1))))
-    (inputs
-     `(("freetype" ,freetype)
-       ("zlib" ,zlib)))
     (home-page "https://github.com/PistonDevelopers/freetype-rs")
     (synopsis "Bindings for FreeType font library")
     (description "This package provides bindings for FreeType font library.")
@@ -7041,9 +7034,8 @@ values to other threads.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-libz-sys" ,rust-libz-sys-1.0)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (inputs
-     `(("freetype" ,freetype)
-       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("freetype" ,freetype)))
     (home-page "https://github.com/PistonDevelopers/freetype-sys")
     (synopsis "Low level binding for FreeType font library")
     (description
@@ -8484,9 +8476,7 @@ DWARF debugging format.")
     (native-inputs
      `(("libgit2" ,libgit2)
        ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+       ("openssl" ,openssl)))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Rust bindings to libgit2")
     (description
@@ -9164,8 +9154,7 @@ loading crate.")
          "0s3y1rx94swqnciz2zzifm8pmy2iyck270skgxhgkq7ab6x96bjq"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-grep-cli" ,rust-grep-cli-0.1)
         ("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-grep-pcre2" ,rust-grep-pcre2-0.1)
@@ -9259,9 +9248,6 @@ the regex engine it uses pluggable.")
      `(#:cargo-inputs
        (("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-pcre2" ,rust-pcre2-0.2))))
-    (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
     (home-page
      "https://github.com/BurntSushi/ripgrep")
     (synopsis "Use PCRE2 with the grep crate")
@@ -11419,9 +11405,7 @@ macros on libc without stdlib.")
              #t)))))
     (native-inputs
      `(("libgit2" ,libgit2)
-       ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+       ("openssl" ,openssl)))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Native bindings to the libgit2 library")
     (description
@@ -11639,10 +11623,9 @@ functions and static variables these libraries contain.")
         ;; Build dependencies:
         ("rust-cc" ,rust-cc-1.0)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+        ("rust-vcpkg" ,rust-vcpkg-0.2))
+       #:propagated-native-inputs
+       (("zlib" ,zlib))))
     (home-page "https://github.com/rust-lang/libz-sys")
     (synopsis "Bindings to the system libz library")
     (description
@@ -11810,9 +11793,7 @@ pairs in insertion order.")
              #t)))))
     (native-inputs
      `(("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+       ("openssl" ,openssl)))
     (home-page "https://github.com/alexcrichton/ssh2-rs")
     (synopsis "Native bindings to the libssh2 library")
     (description
@@ -15558,9 +15539,6 @@ synchronization primitives.")
         ("rust-log" ,rust-log-0.4)
         ("rust-pcre2-sys" ,rust-pcre2-sys-0.2)
         ("rust-thread-local" ,rust-thread-local-1.0))))
-    (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
     (home-page "https://github.com/BurntSushi/rust-pcre2")
     (synopsis "High level wrapper library for PCRE2")
     (description
@@ -15588,10 +15566,9 @@ synchronization primitives.")
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-cc" ,rust-cc-1.0))))
-    (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+        ("rust-cc" ,rust-cc-1.0))
+       #:propagated-native-inputs
+       (("pcre2" ,pcre2))))
     (home-page
      "https://github.com/BurntSushi/rust-pcre2")
     (synopsis "Low level bindings to PCRE2")
@@ -16509,9 +16486,9 @@ written with declarative macros.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+       (("rust-lazy-static" ,rust-lazy-static-1))
+       #:propagated-native-inputs
+       (("pkg-config" ,pkg-config))))
     (home-page "https://github.com/rust-lang/pkg-config-rs")
     (synopsis "Library to run the pkg-config system tool")
     (description
@@ -20969,10 +20946,6 @@ for the serde framework.")
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-servo-fontconfig-sys" ,rust-servo-fontconfig-sys-4))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("fontconfig" ,fontconfig)))
     (home-page "https://github.com/servo/rust-fontconfig/")
     (synopsis "Rust bindings for fontconfig")
     (description "This package provides Rust bindings for fontconfig.")
@@ -21003,9 +20976,7 @@ for the serde framework.")
        (("rust-expat-sys" ,rust-expat-sys-2.1)
         ("rust-servo-freetype-sys" ,rust-servo-freetype-sys-4)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
+    (propagated-inputs
      `(("fontconfig" ,fontconfig)))
     (home-page "https://crates.io/crates/servo-fontconfig-sys")
     (synopsis "Rust wrapper around Fontconfig")
@@ -21034,9 +21005,7 @@ for the serde framework.")
      `(#:cargo-inputs
        (("rust-cmake" ,rust-cmake-0.1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
+    (propagated-inputs
      `(("freetype" ,freetype)))
     (home-page "http://www.freetype.org/")
     (synopsis "Rust wrapper around freetype")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 1cf22f4a79..9c03b90f9c 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -120,10 +120,7 @@
                           (string-append share "/zsh/site-functions/_exa"))
                #t))))))
     (inputs
-     `(("libgit2" ,libgit2)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("libgit2" ,libgit2)))
     (home-page "https://the.exa.website/")
     (synopsis "Modern replacement for ls")
     (description "@code{exa} is a modern replacement for the command-line
@@ -251,9 +248,7 @@ provides defaults for 80% of the use cases.")
              #t)))
        #:features '("pcre2")))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+     `(("asciidoc" ,asciidoc)))
     (home-page "https://github.com/BurntSushi/ripgrep")
     (synopsis "Line-oriented search tool")
     (description
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index 554b1d65ea..06ccd6aa78 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -57,8 +57,7 @@
        ("python-pytest" ,python-pytest)
        ("python-pytest-runner" ,python-pytest-runner)))
     (inputs
-     `(("capnproto" ,capnproto)
-       ("gmp" ,gmp)
+     `(("gmp" ,gmp)
        ("nettle" ,nettle)
        ("openssl" ,openssl)
        ("python" ,python)
-- 
2.26.2