Message ID | 875z2tdlfh.fsf_-_@asu.edu |
---|---|
State | New |
Headers | show |
Series | [bug#43929] gnu: Add pijul. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hello, John Soo <jsoo1@asu.edu> writes: Thank you. I'm adding my grain of salt, if you don't mind! > +(define-public rust-trust-dns-rustls-0.6 > + (package > + (inherit rust-trust-dns-rustls-0.7) > + (name "rust-trust-dns-rustls") AFAICT, rust-trust-dns-rustls-0.6 already inherits from 0.19, so it is not strictly necessary to change this inheritance. > +(define-public rust-yasna-0.1 > + (package > + (name "rust-yasna") > + (version "0.1.3") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "yasna" version)) > + (file-name > + (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 > + "1frcd79rzi6dlly7lldjn2avnhfmj6yxrjsgvb2p1k2zbxdzyc9s")))) > + (build-system cargo-build-system) > + (arguments > + `(#:cargo-inputs > + (("rust-bit-vec" ,rust-bit-vec-0.4) > + ("rust-chrono" ,rust-chrono-0.4) > + ("rust-num" ,rust-num-0.1) > + ("rust-num-bigint" ,rust-num-bigint-0.1)) > + #:cargo-development-inputs > + (("rust-num-traits" ,rust-num-traits-0.2)))) This should have #:skip-build #t as any non-leaf package. > +(define-public rust-thrussh-keys-0.11 [...] > + ("rust-thrussh-libsodium" > + ,rust-thrussh-libsodium-0.1) Nitpick: indentation. > + ("rust-tokio" ,rust-tokio-0.1) > + ("rust-yasna" ,rust-yasna-0.1)) > + #:cargo-development-inputs > + (("rust-env-logger" ,rust-env-logger-0.6) > + ("rust-tempdir" ,rust-tempdir-0.3) > + ("rust-tokio-uds" ,rust-tokio-uds-0.2)))) See above about #:skip-build? > + (home-page "https://pijul.org/thrussh") > + (synopsis > + "Deal with SSH keys in Rust") > + (description > + "This package provides a rust library to deal with SSH keys. Nitpick: rust -> Rust > + ("rust-thrussh-libsodium" > + ,rust-thrussh-libsodium-0.1) Indentation nitpick and #skip-build again :) I will not repeat those in the rest of the message. > + (synopsis > + "Contains function definitions for the Windows API library advapi32") s/Contains // > + (description > + "Contains function definitions for the Windows API library advapi32. > +The winapi crate's types and constants has more details about this > API.") The description needs to be a complete sentence. > + (synopsis > + "Portably retrieve the username of the user running the current thread") s/Portably // > + (description > + "Portably retrieve the user name (and possibly other information in > +future versions) of the user running the current thread.") Could you write it as a full sentence? > +(define-public rust-spmc-0.2 > + (package > + (inherit rust-spmc-0.3) > + (name "rust-spmc") > + (version "0.2.3") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "spmc" version)) > + (file-name (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 "1nhbjc65avbb4nffk6b49spbv7rsmmnrppj2qnx39mhwi57spgiw")))) > + (arguments > + `(#:tests? #f ;; tests hang > + #:cargo-development-inputs > + (("rust-loom" ,rust-loom-0.2)))) > + ;; This package is broken before 0.3 > + ;; Only included for pijul@1 > + (properties `((hidden? . #t))))) I suggest to not bother and use #:skip-build? > +(define-public rust-tokio-tls-0.1 > + (package > + (inherit rust-tokio-tls-0.3) > + (version "0.1.4") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "tokio-tls" version)) > + (file-name > + (string-append > + (package-name rust-tokio-tls-0.3) "-" version ".tar.gz")) > + (sha256 > + (base32 > + "04yrdscn8m9qza8ms09pqipbmj6x2q64jgm5n3ipy4b0wl24nbvp")))) > + (arguments > + `(#:skip-build? #t > + #:cargo-inputs > + (("rust-futures" ,rust-futures-0.1) > + ("rust-native-tls" ,rust-native-tls-0.1) > + ("rust-tokio-core" ,rust-tokio-core-0.1) > + ("rust-tokio-io" ,rust-tokio-io-0.1) > + ("rust-tokio-proto" ,rust-tokio-proto-0.1)) > + #:cargo-development-inputs > + (("rust-cfg-if" ,rust-cfg-if-0.1) > + ("rust-env-logger" ,rust-env-logger-0.4) > + ("rust-hyper" ,rust-hyper-0.11) > + ("rust-openssl" ,rust-openssl-0.9) > + ("rust-schannel" ,rust-schannel-0.1) > + ("rust-security-framework" > + ,rust-security-framework-0.1) > + ("rust-tokio-service" ,rust-tokio-service-0.1) > + ("rust-winapi" ,rust-winapi-0.3)))))) Since you use skip-build?, development inputs are not necessary. > +(define-public pijul > + (package > + (name "pijul") > + (version "0.12.2") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "pijul" version)) > + (file-name > + (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 > + "12aqpfd2si70qbvfnn9kvznxyd5g5gsb1kk1q52wm077cd03yapr")))) > + (build-system cargo-build-system) > + (inputs > + `(("clang" ,clang) > + ("libressl" ,libressl) > + ("libsodium" ,libsodium) > + ("nettle" ,nettle) > + ("pkg-config" ,pkg-config))) Shouldn't pgk-config and clang be native-inputs instead? Regards,
From 271fc728ab7a47630457d6611b0603b705c9097c Mon Sep 17 00:00:00 2001 From: John Soo <jsoo1@asu.edu> Date: Wed, 17 Jun 2020 18:23:46 -0700 Subject: [PATCH 14/14] gnu: Add pijul. * gnu/packages/rust-apps.scm (pijul): New variable. --- gnu/packages/rust-apps.scm | 114 +++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 9511cbf308..91924d2322 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -34,10 +34,13 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) + #:use-module (gnu packages crypto) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages gtk) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages llvm) + #:use-module (gnu packages nettle) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) @@ -329,6 +332,117 @@ for distinguishing different kinds of bytes such as NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") (license (list license:expat license:asl2.0)))) +(define-public pijul + (package + (name "pijul") + (version "0.12.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "pijul" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "12aqpfd2si70qbvfnn9kvznxyd5g5gsb1kk1q52wm077cd03yapr")))) + (build-system cargo-build-system) + (inputs + `(("clang" ,clang) + ("libressl" ,libressl) + ("libsodium" ,libsodium) + ("nettle" ,nettle) + ("pkg-config" ,pkg-config))) + (arguments + `(#:cargo-inputs + (("rust-atty" ,rust-atty-0.2) + ("rust-base64" ,rust-base64-0.9) + ("rust-bincode" ,rust-bincode-1) + ("rust-bs58" ,rust-bs58-0.2) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-clap" ,rust-clap-2) + ("rust-cryptovec" ,rust-cryptovec-0.4) + ("rust-dirs" ,rust-dirs-1) + ("rust-env-logger" ,rust-env-logger-0.6) + ("rust-failure" ,rust-failure-0.1) + ("rust-flate2" ,rust-flate2-1) + ("rust-futures" ,rust-futures-0.1) + ("rust-getch" ,rust-getch-0.2) + ("rust-hex" ,rust-hex-0.3) + ("rust-ignore" ,rust-ignore-0.4) + ("rust-libpijul" ,rust-libpijul-0.12) + ("rust-line" ,rust-line-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-pathdiff" ,rust-pathdiff-0.1) + ("rust-progrs" ,rust-progrs-0.1) + ("rust-rand" ,rust-rand-0.6) + ("rust-regex" ,rust-regex-1) + ("rust-reqwest" ,rust-reqwest-0.9) + ("rust-rpassword" ,rust-rpassword-2) + ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-shell-escape" ,rust-shell-escape-0.1) + ("rust-tar" ,rust-tar-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-term" ,rust-term-0.5) + ("rust-thrussh" ,rust-thrussh-0.21) + ("rust-thrussh-config" ,rust-thrussh-config-0.2) + ("rust-thrussh-keys" ,rust-thrussh-keys-0.11) + ("rust-tokio" ,rust-tokio-0.1) + ("rust-tokio-uds" ,rust-tokio-uds-0.2) + ("rust-toml" ,rust-toml-0.4) + ("rust-username" ,rust-username-0.2)) + #:cargo-development-inputs + (("rust-walkdir" ,rust-walkdir-2)) + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-clang-env + (lambda* (#:key inputs #:allow-other-keys) + (setenv + "LIBCLANG_PATH" + (string-append (assoc-ref inputs "clang") "/lib")) + #t)) + (add-after 'install 'install-completions + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (ice-9 popen) + (ice-9 textual-ports)) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share")) + (bash (string-append + share "/bash-completion/completions")) + (zsh (string-append + share "/zsh/site-functions")) + (fish (string-append + share "/fish/vendor_completions.d"))) + (for-each + (lambda (x) + (let ((dir (cddr x)) + (file (cadr x)) + (shell (car x))) + (mkdir-p dir) + (call-with-output-file (string-append dir "/" file) + (lambda (f) + (let* ((cmd (string-append + bin "/pijul generate-completions --" + shell)) + (pipe (open-input-pipe cmd)) + (completion (get-string-all pipe))) + (format f "~A" completion) + (close-pipe pipe)))) )) + `(("bash" . ("pijul" . ,bash)) + ("zsh" . ("_pijul" . ,zsh)) + ("fish" . ("pijul.fish" . ,fish)))) + #t)))))) + (home-page "https://pijul.org/") + (synopsis + "Patch-based distributed version control system") + (description + "This package is a version control system based on patches. Its +fundamental promise is that two patches producible in parallel always commute. +This makes the whole system more correct, and much simpler to use.") + (license license:gpl2+))) + (define-public ripgrep (package (name "ripgrep") -- 2.30.1