diff --git a/.guix/modules/crates-io.scm b/.guix/modules/crates-io.scm index b5e6cb0..7c90a91 100644 --- a/.guix/modules/crates-io.scm +++ b/.guix/modules/crates-io.scm @@ -7,36 +7,38 @@ (define-public rust-ubyte-0.10 (package (name "rust-ubyte") - (version "0.10.3") - (source (origin - (method url-fetch) - (uri (crate-uri "ubyte" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1rlg6sr14i3rd4kfhrwd7b7w7krlg6kpjxkd6vcx0si8gnp0s7y8")))) + (version "0.10.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "ubyte" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1spj3k9sx6xvfn7am9vm1b463hsr79nyvj8asi2grqhyrvvdw87p")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t #:cargo-inputs (("rust-serde" ,rust-serde-1)))) (home-page "https://github.com/SergioBenitez/ubyte") (synopsis - "A simple, complete, const-everything, saturating, human-friendly, no_std library for byte units. ") + "A simple, complete, const-everything, saturating, human-friendly, no_std library for byte units. +") (description - "This package provides a simple, complete, const-everything, saturating,human-friendly, no_std library for byte units.") + "This package provides a simple, complete, const-everything, saturating, +human-friendly, no_std library for byte units.") (license (list license:expat license:asl2.0)))) (define-public rust-oid-registry-0.4 (package (name "rust-oid-registry") (version "0.4.0") - (source (origin - (method url-fetch) - (uri (crate-uri "oid-registry" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "oid-registry" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -50,13 +52,13 @@ (package (name "rust-der-parser") (version "7.0.0") - (source (origin - (method url-fetch) - (uri (crate-uri "der-parser" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "10kfa2gzl3x20mwgrd43cyi79xgkqxyzcyrh0xylv4apa33qlfgy")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "der-parser" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "10kfa2gzl3x20mwgrd43cyi79xgkqxyzcyrh0xylv4apa33qlfgy")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -76,13 +78,13 @@ (package (name "rust-asn1-rs-derive") (version "0.1.0") - (source (origin - (method url-fetch) - (uri (crate-uri "asn1-rs-derive" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "asn1-rs-derive" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -99,13 +101,13 @@ (package (name "rust-asn1-rs") (version "0.3.1") - (source (origin - (method url-fetch) - (uri (crate-uri "asn1-rs" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "asn1-rs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -129,13 +131,13 @@ (package (name "rust-x509-parser") (version "0.13.2") - (source (origin - (method url-fetch) - (uri (crate-uri "x509-parser" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "077bi0xyaa8cmrqf3rrw1z6kkzscwd1nxdxgs7mgz2ambg7bmfcz")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "x509-parser" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "077bi0xyaa8cmrqf3rrw1z6kkzscwd1nxdxgs7mgz2ambg7bmfcz")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -155,17 +157,62 @@ (description "Parser for the X.509 v3 format (RFC 5280 certificates)") (license (list license:expat license:asl2.0)))) +(define-public rust-tokio-rustls-0.24 + (package + (name "rust-tokio-rustls") + (version "0.24.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-rustls" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "10bhibg57mqir7xjhb2xmf24xgfpx6fzpyw720a4ih8a737jg0y2")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-rustls" ,rust-rustls-0.21) + ("rust-tokio" ,rust-tokio-1)))) + (home-page "https://github.com/rustls/tokio-rustls") + (synopsis "Asynchronous TLS/SSL streams for Tokio using Rustls.") + (description "Asynchronous TLS/SSL streams for Tokio using Rustls.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-state-0.6 + (package + (name "rust-state") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "state" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1n3n2h324h1y5zhaajh6kplvzfvg1l6hsr8siggmf4yq8m24m31b")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-loom" ,rust-loom-0.5)))) + (home-page "https://github.com/SergioBenitez/state") + (synopsis + "A library for safe and effortless global and thread-local state management. +") + (description + "This package provides a library for safe and effortless global and thread-local +state management.") + (license (list license:expat license:asl2.0)))) + (define-public rust-stable-pattern-0.1 (package (name "rust-stable-pattern") (version "0.1.0") - (source (origin - (method url-fetch) - (uri (crate-uri "stable-pattern" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0i8hq82vm82mqj02qqcsd7caibrih7x5w3a1xpm8hpv30261cr25")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "stable-pattern" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0i8hq82vm82mqj02qqcsd7caibrih7x5w3a1xpm8hpv30261cr25")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -175,41 +222,75 @@ (description "Stable port of std::str::Pattern and friends.") (license (list license:expat license:asl2.0)))) -(define-public rust-rocket-http-0.5 +(define-public rust-cookie-0.18 (package - (name "rust-rocket-http") - (version "0.5.0-rc.3") - (source (origin - (method url-fetch) - (uri (crate-uri "rocket_http" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1x4h411ldb59c6bq05r7dzi65xiqz7akd63zydkkm832j74i4q4k")))) + (name "rust-cookie") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "cookie" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1y2ywf9isq0dwpj7m7jq7r1g9cs3xr2i6qipw5v030hj2kv1rn9w")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t - #:cargo-inputs (("rust-cookie" ,rust-cookie-0.17) + #:cargo-inputs (("rust-aes-gcm" ,rust-aes-gcm-0.10) + ("rust-base64" ,rust-base64-0.21) + ("rust-hkdf" ,rust-hkdf-0.12) + ("rust-hmac" ,rust-hmac-0.12) + ("rust-percent-encoding" ,rust-percent-encoding-2) + ("rust-rand" ,rust-rand-0.8) + ("rust-sha2" ,rust-sha2-0.10) + ("rust-subtle" ,rust-subtle-2) + ("rust-time" ,rust-time-0.3) + ("rust-version-check" ,rust-version-check-0.9)))) + (home-page "https://github.com/SergioBenitez/cookie-rs") + (synopsis + "HTTP cookie parsing and cookie jar management. Supports signed and private +(encrypted, authenticated) jars. +") + (description + "HTTP cookie parsing and cookie jar management. Supports signed and private +(encrypted, authenticated) jars.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-rocket-http-0.5 + (package + (name "rust-rocket-http") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rocket_http" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "17iq208zf9rfxdnx8hfjxnn51074cc9li99yjigzwnfhjhv6d89p")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-cookie" ,rust-cookie-0.18) ("rust-either" ,rust-either-1) ("rust-futures" ,rust-futures-0.3) ("rust-http" ,rust-http-0.2) ("rust-hyper" ,rust-hyper-0.14) - ("rust-indexmap" ,rust-indexmap-1) + ("rust-indexmap" ,rust-indexmap-2) ("rust-log" ,rust-log-0.4) ("rust-memchr" ,rust-memchr-2) ("rust-pear" ,rust-pear-0.2) ("rust-percent-encoding" ,rust-percent-encoding-2) ("rust-pin-project-lite" ,rust-pin-project-lite-0.2) ("rust-ref-cast" ,rust-ref-cast-1) - ("rust-rustls" ,rust-rustls-0.20) + ("rust-rustls" ,rust-rustls-0.21) ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) ("rust-serde" ,rust-serde-1) ("rust-smallvec" ,rust-smallvec-1) ("rust-stable-pattern" ,rust-stable-pattern-0.1) - ("rust-state" ,rust-state-0.5) + ("rust-state" ,rust-state-0.6) ("rust-time" ,rust-time-0.3) ("rust-tokio" ,rust-tokio-1) - ("rust-tokio-rustls" ,rust-tokio-rustls-0.23) + ("rust-tokio-rustls" ,rust-tokio-rustls-0.24) ("rust-uncased" ,rust-uncased-0.9) ("rust-uuid" ,rust-uuid-1) ("rust-x509-parser" ,rust-x509-parser-0.13)))) @@ -225,13 +306,13 @@ (package (name "rust-devise-core") (version "0.4.1") - (source (origin - (method url-fetch) - (uri (crate-uri "devise_core" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0sp5idq0idng9i5kwjd8slvc724s97r28arrhyqq1jpx1ax0vd9m")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "devise_core" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0sp5idq0idng9i5kwjd8slvc724s97r28arrhyqq1jpx1ax0vd9m")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -251,13 +332,13 @@ macros.") (package (name "rust-devise-codegen") (version "0.4.1") - (source (origin - (method url-fetch) - (uri (crate-uri "devise_codegen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1mpy5mmsigkj5f72gby82yk4advcqj97am2wzn0dwkj8vnwg934w")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "devise_codegen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1mpy5mmsigkj5f72gby82yk4advcqj97am2wzn0dwkj8vnwg934w")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -274,13 +355,13 @@ macros.") (package (name "rust-devise") (version "0.4.1") - (source (origin - (method url-fetch) - (uri (crate-uri "devise" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1y45iag4hyvspkdsf6d856hf0ihf9vjnaga3c7y6c72l7zywxsnn")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "devise" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1y45iag4hyvspkdsf6d856hf0ihf9vjnaga3c7y6c72l7zywxsnn")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -296,85 +377,42 @@ macros.") (define-public rust-rocket-codegen-0.5 (package (name "rust-rocket-codegen") - (version "0.5.0-rc.3") - (source (origin - (method url-fetch) - (uri (crate-uri "rocket_codegen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12shzkr9zmc0v3r190nhcfavly28nngja2g4h94p93122hzkb4vh")))) + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rocket_codegen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0k6hdf9s9y73kzj89qs688gnfjj1sl4imp6pdjz22pzpmdk808x2")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t #:cargo-inputs (("rust-devise" ,rust-devise-0.4) ("rust-glob" ,rust-glob-0.3) - ("rust-indexmap" ,rust-indexmap-1) + ("rust-indexmap" ,rust-indexmap-2) ("rust-proc-macro2" ,rust-proc-macro2-1) ("rust-quote" ,rust-quote-1) ("rust-rocket-http" ,rust-rocket-http-0.5) ("rust-syn" ,rust-syn-2) - ("rust-unicode-xid" ,rust-unicode-xid-0.2)))) + ("rust-unicode-xid" ,rust-unicode-xid-0.2) + ("rust-version-check" ,rust-version-check-0.9)))) (home-page "https://rocket.rs") (synopsis "Procedural macros for the Rocket web framework.") (description "Procedural macros for the Rocket web framework.") (license (list license:expat license:asl2.0)))) -(define-public rust-rmp-0.8 - (package - (name "rust-rmp") - (version "0.8.12") - (source (origin - (method url-fetch) - (uri (crate-uri "rmp" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "083bbqw8ibqp63v6scmaxmy5x8yznj4j0i2n6jjivv9qrjk6163z")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-byteorder" ,rust-byteorder-1) - ("rust-num-traits" ,rust-num-traits-0.2) - ("rust-paste" ,rust-paste-1)))) - (home-page "https://github.com/3Hren/msgpack-rust") - (synopsis "Pure Rust MessagePack serialization implementation") - (description "Pure Rust @code{MessagePack} serialization implementation") - (license license:expat))) - -(define-public rust-rmp-serde-1 - (package - (name "rust-rmp-serde") - (version "1.1.2") - (source (origin - (method url-fetch) - (uri (crate-uri "rmp-serde" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12i5aglyni58hlq19pi58z1z6a1hv6l04p9y8ms8l3cqx9gaizmz")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-byteorder" ,rust-byteorder-1) - ("rust-rmp" ,rust-rmp-0.8) - ("rust-serde" ,rust-serde-1)))) - (home-page "https://github.com/3Hren/msgpack-rust") - (synopsis "Serde bindings for RMP") - (description "Serde bindings for RMP") - (license license:expat))) - (define-public rust-multer-2 (package (name "rust-multer") (version "2.1.0") - (source (origin - (method url-fetch) - (uri (crate-uri "multer" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1hjiphaypj3phqaj5igrzcia9xfmf4rr4ddigbh8zzb96k1bvb01")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "multer" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1hjiphaypj3phqaj5igrzcia9xfmf4rr4ddigbh8zzb96k1bvb01")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -403,13 +441,13 @@ macros.") (package (name "rust-yansi") (version "1.0.0-rc.1") - (source (origin - (method url-fetch) - (uri (crate-uri "yansi" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0xr3n41j5v00scfkac2d6vhkxiq9nz3l5j6vw8f3g3bqixdjjrqk")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "yansi" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xr3n41j5v00scfkac2d6vhkxiq9nz3l5j6vw8f3g3bqixdjjrqk")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -424,13 +462,13 @@ macros.") (package (name "rust-proc-macro2-diagnostics") (version "0.10.1") - (source (origin - (method url-fetch) - (uri (crate-uri "proc-macro2-diagnostics" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1j48ipc80pykvhx6yhndfa774s58ax1h6sm6mlhf09ls76f6l1mg")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "proc-macro2-diagnostics" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1j48ipc80pykvhx6yhndfa774s58ax1h6sm6mlhf09ls76f6l1mg")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -447,14 +485,14 @@ macros.") (define-public rust-pear-codegen-0.2 (package (name "rust-pear-codegen") - (version "0.2.7") - (source (origin - (method url-fetch) - (uri (crate-uri "pear_codegen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0m0dras73cm92sqn1715ypn46h9z1r8sc043kq9rq1n8v89hz7ys")))) + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (crate-uri "pear_codegen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xrwnlncg7l64gfy82vf6kq55ww7p6krq6bc3pqwymxpiq76f8if")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -471,13 +509,13 @@ macros.") (package (name "rust-inlinable-string") (version "0.1.15") - (source (origin - (method url-fetch) - (uri (crate-uri "inlinable_string" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1ysjci8yfvxgf51z0ny2nnwhxrclhmb3vbngin8v4bznhr3ybyn8")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "inlinable_string" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ysjci8yfvxgf51z0ny2nnwhxrclhmb3vbngin8v4bznhr3ybyn8")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -486,24 +524,24 @@ macros.") (synopsis "The `inlinable_string` crate provides the `InlinableString` type -- an owned, grow-able UTF-8 string that stores small strings inline and avoids heap-allocation -- and the `StringExt` trait which abstracts string operations over both `std::string::String` and `InlinableString` (or even your own custom string type).") (description - "The `inlinable_string` crate provides the @code{`InlinableString`} type -- an + "The `inlinable_string` crate provides the `@code{InlinableString`} type -- an owned, grow-able UTF-8 string that stores small strings inline and avoids -heap-allocation -- and the @code{`StringExt`} trait which abstracts string -operations over both `std::string::String` and @code{`InlinableString`} (or even +heap-allocation -- and the `@code{StringExt`} trait which abstracts string +operations over both `std::string::String` and `@code{InlinableString`} (or even your own custom string type).") (license (list license:asl2.0 license:expat)))) (define-public rust-pear-0.2 (package (name "rust-pear") - (version "0.2.7") - (source (origin - (method url-fetch) - (uri (crate-uri "pear" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "077pd1lbr5g99gsmcbglcrq6izl32qvd2l2bc2cx6aajf76qd8v1")))) + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (crate-uri "pear" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1j03s6m80iqldnm6jzh3k1fbyk0lxirx8bi4ivgq3k3sq7va1k2c")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -515,28 +553,48 @@ your own custom string type).") (description "This package provides a pear is a fruit.") (license (list license:expat license:asl2.0)))) -(define-public rust-figment-0.10 +(define-public rust-atomic-0.6 (package - (name "rust-figment") - (version "0.10.10") - (source (origin - (method url-fetch) - (uri (crate-uri "figment" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "19f932h57nzw6kd3ispch1aigcwj841sjw70f42qday9yhkf4is5")))) + (name "rust-atomic") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "atomic" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "15193mfhmrq3p6vi1a10hw3n6kvzf5h32zikhby3mdj0ww1q10cd")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t - #:cargo-inputs (("rust-atomic" ,rust-atomic-0.5) + #:cargo-inputs (("rust-bytemuck" ,rust-bytemuck-1)))) + (home-page "https://github.com/Amanieu/atomic-rs") + (synopsis "Generic Atomic wrapper type") + (description "Generic Atomic wrapper type") + (license (list license:asl2.0 license:expat)))) + +(define-public rust-figment-0.10 + (package + (name "rust-figment") + (version "0.10.12") + (source + (origin + (method url-fetch) + (uri (crate-uri "figment" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1vps8n6nnn0ca2cww60bibm5ka4d9lq2d5jik9z0b535h9fkx7v4")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-atomic" ,rust-atomic-0.6) ("rust-parking-lot" ,rust-parking-lot-0.12) ("rust-pear" ,rust-pear-0.2) ("rust-serde" ,rust-serde-1) ("rust-serde-json" ,rust-serde-json-1) ("rust-serde-yaml" ,rust-serde-yaml-0.9) ("rust-tempfile" ,rust-tempfile-3) - ("rust-toml" ,rust-toml-0.7) + ("rust-toml" ,rust-toml-0.8) ("rust-uncased" ,rust-uncased-0.9) ("rust-version-check" ,rust-version-check-0.9)))) (home-page "https://github.com/SergioBenitez/Figment") @@ -549,13 +607,13 @@ your own custom string type).") (package (name "rust-binascii") (version "0.1.4") - (source (origin - (method url-fetch) - (uri (crate-uri "binascii" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q")))) + (source + (origin + (method url-fetch) + (uri (crate-uri "binascii" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t)) @@ -569,14 +627,14 @@ your own custom string type).") (define-public rust-rocket-0.5 (package (name "rust-rocket") - (version "0.5.0-rc.3") - (source (origin - (method url-fetch) - (uri (crate-uri "rocket" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1jcwrkqvmbh1gwvg55kv6mdp8c9331hqzd45jq9gsp5f05s4ywsq")))) + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rocket" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0l4i93dai7pyzlkvdjkqg2g7ni1r6749cwx4nrrhsrr6rdybaywy")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-async-stream" ,rust-async-stream-0.3) @@ -587,8 +645,7 @@ your own custom string type).") ("rust-either" ,rust-either-1) ("rust-figment" ,rust-figment-0.10) ("rust-futures" ,rust-futures-0.3) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-is-terminal" ,rust-is-terminal-0.4) + ("rust-indexmap" ,rust-indexmap-2) ("rust-log" ,rust-log-0.4) ("rust-memchr" ,rust-memchr-2) ("rust-multer" ,rust-multer-2) @@ -602,7 +659,7 @@ your own custom string type).") ("rust-rocket-http" ,rust-rocket-http-0.5) ("rust-serde" ,rust-serde-1) ("rust-serde-json" ,rust-serde-json-1) - ("rust-state" ,rust-state-0.5) + ("rust-state" ,rust-state-0.6) ("rust-tempfile" ,rust-tempfile-3) ("rust-time" ,rust-time-0.3) ("rust-tokio" ,rust-tokio-1) @@ -611,7 +668,7 @@ your own custom string type).") ("rust-ubyte" ,rust-ubyte-0.10) ("rust-uuid" ,rust-uuid-1) ("rust-version-check" ,rust-version-check-0.9) - ("rust-yansi" ,rust-yansi-0.5)) + ("rust-yansi" ,rust-yansi-1)) #:cargo-development-inputs (("rust-figment" ,rust-figment-0.10) ("rust-pretty-assertions" ,rust-pretty-assertions-1)))) (home-page "https://rocket.rs") @@ -621,226 +678,4 @@ your own custom string type).") (description "Web framework with a focus on usability, security, extensibility, and speed.") (license (list license:expat license:asl2.0)))) -(define-public rust-quick-xml-0.29 - (package - (name "rust-quick-xml") - (version "0.29.0") - (source (origin - (method url-fetch) - (uri (crate-uri "quick-xml" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0lfaciwimmlsx9c6w3vhypk5ssqkhzi1vv0g95hpnb6q2n125fc1")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-arbitrary" ,rust-arbitrary-1) - ("rust-document-features" ,rust-document-features-0.2) - ("rust-encoding-rs" ,rust-encoding-rs-0.8) - ("rust-memchr" ,rust-memchr-2) - ("rust-serde" ,rust-serde-1) - ("rust-tokio" ,rust-tokio-1)))) - (home-page "https://github.com/tafia/quick-xml") - (synopsis "High performance xml reader and writer") - (description "High performance xml reader and writer") - (license license:expat))) - -(define-public rust-plist-1 - (package - (name "rust-plist") - (version "1.5.0") - (source (origin - (method url-fetch) - (uri (crate-uri "plist" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "01mfd4129p1iqadvpylpbx5ma3p2x4cdih2bwai5gnx3zqf01h5x")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-base64" ,rust-base64-0.21) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-line-wrap" ,rust-line-wrap-0.1) - ("rust-quick-xml" ,rust-quick-xml-0.29) - ("rust-serde" ,rust-serde-1) - ("rust-time" ,rust-time-0.3)))) - (home-page "https://github.com/ebarnard/rust-plist/") - (synopsis "A rusty plist parser. Supports Serde serialization.") - (description - "This package provides a rusty plist parser. Supports Serde serialization.") - (license license:expat))) - -(define-public rust-fancy-regex-0.11 - (package - (name "rust-fancy-regex") - (version "0.11.0") - (source (origin - (method url-fetch) - (uri (crate-uri "fancy-regex" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "18j0mmzfycibhxhhhfja00dxd1vf8x5c28lbry224574h037qpxr")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-bit-set" ,rust-bit-set-0.5) - ("rust-regex" ,rust-regex-1)))) - (home-page "https://github.com/fancy-regex/fancy-regex") - (synopsis - "An implementation of regexes, supporting a relatively rich set of features, including backreferences and look-around.") - (description - "An implementation of regexes, supporting a relatively rich set of features, -including backreferences and look-around.") - (license license:expat))) - -(define-public rust-syntect-5 - (package - (name "rust-syntect") - (version "5.1.0") - (source (origin - (method url-fetch) - (uri (crate-uri "syntect" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "14cg314vzabi45cdbqgcpav0dlx3d18blp24n3z8pl7q7cq4naz0")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-bincode" ,rust-bincode-1) - ("rust-bitflags" ,rust-bitflags-1) - ("rust-fancy-regex" ,rust-fancy-regex-0.11) - ("rust-flate2" ,rust-flate2-1) - ("rust-fnv" ,rust-fnv-1) - ("rust-once-cell" ,rust-once-cell-1) - ("rust-onig" ,rust-onig-6) - ("rust-plist" ,rust-plist-1) - ("rust-regex-syntax" ,rust-regex-syntax-0.7) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1) - ("rust-thiserror" ,rust-thiserror-1) - ("rust-walkdir" ,rust-walkdir-2) - ("rust-yaml-rust" ,rust-yaml-rust-0.4)))) - (home-page "https://github.com/trishume/syntect") - (synopsis - "library for high quality syntax highlighting and code intelligence using Sublime Text's grammars") - (description - "library for high quality syntax highlighting and code intelligence using Sublime -Text's grammars") - (license license:expat))) - -(define-public rust-emojis-0.5 - (package - (name "rust-emojis") - (version "0.5.3") - (source (origin - (method url-fetch) - (uri (crate-uri "emojis" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0pdrhzlx53ksb41dx3qjl6qg9nj711vj28r8d92pv0lij5sbq1rl")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-phf" ,rust-phf-0.11)))) - (home-page "https://github.com/rossmacarthur/emojis") - (synopsis - "✨ Lookup and iterate over emoji names, shortcodes, and groups") - (description - "✨ Lookup and iterate over emoji names, shortcodes, and groups") - (license (list license:expat license:asl2.0)))) - -(define-public rust-comrak-0.16 - (package - (name "rust-comrak") - (version "0.16.0") - (source (origin - (method url-fetch) - (uri (crate-uri "comrak" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "004m3512w5xwzxmsmmvgf5708is8d2qwj36cg4ay1b9dh783cj3q")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-clap" ,rust-clap-4) - ("rust-emojis" ,rust-emojis-0.5) - ("rust-entities" ,rust-entities-1) - ("rust-memchr" ,rust-memchr-2) - ("rust-once-cell" ,rust-once-cell-1) - ("rust-pest" ,rust-pest-2) - ("rust-pest-derive" ,rust-pest-derive-2) - ("rust-regex" ,rust-regex-1) - ("rust-shell-words" ,rust-shell-words-1) - ("rust-slug" ,rust-slug-0.1) - ("rust-syntect" ,rust-syntect-5) - ("rust-typed-arena" ,rust-typed-arena-2) - ("rust-unicode-categories" ,rust-unicode-categories-0.1) - ("rust-xdg" ,rust-xdg-2)))) - (home-page "https://github.com/kivikakk/comrak") - (synopsis - "A 100% CommonMark-compatible GitHub Flavored Markdown parser and formatter") - (description - "This package provides a 100% @code{CommonMark-compatible} @code{GitHub} Flavored -Markdown parser and formatter") - (license license:bsd-2))) - -(define-public rust-askama-derive-0.12 - (package - (name "rust-askama-derive") - (version "0.12.1") - (source (origin - (method url-fetch) - (uri (crate-uri "askama_derive" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "157w36qk4l6nzcy23bhm0bhkkl6d4bzncsg5b21hjp2l2c2bwby2")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-basic-toml" ,rust-basic-toml-0.1) - ("rust-mime" ,rust-mime-0.3) - ("rust-mime-guess" ,rust-mime-guess-2) - ("rust-nom" ,rust-nom-7) - ("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-serde" ,rust-serde-1) - ("rust-syn" ,rust-syn-2)))) - (home-page "https://github.com/djc/askama") - (synopsis "Procedural macro package for Askama") - (description "Procedural macro package for Askama") - (license (list license:expat license:asl2.0)))) - -(define-public rust-askama-0.12 - (package - (name "rust-askama") - (version "0.12.0") - (source (origin - (method url-fetch) - (uri (crate-uri "askama" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0zmmrzwy1l5mlzwxlwjvssh23i55bf1y9gkvf8rri3gsfg7w7js7")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs (("rust-askama-derive" ,rust-askama-derive-0.12) - ("rust-askama-escape" ,rust-askama-escape-0.10) - ("rust-comrak" ,rust-comrak-0.16) - ("rust-humansize" ,rust-humansize-2) - ("rust-num-traits" ,rust-num-traits-0.2) - ("rust-percent-encoding" ,rust-percent-encoding-2) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1) - ("rust-serde-yaml" ,rust-serde-yaml-0.9)))) - (home-page "https://github.com/djc/askama") - (synopsis "Type-safe, compiled Jinja-like templates for Rust") - (description "Type-safe, compiled Jinja-like templates for Rust") - (license (list license:expat license:asl2.0)))) diff --git a/.guix/modules/meowy-webring.scm b/.guix/modules/meowy-webring.scm index e16b8cc..6d2fd1d 100644 --- a/.guix/modules/meowy-webring.scm +++ b/.guix/modules/meowy-webring.scm @@ -1,34 +1,31 @@ -(load "rust.scm") (load "crates-io.scm") (define-module (meowy-webring) - #:use-module (crates-io) - #:use-module (guix) - #:use-module (guix build-system cargo) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages) - #:use-module (gnu packages crates-io) - #:use-module (rust) - #:use-module (srfi srfi-1)) + :use-module (crates-io) + #:use-module (guix) + #:use-module (guix build-system cargo) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io) + #:use-module (srfi srfi-1)) (define (keep-file? file stat) - (not (any (lambda (my-string) - (string-contains file my-string)) - (list ".git" ".dir-locals.el" "guix.scm" ".guix")))) + (or (git-predicate (current-source-directory)) + (const #t))) (define-public meowy-webring - (package - (name "meowy-webring") - (version "0.1.0-git") - (source (local-file "../.." "meowy-webring-checkout" - #:recursive? #t - #:select? keep-file?)) - (build-system cargo-build-system) - (arguments (list #:rust backported-rust - #:cargo-inputs `(("rust-rocket" ,rust-rocket-0.5) - ("rust-askama" ,rust-askama-0.12)))) - (synopsis "") - (description "") - (home-page "") - (license license:cc0))) + (package + (name "meowy-webring") + (version "0.1.0-git") + (source (local-file "../.." "meowy-webring-checkout" + #:recursive? #t + #:select? keep-file?)) + (build-system cargo-build-system) + (arguments (list #:cargo-inputs `(("rust-rocket" ,rust-rocket-0.5) + ("rust-serde" ,rust-serde-1)))) + (synopsis "") + (description "") + (home-page "") + (license license:cc0))) meowy-webring diff --git a/.guix/modules/patches/rust-1.70-fix-rustix-build.patch b/.guix/modules/patches/rust-1.70-fix-rustix-build.patch deleted file mode 100644 index a7e2003..0000000 --- a/.guix/modules/patches/rust-1.70-fix-rustix-build.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/vendor/fd-lock/Cargo.toml 2023-05-31 14:44:48.000000000 -0700 -+++ b/vendor/fd-lock/Cargo.toml 2023-07-14 21:19:34.637702319 -0700 -@@ -45,7 +45,7 @@ - - [target."cfg(unix)".dependencies.rustix] - version = "0.37.0" --features = ["fs"] -+features = ["fs", "cc"] - - [target."cfg(windows)".dependencies.windows-sys] - version = "0.45.0" ---- a/src/bootstrap/Cargo.lock 2023-07-11 20:32:40.000000000 -0700 -+++ b/src/bootstrap/Cargo.lock 2023-07-14 22:41:53.269284713 -0700 -@@ -618,6 +618,7 @@ - dependencies = [ - "bitflags", -+ "cc", - "errno", - "io-lifetimes", - "libc", diff --git a/.guix/modules/rust.scm b/.guix/modules/rust.scm deleted file mode 100644 index 492c8e9..0000000 --- a/.guix/modules/rust.scm +++ /dev/null @@ -1,302 +0,0 @@ -(define-module (rust) - #:use-module (guix) - #:use-module (guix build-system cargo) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages) - #:use-module (gnu packages crates-io) - #:use-module (gnu packages gdb) - #:use-module (gnu packages linux) - #:use-module (gnu packages rust) - #:use-module (srfi srfi-1)) - -(define rust-1.68 - (@@ (gnu packages rust) rust-1.68)) - -(define rust-bootstrapped-package - (@@ (gnu packages rust) rust-bootstrapped-package)) - -(define %cargo-reference-hash - (@@ (gnu packages rust) %cargo-reference-hash)) - -(define rust-1.69 - (let ((base-rust - (rust-bootstrapped-package - rust-1.68 "1.69.0" "03zn7kx5bi5mdfsqfccj4h8gd6abm7spj0kjsfxwlv5dcwc9f1gv"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" ".*\\.(a|dll|exe|lib)$"))))))))) - -(define rust-1.70 - (let ((base-rust - (rust-bootstrapped-package - rust-1.69 "1.70.0" "0z6j7d0ni0rmfznv0w3mrf882m11kyh51g2bxkj40l3s1c0axgxj"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - ;; Rust 1.70 uses the rustix library which on Linux, it defaults to - ;; using outline ASM which without the cc cargo feature enabled, it - ;; will expect a precompiled binary library. This patch will enable the cargo - ;; cc feature flag inside the fd-lock vendored Cargo.toml file, which is the - ;; crate that uses rustix. - (patches (list "./patches/rust-1.70-fix-rustix-build.patch")) - (patch-flags '("-p1")))) - (arguments - (substitute-keyword-arguments (package-arguments base-rust) - ((#:phases phases) - `(modify-phases ,phases - (replace 'build - (lambda* (#:key parallel-build? #:allow-other-keys) - (let ((job-spec (string-append - "-j" (if parallel-build? - (number->string (parallel-job-count)) - "1")))) - (invoke "./x.py" job-spec "build" "--stage=1" - "library/std" - "src/tools/cargo"))))))))))) - -(define rust-1.71 - (let ((base-rust - (rust-bootstrapped-package - rust-1.70 "1.71.0" "15jc0d13cmrh2xvpkyyvsbwgn3w4klqiwf2wlgzfp22mvjmy8rx6"))) - (package - (inherit base-rust) - (arguments - (substitute-keyword-arguments (package-arguments base-rust) - ((#:validate-runpath? _ #t) - #f) - ((#:phases phases) - `(modify-phases ,phases - (replace 'patch-cargo-checksums - (lambda _ - (substitute* '("Cargo.lock" - "src/bootstrap/Cargo.lock" - "src/tools/rust-analyzer/Cargo.lock" - "src/tools/cargo/Cargo.lock") - (("(checksum = )\".*\"" all name) - (string-append name "\"" ,%cargo-reference-hash "\""))) - (generate-all-checksums "vendor")))))))))) - -;;; Function to make creating a list to ignore tests a bit easier. -(define (make-ignore-test-list strs) - (map (lambda (str) - (let ((ignore-string (format #f "#[ignore]\n~a" str))) - `((,str) ,ignore-string))) - strs)) - -;;; Note: Only the latest versions of Rust are supported and tested. The -;;; intermediate rusts are built for bootstrapping purposes and should not -;;; be relied upon. This is to ease maintenance and reduce the time -;;; required to build the full Rust bootstrap chain. -;;; -;;; Here we take the latest included Rust, make it public, and re-enable tests -;;; and extra components such as rustfmt. -(define-public backported-rust - (let ((base-rust rust-1.71)) - (package - (inherit base-rust) - (outputs (cons "rustfmt" (package-outputs base-rust))) - (arguments - (substitute-keyword-arguments (package-arguments base-rust) - ((#:tests? _ #f) - (not (%current-target-system))) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'relax-gdb-auto-load-safe-path - ;; Allow GDB to load binaries from any location, otherwise the - ;; gdbinfo tests fail. This is only useful when testing with a - ;; GDB version newer than 8.2. - (lambda _ - (setenv "HOME" (getcwd)) - (with-output-to-file (string-append (getenv "HOME") "/.gdbinit") - (lambda _ - (format #t "set auto-load safe-path /~%"))) - ;; Do not launch gdb with '-nx' which causes it to not execute - ;; any init file. - (substitute* "src/tools/compiletest/src/runtest.rs" - (("\"-nx\".as_ref\\(\\), ") - "")))) - (add-after 'unpack 'patch-cargo-env-shebang - (lambda _ - (substitute* '("src/tools/cargo/tests/testsuite/build.rs" - "src/tools/cargo/tests/testsuite/fix.rs") - ;; The cargo *_wrapper tests set RUSTC.*WRAPPER environment - ;; variable which points to /usr/bin/env. Since it's not a - ;; shebang, it needs to be manually patched. - (("/usr/bin/env") - (which "env"))))) - (add-after 'unpack 'disable-tests-requiring-git - (lambda _ - (substitute* "src/tools/cargo/tests/testsuite/git.rs" - ,@(make-ignore-test-list '("fn fetch_downloads_with_git2_first_then_with_gitoxide_and_vice_versa" - "fn git_fetch_cli_env_clean" - "fn git_with_cli_force" - "fn use_the_cli"))) - ;; Gitoxide tests seem to require the internet to run - ;; and Guix build containers don't have the internet. - (substitute* "src/tools/cargo/tests/testsuite/git_shallow.rs" - ,@(make-ignore-test-list - '("fn gitoxide_clones_git_dependency_with_shallow_protocol_and_git2_is_used_for_followup_fetches" - "fn gitoxide_clones_registry_with_shallow_protocol_and_aborts_and_updates_again" - "fn gitoxide_clones_registry_with_shallow_protocol_and_follow_up_fetch_maintains_shallowness" - "fn gitoxide_clones_registry_with_shallow_protocol_and_follow_up_with_git2_fetch" - "fn gitoxide_clones_registry_without_shallow_protocol_and_follow_up_fetch_uses_shallowness" - "fn gitoxide_clones_shallow_two_revs_same_deps" - "fn gitoxide_git_dependencies_switch_from_branch_to_rev" - "fn gitoxide_shallow_clone_followed_by_non_shallow_update" - "fn shallow_deps_work_with_revisions_and_branches_mixed_on_same_dependency"))) - (substitute* "src/tools/cargo/tests/testsuite/offline.rs" - ,@(make-ignore-test-list '("fn gitoxide_cargo_compile_offline_with_cached_git_dep_shallow_dep"))) - (substitute* "src/tools/cargo/tests/testsuite/patch.rs" - ,@(make-ignore-test-list '("fn gitoxide_clones_shallow_old_git_patch"))))) - (add-after 'unpack 'disable-tests-requiring-mercurial - (lambda _ - (substitute* - "src/tools/cargo/tests/testsuite/init/mercurial_autodetect/mod.rs" - ,@(make-ignore-test-list '("fn case"))) - (substitute* - "src/tools/cargo/tests/testsuite/init/simple_hg/mod.rs" - ,@(make-ignore-test-list '("fn case"))) - (substitute* - "src/tools/cargo/tests/testsuite/init/simple_hg_ignore_exists/mod.rs" - ,@(make-ignore-test-list '("fn case"))) - (substitute* - "src/tools/cargo/tests/testsuite/new.rs" - ,@(make-ignore-test-list '("fn simple_hg"))))) - (add-after 'unpack 'disable-tests-broken-on-aarch64 - (lambda _ - (with-directory-excursion "src/tools/cargo/tests/testsuite/" - (substitute* "build_script_extra_link_arg.rs" - (("^fn build_script_extra_link_arg_bin_single" m) - (string-append "#[ignore]\n" m))) - (substitute* "build_script.rs" - (("^fn env_test" m) - (string-append "#[ignore]\n" m))) - (substitute* "collisions.rs" - (("^fn collision_doc_profile_split" m) - (string-append "#[ignore]\n" m))) - (substitute* "concurrent.rs" - (("^fn no_deadlock_with_git_dependencies" m) - (string-append "#[ignore]\n" m))) - (substitute* "features2.rs" - (("^fn dep_with_optional_host_deps_activated" m) - (string-append "#[ignore]\n" m)))))) - (add-after 'unpack 'patch-command-exec-tests - ;; This test suite includes some tests that the stdlib's - ;; `Command` execution properly handles in situations where - ;; the environment or PATH variable are empty, but this fails - ;; since we don't have `echo` available at its usual FHS - ;; location. - (lambda _ - (substitute* (match (find-files "." "^command-exec.rs$") - ((file) file)) - (("Command::new\\(\"echo\"\\)") - (format #f "Command::new(~s)" (which "echo")))))) - (add-after 'unpack 'patch-command-uid-gid-test - (lambda _ - (substitute* (match (find-files "." "^command-uid-gid.rs$") - ((file) file)) - (("/bin/sh") - (which "sh"))))) - (add-after 'unpack 'skip-shebang-tests - ;; This test make sure that the parser behaves properly when a - ;; source file starts with a shebang. Unfortunately, the - ;; patch-shebangs phase changes the meaning of these edge-cases. - ;; We skip the test since it's drastically unlikely Guix's - ;; packaging will introduce a bug here. - (lambda _ - (delete-file "tests/ui/parser/shebang/sneaky-attrib.rs"))) - (add-after 'unpack 'patch-process-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "library/std/src/process/tests.rs" - (("\"/bin/sh\"") - (string-append "\"" bash "/bin/sh\""))) - ;; The three tests which are known to fail upstream on QEMU - ;; emulation on aarch64 and riscv64 also fail on x86_64 in Guix's - ;; build system. Skip them on all builds. - (substitute* "library/std/src/sys/unix/process/process_common/tests.rs" - (("target_arch = \"arm\",") "target_os = \"linux\","))))) - (add-after 'unpack 'disable-interrupt-tests - (lambda _ - ;; This test hangs in the build container; disable it. - (substitute* (match (find-files "." "^freshness.rs$") - ((file) file)) - (("fn linking_interrupted") - "#[ignore]\nfn linking_interrupted")) - ;; Likewise for the ctrl_c_kills_everyone test. - (substitute* (match (find-files "." "^death.rs$") - ((file) file)) - (("fn ctrl_c_kills_everyone") - "#[ignore]\nfn ctrl_c_kills_everyone")))) - (add-after 'unpack 'adjust-rpath-values - ;; This adds %output:out to rpath, allowing us to install utilities in - ;; different outputs while reusing the shared libraries. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "src/bootstrap/builder.rs" - ((" = rpath.*" all) - (string-append all - " " - "rustflags.arg(\"-Clink-args=-Wl,-rpath=" - out "/lib\");\n")))))) - (add-after 'configure 'add-gdb-to-config - (lambda* (#:key inputs #:allow-other-keys) - (let ((gdb (assoc-ref inputs "gdb"))) - (substitute* "config.toml" - (("^python =.*" all) - (string-append all - "gdb = \"" gdb "/bin/gdb\"\n")))))) - (replace 'build - ;; Phase overridden to also build rustfmt. - (lambda* (#:key parallel-build? #:allow-other-keys) - (let ((job-spec (string-append - "-j" (if parallel-build? - (number->string (parallel-job-count)) - "1")))) - (invoke "./x.py" job-spec "build" - "library/std" ;rustc - "src/tools/cargo" - "src/tools/rustfmt")))) - (replace 'check - ;; Phase overridden to also test rustfmt. - (lambda* (#:key tests? parallel-build? #:allow-other-keys) - (when tests? - (let ((job-spec (string-append - "-j" (if parallel-build? - (number->string (parallel-job-count)) - "1")))) - (invoke "./x.py" job-spec "test" "-vv" - "library/std" - "src/tools/cargo" - "src/tools/rustfmt"))))) - (replace 'install - ;; Phase overridden to also install rustfmt. - (lambda* (#:key outputs #:allow-other-keys) - (invoke "./x.py" "install") - (substitute* "config.toml" - ;; Adjust the prefix to the 'cargo' output. - (("prefix = \"[^\"]*\"") - (format #f "prefix = ~s" (assoc-ref outputs "cargo")))) - (invoke "./x.py" "install" "cargo") - (substitute* "config.toml" - ;; Adjust the prefix to the 'rustfmt' output. - (("prefix = \"[^\"]*\"") - (format #f "prefix = ~s" (assoc-ref outputs "rustfmt")))) - (invoke "./x.py" "install" "rustfmt"))))))) - ;; Add test inputs. - (native-inputs (cons* `("gdb" ,gdb/pinned) - `("procps" ,procps) - (package-native-inputs base-rust)))))) - diff --git a/manifest.scm b/manifest.scm index d832096..591f9b3 100644 --- a/manifest.scm +++ b/manifest.scm @@ -3,10 +3,8 @@ ;; that accepts a '--manifest' (or '-m') option. (specifications->manifest - (list "nss-certs" - "rust-async-stream" - "rust-cargo" - "rust-rocket" - "rust-askama" - "rust-serde" + (list "gcc-toolchain" + "git" + "git-lfs" + "rust-cargo" "rust"))