diff options
| author | Efraim Flashner <efraim@flashner.co.il> | 2024-01-12 12:57:30 +0200 |
|---|---|---|
| committer | Efraim Flashner <efraim@flashner.co.il> | 2024-02-20 13:57:41 +0200 |
| commit | d3f4df4be93ce5c28f7b40a3a91aeb6a86284e80 (patch) | |
| tree | 8706a242fe9ffea6458486203a6f3f17721638c1 /gnu/packages/rust.scm | |
| parent | f3b13d4e0e19ffa7bc9ef4de6df2059479e99156 (diff) | |
gnu: rust: Use more system libraries.
* gnu/packages/rust.scm (rust)[source]: Adjust inherited source to also
unbundle curl, libffi, nghttp2 and zlib.
[inputs]: Add libffi, nghttp2:lib, zlib.
Change-Id: I97932b9afda507a4c655027df494a70cf8c11509
Diffstat (limited to 'gnu/packages/rust.scm')
| -rw-r--r-- | gnu/packages/rust.scm | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index b873437458b..25e843dba64 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | #:use-module (gnu packages flex) | 46 | #:use-module (gnu packages flex) |
| 47 | #:use-module (gnu packages gcc) | 47 | #:use-module (gnu packages gcc) |
| 48 | #:use-module (gnu packages gdb) | 48 | #:use-module (gnu packages gdb) |
| 49 | #:use-module (gnu packages libffi) | ||
| 49 | #:use-module (gnu packages linux) | 50 | #:use-module (gnu packages linux) |
| 50 | #:use-module (gnu packages llvm) | 51 | #:use-module (gnu packages llvm) |
| 51 | #:use-module (gnu packages mingw) | 52 | #:use-module (gnu packages mingw) |
| @@ -53,6 +54,7 @@ | |||
| 53 | #:use-module (gnu packages python) | 54 | #:use-module (gnu packages python) |
| 54 | #:use-module (gnu packages ssh) | 55 | #:use-module (gnu packages ssh) |
| 55 | #:use-module (gnu packages tls) | 56 | #:use-module (gnu packages tls) |
| 57 | #:use-module (gnu packages web) | ||
| 56 | #:use-module (gnu packages) | 58 | #:use-module (gnu packages) |
| 57 | #:use-module (guix build-system cargo) | 59 | #:use-module (guix build-system cargo) |
| 58 | #:use-module (guix build-system gnu) | 60 | #:use-module (guix build-system gnu) |
| @@ -833,6 +835,38 @@ safety and thread safety guarantees.") | |||
| 833 | (inherit base-rust) | 835 | (inherit base-rust) |
| 834 | (properties (alist-delete 'hidden? (package-properties base-rust))) | 836 | (properties (alist-delete 'hidden? (package-properties base-rust))) |
| 835 | (outputs (cons* "rust-src" "tools" (package-outputs base-rust))) | 837 | (outputs (cons* "rust-src" "tools" (package-outputs base-rust))) |
| 838 | (source | ||
| 839 | (origin | ||
| 840 | (inherit (package-source base-rust)) | ||
| 841 | (snippet | ||
| 842 | '(begin | ||
| 843 | (for-each delete-file-recursively | ||
| 844 | '("src/llvm-project" | ||
| 845 | "vendor/openssl-src/openssl" | ||
| 846 | "vendor/tikv-jemalloc-sys/jemalloc" | ||
| 847 | ;; These are referenced by the cargo output | ||
| 848 | ;; so we unbundle them. | ||
| 849 | "vendor/curl-sys/curl" | ||
| 850 | "vendor/curl-sys-0.4.63+curl-8.1.2/curl" | ||
| 851 | "vendor/libffi-sys/libffi" | ||
| 852 | "vendor/libnghttp2-sys/nghttp2" | ||
| 853 | "vendor/libz-sys/src/zlib")) | ||
| 854 | ;; Use the packaged nghttp2 | ||
| 855 | (delete-file "vendor/libnghttp2-sys/build.rs") | ||
| 856 | (with-output-to-file "vendor/libnghttp2-sys/build.rs" | ||
| 857 | (lambda _ | ||
| 858 | (format #t "fn main() {~@ | ||
| 859 | println!(\"cargo:rustc-link-lib=nghttp2\");~@ | ||
| 860 | }~%"))) | ||
| 861 | ;; Remove vendored dynamically linked libraries. | ||
| 862 | ;; find . -not -type d -executable -exec file {} \+ | grep ELF | ||
| 863 | ;; Also remove the bundled (mostly Windows) libraries. | ||
| 864 | (for-each delete-file | ||
| 865 | (find-files "vendor" "\\.(a|dll|exe|lib)$")) | ||
| 866 | ;; Adjust vendored dependency to explicitly use rustix with libc backend. | ||
| 867 | (substitute* "vendor/tempfile/Cargo.toml" | ||
| 868 | (("features = \\[\"fs\"" all) | ||
| 869 | (string-append all ", \"use-libc\""))))))) | ||
| 836 | (arguments | 870 | (arguments |
| 837 | (substitute-keyword-arguments | 871 | (substitute-keyword-arguments |
| 838 | (strip-keyword-arguments '(#:tests?) | 872 | (strip-keyword-arguments '(#:tests?) |
| @@ -1054,7 +1088,7 @@ exec -a \"$0\" \"~a\" \"$@\"" | |||
| 1054 | (chmod (string-append bin "/rust-analyzer") #o755)))))))) | 1088 | (chmod (string-append bin "/rust-analyzer") #o755)))))))) |
| 1055 | (inputs | 1089 | (inputs |
| 1056 | (modify-inputs (package-inputs base-rust) | 1090 | (modify-inputs (package-inputs base-rust) |
| 1057 | (prepend curl))) | 1091 | (prepend curl libffi `(,nghttp2 "lib") zlib))) |
| 1058 | ;; Add test inputs. | 1092 | ;; Add test inputs. |
| 1059 | (native-inputs (cons* `("gdb" ,gdb/pinned) | 1093 | (native-inputs (cons* `("gdb" ,gdb/pinned) |
| 1060 | `("procps" ,procps) | 1094 | `("procps" ,procps) |
