diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2023-03-14 14:00:25 +0200 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-05-07 19:29:26 +0300 |
commit | 1476c3de3ab9fc7d92a92eabb992f3a9be330681 (patch) | |
tree | 27c94395ad4cc81a29022ec50f69cb9a54b1e0c1 /gnu/packages/rust.scm | |
parent | e96ccb3152f96fd2fa11019fbfec3101c9e2a7a0 (diff) |
gnu: rust: Remove more bundled sources.
* gnu/packages/rust.scm (rust)[source]: Adjust snippet to remove more
bundled sources.
[arguments]: Add a phase to set flags to use more system libraries.
[inputs]: Add curl, libgit2, libssh, xz, zlib.
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r-- | gnu/packages/rust.scm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index fcb8a77a2e..34cdf04f59 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages) #:use-module (guix build-system cargo) #:use-module (guix build-system copy) @@ -707,6 +708,33 @@ safety and thread safety guarantees.") (package (inherit base-rust) (outputs (cons "rustfmt" (package-outputs base-rust))) + ;; This is the rust we build everything with, so we make sure to unbundle more. + ;; We allow other versions of the rust compiler to use bundled sources so we + ;; don't have to worry about carrying old versions of some libraries. + (source + (origin + (inherit (package-source base-rust)) + (snippet + '(begin + (for-each delete-file-recursively + '("src/llvm-project" + "vendor/curl-sys/curl" + "vendor/jemalloc-sys/jemalloc" + "vendor/libgit2-sys/libgit2" + ;"vendor/libnghttp2-sys/nghttp2" + "vendor/libssh2-sys/libssh2" + "vendor/libz-sys/src/zlib" + ;"vendor/libz-sys/src/zlib-ng" + "vendor/lzma-sys/xz-5.2" + ;"vendor/openssl-src" + "vendor/tikv-jemalloc-sys/jemalloc")) + ;; Remove vendored dynamically linked libraries. + ;; find . -not -type d -executable -exec file {} \+ | grep ELF + (delete-file "vendor/vte/vim10m_match") + (delete-file "vendor/vte/vim10m_table") + ;; Also remove the bundled (mostly Windows) libraries. + (for-each delete-file + (find-files "vendor" ".*\\.(a|dll|exe|lib)$")))))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:tests? _ #f) @@ -803,6 +831,11 @@ safety and thread safety guarantees.") ((file) file)) (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")))) + (add-after 'set-env 'set-more-env + (lambda* (#:key inputs #:allow-other-keys) + (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1") + (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") + (setenv "OPENSSL_DIR" (assoc-ref inputs "openssl")))) (add-after 'configure 'add-gdb-to-config (lambda* (#:key inputs #:allow-other-keys) (let ((gdb (assoc-ref inputs "gdb"))) @@ -847,6 +880,8 @@ safety and thread safety guarantees.") (("prefix = \"[^\"]*\"") (format #f "prefix = ~s" (assoc-ref outputs "rustfmt")))) (invoke "./x.py" "install" "rustfmt"))))))) + (inputs (modify-inputs (package-inputs base-rust) + (prepend curl libgit2 libssh xz zlib))) ;; Add test inputs. (native-inputs (cons* `("gdb" ,gdb/pinned) `("procps" ,procps) |