1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-16 03:50:45 +02:00

Merge remote-tracking branch 'origin/rust-team'

Change-Id: Ib21a0ea59fb2ae4e802552057227c636f24a6f8c
This commit is contained in:
Efraim Flashner 2025-01-09 10:54:36 +02:00
commit 66a1a1fe22
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
53 changed files with 31796 additions and 25907 deletions

View file

@ -211,10 +211,15 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cppi.scm \
%D%/packages/cran.scm \
%D%/packages/crates-apple.scm \
%D%/packages/crates-audio.scm \
%D%/packages/crates-check.scm \
%D%/packages/crates-compression.scm \
%D%/packages/crates-crypto.scm \
%D%/packages/crates-database.scm \
%D%/packages/crates-io.scm \
%D%/packages/crates-graphics.scm \
%D%/packages/crates-gtk.scm \
%D%/packages/crates-shell.scm \
%D%/packages/crates-tls.scm \
%D%/packages/crates-vcs.scm \
%D%/packages/crates-web.scm \
@ -504,6 +509,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/noweb.scm \
%D%/packages/nss.scm \
%D%/packages/ntp.scm \
%D%/packages/nushell.scm \
%D%/packages/nutrition.scm \
%D%/packages/nvi.scm \
%D%/packages/nx.scm \
@ -1849,6 +1855,7 @@ dist_patch_DATA = \
%D%/packages/patches/mono-mcs-patches-from-5.10.0.patch \
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mrustc-patches.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/musl-cross-locale.patch \
@ -2177,21 +2184,21 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-nokogiri.patch \
%D%/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch \
%D%/packages/patches/rustc-1.54.0-src.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
%D%/packages/patches/rust-1.78-unwinding-fix.patch \
%D%/packages/patches/rust-1.81-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-cargo-edit-remove-ureq.patch \
%D%/packages/patches/rust-ring-0.17-ring-core.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
%D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \
%D%/packages/patches/rust-nettle-disable-vendor.patch \
%D%/packages/patches/rust-onenote-parser-for-clamav-deps.patch \
%D%/packages/patches/rust-onenote-parser-for-clamav-parse-in-memory-buffer.patch \
%D%/packages/patches/rust-onenote-parser-for-clamav-property-type.patch \
%D%/packages/patches/rust-poem-1-fewer-deps.patch \
%D%/packages/patches/rust-rspec-1-remove-clippy.patch \
%D%/packages/patches/rust-trash-2-update-windows.patch \
%D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \
%D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \

View file

@ -5652,7 +5652,7 @@ it won't take longer to install 15 machines than it would to install just 2.")
(define-public greetd
(package
(name "greetd")
(version "0.9.0")
(version "0.10.3")
(home-page "https://git.sr.ht/~kennylevinsen/greetd")
(source (origin
(method git-fetch)
@ -5661,25 +5661,28 @@ it won't take longer to install 15 machines than it would to install just 2.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1b79lb0vikh5vwpdlyga6zwzm11gpsd7ghp8zb0q2m6mlqlj5by3"))))
(base32 "1j3c7skby9scsq6p1f6nacbiy9b26y1sswchdsp8p3vv7fgdh2wf"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-nix" ,rust-nix-0.26)
(("rust-async-trait" ,rust-async-trait-0.1)
("rust-enquote" ,rust-enquote-1)
("rust-getopts" ,rust-getopts-0.2)
("rust-libc" ,rust-libc-0.2)
("rust-nix" ,rust-nix-0.27)
("rust-pam-sys" ,rust-pam-sys-0.5)
("rust-rpassword" ,rust-rpassword-5)
("rust-users" ,rust-users-0.11)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-libc" ,rust-libc-0.2)
("rust-tokio" ,rust-tokio-1)
("rust-getopts" ,rust-getopts-0.2)
("rust-thiserror" ,rust-thiserror-1)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-enquote" ,rust-enquote-1))
("rust-tokio" ,rust-tokio-1))
#:install-source? #f
#:phases
(modify-phases %standard-phases
(delete 'package)
(add-after 'unpack 'patch-/bin/sh
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "greetd/src/session/worker.rs"
(("/bin/sh") (search-input-file inputs "/bin/sh")))))
(add-after 'build 'build-man-pages
(lambda* (#:key inputs #:allow-other-keys)
(define (scdoc-cmd doc lvl)
@ -5764,36 +5767,33 @@ This allows greetd-pam-mount to auto-(un)mount @env{XDG_RUNTIME_DIR} without
interfering with any pam-mount configuration.")))
(define-public wlgreet
(let ((commit "7e79d6004fc5e765a5c3ece6d377f8c5999d9dfa")
(revision "1"))
(package
(name "wlgreet")
(version (git-version "0.4.1" revision commit))
(version "0.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~kennylevinsen/wlgreet")
(commit commit)))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"039a05v6c2i3al86k4fncqr3z47dnrz7y8wmhx6wvm08zx8s89ww"))))
"0d7lfx5jg2w7fp7llwrirnbsp27nv74f21mhrspd9ilk2cacf12d"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-inputs
`(("rust-chrono" ,rust-chrono-0.4)
("rust-getopts" ,rust-getopts-0.2)
("rust-greetd-ipc" ,rust-greetd-ipc-0.9)
("rust-greetd-ipc" ,rust-greetd-ipc-0.10)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-memmap2" ,rust-memmap2-0.3)
("rust-nix" ,rust-nix-0.25)
("rust-os-pipe" ,rust-os-pipe-1)
("rust-rusttype" ,rust-rusttype-0.9)
("rust-serde" ,rust-serde-1)
("rust-smithay-client-toolkit"
,rust-smithay-client-toolkit-0.15)
("rust-toml" ,rust-toml-0.5)
("rust-wayland-client" ,rust-wayland-client-0.29)
("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.15)
("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
#:phases
#~(modify-phases %standard-phases
@ -5803,11 +5803,11 @@ interfering with any pam-mount configuration.")))
(add-after 'remove-bundled-fonts 'fix-font-references
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/draw.rs"
(("\\.\\./fonts/dejavu/DejaVuSansMono\\.ttf" _)
(("\\.\\./fonts/dejavu/DejaVuSansMono\\.ttf")
(search-input-file
inputs
"share/fonts/truetype/DejaVuSansMono.ttf"))
(("\\.\\./fonts/Roboto-Regular\\.ttf" _)
(("\\.\\./fonts/Roboto-Regular\\.ttf")
(search-input-file
inputs
"share/fonts/truetype/Roboto-Regular.ttf")))))
@ -5830,7 +5830,7 @@ interfering with any pam-mount configuration.")))
that runs on a Wayland compositor such as @command{sway}. It
is implemented with pure Wayland APIs, so it does not depend
on a GUI toolkit.")
(license license:gpl3))))
(license license:gpl3)))
(define-public libseat
(package
@ -6304,9 +6304,7 @@ file or files to several hosts.")
(base32 "0qr6ikq2ds8bq35iw480qyhf3d43dj61wiwp8587n3mgqf5djx8w"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-test-flags `(list "--release" "--"
"--skip=test_apparent_size")
#:install-source? #f
(list #:install-source? #f
#:cargo-inputs `(("rust-ansi-term" ,rust-ansi-term-0.12)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-4)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 20192021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,24 +21,29 @@
(define-module (gnu packages antivirus)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages flex)
#:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages rust)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
@ -45,97 +51,118 @@
(define-public clamav
(package
(name "clamav")
(version "0.103.11")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(uri
(list
(string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz")
(string-append "https://github.com/Cisco-Talos/clamav/"
"releases/download/clamav-" version
"/clamav-" version ".tar.gz")))
(sha256
(base32
"04by1g3p6awhi3j1y6zpwzmasdnvjgi6lwm34l2gadlwgkdfpmv1"))
"1n3a87niad76h3mn3qxq9379gppdjqpkhwb9qkbb79irmj0ff653"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("win32" ; unnecessary
"libclamav/c++/llvm" ; use system llvm
"libclamav/tomsfastmath" ; use system tomsfastmath
"libclamunrar")))) ; non-free license
(patches
(search-patches "clamav-system-tomsfastmath.patch"
"clamav-config-llvm-libs.patch"))))
(build-system gnu-build-system)
'(".cargo" ; vendored rust inputs
"win32" ; unnecessary
"libclamunrar")))))) ; non-free license
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-inputs
`(("rust-flate2" ,rust-flate2-1)
("rust-hex" ,rust-hex-0.4)
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-sha2" ,rust-sha2-0.10)
("rust-tempfile" ,rust-tempfile-3)
("rust-thiserror" ,rust-thiserror-1)
("rust-image" ,rust-image-0.24)
("rust-rustdct" ,rust-rustdct-0.7)
("rust-transpose" ,rust-transpose-0.2)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-base64" ,rust-base64-0.21)
("rust-sha1" ,rust-sha1-0.10)
("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
("rust-bindgen" ,rust-bindgen-0.65)
("rust-onenote-parser-for-clamav" ,rust-onenote-parser-for-clamav)
("rust-hex-literal" ,rust-hex-literal-0.4)
("rust-inflate" ,rust-inflate-0.4)
("rust-bzip2-rs" ,rust-bzip2-rs-0.1)
("rust-byteorder" ,rust-byteorder-1)
("rust-delharc" ,rust-delharc-0.6)
("rust-cbindgen" ,rust-cbindgen))
#:vendor-dir ".cargo/vendor"
#:imported-modules `(,@%cmake-build-system-modules
,@%cargo-build-system-modules)
#:modules '((guix build cargo-build-system)
((guix build cmake-build-system) #:prefix cmake:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
;; There is a test.exe file used in unit tests.
(delete 'check-for-pregenerated-files)
(add-after 'configure 'fix-cargo-inputs-vendoring
(lambda _
;; Reproduce the original layout, fails with config.
(rename-file ".cargo/config" ".cargo/config.toml")
;; Wrongly placed by configure
(delete-file-recursively
(string-append ".cargo/vendor/clamav-" #$version ".tar.zst"))))
(add-after 'patch-cargo-checksums 'cmake-configure
(lambda* (#:key outputs #:allow-other-keys)
((assoc-ref cmake:%standard-phases 'configure)
#:configure-flags
(list "-DENABLE_MILTER=OFF" "-DENABLE_UNRAR=OFF")
#:outputs outputs)))
(replace 'build
(assoc-ref cmake:%standard-phases 'build))
(add-after 'patch-cargo-checksums 'patch-rust-requirements
(lambda _
(substitute* "libclamav_rust/Cargo.toml"
;; We make sure we use their fork.
(("onenote_parser = .*")
"onenote_parser = \"*\"\n")
;; As long as it builds later versions of (c)bindgen are fine
(("cbindgen = \\{ version =\".*\",")
"cbindgen = { version = \"*\","))))
(replace 'install
(assoc-ref cmake:%standard-phases 'install))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
((assoc-ref cmake:%standard-phases 'check)
#:tests? tests?
#:test-target "test")))
(add-after 'unpack 'skip-clamd-tests
;; XXX: The check?_clamd tests fail inside the build
;; chroot, but pass outside.
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(substitute* "unit_tests/CMakeLists.txt"
(("clamd_test\\.py" test)
(string-append
test " -k \"not test_clamd_08_VirusEvent\"")))))))))
(native-inputs
(list autoconf
automake
check ; for tests
libtool
pkg-config))
(list check ; for tests
cmake-minimal
pkg-config
python-minimal
python-pytest))
(inputs
(list bzip2
curl
json-c
libltdl
libmspack
llvm-3.6 ; requires <3.7, for JIT/verifier
ncurses
libressl
pcre2
cyrus-sasl ; for linking curl with libtool
tomsfastmath
libxml2
ncurses
pcre2
zlib))
(arguments
(list #:configure-flags
#~(let-syntax ((with (syntax-rules ()
((_ name use)
(string-append "--with-" name "="
(assoc-ref %build-inputs use))))))
(list "--disable-unrar"
"--enable-llvm"
"--with-system-llvm"
"--with-system-libmspack"
"--without-included-ltdl"
(with "xml" "libxml2")
(with "openssl" "libressl")
(with "libjson" "json-c")
(with "pcre2" "pcre2")
(with "zlib" "zlib")
(with "libcurl" "curl")
;; For sanity, specifying --enable-* flags turns
;; "support unavailable" warnings into errors.
"--enable-bzip2"
"--enable-check"
"--sysconfdir=/etc/clamav"
;; Default database directory needs to be writeable
"--with-dbdir=/var/db/clamav"))
;; install sample .conf files to %output/etc rather than /etc/clamav
#:make-flags
#~(list (string-append "sysconfdir=" %output "/etc"))
#:phases
#~(modify-phases %standard-phases
;; Regenerate configure script. Without this we don't get
;; the correct value for LLVM linker variables.
(add-after 'unpack 'reconf
(lambda _ (invoke "autoreconf" "-vfi")))
(add-before 'configure 'patch-llvm-config
(lambda _
(substitute* '("libclamav/c++/detect.cpp"
"libclamav/c++/ClamBCRTChecks.cpp"
"libclamav/c++/bytecode2llvm.cpp")
(("llvm/Config/config.h") "llvm/Config/llvm-config.h"))
;; `llvm-config --libfiles` inappropriately lists lib*.a
;; libraries, rather than the lib*.so's that our llvm
;; contains. They're used only for listing extra build
;; dependencies, so ignore them until that's fixed.
(substitute* "libclamav/c++/Makefile.in"
(("@LLVMCONFIG_LIBFILES@") ""))))
(add-before 'check 'skip-clamd-tests
;; XXX: The check?_clamd tests fail inside the build
;; chroot, but pass outside.
(lambda _
(substitute* "unit_tests/Makefile"
(("check2_clamd.sh.*check4_clamd.sh") "")))))))
(home-page "https://www.clamav.net")
(synopsis "Antivirus engine")
(description
@ -144,6 +171,8 @@ scanning on mail gateways. It provides a number of utilities including a
flexible and scalable multi-threaded daemon, a command line scanner, and
advanced tool for automatic database updates. The core of the package is an
anti-virus engine available in the form of a shared library.")
(properties `((release-monitoring-url
. "https://github.com/Cisco-Talos/clamav/releases")))
(license (list license:gpl2+ ;ClamAV itself
license:lgpl2.1 ;libclamav/mspack.[ch]
license:public-domain ;libclamav/7z/*, libclamav/rijndael.[ch], etc...

View file

@ -49,6 +49,7 @@
;;; Copyright © 2024 hapster <o.rojon@posteo.net>
;;; Copyright © 2024 mio <stigma@disroot.org>
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -80,6 +81,8 @@
#:use-module (gnu packages cdrom)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-audio)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages dbm)
#:use-module (gnu packages documentation)
@ -153,6 +156,7 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
@ -1312,6 +1316,34 @@ bass section with five drawbars. A standalone JACK application and LV2
plugins are provided.")
(license license:gpl2))))
(define-public bankstown-lv2
(package
(name "bankstown-lv2")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "bankstown-lv2" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1bcrn0b4b9v1mksaldhrdb6ncqlwldfwqxjlfp4gcpvl661qdmcb"))))
(build-system cargo-build-system)
(arguments
(list
#:cargo-inputs `(("rust-biquad" ,rust-biquad-0.4)
("rust-lv2" ,rust-lv2-0.6))
#:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(setenv "LIBDIR" (string-append (assoc-ref outputs "out") "/lib"))
(invoke "make" "install"))))))
(home-page "https://github.com/chadmed/bankstown")
(synopsis "Barebones, fast LV2 bass enhancement plugin.")
(description
"This package provides a barebones, fast LV2 bass enhancement plugin.")
(license license:expat)))
(define-public calf
(package
(name "calf")

View file

@ -83,6 +83,7 @@
#:use-module (gnu packages cpp)
#:use-module (gnu packages cpio)
#:use-module (gnu packages cran)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages docbook)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Danny Milosavljevic <dannym@friendly-machines.com>
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,87 +22,14 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cargo)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-vcs)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages llvm)
#:use-module ((guix licenses) #:prefix license:))
(define-public rust-c2rust-bitfields-derive-0.18
(package
(name "rust-c2rust-bitfields-derive")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-bitfields-derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0i95j6q1d61h1m1pk84i3ih00hsmbn8ib35xr129fz2rw81c3jyk"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://c2rust.com/")
(synopsis
"C-compatible struct bitfield derive implementation used in the C2Rust project")
(description
"This package provides C-compatible struct bitfield derive implementation used in the C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-bitfields-0.18
(package
(name "rust-c2rust-bitfields")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-bitfields" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0h9cnyijk65zypv8dqbmr5r238pqq9pa8njrdzx09xhfmc3kyg5l"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-c2rust-bitfields-derive" ,rust-c2rust-bitfields-derive-0.18))))
(home-page "https://c2rust.com/")
(synopsis
"C-compatible struct bitfield implementation used in the C2Rust project")
(description
"This package provides C-compatible struct bitfield implementation used in the C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-ast-printer-0.18
(package
(name "rust-c2rust-ast-printer")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-ast-printer" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1a02bnnxn1difq917c2rv8b7654ni65lyk37hdyklv9n96inr07r"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-log" ,rust-log-0.4)
("rust-prettyplease" ,rust-prettyplease-0.1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://c2rust.com/")
(synopsis "Customized version of libsyntax rust pretty-printer")
(description
"This package provides Customized version of libsyntax rust pretty-printer.")
(license (list license:expat license:asl2.0))))
(define-public rust-c2rust-ast-builder-0.18
(package
@ -116,49 +44,15 @@
(base32 "0w63rp66g6axkymxd16avxp3gjnphy3mg9938gsh52p4aak83nq5"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
`(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://c2rust.com/")
(synopsis "Rust AST builder support crate for the C2Rust project")
(description
"This package provides Rust AST builder support crate for the C2Rust project.")
"This package provides the rust AST builder support crate for the
C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-build-paths-0.18
(package
(name "rust-c2rust-build-paths")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-build-paths" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0b2liaxbqksgfbsmr6hacdia6czlq7m0pyqx3l2rrcfcnb2ksgv0"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-print-bytes" ,rust-print-bytes-1))))
(home-page "https://c2rust.com/")
(synopsis
"C2Rust utilities related to build paths, primarily at build time")
(description
"This package provides C2Rust utilities related to build paths, primarily at build time.")
(license license:bsd-3)))
;; Note: It has expat license.
;; Note: That is supposedly the (unreleased) version 0.6.3.
(define %tinycbor-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intel/tinycbor.git")
(commit "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7")))
(sha256
(base32
"0w38lzj0rz36skc1cn3shllc82c7nn32h88frb8f164a8haq3hkw"))))
(define-public rust-c2rust-ast-exporter-0.18
(package
(name "rust-c2rust-ast-exporter")
@ -174,8 +68,7 @@
(modules '((guix build utils)))))
(build-system cargo-build-system)
(native-inputs
`(("cmake" ,cmake)
("clang" ,clang)))
(list cmake-minimal clang))
(inputs
`(("llvm" ,llvm)
("tinycbor-src" ,%tinycbor-source)))
@ -188,10 +81,9 @@
(copy-recursively (assoc-ref inputs "tinycbor-src")
"/tmp/tinycbor")
(setenv "GUIX_TINYCBOR_SOURCE_DIR" "/tmp/tinycbor"))))
#:skip-build? #f
#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.65)
("rust-c2rust-build-paths" ,rust-c2rust-build-paths-0.18)
("rust-clang-sys" ,rust-clang-sys-1.8)
("rust-clang-sys" ,rust-clang-sys-1)
("rust-cmake" ,rust-cmake-0.1)
("rust-env-logger" ,rust-env-logger-0.10)
("rust-libc" ,rust-libc-0.2)
@ -201,9 +93,115 @@
(home-page "https://c2rust.com/")
(synopsis "Clang AST extraction API for use in the C2Rust project")
(description
"This package provides Clang AST extraction API for use in the C2Rust project.")
"This package provides the Clang AST extraction API for use in the
C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-ast-printer-0.18
(package
(name "rust-c2rust-ast-printer")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-ast-printer" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1a02bnnxn1difq917c2rv8b7654ni65lyk37hdyklv9n96inr07r"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-log" ,rust-log-0.4)
("rust-prettyplease" ,rust-prettyplease-0.1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://c2rust.com/")
(synopsis "Customized version of libsyntax rust pretty-printer")
(description
"This package provides a customized version of libsyntax rust pretty-printer.")
(license (list license:expat license:asl2.0))))
(define-public rust-c2rust-bitfields-0.18
(package
(name "rust-c2rust-bitfields")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-bitfields" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0h9cnyijk65zypv8dqbmr5r238pqq9pa8njrdzx09xhfmc3kyg5l"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-inputs
(list rust-c2rust-bitfields-derive-0.18)
#:cargo-development-inputs
(list rust-libc-0.2)))
(home-page "https://c2rust.com/")
(synopsis
"C-compatible struct bitfield implementation used in the C2Rust project")
(description
"This package provides a C-compatible struct bitfield implementation used
in the C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-bitfields-derive-0.18
(package
(name "rust-c2rust-bitfields-derive")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-bitfields-derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0i95j6q1d61h1m1pk84i3ih00hsmbn8ib35xr129fz2rw81c3jyk"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://c2rust.com/")
(synopsis
"C-compatible struct bitfield derive implementation used in the C2Rust project")
(description
"This package provides a C-compatible struct bitfield derive implementation
used in the C2Rust project.")
(license license:bsd-3)))
(define-public rust-c2rust-build-paths-0.18
(package
(name "rust-c2rust-build-paths")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-build-paths" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0b2liaxbqksgfbsmr6hacdia6czlq7m0pyqx3l2rrcfcnb2ksgv0"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-print-bytes" ,rust-print-bytes-1))))
(home-page "https://c2rust.com/")
(synopsis "C2Rust utilities related to build paths, primarily at build time")
(description
"This package provides C2Rust utilities related to build paths, primarily
at build time.")
(license license:bsd-3)))
;; Note: It has expat license.
;; Note: That is supposedly the (unreleased) version 0.6.3.
(define %tinycbor-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intel/tinycbor.git")
(commit "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7")))
(sha256
(base32
"0w38lzj0rz36skc1cn3shllc82c7nn32h88frb8f164a8haq3hkw"))))
(define-public rust-c2rust-transpile-0.18
(package
(name "rust-c2rust-transpile")
@ -217,8 +215,7 @@
(base32 "09fvi2id0qjhfvsqcz9222ac81lyl2j6rbq280dhn06y1nvy000c"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-c2rust-ast-builder" ,rust-c2rust-ast-builder-0.18)
`(#:cargo-inputs (("rust-c2rust-ast-builder" ,rust-c2rust-ast-builder-0.18)
("rust-c2rust-ast-exporter" ,rust-c2rust-ast-exporter-0.18)
("rust-c2rust-ast-printer" ,rust-c2rust-ast-printer-0.18)
("rust-c2rust-bitfields" ,rust-c2rust-bitfields-0.18)
@ -243,10 +240,23 @@
("rust-smallvec" ,rust-smallvec-1)
("rust-strum" ,rust-strum-0.24)
("rust-strum-macros" ,rust-strum-macros-0.24)
("rust-syn" ,rust-syn-1))))
("rust-syn" ,rust-syn-1))
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch
(lambda* (#:key inputs #:allow-other-keys)
;; The build process will slightly patch the sources.
(copy-recursively (assoc-ref inputs "tinycbor-src")
"/tmp/tinycbor")
(setenv "GUIX_TINYCBOR_SOURCE_DIR" "/tmp/tinycbor"))))))
(native-inputs
`(("clang" ,clang)
("cmake" ,cmake-minimal)
("tinycbor-src" ,%tinycbor-source)))
(inputs (list llvm))
(home-page "https://c2rust.com/")
(synopsis "C2Rust transpiler implementation")
(description "This package provides C2Rust transpiler implementation.")
(description "This package provides the C2Rust transpiler implementation.")
(license license:bsd-3)))
(define-public c2rust
@ -259,15 +269,21 @@
(uri (crate-uri "c2rust" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1rg9cvvmh9zw89mz2bpyvqlwbfhzl5dw2hab9z6d5rasr8mir7nh"))))
(base32 "1rg9cvvmh9zw89mz2bpyvqlwbfhzl5dw2hab9z6d5rasr8mir7nh"))
(modules '((guix build utils)))
(snippet
'(begin (substitute* "Cargo.toml"
(("\"= ?([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
(string-append "\"^" version)))))))
(build-system cargo-build-system)
(native-inputs
`(("tinycbor-src" ,%tinycbor-source)
("cmake" ,cmake)
("cmake" ,cmake-minimal)
("clang" ,clang)))
(inputs (list llvm))
(arguments
`(#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
`(#:install-source? #f
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-c2rust-build-paths" ,rust-c2rust-build-paths-0.18)
("rust-c2rust-transpile" ,rust-c2rust-transpile-0.18)
("rust-clap" ,rust-clap-3)
@ -280,11 +296,6 @@
("rust-time-macros" ,rust-time-macros-0.2))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-deps
(lambda _
;; This is incorrect in the release to begin with.
(substitute* "Cargo.toml"
(("=0.2.6") "=0.2.18"))))
(add-before 'build 'patch
(lambda* (#:key inputs #:allow-other-keys)
;; The build process will slightly patch the sources.

View file

@ -447,7 +447,7 @@ and workspaces that can be used in the compiler environment of your choice.")
(define-public corrosion
(package
(name "corrosion")
(version "0.5.0")
(version "0.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -455,7 +455,7 @@ and workspaces that can be used in the compiler environment of your choice.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1sm1jhdrqzp3f36f7grh900wp7pk9l1zim49hrk87ac6frfmg8xx"))))
(base32 "1bylfjji4yw88r00hgb69nfl9lz73bhc7q3n64myif4alr4b8ypx"))))
(build-system cmake-build-system)
(arguments
(list

View file

@ -11,6 +11,7 @@
;;; Copyright © 2023 Steve George <steve@futurile.net>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Jordan Moore <lockbox@struct.foo>
;;;
;;; This file is part of GNU Guix.
;;;
@ -56,13 +57,51 @@
(arguments
`(#:skip-build? #t
#:cargo-development-inputs
(("rust-objc-test-utils" ,rust-objc-test-utils-0.0))))
(("rust-objc-test-utils" ,rust-objc-test-utils-0.0.2))))
(home-page "https://github.com/SSheldon/rust-block")
(synopsis "Rust interface for Apple's C language extension of blocks")
(description "This package provides a rust interface for Apple's C language
extension of blocks.")
(license license:expat)))
(define-public rust-block-sys-0.2
(package
(name "rust-block-sys")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "block-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1rzp0218mwigdmfd5rhmj5h7c1vp0bq0nxaklhsvi8vydrls11df"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Needs to bind to MacOS libraries.
#:cargo-inputs (("rust-objc-sys" ,rust-objc-sys-0.3))))
(home-page "https://github.com/madsmtm/objc2")
(synopsis "Raw bindings to Apple's C language extension of blocks")
(description "This package contains raw bindings to Apple's C language
extension of blocks.")
(license license:expat)))
(define-public rust-block-sys-0.1
(package
(inherit rust-block-sys-0.2)
(name "rust-block-sys")
(version "0.1.0-beta.1")
(source (origin
(method url-fetch)
(uri (crate-uri "block-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0ihiar08hk0das4q0ii1gsmql975z3rslli1h13jb44hxr0mg98g"))))
(arguments
`(#:tests? #f ; Tests require gcc-objc.
#:cargo-inputs
(("rust-objc-sys" ,rust-objc-sys-0.2))))))
(define-public rust-block2-0.5
(package
(name "rust-block2")
@ -119,55 +158,17 @@ extension of blocks.")
(("rust-block-sys" ,rust-block-sys-0.1)
("rust-objc2-encode" ,rust-objc2-encode-2))))))
(define-public rust-block-sys-0.2
(package
(name "rust-block-sys")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "block-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1rzp0218mwigdmfd5rhmj5h7c1vp0bq0nxaklhsvi8vydrls11df"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Needs to bind to MacOS libraries.
#:cargo-inputs (("rust-objc-sys" ,rust-objc-sys-0.3))))
(home-page "https://github.com/madsmtm/objc2")
(synopsis "Raw bindings to Apple's C language extension of blocks")
(description "This package contains raw bindings to Apple's C language
extension of blocks.")
(license license:expat)))
(define-public rust-block-sys-0.1
(package
(inherit rust-block-sys-0.2)
(name "rust-block-sys")
(version "0.1.0-beta.1")
(source (origin
(method url-fetch)
(uri (crate-uri "block-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0ihiar08hk0das4q0ii1gsmql975z3rslli1h13jb44hxr0mg98g"))))
(arguments
`(#:tests? #f ; Tests require gcc-objc.
#:cargo-inputs
(("rust-objc-sys" ,rust-objc-sys-0.2))))))
(define-public rust-cargo-credential-macos-keychain-0.4
(package
(name "rust-cargo-credential-macos-keychain")
(version "0.4.8")
(version "0.4.9")
(source
(origin
(method url-fetch)
(uri (crate-uri "cargo-credential-macos-keychain" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1mb5ckal65llh7c0p2a3ivwbv8802s9ysrr0wsjn82fj8jv05kla"))))
(base32 "10djgy45fsirckyjjk7m63vfd6fkp9wrjfxznb5rplz1p4y0acfk"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-cargo-credential" ,rust-cargo-credential-0.4)
@ -179,23 +180,6 @@ extension of blocks.")
@code{macOS} keychain.")
(license (list license:expat license:asl2.0))))
(define-public rust-cargo-credential-macos-keychain-0.3
(package
(inherit rust-cargo-credential-macos-keychain-0.4)
(name "rust-cargo-credential-macos-keychain")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "cargo-credential-macos-keychain" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "15i7gq5z6a3896aq2bci9mc9h77g91ziij87c2zhhd91g1pf41rs"))))
(arguments
`(#:cargo-inputs
(("rust-cargo-credential" ,rust-cargo-credential-0.3)
("rust-security-framework" ,rust-security-framework-2))))))
(define-public rust-cocoa-0.25
(package
(name "rust-cocoa")
@ -401,7 +385,7 @@ extension of blocks.")
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-clippy" ,rust-clippy-0.0)
(("rust-clippy" ,rust-clippy-0.0.302)
("rust-commoncrypto-sys" ,rust-commoncrypto-sys-0.2))))
(home-page "https://github.com/malept/rust-commoncrypto")
(synopsis "Idiomatic Rust wrappers for Mac OS X's CommonCrypto library")
@ -426,7 +410,7 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
(arguments
`(#:skip-build? #t ;requires the Mac OS library
#:cargo-inputs
(("rust-clippy" ,rust-clippy-0.0)
(("rust-clippy" ,rust-clippy-0.0.302)
("rust-libc" ,rust-libc-0.2))))
(home-page "https://github.com/malept/rust-commoncrypto")
(synopsis "FFI bindings to Mac OS X's CommonCrypto library")
@ -435,50 +419,6 @@ library which provides Rust FFI bindings and idiomatic wrappers for Mac OS X's
CommonCrypto library.")
(license license:expat)))
(define-public rust-coreaudio-rs-0.10
(package
(name "rust-coreaudio-rs")
(version "0.10.0")
(source (origin
(method url-fetch)
(uri (crate-uri "coreaudio-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"125d4zr3n363ybga4629p41ym7iqjfb2alnwrc1zj7zyxch4p28i"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; Only builds for macos or ios.
#:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
("rust-coreaudio-sys" ,rust-coreaudio-sys-0.2))))
(home-page "https://github.com/RustAudio/coreaudio-rs")
(synopsis "Rust interface for Apple's CoreAudio API")
(description
"This package provides a rust interface for Apple's CoreAudio API.")
(license (list license:expat license:asl2.0))))
(define-public rust-coreaudio-sys-0.2
(package
(name "rust-coreaudio-sys")
(version "0.2.15")
(source (origin
(method url-fetch)
(uri (crate-uri "coreaudio-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1agmf1idf5m08rgkvsdxqni985acmrs629xzlpqgazq54x85h0bz"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; Only builds for macos or ios.
#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69))))
(home-page "https://github.com/RustAudio/coreaudio-sys")
(synopsis
"Bindings for Apple's CoreAudio frameworks generated via rust-bindgen")
(description
"Bindings for Apple's CoreAudio frameworks generated via rust-bindgen.")
(license license:expat)))
(define-public rust-core-foundation-0.10
(package
(name "rust-core-foundation")
@ -563,26 +503,6 @@ CommonCrypto library.")
("rust-libc" ,rust-libc-0.2)
("rust-uuid" ,rust-uuid-0.5))))))
(define-public rust-core-foundation-0.2
(package
(inherit rust-core-foundation-0.6)
(name "rust-core-foundation")
(version "0.2.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "core-foundation" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0rvcn7ab5r69wvn7gby745jlpy8pirfywcdxbiypy083s93dggr5"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
("rust-libc" ,rust-libc-0.2))))))
(define-public rust-core-foundation-sys-0.8
(package
(name "rust-core-foundation-sys")
@ -627,24 +547,6 @@ CommonCrypto library.")
(base32
"0fzsw1j9g1x598yhwklg59l15hwzc0pyvs01w9fg2kin4598mjp7"))))))
(define-public rust-core-foundation-sys-0.2
(package
(inherit rust-core-foundation-sys-0.6)
(name "rust-core-foundation-sys")
(version "0.2.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "core-foundation-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"13f7f3kblyj6yxcxm74yg84vj9ahaprlc1vgblagmj6bzmzmsnh6"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-libc" ,rust-libc-0.2))))))
(define-public rust-core-text-20
(package
(name "rust-core-text")
@ -688,6 +590,50 @@ CommonCrypto library.")
("rust-foreign-types" ,rust-foreign-types-0.3)
("rust-libc" ,rust-libc-0.2))))))
(define-public rust-coreaudio-rs-0.10
(package
(name "rust-coreaudio-rs")
(version "0.10.0")
(source (origin
(method url-fetch)
(uri (crate-uri "coreaudio-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"125d4zr3n363ybga4629p41ym7iqjfb2alnwrc1zj7zyxch4p28i"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; Only builds for macos or ios.
#:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
("rust-coreaudio-sys" ,rust-coreaudio-sys-0.2))))
(home-page "https://github.com/RustAudio/coreaudio-rs")
(synopsis "Rust interface for Apple's CoreAudio API")
(description
"This package provides a rust interface for Apple's CoreAudio API.")
(license (list license:expat license:asl2.0))))
(define-public rust-coreaudio-sys-0.2
(package
(name "rust-coreaudio-sys")
(version "0.2.16")
(source (origin
(method url-fetch)
(uri (crate-uri "coreaudio-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0asnnypbsqzj2lxx4irnmyi9b32sl0vkxb61mj3p5mvp1fm5gs1c"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; Only builds for macos or ios.
#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.70))))
(home-page "https://github.com/RustAudio/coreaudio-sys")
(synopsis
"Bindings for Apple's CoreAudio frameworks generated via rust-bindgen")
(description
"Bindings for Apple's CoreAudio frameworks generated via rust-bindgen.")
(license license:expat)))
(define-public rust-dispatch-0.2
(package
(name "rust-dispatch")
@ -726,14 +672,14 @@ Central Dispatch.")
(define-public rust-fat-macho-0.4
(package
(name "rust-fat-macho")
(version "0.4.8")
(version "0.4.9")
(source (origin
(method url-fetch)
(uri (crate-uri "fat-macho" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1pqsjf13pdbhki2sdh70575hwqd18gm3vp8hpir3vl5djgrr6k0d"))
"0idkn366wipv2l757yqfgzgibqc6jvm89gdk9kpgmvf6lv54b72c"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "tests/fixtures")))))
@ -741,7 +687,7 @@ Central Dispatch.")
(arguments
`(#:tests? #f ; Test files removed.
#:cargo-inputs
(("rust-goblin" ,rust-goblin-0.8)
(("rust-goblin" ,rust-goblin-0.9)
("rust-llvm-bitcode" ,rust-llvm-bitcode-0.1))))
(home-page "https://github.com/messense/fat-macho-rs.git")
(synopsis "Mach-O Fat Binary Reader and Writer")
@ -884,6 +830,31 @@ macOS API for file changes notifications")
(description "This package provides bindings to Apple's frameworks.")
(license license:expat)))
(define-public rust-mac-notification-sys-0.6
(package
(name "rust-mac-notification-sys")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "mac-notification-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "14cgvhb2790fzsilwdw720m2pc2zzk0zcgbjgqbkgahp6x7z7s6w"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ;Requires OSX to build framework "Foundation"
#:cargo-inputs (("rust-cc" ,rust-cc-1)
("rust-dirs-next" ,rust-dirs-next-2)
("rust-objc-foundation" ,rust-objc-foundation-0.1)
("rust-objc-id" ,rust-objc-id-0.1)
("rust-time" ,rust-time-0.3))))
(home-page "https://github.com/h4llow3En/mac-notification-sys")
(synopsis "Thin wrapper around macOS Notifications")
(description
"This package provides Thin wrapper around @code{macOS} Notifications.")
(license license:expat)))
(define-public rust-mach-0.3
(package
(name "rust-mach")
@ -1126,7 +1097,7 @@ Foundation framework.")
`(#:skip-build? #t ; Needs gcc-objc
#:cargo-inputs (("rust-cc" ,rust-cc-1))))))
(define-public rust-objc-test-utils-0.0
(define-public rust-objc-test-utils-0.0.2
(package
(name "rust-objc-test-utils")
(version "0.0.2")
@ -1544,6 +1515,28 @@ the Cocoa Foundation framework.")
framework.")
(license license:expat)))
(define-public rust-objc2-symbols-0.2
(package
(name "rust-objc2-symbols")
(version "0.2.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "objc2-symbols" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1p04hjkxan18g2b7h9n2n8xxsvazapv2h6mfmmdk06zc7pz4ws0a"))))
(build-system cargo-build-system)
(arguments
;; Must specify the desired runtime using Cargo features on non-Apple platforms
`(#:skip-build? #t
#:cargo-inputs (("rust-objc2" ,rust-objc2-0.5)
("rust-objc2-foundation" ,rust-objc2-foundation-0.2))))
(home-page "https://github.com/madsmtm/objc2")
(synopsis "Bindings to the Symbols framework")
(description "This package Provides Bindings to the Symbols framework.")
(license license:expat)))
(define-public rust-objc2-ui-kit-0.2
(package
(name "rust-objc2-ui-kit")
@ -1578,28 +1571,6 @@ framework.")
(description "This package provides bindings to the UIKit framework.")
(license license:expat)))
(define-public rust-objc2-symbols-0.2
(package
(name "rust-objc2-symbols")
(version "0.2.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "objc2-symbols" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1p04hjkxan18g2b7h9n2n8xxsvazapv2h6mfmmdk06zc7pz4ws0a"))))
(build-system cargo-build-system)
(arguments
;; Must specify the desired runtime using Cargo features on non-Apple platforms
`(#:skip-build? #t
#:cargo-inputs (("rust-objc2" ,rust-objc2-0.5)
("rust-objc2-foundation" ,rust-objc2-foundation-0.2))))
(home-page "https://github.com/madsmtm/objc2")
(synopsis "Bindings to the Symbols framework")
(description "This package Provides Bindings to the Symbols framework.")
(license license:expat)))
(define-public rust-objc2-uniform-type-identifiers-0.2
(package
(name "rust-objc2-uniform-type-identifiers")
@ -1650,28 +1621,41 @@ framework.")
"This package provides bindings to the @code{UserNotifications} framework.")
(license license:expat)))
(define-public rust-readkey-0.1
(define-public rust-security-framework-3
(package
(name "rust-readkey")
(version "0.1.7")
(name "rust-security-framework")
(version "3.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "readkey" version))
(uri (crate-uri "security-framework" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0iiip8bq4yhal5rv6wlws0xgz798blki7s5ly5cmlwm1ssv03m46"))))
(base32 "1g1wq04rb6gsyfawphv5vhmmicbm5l25gsvr05mvng6cpz4zilw1"))))
(build-system cargo-build-system)
(arguments `(#:skip-build? #t))
(home-page "https://github.com/segeljakt/readkey")
(synopsis "Library for finding out if a key is currently pressed on macOS")
(description
"This package provides a very small library for finding out if a key is
currently pressed on macOS.")
(license license:expat)))
(arguments
`(#:tests? #f ; unresolved import `security_framework::secure_transport`
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-2)
("rust-core-foundation" ,rust-core-foundation-0.10)
("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-security-framework-sys" ,rust-security-framework-sys-2))
#:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.10)
("rust-hex" ,rust-hex-0.4)
("rust-tempfile" ,rust-tempfile-3)
("rust-time" ,rust-time-0.3)
("rust-x509-parser" ,rust-x509-parser-0.16))))
(home-page "https://lib.rs/crates/security_framework")
(synopsis "@code{Security.framework} bindings for macOS and iOS")
(description "This package provides @code{Security.framework} bindings for
macOS and iOS.")
(license (list license:expat license:asl2.0))))
(define-public rust-security-framework-2
(package
(inherit rust-security-framework-3)
(name "rust-security-framework")
(version "2.11.1")
(source
@ -1681,7 +1665,6 @@ currently pressed on macOS.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "00ldclwx78dm61v7wkach9lcx76awlrv0fdgjdwch4dmy12j4yw9"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; unresolved import `security_framework::secure_transport`
#:cargo-inputs
@ -1697,12 +1680,7 @@ currently pressed on macOS.")
("rust-hex" ,rust-hex-0.4)
("rust-tempdir" ,rust-tempdir-0.3)
("rust-time" ,rust-time-0.3)
("rust-x509-parser" ,rust-x509-parser-0.16))))
(home-page "https://lib.rs/crates/security_framework")
(synopsis "@code{Security.framework} bindings for macOS and iOS")
(description "This package provides @code{Security.framework} bindings for
macOS and iOS.")
(license (list license:expat license:asl2.0))))
("rust-x509-parser" ,rust-x509-parser-0.16))))))
(define-public rust-security-framework-1
(package
@ -1754,45 +1732,45 @@ macOS and iOS.")
(("rust-hex" ,rust-hex-0.4)
("rust-tempdir" ,rust-tempdir-0.3))))))
(define-public rust-security-framework-0.2
(define-public rust-security-framework-0.2.4-yanked
(package
(inherit rust-security-framework-0.3)
(name "rust-security-framework")
(version "0.2.4")
(version "0.2.4") ;This version was yanked!
(source
(origin
(method url-fetch)
(uri (crate-uri "security-framework" version))
(file-name
(string-append name "-" version ".tar.gz"))
(file-name (string-append name "-" version "-yanked.tar.gz"))
(sha256
(base32
"0gw3xxg8yzbjb4ny5cy07gky177c1nbgpxqjsw3hfzpfgrxji9bz"))))
(base32 "0gw3xxg8yzbjb4ny5cy07gky177c1nbgpxqjsw3hfzpfgrxji9bz"))))
(arguments
`(#:skip-build? #t ; MacOS specific
`(#:skip-build? #t ;MacOS specific
#:cargo-inputs
(("rust-core-foundation"
,rust-core-foundation-0.6)
("rust-core-foundation-sys"
,rust-core-foundation-sys-0.6)
(("rust-core-foundation" ,rust-core-foundation-0.6)
("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
("rust-libc" ,rust-libc-0.2)
("rust-security-framework-sys"
,rust-security-framework-sys-0.2))
#:cargo-development-inputs
(("rust-hex" ,rust-hex-0.3)
("rust-tempdir" ,rust-tempdir-0.3))))))
("rust-security-framework-sys" ,rust-security-framework-sys-0.2))
#:cargo-development-inputs (("rust-hex" ,rust-hex-0.3)
("rust-tempdir" ,rust-tempdir-0.3))))
(properties '((crate-version-yanked? . #t)))))
(define-public rust-security-framework-0.2
;; There are no non-yanked versions of this semver.
(deprecated-package "rust-security-framework"
rust-security-framework-0.2.4-yanked))
(define-public rust-security-framework-sys-2
(package
(name "rust-security-framework-sys")
(version "2.12.1")
(version "2.13.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "security-framework-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "18pafp0bn41bcbm66qrhb3pg4c8dddvc28jdr51mb2y57lqcffgs"))))
(base32 "1mbhagj98y2byhjkr353y1nings01pfa9yk0gxmcb0ydd0vzsqqq"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@ -1840,27 +1818,57 @@ macOS and iOS.")
`(#:cargo-inputs
(("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6))))))
(define-public rust-security-framework-sys-0.2
(define-public rust-security-framework-sys-0.2.4-yanked
(package
(inherit rust-security-framework-sys-0.3)
(name "rust-security-framework-sys")
(version "0.2.4")
(version "0.2.4") ;This version was yanked!
(source
(origin
(method url-fetch)
(uri (crate-uri "security-framework-sys" version))
(file-name (string-append name "-" version "-yanked.tar.gz"))
(sha256
(base32 "07zv0szz2kfy1hn251h0qsq0q9i1zia768d8vzril1g6xarj7mcj"))))
(arguments
`(#:skip-build? #t ;MacOS specific
#:cargo-inputs (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
("rust-libc" ,rust-libc-0.2))))
(properties '((crate-version-yanked? . #t)))))
(define-public rust-security-framework-sys-0.2
;; There are no non-yanked versions of this semver.
(deprecated-package "rust-security-framework-sys"
rust-security-framework-sys-0.2.4-yanked))
(define-public rust-system-configuration-0.6
(package
(name "rust-system-configuration")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "system-configuration" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"07zv0szz2kfy1hn251h0qsq0q9i1zia768d8vzril1g6xarj7mcj"))))
(base32 "0sxslml567zm0v8g732314vd2gk9sd3k4xj22xk6p64xir29v1rw"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; MacOS specific
`(#:skip-build? #t ; struct `sockaddr_in` has no field named `sin_len`
#:cargo-inputs
(("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
("rust-libc" ,rust-libc-0.2))))))
(("rust-bitflags" ,rust-bitflags-2)
("rust-core-foundation" ,rust-core-foundation-0.9)
("rust-system-configuration-sys" ,rust-system-configuration-sys-0.6))))
(home-page "https://github.com/mullvad/system-configuration-rs")
(synopsis "Bindings to SystemConfiguration framework for macOS")
(description
"This package provides bindings to the @code{SystemConfiguration} framework
for @code{macOS}.")
(license (list license:expat license:asl2.0))))
(define-public rust-system-configuration-0.5
(package
(inherit rust-system-configuration-0.6)
(name "rust-system-configuration")
(version "0.5.1")
(source
@ -1870,30 +1878,24 @@ macOS and iOS.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1rz0r30xn7fiyqay2dvzfy56cvaa3km74hnbz2d72p97bkf3lfms"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ; struct `sockaddr_in` has no field named `sin_len`
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-core-foundation" ,rust-core-foundation-0.9)
("rust-system-configuration-sys" ,rust-system-configuration-sys-0.5))))
(home-page "https://github.com/mullvad/system-configuration-rs")
(synopsis "Bindings to SystemConfiguration framework for macOS")
(description
"Bindings to @code{SystemConfiguration} framework for @code{macOS}.")
(license (list license:expat license:asl2.0))))
("rust-system-configuration-sys" ,rust-system-configuration-sys-0.5))))))
(define-public rust-system-configuration-sys-0.5
(define-public rust-system-configuration-sys-0.6
(package
(name "rust-system-configuration-sys")
(version "0.5.0")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "system-configuration-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1jckxvdr37bay3i9v52izgy52dg690x5xfg3hd394sv2xf4b2px7"))))
(base32 "1i5sqrmgy58l4704hibjbl36hclddglh73fb3wx95jnmrq81n7cf"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
@ -1903,3 +1905,19 @@ macOS and iOS.")
(description
"Low level bindings to @code{SystemConfiguration} framework for @code{macOS}.")
(license (list license:expat license:asl2.0))))
(define-public rust-system-configuration-sys-0.5
(package
(inherit rust-system-configuration-sys-0.6)
(name "rust-system-configuration-sys")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "system-configuration-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1jckxvdr37bay3i9v52izgy52dg690x5xfg3hd394sv2xf4b2px7"))))
(arguments
`(#:cargo-inputs (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
("rust-libc" ,rust-libc-0.2))))))

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,820 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020, 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com>
;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2023 Steve George <steve@futurile.net>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2024 Aaron Covrig <aaron.covrig.us@ieee.org>
;;; Copyright © 2024 Jordan Moore <lockbox@struct.foo>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; Please: Try to add new module packages in alphabetic order.
;;;
(define-module (gnu packages crates-check)
#:use-module (guix build-system cargo)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages crates-io))
(define-public rust-criterion-0.5
(package
(name "rust-criterion")
(version "0.5.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0bv9ipygam3z8kk6k771gh9zi0j0lb9ir0xi1pc075ljg80jvcgj"))
(modules '((guix build utils)))
(snippet
'(begin (substitute* "Cargo.toml"
(("\"~([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
(string-append "\"^" version)))))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-anes" ,rust-anes-0.1)
("rust-async-std" ,rust-async-std-1)
("rust-cast" ,rust-cast-0.3)
("rust-ciborium" ,rust-ciborium-0.2)
("rust-clap" ,rust-clap-4)
("rust-criterion-plot" ,rust-criterion-plot-0.5)
("rust-csv" ,rust-csv-1)
("rust-futures" ,rust-futures-0.3)
("rust-is-terminal" ,rust-is-terminal-0.4)
("rust-itertools" ,rust-itertools-0.10)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-oorandom" ,rust-oorandom-11)
("rust-plotters" ,rust-plotters-0.3)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-smol" ,rust-smol-1)
("rust-tinytemplate" ,rust-tinytemplate-1)
("rust-tokio" ,rust-tokio-1)
("rust-walkdir" ,rust-walkdir-2))
#:cargo-development-inputs
(("rust-approx" ,rust-approx-0.5)
("rust-futures" ,rust-futures-0.3)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-rand" ,rust-rand-0.8)
("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://bheisler.github.io/criterion.rs/book/index.html")
(synopsis "Statistics-driven micro-benchmarking library")
(description
"This package provides a statistics-driven micro-benchmarking library.")
;; The user can choose either license.
(license (list license:asl2.0 license:expat))))
(define-public rust-criterion-0.4
(package
(inherit rust-criterion-0.5)
(name "rust-criterion")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (crate-uri "criterion" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1jsl4r0yc3fpkyjbi8aa1jrm69apqq9rxwnjnd9brqmaq44nxiz7"))))
(arguments
`(#:cargo-inputs
(("rust-anes" ,rust-anes-0.1)
("rust-async-std" ,rust-async-std-1)
("rust-atty" ,rust-atty-0.2)
("rust-cast" ,rust-cast-0.3)
("rust-ciborium" ,rust-ciborium-0.2)
("rust-clap" ,rust-clap-3)
("rust-criterion-plot" ,rust-criterion-plot-0.5)
("rust-csv" ,rust-csv-1)
("rust-futures" ,rust-futures-0.3)
("rust-itertools" ,rust-itertools-0.10)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-oorandom" ,rust-oorandom-11)
("rust-plotters" ,rust-plotters-0.3)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-smol" ,rust-smol-1)
("rust-tinytemplate" ,rust-tinytemplate-1)
("rust-tokio" ,rust-tokio-1)
("rust-walkdir" ,rust-walkdir-2))
#:cargo-development-inputs
(("rust-approx" ,rust-approx-0.5)
("rust-futures" ,rust-futures-0.3)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-rand" ,rust-rand-0.8)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-criterion-0.3
(package
(inherit rust-criterion-0.4)
(name "rust-criterion")
(version "0.3.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32 "13yd64ah93gkbdv7qq4cr6rhgl9979jjcjk3gkhnav1b7glns7dh"))))
(arguments
`(#:cargo-inputs
(("rust-async-std" ,rust-async-std-1)
("rust-atty" ,rust-atty-0.2)
("rust-cast" ,rust-cast-0.3)
("rust-clap" ,rust-clap-2)
("rust-criterion-plot" ,rust-criterion-plot-0.4)
("rust-csv" ,rust-csv-1)
("rust-futures" ,rust-futures-0.3)
("rust-itertools" ,rust-itertools-0.10)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-oorandom" ,rust-oorandom-11)
("rust-plotters" ,rust-plotters-0.3)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-serde-cbor" ,rust-serde-cbor-0.11)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-smol" ,rust-smol-1)
("rust-tinytemplate" ,rust-tinytemplate-1)
("rust-tokio" ,rust-tokio-1)
("rust-walkdir" ,rust-walkdir-2))
#:cargo-development-inputs
(("rust-approx" ,rust-approx-0.5)
("rust-futures" ,rust-futures-0.3)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-rand" ,rust-rand-0.8)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-criterion-0.2
(package
(inherit rust-criterion-0.3)
(name "rust-criterion")
(version "0.2.11")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1543wlpc4p1kz7sqqa7ylr8bkdr8l4f34hy4bxj7krpkahwhaqq3"))))
(arguments
`(#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
("rust-cast" ,rust-cast-0.2)
("rust-clap" ,rust-clap-2)
("rust-criterion-plot" ,rust-criterion-plot-0.3)
("rust-csv" ,rust-csv-1)
("rust-itertools" ,rust-itertools-0.8)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-rand-core" ,rust-rand-core-0.3)
("rust-rand-os" ,rust-rand-os-0.1)
("rust-rand-xoshiro" ,rust-rand-xoshiro-0.1)
("rust-rayon" ,rust-rayon-1)
("rust-rayon-core" ,rust-rayon-core-1)
("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-tinytemplate" ,rust-tinytemplate-1)
("rust-walkdir" ,rust-walkdir-2))
#:cargo-development-inputs
(("rust-approx" ,rust-approx-0.3)
("rust-quickcheck" ,rust-quickcheck-0.8)
("rust-rand" ,rust-rand-0.6)
("rust-tempdir" ,rust-tempdir-0.3))))))
(define-public rust-criterion-cycles-per-byte-0.1
(package
(name "rust-criterion-cycles-per-byte")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion-cycles-per-byte" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"15iw8zvyilx6k3a7z79vpzmpm6kkyds4c1ng3jlwfc43axd4hd4d"))))
(build-system cargo-build-system)
(arguments
;; error: criterion-cycles-per-byte currently relies on x86 or x86_64
`(#:skip-build? ,(not (target-x86?))
#:cargo-inputs
(("rust-criterion" ,rust-criterion-0.3))))
(home-page "https://crates.io/crates/criterion-cycles-per-byte")
(synopsis "Measure time with CPU cycles for criterion")
(description "This package lets you measure time with CPU cycles for
criterion.")
(license (list license:expat license:asl2.0))))
(define-public rust-criterion-plot-0.5
(package
(name "rust-criterion-plot")
(version "0.5.0")
(source (origin
(method url-fetch)
(uri (crate-uri "criterion-plot" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1c866xkjqqhzg4cjvg01f8w6xc1j3j7s58rdksl52skq89iq4l3b"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs
(("rust-itertool-num" ,rust-itertools-num-0.1)
("rust-num-complex" ,rust-num-complex-0.4)
("rust-rand" ,rust-rand-0.8))
#:cargo-inputs
(("rust-cast" ,rust-cast-0.3)
("rust-itertools" ,rust-itertools-0.10))))
(home-page "https://github.com/bheisler/criterion.rs")
(synopsis "Criterion's plotting library")
(description "This package provides criterion's plotting library.")
;; The user can choose either license.
(license (list license:expat license:asl2.0))))
(define-public rust-criterion-plot-0.4
(package
(inherit rust-criterion-plot-0.5)
(name "rust-criterion-plot")
(version "0.4.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion-plot" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32 "0mys2zkizh5az6ax77m5aqifk0vz35rn0a6wykvmjx9gkzg9c2fh"))))
(arguments
`(#:cargo-inputs
(("rust-cast" ,rust-cast-0.2)
("rust-itertools" ,rust-itertools-0.10))
#:cargo-development-inputs
(("rust-itertools-num" ,rust-itertools-num-0.1)
("rust-num-complex" ,rust-num-complex-0.2)
("rust-rand" ,rust-rand-0.4))))))
(define-public rust-criterion-plot-0.3
(package
(inherit rust-criterion-plot-0.4)
(name "rust-criterion-plot")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "criterion-plot" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"13pv09z4ryp70qyzablkibwa2mh6c2852qq1sjr9wjigvwnj3ybn"))))
(arguments
`(#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1)
("rust-cast" ,rust-cast-0.2)
("rust-itertools" ,rust-itertools-0.8))
#:cargo-development-inputs
(("rust-itertools-num" ,rust-itertools-num-0.1)
("rust-num-complex" ,rust-num-complex-0.2)
("rust-rand" ,rust-rand-0.4))))))
(define-public rust-mark-flaky-tests-1
(package
(name "rust-mark-flaky-tests")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "mark-flaky-tests" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0c29bflpb5aawl5vzcai2rhvphskvh7gdr5v9sq52lx0jmy4lv2q"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-mark-flaky-tests-macro" ,rust-mark-flaky-tests-macro-1))
#:cargo-development-inputs (("rust-paste" ,rust-paste-1)
("rust-tokio" ,rust-tokio-1))))
(home-page "https://github.com/GoldsteinE/mark-flaky-tests/")
(synopsis "Mark, debug and auto-retry your flaky tests")
(description
"This package provides a way to mark, debug and auto-retry your flaky tests.")
(license (list license:expat license:asl2.0))))
(define-public rust-mark-flaky-tests-macro-1
(package
(name "rust-mark-flaky-tests-macro")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "mark-flaky-tests-macro" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "115bb0pb4vb8pwm6lblcnc6zxxlk6w654njiphp696dj2vyiz2q7"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
("rust-proc-macro-error" ,rust-proc-macro-error-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-2))))
(home-page "https://github.com/GoldsteinE/mark-flaky-tests/")
(synopsis "Mark, debug and auto-retry your flaky tests (proc-macro crate)")
(description
"This package provides a way to mark, debug and auto-retry your flaky tests
(proc-macro crate).")
(license (list license:expat license:asl2.0))))
(define-public rust-mock-instant-0.3
(package
(name "rust-mock-instant")
(version "0.3.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "mock_instant" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "180yr3i44a98w1mj36dd8xmym33rbzndpj0j1g13di52n8g8crlk"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))
(home-page "https://github.com/museun/mock_instant")
(synopsis "Mock an std::time::Instant")
(description
"This package provides a simple way to mock an std::time::Instant in Rust.")
(license license:bsd-0)))
(define-public rust-mock-instant-0.2
(package
(inherit rust-mock-instant-0.3)
(name "rust-mock-instant")
(version "0.2.1")
(source (origin
(method url-fetch)
(uri (crate-uri "mock_instant" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0vg0kmz96zazjdq57l57nm24mc2in57y090ywcq827xq8fi2jzki"))))
(arguments
`(#:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))))
(define-public rust-mockall-0.13
(package
(name "rust-mockall")
(version "0.13.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "mockall" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1lir70dd9cnsjlf20gi3i51ha9n7mlrkx74bx5gfszlcdk6bz9ir"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
("rust-downcast" ,rust-downcast-0.11)
("rust-fragile" ,rust-fragile-2)
("rust-mockall-derive" ,rust-mockall-derive-0.13)
("rust-predicates" ,rust-predicates-3)
("rust-predicates-tree" ,rust-predicates-tree-1))
#:cargo-development-inputs (("rust-async-trait" ,rust-async-trait-0.1)
("rust-auto-enums" ,rust-auto-enums-0.8)
("rust-futures" ,rust-futures-0.3)
("rust-mockall-double" ,rust-mockall-double-0.3)
("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-tracing" ,rust-tracing-0.1))))
(home-page "https://github.com/asomers/mockall")
(synopsis "Powerful mock object library for Rust")
(description
"This package provides a powerful mock object library for Rust.")
(license (list license:expat license:asl2.0))))
(define-public rust-mockall-0.11
(package
(inherit rust-mockall-0.13)
(name "rust-mockall")
(version "0.11.4")
(source (origin
(method url-fetch)
(uri (crate-uri "mockall" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"15kww0a3wv300wkksc6zj0kz1jwk0hyly48daxs2vvpj300lk12c"))))
(arguments
`(#:tests? #f ; Not all files included.
#:cargo-inputs
(("rust-cfg-if" ,rust-cfg-if-1)
("rust-downcast" ,rust-downcast-0.11)
("rust-fragile" ,rust-fragile-2)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-mockall-derive" ,rust-mockall-derive-0.11)
("rust-predicates" ,rust-predicates-2)
("rust-predicates-tree" ,rust-predicates-tree-1))
#:cargo-development-inputs
(("rust-async-trait" ,rust-async-trait-0.1)
("rust-futures" ,rust-futures-0.3)
("rust-mockall-double" ,rust-mockall-double-0.3)
("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-tracing" ,rust-tracing-0.1))))))
(define-public rust-mockall-derive-0.13
(package
(name "rust-mockall-derive")
(version "0.13.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "mockall_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1608qajqrz23xbvv81alc6wm4l24as1bsqg4shdh3sggq8231ji5"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-2))
#:cargo-development-inputs
(("rust-pretty-assertions" ,rust-pretty-assertions-1))))
(home-page "https://github.com/asomers/mockall")
(synopsis "Procedural macros for Mockall")
(description "This package provides procedural macros for Mockall.")
(license (list license:expat license:asl2.0))))
(define-public rust-mockall-derive-0.11
(package
(inherit rust-mockall-derive-0.13)
(name "rust-mockall-derive")
(version "0.11.4")
(source (origin
(method url-fetch)
(uri (crate-uri "mockall_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1fvc9kwjcc9ia6ng7z9z02b4qkl9dvsx9m4z51xz9i0mj1k7bki2"))))
(arguments
`(#:cargo-inputs
(("rust-cfg-if" ,rust-cfg-if-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))
#:cargo-development-inputs
(("rust-pretty-assertions" ,rust-pretty-assertions-1))))))
(define-public rust-mockall-double-0.3
(package
(name "rust-mockall-double")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (crate-uri "mockall_double" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1s0k85929bf8afvdgq8m2vs8haqpkg9ysdimw7inl99mmkjrdjpi"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-2))))
(home-page "https://github.com/asomers/mockall")
(synopsis "Double test adapter that works well with Mockall")
(description
"This crate makes it even easier to use mocking by providing a way to
select the mock struct at compile time. Used with the Mockall crate.")
(license (list license:expat license:asl2.0))))
(define-public rust-quickcheck-1
(package
(name "rust-quickcheck")
(version "1.0.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1mjhkfqwrb8mdyxdqr4zzbj1rm5dfx25n9zcc25lb6fxwiw673sq"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.8)
("rust-log" ,rust-log-0.4)
("rust-rand" ,rust-rand-0.8))))
(home-page "https://github.com/BurntSushi/quickcheck")
(synopsis "Automatic property based testing with shrinking")
(description
"QuickCheck is a way to do property based testing using randomly generated
input. This crate comes with the ability to randomly generate and shrink
integers, floats, tuples, booleans, lists, strings, options and results.")
(license (list license:unlicense license:expat))))
(define-public rust-quickcheck-0.9
(package
(inherit rust-quickcheck-1)
(name "rust-quickcheck")
(version "0.9.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0pwl7j21wmf843kpa9gr0byb40hg975ghjrwp0yxcym99bkq6j54"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.7)
("rust-log" ,rust-log-0.4)
("rust-rand" ,rust-rand-0.7)
("rust-rand-core" ,rust-rand-core-0.5))))))
(define-public rust-quickcheck-0.8
(package
(inherit rust-quickcheck-0.9)
(name "rust-quickcheck")
(version "0.8.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0mkl4wnvvjk4m32aq3an4ayfyvnmbxnzcybfm7n3fbsndb1xjdcw"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.6)
("rust-log" ,rust-log-0.4)
("rust-rand" ,rust-rand-0.6)
("rust-rand-core" ,rust-rand-core-0.4))))))
(define-public rust-quickcheck-0.7
(package
(inherit rust-quickcheck-0.9)
(name "rust-quickcheck")
(version "0.7.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"05pqzja6fwdyrs1za5vmxb9ifb993knmpdsrs1fs2wyz9qz7slyl"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.5)
("rust-log" ,rust-log-0.4)
("rust-rand" ,rust-rand-0.5)
("rust-rand-core" ,rust-rand-core-0.2))))))
(define-public rust-quickcheck-0.6
(package
(inherit rust-quickcheck-0.9)
(name "rust-quickcheck")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1dyazm2fcq0v9fscq1a7597zsvdl9f0j8c2bfj1jm2nlzz2sn6y0"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.5)
("rust-log" ,rust-log-0.4)
("rust-rand" ,rust-rand-0.4))))))
(define-public rust-quickcheck-0.5
(package
(inherit rust-quickcheck-0.9)
(name "rust-quickcheck")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1jzm1ygfbn4igaq14b9nipc8yvsn6c8panpgd1qiy5r2insjllyd"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.4)
("rust-log" ,rust-log-0.3)
("rust-rand" ,rust-rand-0.3))))))
(define-public rust-quickcheck-0.4
(package
(inherit rust-quickcheck-0.5)
(name "rust-quickcheck")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"01hligcv1h4pvc8ykch65qjzi7jgcq2s462v69j27slc84fl3hh2"))))
(arguments
`(#:cargo-inputs
(("rust-env-logger" ,rust-env-logger-0.3)
("rust-log" ,rust-log-0.3)
("rust-rand" ,rust-rand-0.3))))))
(define-public rust-quickcheck-0.2
(package
(inherit rust-quickcheck-0.4)
(name "rust-quickcheck")
(version "0.2.27")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1vb4acppaavlnchzc1jmn5wlkgir9x9gmhgp97bavyxxqxgsg1nh"))))))
(define-public rust-quickcheck-macros-1
(package
(name "rust-quickcheck-macros")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck_macros" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1s8nh0fmmzq3fd7928qcp2syvymlyv1pmww6fxcaj5np48r6jamj"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://github.com/BurntSushi/quickcheck")
(synopsis "Macro attribute for quickcheck")
(description
"This package provides a macro attribute for quickcheck.")
(license (list license:unlicense license:expat))))
(define-public rust-quickcheck-macros-0.9
(package
(inherit rust-quickcheck-macros-1)
(name "rust-quickcheck-macros")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck_macros" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0zsb9b4jpg7qvbiym4v8y9pgqk7p1g4f5hn9gp0fnzz9v1pib330"))))
(arguments
`(#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))
#:cargo-development-inputs
(("rust-quickcheck" ,rust-quickcheck-0.9))))))
(define-public rust-quickcheck-macros-0.8
(package
(inherit rust-quickcheck-macros-0.9)
(name "rust-quickcheck-macros")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "quickcheck_macros" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0b3mhn0xcrdd3fkbkx3rghhivwzwil8w991ngp6gaj70l72c3pyp"))))
(arguments
`(#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-0.4)
("rust-quote" ,rust-quote-0.6)
("rust-syn" ,rust-syn-0.15))
#:cargo-development-inputs
(("rust-quickcheck" ,rust-quickcheck-0.8))))))
(define-public rust-tango-bench-0.6
(package
(name "rust-tango-bench")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tango-bench" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0gj2jgfdmwhrdggqh3yp8h33n1jrz6f3drmzg3nny83gihsj4y15"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-alloca" ,rust-alloca-0.4)
("rust-anyhow" ,rust-anyhow-1)
("rust-clap" ,rust-clap-4)
("rust-colorz" ,rust-colorz-1)
("rust-glob-match" ,rust-glob-match-0.2)
("rust-goblin" ,rust-goblin-0.7)
("rust-libloading" ,rust-libloading-0.8)
("rust-log" ,rust-log-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-rand" ,rust-rand-0.8)
("rust-scroll" ,rust-scroll-0.11)
("rust-tempfile" ,rust-tempfile-3)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1))))
(home-page "https://github.com/bazhenov/tango")
(synopsis "Tango benchmarking harness")
(description "This package provides tango benchmarking harness.")
(license license:expat)))
(define-public rust-tiny-bench-0.3
(package
(name "rust-tiny-bench")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tiny-bench" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0j2rsyspqbk89y6zjndpc6d36ljir1ymyj15vv6jxhaphl6q9nng"))))
(build-system cargo-build-system)
(home-page "https://github.com/EmbarkStudios/tiny-bench")
(synopsis "tiny benchmarking library")
(description "This package provides a tiny benchmarking library.")
(license (list license:expat license:asl2.0))))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
;;; functionality or similar names.
;;;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -28,9 +28,13 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages crates-audio)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gstreamer)
@ -42,6 +46,132 @@
;;; Please: Try to add new module packages in alphabetic order.
;;;
(define-public rust-aperture-0.3
(package
(name "rust-aperture")
(version "0.3.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "aperture" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "02bjzskxp91br91yvf5f32wakp1i9948sxbsy9hdrxs52w38hr61"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-inputs (list rust-gst-plugin-gtk4-0.11
rust-gstreamer-0.21
rust-gstreamer-pbutils-0.21
rust-gstreamer-video-0.21
rust-gtk4-0.7
rust-log-0.4
rust-pkg-config-0.3)))
(native-inputs (list pkg-config))
(inputs (list gdk-pixbuf glib graphene gstreamer gst-plugins-base
gst-plugins-bad gtk pango))
(home-page "https://gitlab.gnome.org/GNOME/snapshot")
(synopsis "GTK Widget for cameras using gstreamer and pipewire")
(description
"This package provides GTK Widget for cameras using gstreamer and pipewire.")
(license license:gpl3+)))
(define-public rust-ashpd-0.6
(package
(name "rust-ashpd")
(version "0.6.8")
(source
(origin
(method url-fetch)
(uri (crate-uri "ashpd" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "109d7w6v0rnpy9lv4kmhwgh0sff0440s2vybj1k0ik4ib3d2xhja"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags '("--" "--skip=src/lib.rs - (line 21)")
#:cargo-inputs (("rust-async-fs" ,rust-async-fs-2)
("rust-async-net" ,rust-async-net-2)
("rust-enumflags2" ,rust-enumflags2-0.7)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gdk4-wayland" ,rust-gdk4-wayland-0.7)
("rust-gdk4-x11" ,rust-gdk4-x11-0.7)
("rust-gtk4" ,rust-gtk4-0.7)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-pipewire" ,rust-pipewire-0.7)
("rust-rand" ,rust-rand-0.8)
("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
("rust-serde" ,rust-serde-1)
("rust-serde-repr" ,rust-serde-repr-0.1)
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1)
("rust-url" ,rust-url-2)
("rust-wayland-backend" ,rust-wayland-backend-0.1)
("rust-wayland-client" ,rust-wayland-client-0.30)
("rust-wayland-protocols" ,rust-wayland-protocols-0.30)
("rust-zbus" ,rust-zbus-3))
#:cargo-development-inputs (("rust-byteorder" ,rust-byteorder-1)
("rust-serde-json" ,rust-serde-json-1))))
(home-page "https://github.com/bilelmoussaoui/ashpd")
(synopsis "XDG portals wrapper in Rust using zbus")
(description
"This package provides an XDG portals wrapper in Rust using zbus.")
(license license:expat)))
(define-public rust-atk-0.14
(package
(name "rust-atk")
(version "0.14.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "atk" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1fi6f3k1lgd0iymar58hp88k76fm5pd1npi2avdn9r3mmb922fx8"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build?
#t
#:cargo-inputs
(("rust-atk-sys" ,rust-atk-sys-0.14)
("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.14)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(inputs
(list at-spi2-core glib))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the ATK library")
(description "Rust bindings for the ATK library")
(license license:expat)))
(define-public rust-atk-0.8
(package
(inherit rust-atk-0.14)
(name "rust-atk")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "atk" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0gk6ijqsd6kh8cki1wznw570499psbppg3d5bqaayagjapxawka4"))))
(arguments
`(#:cargo-inputs
(("rust-atk-sys" ,rust-atk-sys-0.9)
("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-atk-sys-0.18
(package
(name "rust-atk-sys")
@ -144,78 +274,24 @@
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-atk-0.14
(package
(name "rust-atk")
(version "0.14.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "atk" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1fi6f3k1lgd0iymar58hp88k76fm5pd1npi2avdn9r3mmb922fx8"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build?
#t
#:cargo-inputs
(("rust-atk-sys" ,rust-atk-sys-0.14)
("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.14)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(inputs
(list at-spi2-core glib))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the ATK library")
(description "Rust bindings for the ATK library")
(license license:expat)))
(define-public rust-atk-0.8
(package
(inherit rust-atk-0.14)
(name "rust-atk")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "atk" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0gk6ijqsd6kh8cki1wznw570499psbppg3d5bqaayagjapxawka4"))))
(arguments
`(#:cargo-inputs
(("rust-atk-sys" ,rust-atk-sys-0.9)
("rust-bitflags" ,rust-bitflags-1)
("rust-glib" ,rust-glib-0.9)
("rust-glib-sys" ,rust-glib-sys-0.9)
("rust-gobject-sys" ,rust-gobject-sys-0.9)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-cairo-rs-0.20
(package
(name "rust-cairo-rs")
(version "0.20.1")
(version "0.20.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0s9yafifi3pwf7jck0bhgwr4rlg483sqhlr32fb8q44lghafm878"))))
(base32 "1rp3jjgdz2996lk69chr84fjxr73y1gdl7c138093rks3ng6kynp"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-2)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.20)
("rust-freetype-rs" ,rust-freetype-rs-0.37)
("rust-glib" ,rust-glib-0.20)
("rust-libc" ,rust-libc-0.2)
("rust-thiserror" ,rust-thiserror-1))
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs (("rust-float-eq" ,rust-float-eq-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
@ -1332,6 +1408,62 @@
(description "This package provides FFI bindings of GDK4 Wayland.")
(license license:expat)))
(define-public rust-gdk4-win32-0.7
(package
(name "rust-gdk4-win32")
(version "0.7.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk4-win32" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0mv04mipl57v1lj94j2rkrk9qm75jvdlnp7qm6nl2kpn8466arpy"))))
(build-system cargo-build-system)
(arguments
;; The system library `gtk4-win32` required by gtk4-win32-sys` was not found.
`(#:skip-build? #t
#:cargo-inputs (("rust-gdk4" ,rust-gdk4-0.7)
("rust-gdk4-win32-sys" ,rust-gdk4-win32-sys-0.7)
("rust-gio" ,rust-gio-0.18)
("rust-glib" ,rust-glib-0.18)
("rust-khronos-egl" ,rust-khronos-egl-5)
("rust-libc" ,rust-libc-0.2)
("rust-windows" ,rust-windows-0.52))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(home-page "https://gtk-rs.org/gtk4-rs")
(synopsis "Rust bindings of the GDK4 Win32 library")
(description
"This package provides Rust bindings of the GDK4 Win32 library.")
(license license:expat)))
(define-public rust-gdk4-win32-sys-0.7
(package
(name "rust-gdk4-win32-sys")
(version "0.7.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk4-win32-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0v9rkv1i1sbzckigdr5zjy0xzz6qf9iccikvg3qxjfnd8rsihp2b"))))
(build-system cargo-build-system)
(arguments
;; The system library `gtk4-win32` required by gtk4-win32-sys` was not found.
`(#:skip-build? #t
#:cargo-inputs (("rust-gdk4-sys" ,rust-gdk4-sys-0.7)
("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://gtk-rs.org/gtk4-rs")
(synopsis "FFI bindings of GDK4 Win32")
(description "This package provides FFI bindings of GDK4 Win32.")
(license license:expat)))
(define-public rust-gdk4-x11-0.7
(package
(name "rust-gdk4-x11")
@ -1393,14 +1525,14 @@
(define-public rust-gio-0.20
(package
(name "rust-gio")
(version "0.20.4")
(version "0.20.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0g6l7a1n63a8myjpcv10mn214w0ypijf6rq812b3wn09zgl9kndq"))))
(base32 "071n06a1zsngjr4q7k0kr7qzbxmg1pm0psjby3hkvkjnmnlx49l8"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
@ -1415,8 +1547,7 @@
("rust-glib" ,rust-glib-0.20)
("rust-libc" ,rust-libc-0.2)
("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
("rust-smallvec" ,rust-smallvec-1)
("rust-thiserror" ,rust-thiserror-1))
("rust-smallvec" ,rust-smallvec-1))
#:cargo-development-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
@ -1659,14 +1790,14 @@
(define-public rust-gio-sys-0.20
(package
(name "rust-gio-sys")
(version "0.20.4")
(version "0.20.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ya7i4m3jirrhryy6h8x5kgp3fxn6m4111009ws5aiz0ilvgqzjg"))))
(base32 "1g19jl1rg5r9isz5mpi211wswwanrgpxk9y1nlb4ij1l6mpxyrdr"))))
(build-system cargo-build-system)
(arguments
`(;; XXX: Tests are sensitive to the version of glib, even though
@ -1920,14 +2051,14 @@
(define-public rust-glib-0.20
(package
(name "rust-glib")
(version "0.20.4")
(version "0.20.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1zw5xd2772vakf95pslvzmmnzg6f9wnj9vkcpkyzj2v5sg31xkxd"))))
(base32 "1qfmp4cgcm7zv92z5bc1cv8rmh8cjdbdn06r6nhvb2lrwx73xgc6"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
@ -1946,8 +2077,7 @@
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-memchr" ,rust-memchr-2)
("rust-smallvec" ,rust-smallvec-1)
("rust-thiserror" ,rust-thiserror-1))
("rust-smallvec" ,rust-smallvec-1))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.5)
("rust-gir-format-check" ,rust-gir-format-check-0.1)
@ -2200,14 +2330,14 @@
(define-public rust-glib-macros-0.20
(package
(name "rust-glib-macros")
(version "0.20.4")
(version "0.20.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib-macros" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1mqwhk5qnd9vbvsb335n1j6m5pbqnfycm7b3jxhhlwnm1kvqigx6"))))
(base32 "0mn1054ypcw906qpgvkqdz1wfjjb2kgfsmh4lwfykhyggai1rlp7"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-heck" ,rust-heck-0.5)
@ -2373,14 +2503,14 @@
(define-public rust-glib-sys-0.20
(package
(name "rust-glib-sys")
(version "0.20.4")
(version "0.20.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0avm6dr3q2xvlad7fcbq7an7qasaqf3k480dn19s99ngi1fwm7jz"))))
(base32 "1pn2hynpky8kh776wrlyd7wp2spzaxfqw8pv1lnc87v2x0kih2rx"))))
(build-system cargo-build-system)
(arguments
`(;; XXX: Tests are sensitive to the version of glib, even though
@ -2662,12 +2792,13 @@
(define-public rust-gobject-sys-0.14
(package
(inherit rust-gobject-sys-0.15)
(name "rust-gobject-sys")
(version "0.14.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "gobject-sys" version))
(file-name (string-append "rust-gobject-sys-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1xf3jiwzrjingq8jr15bjkbv6m5dypzp67cjnm5f7njrjzicm4ma"))))
(arguments
@ -2925,6 +3056,44 @@
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-gst-plugin-gtk4-0.11
(package
(name "rust-gst-plugin-gtk4")
(version "0.11.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "gst-plugin-gtk4" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1hmky9p16hnhrwm5i63ynlwfl1bpc9fp3as5ibrni1qlfq0vhwdj"))))
(build-system cargo-build-system)
(arguments
(list
#:cargo-inputs (list rust-async-channel-2
rust-gdk4-wayland-0.7
rust-gdk4-win32-0.7
rust-gdk4-x11-0.7
rust-gst-plugin-version-helper-0.8
rust-gstreamer-0.21
rust-gstreamer-allocators-0.21
rust-gstreamer-base-0.21
rust-gstreamer-gl-0.21
rust-gstreamer-gl-egl-0.21
rust-gstreamer-gl-wayland-0.21
rust-gstreamer-gl-x11-0.21
rust-gstreamer-video-0.21
rust-gtk4-0.7
rust-once-cell-1
rust-windows-sys-0.52)))
(native-inputs (list pkg-config))
(inputs (list gdk-pixbuf glib graphene gstreamer gst-plugins-base
gtk pango))
(home-page "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs")
(synopsis "GStreamer GTK 4 sink element")
(description "This package provides GStreamer GTK 4 sink element.")
(license license:mpl2.0)))
(define-public rust-gst-plugin-version-helper-0.8
(package
(name "rust-gst-plugin-version-helper")
@ -3072,6 +3241,65 @@
("rust-ron" ,rust-ron-0.7)
("rust-serde-json" ,rust-serde-json-1))))))
(define-public rust-gstreamer-allocators-0.21
(package
(name "rust-gstreamer-allocators")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-allocators" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "14s244qk5dznd1pvswps7k61s6ksjd3pv0fzvpgybm1k9c5v57vc"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib" ,rust-glib-0.18)
("rust-gstreamer" ,rust-gstreamer-0.21)
("rust-gstreamer-allocators-sys" ,rust-gstreamer-allocators-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "Rust bindings for GStreamer Allocators library")
(description
"This package provides Rust bindings for GStreamer Allocators library.")
(license (list license:expat license:asl2.0))))
(define-public rust-gstreamer-allocators-sys-0.21
(package
(name "rust-gstreamer-allocators-sys")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-allocators-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1brps4xpzigavifcwr6hs6368nilc4l03ivnv13fxb2svdw885f1"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags '("--"
"--skip=cross_validate_constants_with_c"
"--skip=cross_validate_layout_with_c")
#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gobject-sys" ,rust-gobject-sys-0.18)
("rust-gstreamer-sys" ,rust-gstreamer-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "FFI bindings to libgstallocators-1.0")
(description "This package provides FFI bindings to libgstallocators-1.0.")
(license license:expat)))
(define-public rust-gstreamer-app-0.18
(package
(name "rust-gstreamer-app")
@ -3401,6 +3629,237 @@
(description "This package provides FFI bindings to libgstcheck-1.0.")
(license license:expat)))
(define-public rust-gstreamer-gl-0.21
(package
(name "rust-gstreamer-gl")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "140vnlxnkq12c8qqgc5i2y9wdz8c8dga25d99021cg16508vkkry"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-glib" ,rust-glib-0.18)
("rust-gstreamer" ,rust-gstreamer-0.21)
("rust-gstreamer-base" ,rust-gstreamer-base-0.21)
("rust-gstreamer-gl-sys" ,rust-gstreamer-gl-sys-0.21)
("rust-gstreamer-video" ,rust-gstreamer-video-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-serde" ,rust-serde-1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1)
("rust-serde-json" ,rust-serde-json-1))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "Rust bindings for GStreamer GL library")
(description
"This package provides Rust bindings for GStreamer GL library.")
(license (list license:expat license:asl2.0))))
(define-public rust-gstreamer-gl-egl-0.21
(package
(name "rust-gstreamer-gl-egl")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-egl" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "10nwlmyw1z4jccyrbqijx6iny2c64164jaz05dgnvi5378ianwx1"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib" ,rust-glib-0.18)
("rust-gstreamer" ,rust-gstreamer-0.21)
("rust-gstreamer-gl" ,rust-gstreamer-gl-0.21)
("rust-gstreamer-gl-egl-sys" ,rust-gstreamer-gl-egl-sys-0.21)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "Rust bindings for GStreamer GL library (EGL support)")
(description
"This package provides Rust bindings for GStreamer GL library (EGL support).")
(license (list license:expat license:asl2.0))))
(define-public rust-gstreamer-gl-egl-sys-0.21
(package
(name "rust-gstreamer-gl-egl-sys")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-egl-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0m79m0lbk2s89cm4vc6ckwkgs9khmh2ri7x3gfgmz2hwy2v8hg7f"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gstreamer-gl-sys" ,rust-gstreamer-gl-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "FFI bindings to libgstgl-1.0 (EGL support)")
(description
"This package provides FFI bindings to libgstgl-1.0 (EGL support).")
(license license:expat)))
(define-public rust-gstreamer-gl-sys-0.21
(package
(name "rust-gstreamer-gl-sys")
(version "0.21.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1kgi8rrlw2qx1p6q9ybk52wxpjn5wscx84lqfg4ng9lr7hdrg06m"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags '("--"
"--skip=cross_validate_constants_with_c"
"--skip=cross_validate_layout_with_c")
#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gobject-sys" ,rust-gobject-sys-0.18)
("rust-gstreamer-base-sys" ,rust-gstreamer-base-sys-0.21)
("rust-gstreamer-sys" ,rust-gstreamer-sys-0.21)
("rust-gstreamer-video-sys" ,rust-gstreamer-video-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "FFI bindings to libgstgl-1.0")
(description "This package provides FFI bindings to libgstgl-1.0.")
(license license:expat)))
(define-public rust-gstreamer-gl-wayland-0.21
(package
(name "rust-gstreamer-gl-wayland")
(version "0.21.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-wayland" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1zz7as2qlf021dvpy1qs4rbahf94p6jb1msmfsgx08nhyai7dhpy"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib" ,rust-glib-0.18)
("rust-gstreamer" ,rust-gstreamer-0.21)
("rust-gstreamer-gl" ,rust-gstreamer-gl-0.21)
("rust-gstreamer-gl-wayland-sys" ,rust-gstreamer-gl-wayland-sys-0.21)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "Rust bindings for GStreamer GL library (Wayland support)")
(description
"This package provides Rust bindings for GStreamer GL library (Wayland support).")
(license (list license:expat license:asl2.0))))
(define-public rust-gstreamer-gl-wayland-sys-0.21
(package
(name "rust-gstreamer-gl-wayland-sys")
(version "0.21.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-wayland-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "188j8i47zn93gph6ngmpjqbvm44jy0wzybr5052s6lxadzqqcywi"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gstreamer-gl-sys" ,rust-gstreamer-gl-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "FFI bindings to libgstgl-1.0 (Wayland support)")
(description
"This package provides FFI bindings to libgstgl-1.0 (Wayland support).")
(license license:expat)))
(define-public rust-gstreamer-gl-x11-0.21
(package
(name "rust-gstreamer-gl-x11")
(version "0.21.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-x11" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0zgn5aih3bcz3ci3xkdpc2jzxrxiz1hdpkwq121w5ln96ag1n0np"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-glib" ,rust-glib-0.18)
("rust-gstreamer" ,rust-gstreamer-0.21)
("rust-gstreamer-gl" ,rust-gstreamer-gl-0.21)
("rust-gstreamer-gl-x11-sys" ,rust-gstreamer-gl-x11-sys-0.21)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "Rust bindings for GStreamer GL library (X11 support)")
(description
"This package provides Rust bindings for GStreamer GL library (X11 support).")
(license (list license:expat license:asl2.0))))
(define-public rust-gstreamer-gl-x11-sys-0.21
(package
(name "rust-gstreamer-gl-x11-sys")
(version "0.21.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "gstreamer-gl-x11-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1p5wdrn3h55jx15963z1wnk7whwplpjfymy5yjsmkqdrqw1yz6n4"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gstreamer-gl-sys" ,rust-gstreamer-gl-sys-0.21)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list glib gstreamer gst-plugins-base mesa))
(home-page "https://gstreamer.freedesktop.org")
(synopsis "FFI bindings to libgstgl-1.0 (X11 support)")
(description
"This package provides FFI bindings to libgstgl-1.0 (X11 support).")
(license license:expat)))
(define-public rust-gstreamer-pbutils-0.21
(package
(name "rust-gstreamer-pbutils")
@ -4149,14 +4608,14 @@ library.")
(define-public rust-pango-0.20
(package
(name "rust-pango")
(version "0.20.4")
(version "0.20.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0mpkjnxcgng8mjf7y55q5d1md4qxswf90m5784hxg50hn5aal9ma"))))
(base32 "0jjml2rmdh6fmayqzm6nm5gp50rbm04i89g5swrkjbn5l9y4xqvi"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-gio" ,rust-gio-0.20)
@ -4397,7 +4856,12 @@ library.")
(uri (crate-uri "pango-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1iaxalcaaj59cl9n10svh4g50v8jrc1a36kd7n9yahx8j7ikfrs3"))))
(base32 "1iaxalcaaj59cl9n10svh4g50v8jrc1a36kd7n9yahx8j7ikfrs3"))
(modules '((guix build utils)))
(snippet
;; Don't try to use a version of pango newer than we have packaged.
'(begin (substitute* "Cargo.toml"
(("1\\.51") "1.50"))))))
(arguments
`(#:cargo-inputs (("rust-glib-sys" ,rust-glib-sys-0.18)
("rust-gobject-sys" ,rust-gobject-sys-0.18)
@ -4563,57 +5027,6 @@ library.")
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pangocairo-0.17
(package
(inherit rust-pangocairo-0.18)
(name "rust-pangocairo")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1kr2b31034b8zif4r3lf4rniqphk2bxi2q7n8iwq2wrf3k5jkgw6"))))
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-pango" ,rust-pango-0.17)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.17))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pangocairo-0.15
(package
(inherit rust-pangocairo-0.17)
(name "rust-pangocairo")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0rjk0clrjxah4kc0kybn7l7bxa5m5kpxkihxc2i7a6hx3xfa8xkq"))))
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.15)
("rust-glib" ,rust-glib-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-pango" ,rust-pango-0.15)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.15))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pangocairo-sys-0.19
(package
(name "rust-pangocairo-sys")
@ -4664,53 +5077,6 @@ library.")
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-pangocairo-sys-0.17
(package
(inherit rust-pangocairo-sys-0.18)
(name "rust-pangocairo-sys")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ymr4aqrdpysz0rh383s4h6hj8nbkyj7n4723f45zzzqkf6x7pwl"))))
(arguments
`(#:cargo-inputs
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.17)
("rust-glib-sys" ,rust-glib-sys-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.17)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs (("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-pangocairo-sys-0.15
(package
(inherit rust-pangocairo-sys-0.17)
(name "rust-pangocairo-sys")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"154llaawy60zh8fkw2yq0r31ynpmqlsr7brryzaq2v4ijijp9kvq"))))
(arguments
`(#:cargo-inputs
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.15)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-search-provider-0.8
(package
(name "rust-search-provider")
@ -4737,6 +5103,26 @@ library.")
provider API.")
(license license:gpl3+)))
(define-public rust-search-provider-0.6
(package
(inherit rust-search-provider-0.8)
(name "rust-search-provider")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "search-provider" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "01jby7xq0dd9rafw5kgskpbxgppn4imzm71w1sdj8iy9ci4ghh9z"))))
(arguments
`(#:cargo-inputs (("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.18)
("rust-gdk4" ,rust-gdk4-0.7)
("rust-serde" ,rust-serde-1)
("rust-zbus" ,rust-zbus-3))))))
(define-public rust-soup-sys-0.10
(package
(name "rust-soup-sys")

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -34,76 +34,72 @@
#:use-module (gnu packages)
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-apple)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages crypto)
#:use-module (gnu packages golang)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind))
(define-public rust-asn1-0.15
(define-public rust-asn1-0.20
(package
(name "rust-asn1")
(version "0.15.5")
(version "0.20.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "asn1" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1nzg1gjiyfvpvrf3i7i8j21165snf5livqg6x2sjf9m2i77cngmf"))))
(base32 "0ckg83ingvagwjvmxadjjmkgna5kvlvrfx9arlfvzqhxxas892rd"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-asn1-derive" ,rust-asn1-derive-0.15))
#:cargo-development-inputs
(("rust-libc" ,rust-libc-0.2))))
`(#:cargo-inputs (("rust-asn1-derive" ,rust-asn1-derive-0.20)
("rust-itoa" ,rust-itoa-1))
#:cargo-development-inputs (("rust-libc" ,rust-libc-0.2))))
(home-page "https://github.com/alex/rust-asn1")
(synopsis "ASN.1 (DER) parser and writer")
(synopsis "ASN.1 (DER) parser and writer for Rust")
(description
"This is a Rust library for parsing and generating ASN.1 data (DER only).")
(license license:bsd-3)))
(define-public rust-asn1-0.13
(define-public rust-asn1-0.16
(package
(inherit rust-asn1-0.15)
(inherit rust-asn1-0.20)
(name "rust-asn1")
(version "0.13.0")
(source (origin
(version "0.16.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "asn1" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1idxxw14h3dvrj72k4g0hx1aqigd986a00cg0yxfw2gfc9gbmzra"))))
(base32 "1ggb140ilik21y4vha7f1p9m795k1aq4mp9adc4n46r8b2hfsb2k"))))
(arguments
`(#:cargo-inputs
(("rust-asn1-derive" ,rust-asn1-derive-0.13)
("rust-chrono" ,rust-chrono-0.4))
#:cargo-development-inputs
(("rust-libc" ,rust-libc-0.2))))))
`(#:cargo-inputs (("rust-asn1-derive" ,rust-asn1-derive-0.16))
#:cargo-development-inputs (("rust-libc" ,rust-libc-0.2))))))
(define-public rust-asn1-derive-0.15
(define-public rust-asn1-derive-0.20
(package
(name "rust-asn1-derive")
(version "0.15.5")
(version "0.20.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "asn1_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1771kfjycjs4g2acqvxpjy3igfcgg8hychczl1lsqq64za4gj6l6"))))
(base32 "1b88xsqmxpxjq4p2mrn1icj7c3k2s041v7wqp8yhnqiq06fq0052"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
`(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-2))))
(home-page "https://github.com/alex/rust-asn1")
@ -112,24 +108,22 @@
"This package provides #[derive] support for @code{asn1}.")
(license license:bsd-3)))
(define-public rust-asn1-derive-0.13
(define-public rust-asn1-derive-0.16
(package
(inherit rust-asn1-derive-0.15)
(inherit rust-asn1-derive-0.20)
(name "rust-asn1-derive")
(version "0.13.0")
(source (origin
(version "0.16.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "asn1_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1bvqriazb23gysygpzng1dhzjgnlv274q2yj5gpmlpl7jp0pkaxz"))))
(base32 "11y93778dzdfjcl03w07ddg9gq9f18bk2pznn0icq5yc71nhgrjn"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
`(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))))))
("rust-syn" ,rust-syn-2))))))
(define-public rust-asn1-rs-0.6
(package
@ -396,17 +390,18 @@
(define-public rust-aws-lc-fips-sys-0.12
(package
(name "rust-aws-lc-fips-sys")
(version "0.12.1")
(version "0.12.15")
(source
(origin
(method url-fetch)
(uri (crate-uri "aws-lc-fips-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0fv2z5gcm9wm45hbsjhm657p6diqiq1vw5a2rzrzfg8j4vxdzz07"))))
(base32 "1yrvbilhzdisjk3mf3qf9xlbqwkh07ycsa2c7ppm2y1a4678l7nz"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69)
("rust-cc" ,rust-cc-1)
("rust-cmake" ,rust-cmake-0.1)
("rust-dunce" ,rust-dunce-1)
("rust-fs-extra" ,rust-fs-extra-1)
@ -430,14 +425,14 @@ version of AWS-LC.")
(define-public rust-aws-lc-rs-1
(package
(name "rust-aws-lc-rs")
(version "1.11.0")
(version "1.11.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "aws-lc-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ifz8z5y4qg94ri9vybyv2pq0hr7ds3da1r6rmd08dk2nr02hz7y"))
(base32 "18z5wvb8ay1183vw3cbp8wpqil3pl2p8bxfcxrkx4sdn2v6bhyzl"))
(modules '((guix build utils)))
(snippet
'(begin (substitute* "Cargo.toml"
@ -448,7 +443,6 @@ version of AWS-LC.")
`(#:tests? #f ; Not all files included.
#:cargo-inputs (("rust-aws-lc-fips-sys" ,rust-aws-lc-fips-sys-0.12)
("rust-aws-lc-sys" ,rust-aws-lc-sys-0.23)
("rust-mirai-annotations" ,rust-mirai-annotations-1)
("rust-paste" ,rust-paste-1)
("rust-untrusted" ,rust-untrusted-0.7)
("rust-zeroize" ,rust-zeroize-1))
@ -473,14 +467,14 @@ popular Rust library named ring.")
(define-public rust-aws-lc-sys-0.23
(package
(name "rust-aws-lc-sys")
(version "0.23.0")
(version "0.23.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "aws-lc-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "15igggl0xvzx212di0z4l1hxcvjhlk5ns67iw5yis7p8knd62fmd"))))
(base32 "1xrzqryr7gj0njcx6s5x495rbirlqmhws10bmambn9rjh7ris452"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69)
@ -499,38 +493,17 @@ Cryptography team for AWS and their customers. It is based on code from the
Google @code{BoringSSL} project and the @code{OpenSSL} project.")
(license (list license:isc license:openssl license:asl2.0))))
;; TODO: Unbundle aws-lc.
(define-public rust-aws-lc-sys-0.13
(package
(inherit rust-aws-lc-sys-0.23)
(name "rust-aws-lc-sys")
(version "0.13.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "aws-lc-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "05a7z5hg00zpk4gvqggzv7j6bvljplx2c1kw44ifmxjnf5469rdn"))))
(arguments
`(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69)
("rust-cmake" ,rust-cmake-0.1)
("rust-dunce" ,rust-dunce-1)
("rust-fs-extra" ,rust-fs-extra-1)
("rust-libc" ,rust-libc-0.2)
("rust-paste" ,rust-paste-1))))))
(define-public rust-der-0.7
(package
(name "rust-der")
(version "0.7.8")
(version "0.7.9")
(source (origin
(method url-fetch)
(uri (crate-uri "der" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"070bwiyr80800h31c5zd96ckkgagfjgnrrdmz3dzg2lccsd3dypz"))))
"1h4vzjfa1lczxdf8avfj9qlwh1qianqlxdy1g5rn762qnvkzhnzm"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@ -623,19 +596,18 @@ targets")
(define-public rust-der-derive-0.7
(package
(name "rust-der-derive")
(version "0.7.2")
(version "0.7.3")
(source (origin
(method url-fetch)
(uri (crate-uri "der_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0jg0y3k46bpygwc5cqha07axz5sdnsx5116g3nxf0rwrabj7rs2z"))))
"065d2wy7zd0dank99hh58l5x7lv50hxnr7j6f3sphlb7i4ihjd40"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-proc-macro-error" ,rust-proc-macro-error-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-2))))
(home-page "https://github.com/RustCrypto/formats/tree/master/der/derive")
@ -841,20 +813,19 @@ targets")
(define-public rust-native-tls-0.2
(package
(name "rust-native-tls")
(version "0.2.11")
(version "0.2.12")
(source
(origin
(method url-fetch)
(uri (crate-uri "native-tls" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0bmrlg0fmzxaycjpkgkchi93av07v2yf9k33gc12ca9gqdrn28h7"))))
(base32 "0rkl65z70n7sy4d5w0qa99klg1hr43wx6kcprk4d2n9xr2r4wqd8"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; tests require network access
#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
(("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-openssl" ,rust-openssl-0.10)
("rust-openssl-probe" ,rust-openssl-probe-0.1)
@ -865,7 +836,7 @@ targets")
("rust-tempfile" ,rust-tempfile-3))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3)
("rust-test-cert-gen" ,rust-test-cert-gen-0.7))))
("rust-test-cert-gen" ,rust-test-cert-gen-0.9))))
(native-inputs
(list pkg-config))
(inputs
@ -896,10 +867,10 @@ implementation.")
("rust-serde-derive" ,rust-serde-derive-1))))
(home-page "https://labs.unnecessary.engineering/oid")
(synopsis
"Library for building, parsing, and formating Object Identifiers (OIDs)")
"Library for building, parsing, and formatting Object Identifiers (OIDs)")
(description
"This package provides a Rust-native library for building, parsing, and
formating Object Identifiers (OIDs).")
formatting Object Identifiers (OIDs).")
(license (list license:expat license:asl2.0))))
(define-public rust-oid-registry-0.7
@ -1073,14 +1044,14 @@ grammars and BER/DER encodings, for example.")
(define-public rust-rcgen-0.13
(package
(name "rust-rcgen")
(version "0.13.1")
(version "0.13.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "rcgen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0yb7lg0pd1j66jr0kacs5z8q66fb9izkvsp11ma8hry4f8c7w1sl"))
(base32 "18l0rz228pvnc44bjmvq8cchhh5d2rrkk98y9lqvan9243jnkrkm"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1284,14 +1255,14 @@ grammars and BER/DER encodings, for example.")
(define-public rust-rustls-0.23
(package
(name "rust-rustls")
(version "0.23.17")
(version "0.23.19")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "07lg2b56s3gp3acd8a6yaqbpji8vv3xmv3ay8vaacjy525ap86kz"))))
(base32 "1lgqjf1vh09kghyj34a4svn1max18pmhka6bwbxb61mv61240jwk"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Not all files included.
@ -1311,7 +1282,6 @@ grammars and BER/DER encodings, for example.")
#:cargo-development-inputs
(("rust-base64" ,rust-base64-0.22)
("rust-bencher" ,rust-bencher-0.1)
("rust-clap" ,rust-clap-4)
("rust-env-logger" ,rust-env-logger-0.10)
("rust-hex" ,rust-hex-0.4)
("rust-log" ,rust-log-0.4)
@ -1319,20 +1289,8 @@ grammars and BER/DER encodings, for example.")
("rust-rcgen" ,rust-rcgen-0.13)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-tikv-jemallocator" ,rust-tikv-jemallocator-0.6)
("rust-time" ,rust-time-0.3)
("rust-webpki-roots" ,rust-webpki-roots-0.26))
#:phases
(modify-phases %standard-phases
(add-after 'configure 'override-jemalloc
(lambda* (#:key inputs #:allow-other-keys)
(let ((jemalloc (assoc-ref inputs "jemalloc")))
;; This flag is needed when not using the bundled jemalloc.
;; https://github.com/tikv/jemallocator/issues/19
(setenv "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
(setenv "JEMALLOC_OVERRIDE"
(string-append jemalloc "/lib/libjemalloc_pic.a"))))))))
(inputs (list jemalloc))
("rust-webpki-roots" ,rust-webpki-roots-0.26))))
(home-page "https://github.com/rustls/rustls")
(synopsis "Modern TLS library written in Rust")
(description
@ -1343,14 +1301,14 @@ grammars and BER/DER encodings, for example.")
(package
(inherit rust-rustls-0.23)
(name "rust-rustls")
(version "0.22.2")
(version "0.22.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0hcxyhq6ynvws9v5b2h81s1nwmijmya7a3vyyyhsy1wqpmb9jz78"))))
(base32 "0cl4q6w0x1cl5ldjsgbbiiqhkz6qg5vxl5dkn9wwsyxc44vzfkmz"))))
(arguments
`(#:tests? #f ; Not all files included.
#:cargo-inputs (("rust-aws-lc-rs" ,rust-aws-lc-rs-1)
@ -1372,14 +1330,14 @@ grammars and BER/DER encodings, for example.")
(package
(inherit rust-rustls-0.22)
(name "rust-rustls")
(version "0.21.10")
(version "0.21.12")
(source (origin
(method url-fetch)
(uri (crate-uri "rustls" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1fmpzk3axnhkd99saqkvraifdfms4pkyi56lkihf8n877j0sdmgr"))))
"0gjdg2a9r81sdwkyw3n5yfbkrr6p9gyk3xr2kcsr3cs83x6s2miz"))))
(arguments
`(#:tests? #f ; Not all files included.
#:cargo-inputs
@ -1589,14 +1547,14 @@ grammars and BER/DER encodings, for example.")
(define-public rust-rustls-ffi-0.14
(package
(name "rust-rustls-ffi")
(version "0.14.0")
(version "0.14.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-ffi" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1cdpnx205m3bc7sn6gvaizlsb8ayipf1l061das37mf7n4sw157s"))))
(base32 "1hky8z8xf9l813b1f54b0ir2knzv3kflh41i7q7xwlkyafza65n9"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
@ -1618,68 +1576,67 @@ grammars and BER/DER encodings, for example.")
"This package provides Rustls bindings for non-Rust languages.")
(license (list license:asl2.0 license:isc license:expat))))
(define-public rust-rustls-ffi-0.8
(package
(inherit rust-rustls-ffi-0.14)
(name "rust-rustls-ffi")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri (crate-uri "rustls-ffi" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx"))))
(arguments
`(#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-num-enum" ,rust-num-enum-0.5)
("rust-rustls" ,rust-rustls-0.20)
("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
("rust-sct" ,rust-sct-0.7)
("rust-webpki" ,rust-webpki-0.22))
#:cargo-development-inputs
(("rust-cbindgen" ,rust-cbindgen-0.26))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'adjust-cbindgen-requirement
;; The Cargo.toml in the git repository doesn't specify
;; a version requirement for cbindgen.
(lambda _
(substitute* "Cargo.toml"
(("0\\.19\\.0") "*")))))))))
(define-public rust-rustls-native-certs-0.7
(define-public rust-rustls-native-certs-0.8
(package
(name "rust-rustls-native-certs")
(version "0.7.0")
(version "0.8.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-native-certs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "14ip15dcr6fmjzi12lla9cpln7mmkdid4a7wsp344v4kz9gbh7wg"))))
(base32 "1ls7laa3748mkn23fmi3g4mlwk131lx6chq2lyc8v2mmabfz5kvz"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Tests want network access.
`(#:cargo-test-flags '("--release" "--"
"--skip=test_contains_most_roots_known_by_mozilla")
#:cargo-inputs (("rust-openssl-probe" ,rust-openssl-probe-0.1)
("rust-rustls-pki-types" ,rust-rustls-pki-types-1)
("rust-schannel" ,rust-schannel-0.1)
("rust-security-framework" ,rust-security-framework-3))
#:cargo-development-inputs (("rust-ring" ,rust-ring-0.17)
("rust-rustls" ,rust-rustls-0.23)
("rust-rustls-webpki" ,rust-rustls-webpki-0.102)
("rust-serial-test" ,rust-serial-test-3)
("rust-tempfile" ,rust-tempfile-3)
("rust-untrusted" ,rust-untrusted-0.9)
("rust-webpki-roots" ,rust-webpki-roots-0.26)
("rust-x509-parser" ,rust-x509-parser-0.16))))
(home-page "https://github.com/rustls/rustls-native-certs")
(synopsis "Use the platform native certificate store with rustls")
(description "@code{rustls-native-certs} allows rustls to use the platform
native certificate store.")
(license (list license:asl2.0 license:isc license:expat))))
(define-public rust-rustls-native-certs-0.7
(package
(inherit rust-rustls-native-certs-0.8)
(name "rust-rustls-native-certs")
(version "0.7.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-native-certs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1r9ib5gwkfci2wbqnbh44nigvrfgxs4n1x89js82w97dxsab7gz5"))))
(arguments
`(#:cargo-test-flags '("--release" "--"
"--skip=test_contains_most_roots_known_by_mozilla")
#:cargo-inputs (("rust-openssl-probe" ,rust-openssl-probe-0.1)
("rust-rustls-pemfile" ,rust-rustls-pemfile-2)
("rust-rustls-pki-types" ,rust-rustls-pki-types-1)
("rust-schannel" ,rust-schannel-0.1)
("rust-security-framework" ,rust-security-framework-2))
#:cargo-development-inputs (("rust-ring" ,rust-ring-0.16)
("rust-rustls" ,rust-rustls-0.22)
#:cargo-development-inputs (("rust-ring" ,rust-ring-0.17)
("rust-rustls" ,rust-rustls-0.23)
("rust-rustls-webpki" ,rust-rustls-webpki-0.102)
("rust-serial-test" ,rust-serial-test-2)
("rust-untrusted" ,rust-untrusted-0.7)
("rust-serial-test" ,rust-serial-test-3)
("rust-tempfile" ,rust-tempfile-3)
("rust-untrusted" ,rust-untrusted-0.9)
("rust-webpki-roots" ,rust-webpki-roots-0.26)
("rust-x509-parser" ,rust-x509-parser-0.15))))
(home-page "https://github.com/ctz/rustls-native-certs")
(synopsis "Use the platform native certificate store with rustls")
(description "@code{rustls-native-certs} allows rustls to use the platform
native certificate store.")
(license (list license:asl2.0 license:isc license:expat))))
("rust-x509-parser" ,rust-x509-parser-0.16))))))
(define-public rust-rustls-native-certs-0.6
(package
@ -1729,48 +1686,20 @@ native certificate store.")
("rust-schannel" ,rust-schannel-0.1)
("rust-security-framework" ,rust-security-framework-2))))))
(define-public rust-rustls-native-certs-0.4
(package
(inherit rust-rustls-native-certs-0.5)
(name "rust-rustls-native-certs")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-native-certs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1f2rkvdkz92qcmwryyqiw9phkqkf95g4962ljpfq5nkjfsd477b2"))))
(arguments
`(#:tests? #f ; Tests want network access
#:cargo-inputs
(("rust-openssl-probe" ,rust-openssl-probe-0.1)
("rust-rustls" ,rust-rustls-0.18)
("rust-schannel" ,rust-schannel-0.1)
("rust-security-framework"
,rust-security-framework-1))
#:cargo-development-inputs
(("rust-ring" ,rust-ring-0.16)
("rust-untrusted" ,rust-untrusted-0.7)
("rust-webpki" ,rust-webpki-0.21)
("rust-webpki-roots" ,rust-webpki-roots-0.20))))))
(define-public rust-rustls-pemfile-2
(package
(name "rust-rustls-pemfile")
(version "2.0.0")
(version "2.2.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-pemfile" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1x34xidvzn4br2vl8f8xwmhgbjv4lmlb0ggv5whlnk4yl87rir1m"))))
(base32 "0l3f3mrfkgdjrava7ibwzgwc4h3dljw3pdkbsi9rkwz3zvji9qyw"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-base64" ,rust-base64-0.21)
("rust-rustls-pki-types" ,rust-rustls-pki-types-1))
`(#:cargo-inputs (("rust-rustls-pki-types" ,rust-rustls-pki-types-1))
#:cargo-development-inputs (("rust-bencher" ,rust-bencher-0.1))))
(home-page "https://github.com/rustls/pemfile")
(synopsis "Basic parser for PEM formatted keys and certificates")
@ -1817,14 +1746,14 @@ PEM-encodings commonly used to store keys and certificates at rest.")
(define-public rust-rustls-pki-types-1
(package
(name "rust-rustls-pki-types")
(version "1.10.0")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-pki-types" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0jv78c32pgf1i0bn7rzf4xdr9qh5wsvigp6akc1yhzls7hdj1w8n"))
(base32 "0dqb3d0cbld1yrp084wyzgw6yk3qzzic8l5pbs1b6bcjzzk4ggyj"))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "Cargo.toml"
@ -1832,8 +1761,7 @@ PEM-encodings commonly used to store keys and certificates at rest.")
(string-append "\"^" version)))))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-web-time" ,rust-web-time-1))
`(#:cargo-inputs (("rust-web-time" ,rust-web-time-1))
#:cargo-development-inputs (("rust-crabgrind" ,rust-crabgrind-0.1))))
(native-inputs (list valgrind))
(home-page "https://github.com/rustls/pki-types")
@ -1842,8 +1770,106 @@ PEM-encodings commonly used to store keys and certificates at rest.")
"This crate provides shared types for the rustls PKI ecosystem.")
(license (list license:expat license:asl2.0))))
(define-public rust-rustls-platform-verifier-0.5
(package
(name "rust-rustls-platform-verifier")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-platform-verifier" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1nlrxbw2i5q7dxz2gnif14hz5ph67b5d8viqr4r06yd18icc84p0"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-test-flags
'(list "--"
"--skip=tests::verification_mock::test_verification_without_mock_root"
"--skip=tests::verification_real_world::tests::_1password_com_valid"
"--skip=tests::verification_real_world::tests::letsencrypt"
"--skip=tests::verification_real_world::tests::my_1password_com_valid"
"--skip=tests::verification_real_world::tests::my_1password_com_valid_no_stapled"
"--skip=tests::verification_real_world::tests::unrelated_chain_not_valid_for_my_1password_com"
"--skip=tests::verification_real_world::tests::unrelated_chain_valid_for_unrelated_domain"
"--skip=tests::verification_real_world::tests::unrelated_domain_invalid")
#:cargo-inputs
(list rust-android-logger-0.13
rust-base64-0.22
rust-core-foundation-0.10
rust-core-foundation-sys-0.8
rust-jni-0.21
rust-log-0.4
rust-once-cell-1
rust-paste-1
rust-rustls-0.23
rust-rustls-native-certs-0.8
rust-rustls-platform-verifier-android-0.1
rust-rustls-webpki-0.102
rust-security-framework-3
rust-security-framework-sys-2
rust-webpki-root-certs-0.26
rust-windows-sys-0.52)
#:cargo-development-inputs
(list rust-paste-1
rust-rustls-0.23
rust-webpki-root-certs-0.26)))
(home-page "https://github.com/rustls/rustls-platform-verifier")
(synopsis
"Verify TLS certificates in rustls with the operating system verifier")
(description
"This package provides rustls-platform-verifier a way to support verifying
TLS certificates in rustls with the operating system verifier.")
(license (list license:expat license:asl2.0))))
(define-public rust-rustls-platform-verifier-0.4
(package
(inherit rust-rustls-platform-verifier-0.5)
(name "rust-rustls-platform-verifier")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustls-platform-verifier" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0dnij2d9029i06x4bhyzj5izwv3370233czaqkk1fmgc1wjdrix4"))))
(arguments
(list #:cargo-test-flags
'(list "--"
"--skip=tests::verification_mock::test_verification_without_mock_root"
"--skip=tests::verification_real_world::tests::_1password_com_valid"
"--skip=tests::verification_real_world::tests::letsencrypt"
"--skip=tests::verification_real_world::tests::my_1password_com_valid"
"--skip=tests::verification_real_world::tests::my_1password_com_valid_no_stapled"
"--skip=tests::verification_real_world::tests::unrelated_chain_not_valid_for_my_1password_com"
"--skip=tests::verification_real_world::tests::unrelated_chain_valid_for_unrelated_domain"
"--skip=tests::verification_real_world::tests::unrelated_domain_invalid")
#:cargo-inputs
(list rust-android-logger-0.13
rust-base64-0.22
rust-core-foundation-0.9
rust-core-foundation-sys-0.8
rust-jni-0.19
rust-log-0.4
rust-once-cell-1
rust-paste-1
rust-rustls-0.23
rust-rustls-native-certs-0.7
rust-rustls-platform-verifier-android-0.1
rust-rustls-webpki-0.102
rust-security-framework-2
rust-security-framework-sys-2
rust-webpki-root-certs-0.26
rust-windows-sys-0.52)
#:cargo-development-inputs
(list rust-paste-1
rust-rustls-0.23
rust-webpki-root-certs-0.26)))))
(define-public rust-rustls-platform-verifier-0.3
(package
(inherit rust-rustls-platform-verifier-0.5)
(name "rust-rustls-platform-verifier")
(version "0.3.4")
(source
@ -1853,7 +1879,6 @@ PEM-encodings commonly used to store keys and certificates at rest.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "145lhjn9w5khp0fn4lagaa8qqyjyhfqn2dg6llva6qyzvy5qgfxg"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--release" "--"
@ -1882,14 +1907,7 @@ PEM-encodings commonly used to store keys and certificates at rest.")
("rust-webpki-roots" ,rust-webpki-roots-0.26)
("rust-winapi" ,rust-winapi-0.3))
#:cargo-development-inputs (("rust-rustls" ,rust-rustls-0.23)
("rust-webpki-roots" ,rust-webpki-roots-0.26))))
(home-page "https://github.com/rustls/rustls-platform-verifier")
(synopsis
"Verify TLS certificates in rustls with the operating system verifier")
(description
"This package provides rustls-platform-verifier a way to support verifying
TLS certificates in rustls with the operating system verifier.")
(license (list license:expat license:asl2.0))))
("rust-webpki-roots" ,rust-webpki-roots-0.26))))))
(define-public rust-rustls-platform-verifier-android-0.1
(package
@ -1985,8 +2003,39 @@ rustls-platform-verifier crate. You shouldn't depend on this directly.")
#:cargo-development-inputs (("rust-base64" ,rust-base64-0.13)
("rust-rcgen" ,rust-rcgen-0.11))))))
(define-public rust-tls-parser-0.12
(package
(name "rust-tls-parser")
(version "0.12.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "tls-parser" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0hf7k9fn1ziy6lmskkz6gcch4lfzv9mhzrr4yaqq8988qr4n5hr2"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ;; requires assets not included in crates.io tarball
#:cargo-inputs (("rust-cookie-factory" ,rust-cookie-factory-0.3)
("rust-nom" ,rust-nom-7)
("rust-nom-derive" ,rust-nom-derive-0.10)
("rust-num-enum" ,rust-num-enum-0.7)
("rust-phf" ,rust-phf-0.11)
("rust-phf-codegen" ,rust-phf-codegen-0.11)
("rust-rusticata-macros" ,rust-rusticata-macros-4))
#:cargo-development-inputs
(("rust-clap" ,rust-clap-4)
("rust-hex-literal" ,rust-hex-literal-0.4)
("rust-pretty-assertions" ,rust-pretty-assertions-1))))
(home-page "https://github.com/rusticata/tls-parser")
(synopsis "Parser for the TLS protocol")
(description "This package provides a Rust parser for the TLS protocol.")
(license (list license:expat license:asl2.0))))
(define-public rust-tls-parser-0.11
(package
(inherit rust-tls-parser-0.12)
(name "rust-tls-parser")
(version "0.11.0")
(source
@ -2003,7 +2052,6 @@ rustls-platform-verifier crate. You shouldn't depend on this directly.")
;; Accept newer versions of rust-clap.
(substitute* "Cargo.toml"
(("~2\\.33") "^2.33"))))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ;; requires assets not included in crates.io tarball
#:cargo-inputs
@ -2017,11 +2065,7 @@ rustls-platform-verifier crate. You shouldn't depend on this directly.")
#:cargo-development-inputs
(("rust-clap" ,rust-clap-2)
("rust-hex-literal" ,rust-hex-literal-0.3)
("rust-pretty-assertions" ,rust-pretty-assertions-0.7))))
(home-page "https://github.com/rusticata/tls-parser")
(synopsis "Parser for the TLS protocol")
(description "This package provides a Rust parser for the TLS protocol.")
(license (list license:expat license:asl2.0))))
("rust-pretty-assertions" ,rust-pretty-assertions-0.7))))))
(define-public rust-x509-cert-0.2
(package
@ -2192,29 +2236,3 @@ Public Key Infrastructure Certificate format as described in RFC 5280.")
("rust-rusticata-macros" ,rust-rusticata-macros-4)
("rust-thiserror" ,rust-thiserror-1))))))
(define-public rust-x509-signature-0.5
(package
(name "rust-x509-signature")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "x509-signature" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "063mjzgddfam4xb88wr0li3k0q6nzyq3mvkiykajr69dj0mbrclz"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; `const_err` has been removed: converted into hard error
#:cargo-test-flags '("--release" "--"
"--skip=tests::parses_openssl_generated_cert")
#:cargo-inputs (("rust-ring" ,rust-ring-0.16)
("rust-rustls" ,rust-rustls-0.18)
("rust-untrusted" ,rust-untrusted-0.7)
("rust-webpki" ,rust-webpki-0.21))
#:cargo-development-inputs (("rust-chrono" ,rust-chrono-0.4))))
(home-page "https://github.com/paritytech/x509-signature")
(synopsis "Low-level X.509 parsing and signature verification library")
(description "This package provides a low-level X.509 parsing and signature
verification library.")
(license (list license:expat license:asl2.0))))

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1559,14 +1559,14 @@ SHA-3, and BLAKE2.")
(define-public rust-blake3-1
(package
(name "rust-blake3")
(version "1.5.1")
(version "1.5.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "blake3" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0lpgw3gl564wqwf98v9jsa29lp6nv7w7nn1cvw6w75s5cz9sdk1h"))))
(base32 "07k07q7f2m0hr6z944gf0wn1s15f3gwsydhpz2ssbpn44hc0rvmq"))))
(build-system cargo-build-system)
(arguments
(list
@ -1579,11 +1579,12 @@ SHA-3, and BLAKE2.")
("rust-constant-time-eq" ,rust-constant-time-eq-0.3)
("rust-digest" ,rust-digest-0.10)
("rust-memmap2" ,rust-memmap2-0.9)
("rust-rayon" ,rust-rayon-1)
("rust-rayon-core" ,rust-rayon-core-1)
("rust-serde" ,rust-serde-1)
("rust-zeroize" ,rust-zeroize-1))
#:cargo-development-inputs
`(("rust-hex" ,rust-hex-0.4)
`(("rust-ciborium" ,rust-ciborium-0.2)
("rust-hex" ,rust-hex-0.4)
("rust-hmac" ,rust-hmac-0.12)
("rust-page-size" ,rust-page-size-0.6)
("rust-rand" ,rust-rand-0.8)

View file

@ -36,7 +36,7 @@
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019, 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2019-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -114,9 +114,13 @@
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-database)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crates-gtk)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
@ -10488,81 +10492,152 @@ specified duration and save it as a GIF encoded animated image file.")
(home-page "https://git.gnome.org/browse/byzanz")
(license license:gpl2+))))
(define-public authenticator
(define-public gnome-authenticator
(package
(name "authenticator")
(version "3.32.2")
(name "gnome-authenticator")
(version "4.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/World/Authenticator")
(url "https://gitlab.gnome.org/World/Authenticator.git/")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
(build-system meson-build-system)
(base32 "0zavax35n048spx097ymiq31s8b879qwbg8xmcxcx73r6m823mic"))))
(build-system cargo-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:install-source? #f
#:vendor-dir "vendor"
#:cargo-inputs
(list rust-aes-gcm-0.10
rust-anyhow-1
rust-async-std-1
rust-aperture-0.3
rust-ashpd-0.6
rust-data-encoding-2
rust-diesel-2
rust-diesel-migrations-2
rust-futures-channel-0.3
rust-futures-executor-0.3
rust-futures-util-0.3
rust-gettext-rs-0.7
rust-gtk4-0.7
rust-hex-0.4
rust-image-0.24
rust-libadwaita-0.5
rust-oo7-0.2
rust-percent-encoding-2
rust-prost-0.12
rust-qrencode-0.14
rust-quick-xml-0.30
rust-rand-0.8
rust-reqwest-0.11
rust-ring-0.17
rust-rust-argon2-2
rust-scrypt-0.11
rust-search-provider-0.6
rust-serde-1
rust-serde-json-1
rust-svg-metadata-0.4
rust-tokio-1
rust-tracing-0.1
rust-tracing-subscriber-0.3
rust-url-2
rust-uuid-1
rust-zbar-rust-0.0.23 ; any 0.0.*
rust-zeroize-1)
#:imported-modules `(,@%meson-build-system-modules
,@%glib-or-gtk-build-system-modules
,@%cargo-build-system-modules)
#:modules `((guix build cargo-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
((guix build meson-build-system) #:prefix meson:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-meson.build
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(assoc-ref glib-or-gtk:%standard-phases
'generate-gdk-pixbuf-loaders-cache-file))
(add-after 'unpack 'prepare-for-build
(lambda _
(substitute* "data/meson.build"
(("^ 'desktop',.*") "")
(("^ 'appdata',.*") ""))))
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((prog (search-input-file outputs "bin/authenticator"))
(pylib (string-append #$output "/lib/python"
#$(version-major+minor
(package-version
(this-package-input "python")))
"/site-packages")))
(wrap-program prog
`("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
(native-inputs
(list desktop-file-utils
gettext-minimal
`(,glib "bin")
gobject-introspection
`(,gtk+ "bin")
(substitute* "meson.build"
(("gtk_update_icon_cache: true")
"gtk_update_icon_cache: false")
(("update_desktop_database: true")
"update_desktop_database: false"))
;; Help the tests find the Cargo.toml in the sources.
(substitute* "src/meson.build"
(("'test'") "'test', cargo_options"))
(delete-file "Cargo.lock")))
;; Add meson-configure phase here and not before 'configure because
;; the meson 'configure phase changes to a different directory and
;; we need it created before unpacking the crates.
(add-before 'unpack-rust-crates 'meson-configure
(lambda args
(apply (assoc-ref meson:%standard-phases 'configure)
#:build-type "debugoptimized"
#:configure-flags '()
args)))
(replace 'build
(assoc-ref meson:%standard-phases 'build))
(replace 'check
(lambda args
(apply (assoc-ref meson:%standard-phases 'check)
#:test-options '()
args)))
(replace 'install
(assoc-ref meson:%standard-phases 'install))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'install 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
(add-after 'glib-or-gtk-wrap 'wrap-extra-paths
(lambda _
(let ((gst-plugins-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
(wrap-program (string-append #$output "/bin/authenticator")
`("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))))
(add-after 'strip 'shrink-runpath
(assoc-ref meson:%standard-phases 'shrink-runpath)))))
(native-inputs (list gettext-minimal
`(,glib "bin") ; for glib-compile-schemas
meson
ninja
pkg-config))
(inputs
(list bash-minimal
gsettings-desktop-schemas
gtk+
libhandy-0.0
libsecret
python
python-beautifulsoup4
python-pillow
python-pyfavicon
python-pygobject
python-pyotp
python-pyzbar
yoyo-migrations
(inputs (list bash-minimal
glib
gstreamer
gst-plugins-base
gst-plugins-bad
gtk
libadwaita
openssl
pipewire ; Needed but not listed
sqlite
zbar))
(home-page "https://gitlab.gnome.org/World/Authenticator/")
(synopsis "Two-factor authentication application built for GNOME")
(description
"Authenticator is a two-factor authentication (2FA) application built for
the GNOME desktop environment.
(home-page "https://apps.gnome.org/Authenticator")
(synopsis "Generate two-factor codes")
(description "Simple application for generating Two-Factor Authentication
Codes:
Features:
It features:
@itemize
@item QR code scanner
@item Time-based/Counter-based/Steam methods support
@item SHA-1/SHA-256/SHA-512 algorithms support
@item QR code scanner using a camera or from a screenshot
@item Lock the application with a password
@item Beautiful UI
@item Huge database of more than 560 supported services
@item Keep your PIN tokens secure by locking the application with a password
@item Automatically fetch an image for services using their favicon
@item The possibility to add new services
@item GNOME Shell search provider
@item Backup/Restore from/into known applications like FreeOTP+,
Aegis (encrypted / plain-text), andOTP, Google Authenticator
@end itemize")
(license license:gpl3+)))
(define-public authenticator
(deprecated-package "authenticator" gnome-authenticator))
(define-public gsound
(package
(name "gsound")

View file

@ -37,6 +37,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-database)
#:use-module (gnu packages crates-tls)
#:use-module (gnu packages dbm)
#:use-module (gnu packages docbook)
@ -272,7 +273,7 @@ Random Cage Fighting Birds, Cool Music etc.")
(define-public libchewing
(package
(name "libchewing")
(version "0.9.0")
(version "0.9.1")
(source
(origin
(method git-fetch)
@ -281,7 +282,7 @@ Random Cage Fighting Birds, Cool Music etc.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1n0w9niff46w7vncs699gj4y2xghn1sbl0f4mg5x33dcapqd14sg"))))
(base32 "0gh64wvrk5pn0fhmpvj1j99d5g7f7697rk96zbkc8l72yjr819z5"))))
(build-system cargo-build-system)
(arguments
`(#:modules ((guix build cargo-build-system)
@ -305,10 +306,6 @@ Random Cage Fighting Birds, Cool Music etc.")
(("rust-tempfile" ,rust-tempfile-3))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'allow-older-version-of-clap-mangen
(lambda _
(substitute* "tools/Cargo.toml"
(("0.2.12") "0.2.11"))))
(add-after 'configure 'cmake-configure
(lambda args
(apply (assoc-ref cmake:%standard-phases 'configure)

View file

@ -37,6 +37,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages compression)
#:use-module (gnu packages perl)
@ -404,7 +405,7 @@ This package tracks the Rapid Release channel, which updates frequently.")))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--release" "--"
'("--"
;; These tests fail with the current builder network setup
"--skip=ffi::test_gethostbyaddr_r"
"--skip=ffi::test_gethostbyname2_r"

200
gnu/packages/nushell.scm Normal file
View file

@ -0,0 +1,200 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages nushell)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-shell)
#:use-module (gnu packages crates-vcs)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (guix build-system cargo)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public nushell
(package
(name "nushell")
(version "0.101.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1hi8jhn22qyhhwxwgsncyxzmf06wd6lx0qgxn88022xggbwh7ipz"))
(snippet
#~(begin (delete-file
"tests/fixtures/partial_completions/partial-a/have_ext.exe")))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--"
"--skip=path::canonicalize::canonicalize_tilde"
"--skip=path::canonicalize::canonicalize_tilde_relative_to"
"--skip=plugin_persistence"
"--skip=plugins"
"--skip=repl")
;#:features '("system-clipboard")
#:install-source? #f
#:cargo-inputs
(("rust-crossterm" ,rust-crossterm-0.28)
("rust-ctrlc" ,rust-ctrlc-3)
("rust-dirs" ,rust-dirs-5)
("rust-log" ,rust-log-0.4)
("rust-miette" ,rust-miette-7)
("rust-mimalloc" ,rust-mimalloc-0.1)
("rust-multipart-rs" ,rust-multipart-rs-0.1)
("rust-nix" ,rust-nix-0.29)
("rust-nu-cli" ,rust-nu-cli-0.101)
("rust-nu-cmd-base" ,rust-nu-cmd-base-0.101)
("rust-nu-cmd-extra" ,rust-nu-cmd-extra-0.101)
("rust-nu-cmd-lang" ,rust-nu-cmd-lang-0.101)
("rust-nu-cmd-plugin" ,rust-nu-cmd-plugin-0.101)
("rust-nu-command" ,rust-nu-command-0.101)
("rust-nu-engine" ,rust-nu-engine-0.101)
("rust-nu-explore" ,rust-nu-explore-0.101)
("rust-nu-lsp" ,rust-nu-lsp-0.101)
("rust-nu-parser" ,rust-nu-parser-0.101)
("rust-nu-path" ,rust-nu-path-0.101)
("rust-nu-plugin-engine" ,rust-nu-plugin-engine-0.101)
("rust-nu-protocol" ,rust-nu-protocol-0.101)
("rust-nu-std" ,rust-nu-std-0.101)
("rust-nu-system" ,rust-nu-system-0.101)
("rust-nu-utils" ,rust-nu-utils-0.101)
("rust-openssl" ,rust-openssl-0.10)
("rust-reedline" ,rust-reedline-0.38)
("rust-serde-json" ,rust-serde-json-1)
("rust-simplelog" ,rust-simplelog-0.12)
("rust-time" ,rust-time-0.3)
("rust-winresource" ,rust-winresource-0.1))
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-dirs" ,rust-dirs-5)
("rust-nu-plugin-core" ,rust-nu-plugin-core-0.101)
("rust-nu-plugin-protocol" ,rust-nu-plugin-protocol-0.101)
("rust-nu-test-support" ,rust-nu-test-support-0.101)
("rust-pretty-assertions" ,rust-pretty-assertions-1)
("rust-regex" ,rust-regex-1)
("rust-rstest" ,rust-rstest-0.23)
("rust-serial-test" ,rust-serial-test-3)
("rust-tango-bench" ,rust-tango-bench-0.6)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs (list pkg-config))
(inputs (list mimalloc openssl))
(home-page "https://www.nushell.sh")
(synopsis "Shell with a structured approach to the command line")
(description
"Nu draws inspiration from projects like PowerShell, functional
programming languages, and modern CLI tools. Rather than thinking of files
and services as raw streams of text, Nu looks at each input as something with
structure. For example, when you list the contents of a directory, what you
get back is a table of rows, where each row represents an item in that
directory. These values can be piped through a series of steps, in a series
of commands called a ``pipeline''.")
(license license:expat)))
;; Nushell plugins need to be built against the same nu-plugin protocol
;; version as nushell itself.
(define-public nu-plugin-formats
(package
(name "nu-plugin-formats")
(version "0.101.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_formats" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0bpsqchhv3q9x38i5kn7gpfrxv875k0vgb7k3r732d7f59nxzd93"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-chrono" ,rust-chrono-0.4)
("rust-eml-parser" ,rust-eml-parser-0.1)
("rust-ical" ,rust-ical-0.11)
("rust-indexmap" ,rust-indexmap-2)
("rust-nu-plugin" ,rust-nu-plugin-0.101)
("rust-nu-protocol" ,rust-nu-protocol-0.101)
("rust-plist" ,rust-plist-1)
("rust-rust-ini" ,rust-rust-ini-0.21))
#:cargo-development-inputs
(("rust-nu-plugin-test-support" ,rust-nu-plugin-test-support-0.101))))
(home-page
"https://github.com/nushell/nushell/tree/main/crates/nu_plugin_formats")
(synopsis "An I/O plugin for a set of file formats for Nushell")
(description
"This package provides An I/O plugin for a set of file formats for Nushell.")
(license license:expat)))
(define-public nu-plugin-inc
(package
(name "nu-plugin-inc")
(version "0.101.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_inc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "12kr3lnjhq6grdnhxrmlxgmvvgv7kc6fg18z6gfk2qim1sckikyd"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-nu-plugin" ,rust-nu-plugin-0.101)
("rust-nu-protocol" ,rust-nu-protocol-0.101)
("rust-semver" ,rust-semver-1))))
(home-page
"https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc")
(synopsis "Version incrementer plugin for Nushell")
(description
"This package provides a version incrementer plugin for Nushell.")
(license license:expat)))
(define-public nu-plugin-gstat
(package
(name "nu-plugin-gstat")
(version "0.101.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_gstat" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1jpxbgkffwxh02ccjxd9mkb0z1j0c58mh75vw1c62g74775mdkpc"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-git2" ,rust-git2-0.19)
("rust-nu-plugin" ,rust-nu-plugin-0.101)
("rust-nu-protocol" ,rust-nu-protocol-0.101))))
(native-inputs (list pkg-config))
(inputs (list libgit2-1.8 libssh2 openssl zlib))
(home-page
"https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat")
(synopsis "Git status plugin for Nushell")
(description "This package provides a git status plugin for Nushell.")
(license license:expat)))

View file

@ -2,36 +2,46 @@ Remove dependencies on xwin and zig. We're not offering cross-compilation
options using these crates.
diff --git a/Cargo.toml b/Cargo.toml
index 6704e46..ff126a9 100644
index 24305db..c7641f9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -83,16 +83,6 @@ version = "0.1.16"
@@ -95,16 +95,6 @@ version = "0.1.24"
[dependencies.cargo-options]
version = "0.7.2"
-[dependencies.cargo-xwin]
-version = "0.16.2"
-version = "0.18.3"
-optional = true
-default-features = false
-
-[dependencies.cargo-zigbuild]
-version = "0.18.0"
-version = "0.19.7"
-optional = true
-default-features = false
-
[dependencies.cargo_metadata]
version = "0.18.0"
version = "0.19.0"
@@ -364,10 +354,6 @@ version = "7.0.0"
@@ -321,8 +311,6 @@ version = "5.0.0"
[features]
cli-completion = ["dep:clap_complete_command"]
cross-compile = [
-cross-compile = [
- "zig",
- "xwin",
]
-]
default = [
"full",
@@ -341,7 +329,6 @@ log = ["tracing-subscriber"]
"rustls",
@@ -375,7 +361,6 @@ default = [
faster-tests = []
full = [
"cli-completion",
- "cross-compile",
"scaffolding",
"upload",
]
@@ -384,7 +369,6 @@ log = []
native-tls = [
"dep:native-tls",
"ureq?/native-tls",
@ -39,7 +49,7 @@ index 6704e46..ff126a9 100644
"dep:rustls-pemfile",
]
password-storage = [
@@ -351,7 +338,6 @@ password-storage = [
@@ -394,7 +378,6 @@ password-storage = [
rustls = [
"dep:rustls",
"ureq?/tls",
@ -47,7 +57,7 @@ index 6704e46..ff126a9 100644
"dep:rustls-pemfile",
]
scaffolding = [
@@ -369,5 +355,3 @@ upload = [
@@ -416,5 +399,3 @@ upload = [
"wild",
"dep:dirs",
]

View file

@ -0,0 +1,19 @@
diff --git a/rustc-1.54.0-src.patch b/rustc-1.54.0-src.patch
index 088c723a..d322fd0d 100644
--- a/rustc-1.54.0-src.patch
+++ b/rustc-1.54.0-src.patch
@@ -302,14 +302,3 @@
use self::generic as arch;
pub use self::arch::{vec128_storage, vec256_storage, vec512_storage};
-
---- src/llvm-project/llvm/include/llvm/Support/Signals.h
-+++ src/llvm-project/llvm/include/llvm/Support/Signals.h
-@@ -14,6 +14,7 @@
- #ifndef LLVM_SUPPORT_SIGNALS_H
- #define LLVM_SUPPORT_SIGNALS_H
-
-+#include <cstdint>
- #include <string>
-
- namespace llvm {

View file

@ -1,33 +0,0 @@
This is modeled after the upstream commit which removes ureq as a dependency.
diff --git a/Cargo.toml b/Cargo.toml
index 5a787e1..27171c7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -201,26 +201,3 @@ test-external-apis = []
upgrade = ["cli"]
vendored-libgit2 = ["git2/vendored-libgit2"]
vendored-openssl = ["git2/vendored-openssl"]
-
-[target."cfg(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\"))".dependencies.ureq]
-version = "2.7.1"
-features = [
- "tls",
- "json",
- "socks",
- "socks-proxy",
-]
-default-features = false
-
-[target."cfg(not(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\")))".dependencies.native-tls]
-version = "^0.2"
-
-[target."cfg(not(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\")))".dependencies.ureq]
-version = "2.7.1"
-features = [
- "native-tls",
- "json",
- "socks",
- "socks-proxy",
-]
-default-features = false

View file

@ -0,0 +1,88 @@
From f940d8c8fa087554583158d50df071af89c516db Mon Sep 17 00:00:00 2001
From: Simon Lamon <32477463+silamon@users.noreply.github.com>
Date: Sat, 19 Nov 2022 20:32:07 +0100
Subject: [PATCH] chore: upgrade dependencies (#9)
Co-authored-by: Markus Siemens <markus@m-siemens.de>
---
Cargo.toml.orig | 8 ++++----
src/errors.rs | 6 +++---
src/reader.rs | 2 +-
src/utils.rs | 5 ++---
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 9afddd0..e302436 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -14,15 +14,15 @@ categories = ["parser-implementations"]
backtrace = []
[dependencies]
-bytes = "0.5"
+bytes = "1.2.0"
encoding_rs = "0.8.31"
enum-primitive-derive = "0.2.2"
-itertools = "0.9.0"
+itertools = "0.10.3"
num-traits = "0.2"
paste = "1.0"
thiserror = "1.0"
-uuid = "0.8"
-widestring = "0.4.3"
+uuid = "1.1.2"
+widestring = "1.0.2"
[dev-dependencies]
insta = "1.21.1"
diff --git a/src/errors.rs b/src/errors.rs
index 91477b3..50079a3 100644
--- a/src/errors.rs
+++ b/src/errors.rs
@@ -51,8 +51,8 @@ impl From<std::string::FromUtf16Error> for Error {
}
}
-impl From<widestring::MissingNulError<u16>> for Error {
- fn from(err: widestring::MissingNulError<u16>) -> Self {
+impl From<widestring::error::MissingNulTerminator> for Error {
+ fn from(err: widestring::error::MissingNulTerminator) -> Self {
ErrorKind::from(err).into()
}
}
@@ -128,6 +128,6 @@ pub enum ErrorKind {
#[error("UTF-16 string is missing null terminator: {err}")]
Utf16MissingNull {
#[from]
- err: widestring::MissingNulError<u16>,
+ err: widestring::error::MissingNulTerminator,
},
}
diff --git a/src/reader.rs b/src/reader.rs
index 64730d0..318c280 100644
--- a/src/reader.rs
+++ b/src/reader.rs
@@ -40,7 +40,7 @@ impl<'a> Reader<'a> {
}
pub(crate) fn bytes(&self) -> &[u8] {
- self.0.bytes()
+ self.0.chunk()
}
pub(crate) fn remaining(&self) -> usize {
diff --git a/src/utils.rs b/src/utils.rs
index fd77181..074ff50 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -12,8 +12,7 @@ impl Utf16ToString for &[u8] {
.map(|v| u16::from_le_bytes([v[0], v[1]]))
.collect();
- let value = U16CString::from_vec_with_nul(data)?;
-
- Ok(value.to_string()?)
+ let value = U16CString::from_vec_truncate(data);
+ Ok(value.to_string().unwrap())
}
}

View file

@ -0,0 +1,52 @@
From 8b450447e58143004b68dd21c11b710fdb79be92 Mon Sep 17 00:00:00 2001
From: Micah Snyder <micasnyd@cisco.com>
Date: Mon, 3 Jul 2023 21:44:57 -0700
Subject: [PATCH] Add ability to parse section from in memory buffer
Resolves: https://github.com/msiemens/onenote.rs/issues/12
---
src/onenote/mod.rs | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/onenote/mod.rs b/src/onenote/mod.rs
index de172c9..8bcb62b 100644
--- a/src/onenote/mod.rs
+++ b/src/onenote/mod.rs
@@ -6,8 +6,9 @@ use crate::onestore::parse_store;
use crate::reader::Reader;
use std::ffi::OsStr;
use std::fs::File;
-use std::io::{BufReader, Read};
+use std::io::{BufReader, Read, Cursor};
use std::path::Path;
+use std::str::FromStr;
pub(crate) mod content;
pub(crate) mod embedded_file;
@@ -76,6 +77,26 @@ impl Parser {
Ok(Notebook { entries: sections })
}
+ /// Parse a OneNote section buffer.
+ ///
+ /// The `data` argument must contain a OneNote section.
+ pub fn parse_section_buffer(&mut self, data: &[u8], file_name: &Path) -> Result<Section> {
+ let packaging = OneStorePackaging::parse(&mut Reader::new(data))?;
+ let store = parse_store(&packaging)?;
+
+ if store.schema_guid() != guid!({1F937CB4-B26F-445F-B9F8-17E20160E461}) {
+ return Err(ErrorKind::NotASectionFile {
+ file: file_name.to_string_lossy().into_owned(),
+ }
+ .into());
+ }
+
+ section::parse_section(
+ store,
+ file_name.to_string_lossy().into_owned(),
+ )
+ }
+
/// Parse a OneNote section file.
///
/// The `path` argument must point to a `.one` file that contains a

View file

@ -0,0 +1,30 @@
From 29c08532252b917543ff268284f926f30876bb79 Mon Sep 17 00:00:00 2001
From: Matt Jolly <Matt.Jolly@footclan.ninja>
Date: Mon, 24 Jun 2024 17:34:05 +1000
Subject: [PATCH] PropertType: Specify type for custom discriminant values
We use custom discriminant values for enum variants for "PropertType" without specifying the type.
This causes it to default to "isize" which on 64bit platforms is big enough to hold the 32bit constants,
but causes overflow when isize is 32bit.
This issue was uncovered due to build failures on arm for Gentoo Linux as a dependency of ClamAV.
Bug: https://bugs.gentoo.org/927214
Signed-off-by: Matt Jolly <kangie@gentoo.org>
Co-authored-by: Steven Newbury <steve@snewbury.org.uk>
---
src/one/property/mod.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/one/property/mod.rs b/src/one/property/mod.rs
index 42841c6..fcc0481 100644
--- a/src/one/property/mod.rs
+++ b/src/one/property/mod.rs
@@ -23,6 +23,7 @@ mod references;
pub(crate) mod simple;
pub(crate) mod time;
+#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq)]
#[allow(dead_code)]
#[allow(clippy::enum_clike_unportable_variant)]

View file

@ -1,24 +0,0 @@
--- Cargo.toml 2023-05-07 13:39:13.029066693 +0100
+++ Cargo.toml 2023-05-07 13:39:22.545138206 +0100
@@ -67,21 +67,3 @@
[target."cfg(target_arch = \"wasm32\")".dependencies.web-sys]
version = "0.3"
features = ["Window"]
-
-[target."cfg(target_os = \"android\")".dependencies.jni]
-version = "0.21"
-
-[target."cfg(target_os = \"android\")".dependencies.ndk-context]
-version = "0.1"
-
-[target."cfg(target_os = \"android\")".dev-dependencies.ndk-glue]
-version = ">= 0.3, <= 0.7"
-
-[target."cfg(target_os = \"ios\")".dependencies.objc]
-version = "0.2.7"
-
-[target."cfg(target_os = \"ios\")".dependencies.raw-window-handle]
-version = "0.5.0"
-
-[target."cfg(target_os = \"macos\")".dependencies.core-foundation]
-version = "0.9"

View file

@ -1,304 +0,0 @@
# mrustc is much better at enum packing, so causes almost all of these to be smaller by one pointer
--- compiler/rustc_ast/src/ast.rs
+++ compiler/rustc_ast/src/ast.rs
@@ -1075,7 +1075,7 @@ pub struct Expr {
}
// `Expr` is used a lot. Make sure it doesn't unintentionally get bigger.
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(Expr, 104);
impl Expr {
@@ -2779,7 +2779,7 @@ pub enum AssocItemKind {
MacCall(MacCall),
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(AssocItemKind, 72);
impl AssocItemKind {
@@ -2831,7 +2831,7 @@ pub enum ForeignItemKind {
MacCall(MacCall),
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler="mrustc"),target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(ForeignItemKind, 72);
impl From<ForeignItemKind> for ItemKind {
--- compiler/rustc_hir/src/hir.rs
+++ compiler/rustc_hir/src/hir.rs
@@ -3048,7 +3048,7 @@ impl<'hir> Node<'hir> {
}
// Some nodes are used a lot. Make sure they don't unintentionally get bigger.
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler="mrustc"),target_arch = "x86_64", target_pointer_width = "64"))]
mod size_asserts {
rustc_data_structures::static_assert_size!(super::Block<'static>, 48);
rustc_data_structures::static_assert_size!(super::Expr<'static>, 64);
--- compiler/rustc_middle/src/mir/interpret/error.rs
+++ compiler/rustc_middle/src/mir/interpret/error.rs
@@ -449,7 +449,7 @@ impl dyn MachineStopType {
}
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
static_assert_size!(InterpError<'_>, 64);
pub enum InterpError<'tcx> {
--- compiler/rustc_middle/src/mir/mod.rs
+++ compiler/rustc_middle/src/mir/mod.rs
@@ -2200,7 +2200,7 @@ pub enum AggregateKind<'tcx> {
Generator(DefId, SubstsRef<'tcx>, hir::Movability),
}
-#[cfg(target_arch = "x86_64")]
+#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64"))]
static_assert_size!(AggregateKind<'_>, 48);
#[derive(Copy, Clone, Debug, PartialEq, PartialOrd, Eq, TyEncodable, TyDecodable, Hash, HashStable)]
--- compiler/rustc_middle/src/thir.rs
+++ compiler/rustc_middle/src/thir.rs
@@ -144,7 +144,7 @@ pub enum StmtKind<'tcx> {
}
// `Expr` is used a lot. Make sure it doesn't unintentionally get bigger.
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(Expr<'_>, 144);
/// The Thir trait implementor lowers their expressions (`&'tcx H::Expr`)
--- compiler/rustc_mir/src/interpret/operand.rs
+++ compiler/rustc_mir/src/interpret/operand.rs
@@ -32,7 +32,7 @@ pub enum Immediate<Tag = ()> {
ScalarPair(ScalarMaybeUninit<Tag>, ScalarMaybeUninit<Tag>),
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(Immediate, 56);
impl<Tag> From<ScalarMaybeUninit<Tag>> for Immediate<Tag> {
@@ -87,7 +87,7 @@ pub struct ImmTy<'tcx, Tag = ()> {
pub layout: TyAndLayout<'tcx>,
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(ImmTy<'_>, 72);
impl<Tag: Copy> std::fmt::Display for ImmTy<'tcx, Tag> {
--- compiler/rustc_mir/src/interpret/place.rs
+++ compiler/rustc_mir/src/interpret/place.rs
@@ -88,7 +88,7 @@ pub enum Place<Tag = ()> {
Local { frame: usize, local: mir::Local },
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(Place, 64);
#[derive(Copy, Clone, Debug)]
@@ -97,7 +97,7 @@ pub struct PlaceTy<'tcx, Tag = ()> {
pub layout: TyAndLayout<'tcx>,
}
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))]
rustc_data_structures::static_assert_size!(PlaceTy<'_>, 80);
impl<'tcx, Tag> std::ops::Deref for PlaceTy<'tcx, Tag> {
#
# Disable std_detect's detection logic (use the same logic as miri)
#
--- library/stdarch/crates/std_detect/src/detect/mod.rs
+++ library/stdarch/crates/std_detect/src/detect/mod.rs
@@ -86,7 +86,7 @@ mod bit;
mod cache;
cfg_if! {
- if #[cfg(miri)] {
+ if #[cfg(any(miri, rust_compiler = "mrustc"))] {
// When running under miri all target-features that are not enabled at
// compile-time are reported as disabled at run-time.
//
#
# Disable crc32fast's use of stdarch
#
--- vendor/crc32fast/src/specialized/mod.rs
+++ vendor/crc32fast/src/specialized/mod.rs
@@ -1,5 +1,6 @@
cfg_if! {
if #[cfg(all(
+ not(rust_compiler = "mrustc"),
crc32fast_stdarchx86,
any(target_arch = "x86", target_arch = "x86_64")
))] {
#
# Backport which is required to support arm64 on macOS 12
# See: https://github.com/alexcrichton/curl-rust/commit/0aea09c428b9bc2bcf46da0fc33959fe3f03c74a
#
--- vendor/curl/src/lib.rs
+++ vendor/curl/src/lib.rs
@@ -82,6 +82,9 @@ pub mod easy;
pub mod multi;
mod panic;
+#[cfg(test)]
+static INITIALIZED: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false);
+
/// Initializes the underlying libcurl library.
///
/// The underlying libcurl library must be initialized before use, and must be
@@ -102,46 +105,62 @@ pub fn init() {
/// Used to prevent concurrent or duplicate initialization.
static INIT: Once = Once::new();
- /// An exported constructor function. On supported platforms, this will be
- /// invoked automatically before the program's `main` is called.
- #[cfg_attr(
- any(target_os = "linux", target_os = "freebsd", target_os = "android"),
- link_section = ".init_array"
- )]
- #[cfg_attr(target_os = "macos", link_section = "__DATA,__mod_init_func")]
- #[cfg_attr(target_os = "windows", link_section = ".CRT$XCU")]
- static INIT_CTOR: extern "C" fn() = init_inner;
+ INIT.call_once(|| {
+ #[cfg(need_openssl_init)]
+ openssl_probe::init_ssl_cert_env_vars();
+ #[cfg(need_openssl_init)]
+ openssl_sys::init();
+
+ unsafe {
+ assert_eq!(curl_sys::curl_global_init(curl_sys::CURL_GLOBAL_ALL), 0);
+ }
+
+ #[cfg(test)]
+ {
+ INITIALIZED.store(true, std::sync::atomic::Ordering::SeqCst);
+ }
+
+ // Note that we explicitly don't schedule a call to
+ // `curl_global_cleanup`. The documentation for that function says
+ //
+ // > You must not call it when any other thread in the program (i.e. a
+ // > thread sharing the same memory) is running. This doesn't just mean
+ // > no other thread that is using libcurl.
+ //
+ // We can't ever be sure of that, so unfortunately we can't call the
+ // function.
+ });
+}
+/// An exported constructor function. On supported platforms, this will be
+/// invoked automatically before the program's `main` is called. This is done
+/// for the convenience of library users since otherwise the thread-safety rules
+/// around initialization can be difficult to fulfill.
+///
+/// This is a hidden public item to ensure the symbol isn't optimized away by a
+/// rustc/LLVM bug: https://github.com/rust-lang/rust/issues/47384. As long as
+/// any item in this module is used by the final binary (which `init` will be)
+/// then this symbol should be preserved.
+#[used]
+#[doc(hidden)]
+#[cfg_attr(
+ any(target_os = "linux", target_os = "freebsd", target_os = "android"),
+ link_section = ".init_array"
+)]
+#[cfg_attr(target_os = "macos", link_section = "__DATA,__mod_init_func")]
+#[cfg_attr(target_os = "windows", link_section = ".CRT$XCU")]
+pub static INIT_CTOR: extern "C" fn() = {
/// This is the body of our constructor function.
#[cfg_attr(
any(target_os = "linux", target_os = "android"),
link_section = ".text.startup"
)]
- extern "C" fn init_inner() {
- INIT.call_once(|| {
- #[cfg(need_openssl_init)]
- openssl_sys::init();
-
- unsafe {
- assert_eq!(curl_sys::curl_global_init(curl_sys::CURL_GLOBAL_ALL), 0);
- }
-
- // Note that we explicitly don't schedule a call to
- // `curl_global_cleanup`. The documentation for that function says
- //
- // > You must not call it when any other thread in the program (i.e.
- // > a thread sharing the same memory) is running. This doesn't just
- // > mean no other thread that is using libcurl.
- //
- // We can't ever be sure of that, so unfortunately we can't call the
- // function.
- });
+ extern "C" fn init_ctor() {
+ init();
}
- // We invoke our init function through our static to ensure the symbol isn't
- // optimized away by a bug: https://github.com/rust-lang/rust/issues/47384
- INIT_CTOR();
-}
+ init_ctor
+};
unsafe fn opt_str<'a>(ptr: *const libc::c_char) -> Option<&'a str> {
if ptr.is_null() {
@@ -158,3 +177,20 @@ fn cvt(r: curl_sys::CURLcode) -> Result<(), Error> {
Err(Error::new(r))
}
}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ #[cfg(any(
+ target_os = "linux",
+ target_os = "macos",
+ target_os = "windows",
+ target_os = "freebsd",
+ target_os = "android"
+ ))]
+ fn is_initialized_before_main() {
+ assert!(INITIALIZED.load(std::sync::atomic::Ordering::SeqCst));
+ }
+}
# PPV-Lite also needs to know that we're pretending to be miri
--- vendor/ppv-lite86/src/lib.rs
+++ vendor/ppv-lite86/src/lib.rs
@@ -9,14 +9,14 @@ mod soft;
mod types;
pub use self::types::*;
-#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri)))]
+#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri), not(rust_compiler = "mrustc")))]
pub mod x86_64;
-#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri)))]
+#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri), not(rust_compiler = "mrustc")))]
use self::x86_64 as arch;
-#[cfg(any(miri, not(all(feature = "simd", any(target_arch = "x86_64")))))]
+#[cfg(any(miri, rust_compiler = "mrustc", not(all(feature = "simd", any(target_arch = "x86_64")))))]
pub mod generic;
-#[cfg(any(miri, not(all(feature = "simd", any(target_arch = "x86_64")))))]
+#[cfg(any(miri, rust_compiler = "mrustc", not(all(feature = "simd", any(target_arch = "x86_64")))))]
use self::generic as arch;
pub use self::arch::{vec128_storage, vec256_storage, vec512_storage};

View file

@ -40,6 +40,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages libffi)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cmake)
#:use-module (gnu packages check)

View file

@ -72,7 +72,7 @@
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages swig)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@ -519,14 +519,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
(version "42.0.5")
(version "43.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography_vectors" version))
(sha256
(base32
"1lcflcvv0xjz5cyvf33iav1vd91qzjvl4w7h4qaxlcnbn3ixap2h"))))
"1d46wj4831g2vmixffk2b0bb0x67x5rlnqbpfa8fi17lcm98hspz"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ; No tests included.
(native-inputs
@ -543,33 +543,61 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography
(package
(name "python-cryptography")
(version "42.0.5")
(version "43.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(sha256
(base32
"1qdz0yk5smi0dnywbxmanccwizilmnzgbbihjpmpgm6zjpn7xq3g"))))
(build-system pyproject-build-system)
"01d8anh4crjvpa0s044rxkdi9cjnz4w15dj3yipjljba4q0r0nri"))
(snippet
#~(begin (use-modules (guix build utils))
;; Help the configure phase. Remove this next release.
(with-output-to-file "Cargo.toml"
(lambda () (newline)))
(for-each delete-file
(find-files "." "Cargo\\.lock$"))
(substitute* "pyproject.toml"
(("locked = true") "offline = true"))))))
(build-system cargo-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'disable-rust-extension-build
(lambda _
;; The Rust extension is built separately as
;; 'python-cryptography-rust', so there's no need
;; to build it here.
(substitute* "pyproject.toml"
(("\\s+\\\"setuptools-rust.*") ""))))
(add-before 'check 'symlink-rust-library
(lambda* (#:key inputs outputs #:allow-other-keys)
(symlink (search-input-file
inputs "lib/libcryptography_rust.so")
(string-append (site-packages inputs outputs)
"/cryptography/hazmat/bindings/"
"_rust.abi3.so")))))))
#:imported-modules `(,@%cargo-build-system-modules
,@%pyproject-build-system-modules)
#:modules '((guix build cargo-build-system)
((guix build pyproject-build-system) #:prefix py:)
(guix build utils))
#:cargo-inputs
(list rust-asn1-0.16
rust-cc-1
rust-cfg-if-1
rust-foreign-types-0.3
rust-foreign-types-shared-0.1
rust-once-cell-1
rust-openssl-0.10
rust-openssl-sys-0.9
rust-pem-3
rust-pyo3-0.22
rust-self-cell-1)
#:install-source? #false
#:phases
#~(modify-phases %standard-phases
(add-after 'configure 'dont-vendor-self
(lambda* (#:key vendor-dir #:allow-other-keys)
;; Don't keep the whole tarball in the vendor directory
(delete-file-recursively
(string-append vendor-dir "/cryptography-" #$version ".tar.zst"))))
(replace 'build
(assoc-ref py:%standard-phases 'build))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
(py:add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest" "tests"))))
(replace 'install
(assoc-ref py:%standard-phases 'install)))))
(native-inputs
(list python-certifi
python-cryptography-vectors
@ -580,7 +608,7 @@ is used by the Requests library to verify HTTPS requests.")
python-pytest-subtests
python-setuptools
python-wheel))
(inputs (list python-cryptography-rust))
(inputs (list maturin openssl python-wrapper))
(propagated-inputs (list python-cffi))
(home-page "https://github.com/pyca/cryptography")
(synopsis "Cryptographic recipes and primitives for Python")
@ -593,73 +621,17 @@ ciphers, message digests and key derivation functions.")
;; Distributed under either BSD-3 or ASL2.0
(license (list license:bsd-3 license:asl2.0))))
;;; This is the Rust component of the python-cryptography library, extracted
;;; as a separate package to ease the Rust build.
(define-public python-cryptography-rust
(package
(inherit python-cryptography)
(name "python-cryptography-rust")
(build-system cargo-build-system)
(arguments
(list
#:modules '((guix build cargo-build-system)
(guix build utils)
(srfi srfi-1)
(ice-9 match))
#:install-source? #f
;; As seen in noxfile.py
#:cargo-test-flags ''("--release" "--no-default-features")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "src/rust")))
(replace 'unpack-rust-crates
;; This is to avoid the non-crate source from being erroneously
;; unpacked by this phase, causing an error.
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(apply (assoc-ref %standard-phases 'unpack-rust-crates)
(append args
(list #:inputs (alist-delete "source" inputs))))))
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(apply (assoc-ref %standard-phases 'configure)
(append args
(list #:inputs (alist-delete "source" inputs))))))
(add-after 'install 'install-shared-library
(lambda _
(install-file "target/release/libcryptography_rust.so"
(string-append #$output "/lib")))))
#:cargo-inputs
`(("rust-asn1" ,rust-asn1-0.15)
("rust-cc" ,rust-cc-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-foreign-types" ,rust-foreign-types-0.3)
("rust-foreign-types-shared" ,rust-foreign-types-shared-0.1)
("rust-once-cell" ,rust-once-cell-1)
("rust-openssl" ,rust-openssl-0.10)
("rust-openssl-sys" ,rust-openssl-sys-0.9)
("rust-pem" ,rust-pem-3)
("rust-pyo3" ,rust-pyo3-0.20)
("rust-self-cell" ,rust-self-cell-1))))
(native-inputs (list pkg-config python python-cffi))
;; XXX: Adding rust-openssl-sys-0.9 is needed because #:cargo-inputs
;; doesn't honor propagated-inputs.
(inputs (list python rust-openssl-sys-0.9))
(propagated-inputs '())
(synopsis "Core implementation of the Cryptography Python library")))
(define-public python-pyopenssl
(package
(name "python-pyopenssl")
(version "24.1.0")
(version "24.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyOpenSSL" version))
(uri (pypi-uri "pyopenssl" version))
(sha256
(base32
"0vqsyji1q4vhd5yxlzks0z6va62knq64mxhfdjhz3yaxmazx9gna"))))
"158fpy6fsmkrci67qpzg06ha3ygh3ah3xzxjrc6md3blwgdz0is2"))))
(build-system python-build-system)
(arguments
(list
@ -671,7 +643,7 @@ ciphers, message digests and key derivation functions.")
;; PyOpenSSL runs tests against a certificate with a fixed
;; expiry time. To ensure successful builds in the future,
;; set the time to roughly the release date.
(invoke "faketime" "2024-03-09" "pytest" "-vv" "-k"
(invoke "faketime" "2024-07-20" "pytest" "-vv" "-k"
;; This test tries to look up certificates from
;; the compiled-in default path in OpenSSL, which
;; does not exist in the build environment.

View file

@ -3587,13 +3587,13 @@ verification of the SSL peer.")
(define-public python-nh3
(package
(name "python-nh3")
(version "0.2.17")
(version "0.2.20")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nh3" version))
(sha256
(base32 "0a7hrca5bbbrz20cbqy16n8vaxf4v2q1r9zv9vjlbmn334d79l20"))))
(base32 "1mcf3y5294glji9lhzh57wymw4srbvzdg0kcakm0p2pqgwnw81cp"))))
(build-system cargo-build-system)
(arguments
(list
@ -3615,7 +3615,7 @@ verification of the SSL peer.")
(invoke "pytest" "-vv" "tests")))))
#:cargo-inputs
`(("rust-ammonia" ,rust-ammonia-4)
("rust-pyo3" ,rust-pyo3-0.21))
("rust-pyo3" ,rust-pyo3-0.23))
#:install-source? #false))
(native-inputs (list maturin python-pytest python-wrapper))
(home-page "https://nh3.readthedocs.io")

File diff suppressed because it is too large Load diff

View file

@ -128,9 +128,9 @@
;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
;;; to be used in source form.
(define %mrustc-commit "b6754f574f8846eb842feba4ccbeeecb10bdfacc")
(define %mrustc-commit "5e01a76097265f4bb27b18885b9af3f2778180f9")
(define %mrustc-source
(let* ((version "0.10.1")
(let* ((version "0.11.0")
(commit %mrustc-commit)
(revision "1")
(name "mrustc"))
@ -138,11 +138,11 @@
(method git-fetch)
(uri (git-reference
(url "https://github.com/thepowersgang/mrustc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(commit %mrustc-commit)))
(file-name (git-file-name name (git-version version revision commit)))
(sha256
(base32
"0rqiif7rb5hg6ik3i1flldj311f014q4n9z8wb50cs8kspjz32di"))
(base32 "1yyjfl1z6d5r9sv7zl90kqyjw1lqd2cqzwh2syi7yvrpslhihrhy"))
(patches (search-patches "mrustc-patches.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -150,7 +150,10 @@
;; by disabling debug by default.
(substitute* (find-files "." "Makefile")
(("LINKFLAGS := -g") "LINKFLAGS :=")
(("-g ") "")))))))
(("-g ") ""))
;; Don't use the vendored openssl sources.
(substitute* "minicargo.mk"
(("--features vendored-openssl") "")))))))
;;; Rust 1.54 is special in that it is built with mrustc, which shortens the
;;; bootstrap path.
@ -177,26 +180,24 @@
;; Also remove the bundled (mostly Windows) libraries.
;; find vendor -not -type d -exec file {} \+ | grep PE32
(for-each delete-file
(find-files "vendor" "\\.(a|dll|exe|lib)$"))))
(patches (search-patches "rustc-1.54.0-src.patch"))
(patch-flags '("-p0")))) ;default is -p1
(find-files "vendor" "\\.(a|dll|exe|lib)$"))
;; Adjust some sources for llvm-13, see llvm commit
;; acce401068e78a8c5dc9e06802111ffad3da763f
(substitute* (find-files "." "powerpc64le_unknown_linux_gnu.rs")
(("e-m:e-i64:64-n32:64-v256:256:256-v512:512:512")
"e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512"))))))
(outputs '("out" "cargo"))
(properties '((hidden? . #t)
(timeout . 129600) ;36 hours
(max-silent-time . 18000))) ;5 hours (for armel)
(build-system gnu-build-system)
(inputs
`(("bash-minimal" ,bash-minimal)
,@(if (or (target-ppc64le?)
(target-riscv64?))
`(("clang" ,clang-13))
`())
("llvm" ,llvm-13)
("openssl" ,openssl-1.1)
("zlib" ,zlib)))
(list bash-minimal
llvm-13
openssl-1.1
zlib))
(native-inputs
`(("pkg-config" ,pkg-config)
;; Required for the libstd sources.
("mrustc-source" ,%mrustc-source)))
(arguments
`(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
@ -207,62 +208,33 @@
;; Rust's own .so library files are not found in any RUNPATH, but
;; that doesn't seem to cause issues.
#:validate-runpath? #f
;; Most of the build is single-threaded. This also improves the
;; build time on machines with "only" 8GB of RAM.
;; ppc64le regularly sees race conditions between various dependant crates.
#:parallel-build? ,(target-x86-64?)
#:make-flags
(list ,(string-append "RUSTC_TARGET="
(platform-rust-target
,#~(let ((source #$(package-source this-package)))
(list (string-append "RUSTC_TARGET="
#$(platform-rust-target
(lookup-platform-by-target-or-system
(or (%current-target-system)
(%current-system)))))
,(string-append "RUSTC_VERSION=" version)
,(string-append "MRUSTC_TARGET_VER="
(version-major+minor version))
;; mrustc expects a C11 compatible compiler. Use the default
;; C language dialect from the GCC-10 compiler.
;; This is necessary for some architectures.
"CFLAGS=-std=gnu11"
"OUTDIR_SUF=") ;do not add version suffix to output dir
(string-append "RUSTC_VERSION=" #$version)
(string-append "MRUSTC_TARGET_VER="
#$(version-major+minor version))
(string-append "RUSTC_SRC_TARBALL=" source)
"OUTDIR_SUF=")) ;do not add version suffix to output dir
#:phases
(modify-phases %standard-phases
,@(if (target-ppc64le?)
`((add-after 'unpack 'patch-sources-for-newer-llvm
(lambda _
;; Adjust some sources for llvm-13, see llvm commit
;; acce401068e78a8c5dc9e06802111ffad3da763f
(substitute* (find-files "." "powerpc64le_unknown_linux_gnu.rs")
(("e-m:e-i64:64-n32:64-v256:256:256-v512:512:512")
"e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512")))))
'())
(add-after 'unpack 'setup-mrustc-sources
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "mrustc-source") "../mrustc")
;; The Makefile of mrustc expects the sources directory of rustc
;; to be at this location, and it simplifies things to make it
;; so.
(symlink (getcwd)
(string-append "../mrustc/rustc-" ,version "-src"))
(with-output-to-file "dl-version"
(lambda _
(format #t "~a~%"
,version)))))
(add-after 'setup-mrustc-sources 'patch-makefiles
(replace 'unpack
(lambda* (#:key source inputs #:allow-other-keys)
((assoc-ref %standard-phases 'unpack)
#:source (assoc-ref inputs "mrustc-source"))))
(add-after 'unpack 'patch-makefiles
;; This disables building the (unbundled) LLVM.
(lambda* (#:key inputs parallel-build? #:allow-other-keys)
(let ((llvm (assoc-ref inputs "llvm")))
(with-directory-excursion "../mrustc"
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("minicargo.mk"
"run_rustc/Makefile")
;; Use the system-provided LLVM.
(("LLVM_CONFIG [:|?]= .*")
(string-append "LLVM_CONFIG := " llvm "/bin/llvm-config\n")))
(substitute* "minicargo.mk"
;; Do not try to fetch sources from the Internet.
(("@curl.*") "")
(("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)")
"$(MINICARGO)"))
(string-append "LLVM_CONFIG := "
(search-input-file inputs "/bin/llvm-config") "\n")))
(substitute* "Makefile"
;; Patch date and git obtained version information.
((" -D VERSION_GIT_FULLHASH=.*")
@ -274,19 +246,11 @@
" -D VERSION_BUILDTIME="
"\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
" -D VERSION_GIT_ISDIRTY=0\n")))
(substitute* "run_rustc/Makefile"
(substitute* '("run_rustc/Makefile"
"run_rustc/rustc_proxy.sh")
;; Patch the shebang of a generated wrapper for rustc
(("#!/bin/sh")
(string-append "#!" (which "sh"))))
(substitute* "run_rustc/rustc_proxy.sh"
(("#!/bin/sh")
(string-append "#!" (which "sh"))))))))
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
(lambda _
(substitute* "Cargo.lock"
(("(checksum = )\".*\"" all name)
(string-append name "\"" ,%cargo-reference-hash "\"")))
(generate-all-checksums "vendor")))
(string-append "#!" (which "sh"))))))
(add-before 'configure 'configure-cargo-home
(lambda _
(let ((cargo-home (string-append (getcwd) "/.cargo")))
@ -294,12 +258,8 @@
(setenv "CARGO_HOME" cargo-home))))
(replace 'configure
(lambda _
,@(if (or (target-ppc64le?)
(target-riscv64?))
`((setenv "CC" "clang")
(setenv "CXX" "clang++"))
`((setenv "CC" "gcc")
(setenv "CXX" "g++")))
(setenv "CC" "gcc")
(setenv "CXX" "g++")
;; The Guix LLVM package installs only shared libraries.
(setenv "LLVM_LINK_SHARED" "1")
;; rustc still insists on having 'cc' on PATH in some places
@ -315,7 +275,6 @@
1)))
;; Adapted from:
;; https://github.com/dtolnay/bootstrap/blob/master/build-1.54.0.sh.
(chdir "../mrustc")
;; Use PARLEVEL since both minicargo and mrustc use it
;; to set the level of parallelism.
(setenv "PARLEVEL" (number->string job-count))
@ -336,15 +295,6 @@
(apply invoke "make" "-f" "minicargo.mk" "output/rustc"
make-flags)
;; We can to continue the build with gcc after building rustc.
;; librustc_driver.so undefined reference to
;; `llvm::cfg::Update<llvm::BasicBlock*>::dump() const'
,@(if (or (target-ppc64le?)
(target-riscv64?))
`((setenv "CC" "gcc")
(setenv "CXX" "g++"))
`())
(display "Building cargo...\n")
(apply invoke "make" "-f" "minicargo.mk" "output/cargo"
make-flags)
@ -537,7 +487,7 @@ ar = \"" binutils "/bin/ar" "\"
suffix (,(string-append libc "/lib"))))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("python" ,python-minimal-wrapper)
("rustc-bootstrap" ,rust-bootstrap)
("cargo-bootstrap" ,rust-bootstrap "cargo")))
(inputs
@ -1454,7 +1404,19 @@ exec -a \"$0\" \"~a\" \"$@\""
;; Add test inputs.
`("gdb" ,gdb/pinned)
`("procps" ,procps)
(package-native-inputs base-rust))))))
(package-native-inputs base-rust)))
(native-search-paths
(cons
;; For HTTPS access, Cargo reads from a single-file certificate
;; specified with $CARGO_HTTP_CAINFO. See
;; https://doc.rust-lang.org/cargo/reference/environment-variables.html
(search-path-specification
(variable "CARGO_HTTP_CAINFO")
(file-type 'regular)
(separator #f) ;single entry
(files '("etc/ssl/certs/ca-certificates.crt")))
;; rustc invokes gcc, so we need to set its search paths accordingly.
%gcc-search-paths)))))
(define*-public (make-rust-sysroot target)
(make-rust-sysroot/implementation target rust))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2023-2025 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,13 +21,17 @@
#:use-module (guix build-system cargo)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages base) ; glibc
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-database)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-tls)
#:use-module (gnu packages crates-web)
@ -251,17 +255,17 @@ than just headers; it requires tight integration with the MUA.")
(description "This package provides Directories used by Sequoia.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-gpg-agent-0.4
(define-public rust-sequoia-gpg-agent-0.5
(package
(name "rust-sequoia-gpg-agent")
(version "0.4.2")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-gpg-agent" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "119njpmhg0is0vlba199bmyp7fi19w8y555i89njkyrfv7yvakds"))))
(base32 "1f8vzxzkwdaa1v0yh5c1pb3wry734wrf2wwsa1zvypwxgvs129fc"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
@ -340,14 +344,14 @@ than just headers; it requires tight integration with the MUA.")
(define-public rust-sequoia-keystore-0.6
(package
(name "rust-sequoia-keystore")
(version "0.6.1")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-keystore" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "168scr1nv5h1fm67p1p59ym267db07kg3fw3shrramaq0af2smx8"))))
(base32 "1qy3nk2r39m5mzvx58ij7a1r9hiw0fmgmjrad6j4nf8djids5lsx"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
@ -422,14 +426,14 @@ than just headers; it requires tight integration with the MUA.")
(define-public rust-sequoia-keystore-gpg-agent-0.4
(package
(name "rust-sequoia-keystore-gpg-agent")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-keystore-gpg-agent" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0s5spxk7v6cdcfzrya4y1n29m09kkrlmqacnrq2azik92kwva1mk"))))
(base32 "1qnpcydrw0l3i0i082cy9mghjjq3l25clxwfj6gcpf72d6hq0wkq"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
@ -440,7 +444,7 @@ than just headers; it requires tight integration with the MUA.")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
("rust-openpgp-cert-d" ,rust-openpgp-cert-d-0.3)
("rust-sequoia-gpg-agent" ,rust-sequoia-gpg-agent-0.4)
("rust-sequoia-gpg-agent" ,rust-sequoia-gpg-agent-0.5)
("rust-sequoia-ipc" ,rust-sequoia-ipc-0.35)
("rust-sequoia-keystore-backend" ,rust-sequoia-keystore-backend-0.6)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
@ -578,8 +582,57 @@ private key store.")
"This package provides a TPM backend for Sequoia's private key store.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-net-0.29
(package
(name "rust-sequoia-net")
(version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-net" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0xdraqrjlpjpzyn8sc8c8xfq13pr1gp6sd4c0n80x30i6kc60zjl"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-base64" ,rust-base64-0.21)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-client" ,rust-hickory-client-0.24)
("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
("rust-http" ,rust-http-1)
("rust-hyper" ,rust-hyper-1)
("rust-hyper-tls" ,rust-hyper-tls-0.6)
("rust-libc" ,rust-libc-0.2)
("rust-percent-encoding" ,rust-percent-encoding-2)
("rust-reqwest" ,rust-reqwest-0.12)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1)
("rust-url" ,rust-url-2)
("rust-z-base-32" ,rust-z-base-32-0.1))
#:cargo-development-inputs (("rust-bytes" ,rust-bytes-1)
("rust-http-body-util" ,rust-http-body-util-0.1)
("rust-hyper" ,rust-hyper-1)
("rust-hyper-util" ,rust-hyper-util-0.1)
("rust-rand" ,rust-rand-0.8)
("rust-reqwest" ,rust-reqwest-0.12)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs
(list clang pkg-config))
(inputs
(list gmp nettle openssl))
(home-page "https://sequoia-pgp.org/")
(synopsis "Discover and publish OpenPGP certificates over the network")
(description "This package provides a crate to access keyservers using the
HKP protocol, and searching and publishing Web Key Directories.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-net-0.28
(package
(inherit rust-sequoia-net-0.29)
(name "rust-sequoia-net")
(version "0.28.0")
(source
@ -589,7 +642,6 @@ private key store.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0jw1p8gwf505q6dh1281fl7kmh8mr1f4hswl5crrycwqlq5q3gva"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
@ -609,38 +661,26 @@ private key store.")
("rust-tokio" ,rust-tokio-1)
("rust-url" ,rust-url-2)
("rust-z-base-32" ,rust-z-base-32-0.1))
#:cargo-development-inputs (("rust-hyper" ,rust-hyper-0.14)
#:cargo-development-inputs
(("rust-hyper" ,rust-hyper-0.14)
("rust-rand" ,rust-rand-0.8)
("rust-reqwest" ,rust-reqwest-0.11)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
(native-inputs
(list clang pkg-config))
(inputs
(list gmp nettle openssl))
(home-page "https://sequoia-pgp.org/")
(synopsis "Discover and publish OpenPGP certificates over the network")
(description "This package provides a crate to access keyservers using the
HKP protocol, and searching and publishing Web Key Directories.")
(license license:lgpl2.0+)))
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))))
(define-public rust-sequoia-openpgp-1
(package
(name "rust-sequoia-openpgp")
(version "1.21.2")
(version "1.22.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-openpgp" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1mh2rc7briyggsvwbg34g3vvx6aisisllb9vz4p96kdl2vi1w9hk"))))
(base32 "0ngg32kqcrg6lz1c0g2fkb76cm1ajifb9qcjvv77kw4gwkly8n78"))))
(build-system cargo-build-system)
(arguments
`(#:features '("crypto-nettle")
#:cargo-test-flags
(list "--release" "--"
"--skip=leak_tests::test_aes_256_decryption"
"--skip=leak_tests::test_ed25519")
#:cargo-inputs
(("rust-aes" ,rust-aes-0.8)
("rust-aes-gcm" ,rust-aes-gcm-0.10)
@ -668,7 +708,7 @@ HKP protocol, and searching and publishing Web Key Directories.")
("rust-flate2" ,rust-flate2-1)
("rust-getrandom" ,rust-getrandom-0.2)
("rust-idea" ,rust-idea-0.5)
("rust-idna" ,rust-idna-0.5)
("rust-idna" ,rust-idna-1)
("rust-lalrpop" ,rust-lalrpop-0.20)
("rust-lalrpop-util" ,rust-lalrpop-util-0.20)
("rust-lazy-static" ,rust-lazy-static-1)
@ -722,40 +762,42 @@ defaults).
This Guix package is built to use the nettle cryptographic library.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-openpgp-0.9
(define-public rust-sequoia-policy-config-0.7
(package
(inherit rust-sequoia-openpgp-1)
(name "rust-sequoia-openpgp")
(version "0.9.0")
(name "rust-sequoia-policy-config")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-openpgp" version))
(uri (crate-uri "sequoia-policy-config" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw"))))
(base32 "17alq9dyg9gd26zbc8bcgm0vgwnlghqp0npvh088fc768c05yzb1"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-base64" ,rust-base64-0.9)
("rust-buffered-reader" ,rust-buffered-reader-0.9)
("rust-bzip2" ,rust-bzip2-0.3)
("rust-failure" ,rust-failure-0.1)
("rust-flate2" ,rust-flate2-1)
("rust-idna" ,rust-idna-0.1)
("rust-lalrpop" ,rust-lalrpop-0.17)
("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-memsec" ,rust-memsec-0.5)
("rust-nettle" ,rust-nettle-5)
("rust-quickcheck" ,rust-quickcheck-0.8)
("rust-rand" ,rust-rand-0.6)
("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9)
("rust-time" ,rust-time-0.1))))))
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-chrono" ,rust-chrono-0.4)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-serde" ,rust-serde-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-toml" ,rust-toml-0.5))
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
(native-inputs
(list clang pkg-config))
(inputs
(list gmp nettle))
(home-page "https://sequoia-pgp.org/")
(synopsis "Configure Sequoia using a configuration file")
(description "Configure Sequoia using a configuration file.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-policy-config-0.6
(package
(inherit rust-sequoia-policy-config-0.7)
(name "rust-sequoia-policy-config")
(version "0.6.0")
(source (origin
@ -765,7 +807,6 @@ This Guix package is built to use the nettle cryptographic library.")
(sha256
(base32
"0x42h22kng4dsbfr0a6zdf2j9bcq14r0yr6xdw6rrggj139lazbm"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-inputs
@ -778,173 +819,133 @@ This Guix package is built to use the nettle cryptographic library.")
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
(native-inputs
(list clang pkg-config))
(inputs
(list gmp nettle))
(home-page "https://sequoia-pgp.org/")
(synopsis "Configure Sequoia using a configuration file")
(description "Configure Sequoia using a configuration file.")
(license license:lgpl2.0+)))
(define-public rust-sequoia-rfc2822-0.9
(package
(name "rust-sequoia-rfc2822")
(version "0.9.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-rfc2822" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-failure" ,rust-failure-0.1)
("rust-lalrpop" ,rust-lalrpop-0.17)
("rust-lalrpop-util" ,rust-lalrpop-util-0.17))))
(home-page "https://sequoia-pgp.org/")
(synopsis "RFC 2822 name-addr parser")
(description "Currently, this crate only recognizes the RFC 2822 name-addr
and addr-spec productions, i.e., things of the form: @code{Name (Comment)
<email@@example.org>} and @code{email@@example.org}
Although the above appear simple to parse, RFC 2822's whitespace and comment
rules are rather complex. This crate implements the whole grammar." )
(license license:gpl3)))
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))))
(define-public rust-sequoia-tpm-0.1
(package
(name "rust-sequoia-tpm")
(version "0.1.0")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-tpm" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0xh0m7yybkwpc0f858da27y82a2vlsdfch35hjaykih5lf4xmdri"))))
(base32 "0n6qa5kxsq8m2m1b7rqgcdhfjd67jql0vsinl7x0j9vma9r38brk"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-env-logger" ,rust-env-logger-0.11)
("rust-hex" ,rust-hex-0.4)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
`(#:cargo-inputs (("rust-hex" ,rust-hex-0.4)
("rust-serde" ,rust-serde-1)
("rust-serde-yaml" ,rust-serde-yaml-0.8)
("rust-structopt" ,rust-structopt-0.3)
("rust-tss-esapi" ,rust-tss-esapi-7)
("rust-tss-esapi-sys" ,rust-tss-esapi-sys-0.5))
#:cargo-development-inputs
(("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
(native-inputs (list clang pkg-config))
(inputs (list nettle tpm2-tss))
("rust-tss-esapi-sys" ,rust-tss-esapi-sys-0.5))))
(native-inputs (list pkg-config))
(inputs (list tpm2-tss))
(home-page "https://sequoia-pgp.org/")
(synopsis "Machinery for working with TPM from Sequoia")
(description
"This package provides machinery for working with TPM from Sequoia.")
(license (list license:lgpl2.0+ license:asl2.0))))
(define-public rust-sequoia-wot-0.12
(define-public rust-sequoia-wot-0.13
(package
(name "rust-sequoia-wot")
(version "0.12.0")
(version "0.13.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-wot" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1nrx1cn58d8lkp2g0ahw2320zmil3ryxl13inpwf61v4vqi5svj8"))))
(base32 "17npdicfxfp9v59y6nsr3lhz510c97bicqrzyw0s6infizpshf8b"))))
(build-system cargo-build-system)
(arguments
`(#:features '("sequoia-openpgp/crypto-nettle")
#:cargo-test-flags '("--release" "--"
;; Not all files included.
"--skip=gpg_trust_roots")
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-4)
("rust-clap-complete" ,rust-clap-complete-4)
("rust-clap-mangen" ,rust-clap-mangen-0.2)
("rust-crossbeam" ,rust-crossbeam-0.8)
("rust-dot-writer" ,rust-dot-writer-0.1)
("rust-enumber" ,rust-enumber-0.3)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-sequoia-cert-store" ,rust-sequoia-cert-store-0.6)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-sequoia-policy-config" ,rust-sequoia-policy-config-0.6)
("rust-thiserror" ,rust-thiserror-1))
#:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-predicates" ,rust-predicates-2)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-tempfile" ,rust-tempfile-3))))
#:cargo-development-inputs
(("rust-quickcheck" ,rust-quickcheck-1)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
(inputs
(list nettle openssl sqlite))
(native-inputs
(list clang pkg-config))
(home-page "https://sequoia-pgp.org/")
(synopsis "Implementation of OpenPGP's web of trust")
(description "An implementation of OpenPGP's web of trust.")
(description
"This package provides an implementation of @code{OpenPGP's} web of trust.")
(license license:lgpl2.0+)))
(define-public sequoia-sq
(package
(name "sequoia-sq")
(version "0.38.0")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "sequoia-sq" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "060dsh7ws9mwamc1jcp093j2g54sm9v5fy1mdhlw8kw2wybqybrj"))))
(base32 "00zs8a1b5b6gscgjmrcbayf7r3gyk5j57lsrcawh78735hniljmc"))))
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
#:features '("crypto-nettle"
"sequoia-keystore/gpg-agent"
"sequoia-keystore/openpgp-card"
"sequoia-keystore/softkeys")
#:cargo-test-flags
(list "--release" "--"
(list "--"
;; The certificate has an expiration date.
"--skip=sq_autocrypt_import")
#:cargo-inputs
(("rust-anyhow" ,rust-anyhow-1)
(("rust-aho-corasick" ,rust-aho-corasick-1)
("rust-anyhow" ,rust-anyhow-1)
("rust-buffered-reader" ,rust-buffered-reader-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-4)
("rust-clap-complete" ,rust-clap-complete-4)
("rust-culpa" ,rust-culpa-1)
("rust-dirs" ,rust-dirs-5)
("rust-filetime" ,rust-filetime-0.2)
("rust-fs-extra" ,rust-fs-extra-1)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gethostname" ,rust-gethostname-0.4)
("rust-humantime" ,rust-humantime-2)
("rust-indicatif" ,rust-indicatif-0.17)
("rust-once-cell" ,rust-once-cell-1)
("rust-regex" ,rust-regex-1)
("rust-reqwest" ,rust-reqwest-0.12)
("rust-roff" ,rust-roff-0.2)
("rust-rpassword" ,rust-rpassword-7)
("rust-rusqlite" ,rust-rusqlite-0.31)
("rust-sequoia-autocrypt" ,rust-sequoia-autocrypt-0.25)
("rust-sequoia-cert-store" ,rust-sequoia-cert-store-0.6)
("rust-sequoia-directories" ,rust-sequoia-directories-0.1)
("rust-sequoia-ipc" ,rust-sequoia-ipc-0.35)
("rust-sequoia-keystore" ,rust-sequoia-keystore-0.6)
("rust-sequoia-net" ,rust-sequoia-net-0.28)
("rust-sequoia-net" ,rust-sequoia-net-0.29)
("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
("rust-sequoia-policy-config" ,rust-sequoia-policy-config-0.6)
("rust-sequoia-wot" ,rust-sequoia-wot-0.12)
("rust-sequoia-policy-config" ,rust-sequoia-policy-config-0.7)
("rust-sequoia-wot" ,rust-sequoia-wot-0.13)
("rust-serde" ,rust-serde-1)
("rust-subplot-build" ,rust-subplot-build-0.7)
("rust-subplotlib" ,rust-subplotlib-0.7)
("rust-subplot-build" ,rust-subplot-build-0.12)
("rust-subplotlib" ,rust-subplotlib-0.12)
("rust-tempfile" ,rust-tempfile-3)
("rust-termcolor" ,rust-termcolor-1)
("rust-terminal-size" ,rust-terminal-size-0.2)
("rust-textwrap" ,rust-textwrap-0.15)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1))
("rust-tokio" ,rust-tokio-1)
("rust-toml-edit" ,rust-toml-edit-0.22)
("rust-typenum" ,rust-typenum-1))
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-fehler" ,rust-fehler-1)
("rust-libc" ,rust-libc-0.2)
("rust-predicates" ,rust-predicates-2)
("rust-regex" ,rust-regex-1))
@ -981,7 +982,7 @@ rules are rather complex. This crate implements the whole grammar." )
(copy-file "target/assets/shell-completions/sq.elv"
(string-append elvish-completions-dir "/sq"))))))))
(inputs
(list nettle openssl sqlite))
(list nettle openssl pcsc-lite sqlite))
(native-inputs
(list capnproto clang pkg-config))
(home-page "https://sequoia-pgp.org/")
@ -989,7 +990,8 @@ rules are rather complex. This crate implements the whole grammar." )
(description "This package provides the command-line frontend for Sequoia
OpenPGP.
This Guix package is built to use the nettle cryptographic library.")
This Guix package is built to use the nettle cryptographic library and the
gpg-agent, openpgp-card and softkeys keystore backends.")
(license license:lgpl2.0+)))
(define-public sequoia-sqv
@ -1062,15 +1064,48 @@ constraints on the signature into account.
This Guix package is built to use the nettle cryptographic library.")
(license license:lgpl2.0+)))
(define-public sequoia-wot
;; There hasn't been a release cut since the tools were split from the library
;; so we use the 0.1.0 number from tools/Cargo.toml and the tag from the library.
(define-public sequoia-wot-tools
(package
(inherit rust-sequoia-wot-0.12)
(name "sequoia-wot")
(name "sequoia-wot-tools")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/sequoia-pgp/sequoia-wot")
(commit "sequoia-wot/v0.13.2")))
(file-name (git-file-name name version))
(sha256
(base32 "0vvq2izz2088x9jvii1xj14z4hls948wn18wb53fpahyhx8kkbvx"))))
(build-system cargo-build-system)
(arguments
(substitute-keyword-arguments (package-arguments rust-sequoia-wot-0.12)
((#:install-source? _ #t) #f)
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(list
#:features '(list "sequoia-openpgp/crypto-nettle")
#:cargo-test-flags '(list "--" "--skip=gpg_trust_roots")
#:install-source? #f
#:cargo-inputs
(list rust-anyhow-1
rust-chrono-0.4
rust-clap-4
rust-clap-complete-4
rust-clap-mangen-0.2
rust-dot-writer-0.1
rust-enumber-0.3
rust-sequoia-cert-store-0.6
rust-sequoia-openpgp-1
rust-sequoia-policy-config-0.7)
#:cargo-development-inputs
(list rust-assert-cmd-2
rust-predicates-3
rust-tempfile-3)
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(delete-file "Cargo.lock")
(chdir "tools")))
(add-after 'install 'install-more
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1091,17 +1126,25 @@ This Guix package is built to use the nettle cryptographic library.")
(string-append share "/elvish/lib/sq-wot"))
(install-file (car (find-files "target/release" "_sq-wot"))
(string-append
share "/zsh/site-functions")))))))))
(description "An implementation of OpenPGP's web of trust.
share "/zsh/site-functions"))))))))
(inputs
(list nettle openssl sqlite))
(native-inputs
(list clang pkg-config))
(home-page "https://sequoia-pgp.org/")
(synopsis "Implementation of OpenPGP's web of trust")
(description
"This package provides an implementation of @code{OpenPGP's} web of trust.
This Guix package is built to use the nettle cryptographic library.")))
This Guix package is built to use the nettle cryptographic library.")
(license license:lgpl2.0+)))
;;
(define-public sequoia
(package
(name "sequoia")
(version "1.21.2")
(version "1.22.0")
(source #f)
(build-system trivial-build-system)
(arguments
@ -1132,7 +1175,7 @@ This Guix package is built to use the nettle cryptographic library.")))
(list ;glibc ;; for ldconfig in make-dynamic-linker-cache
sequoia-sq
sequoia-sqv
sequoia-wot))
sequoia-wot-tools))
(home-page "https://sequoia-pgp.org")
(synopsis "New OpenPGP implementation (meta-package)")
(description "Sequoia is a new OpenPGP implementation, written in Rust,

File diff suppressed because it is too large Load diff

View file

@ -20,6 +20,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Brian Kubisiak <brian@kubisiak.com>
;;; Copyright © 2024 Jordan Moore <lockbox@struct.foo>
;;;
;;; This file is part of GNU Guix.
;;;
@ -43,6 +44,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cargo)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
@ -52,6 +54,13 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-shell)
#:use-module (gnu packages crates-vcs)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages flex)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
@ -68,6 +77,7 @@
#:use-module (gnu packages shells)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tmux)
#:use-module (gnu packages version-control)
#:use-module (gnu packages vim))
(define-public ascii
@ -463,6 +473,149 @@ Shell}, @url{https://www.gnu.org/software/bash/,Bash}, and
@url{http://www.mirbsd.org/mksh.htm,mksh}.")
(license license:bsd-3)))
(define-public starship
(package
(name "starship")
(version "1.21.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "starship" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1ikdy6jwlc36add55acxlba6f009dln9iyz368c1ndbfpgn4n42g"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-completions
(lambda* (#:key native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(starship-bin
(if #$(%current-target-system)
(search-input-file native-inputs "/bin/starship")
(string-append out "/bin/starship")))
(share (string-append out "/share"))
(bash-completion-dir
(string-append out "/etc/bash-completion.d/"))
(zsh-completion-dir
(string-append share "/zsh/site-functions/"))
(fish-completion-dir
(string-append share "/fish/vendor_completions.d/"))
(elvish-completion-dir
(string-append share "/elvish/lib")))
;; Make the directories
(mkdir-p bash-completion-dir)
(mkdir-p zsh-completion-dir)
(mkdir-p fish-completion-dir)
(mkdir-p elvish-completion-dir)
;; Use the built starship to generate the completions.
(with-output-to-file
(string-append bash-completion-dir "/starship")
(lambda _ (invoke starship-bin "completions" "bash")))
(with-output-to-file
(string-append zsh-completion-dir "/_starship")
(lambda _(invoke starship-bin "completions" "zsh")))
(with-output-to-file
(string-append fish-completion-dir "/starship.fish")
(lambda _ (invoke starship-bin "completions" "fish")))
(with-output-to-file
(string-append elvish-completion-dir "/starship")
(lambda _ (invoke starship-bin "completions" "elvish"))))))
;; Some tests require a writable home directory
(add-after 'unpack 'patch-test-shell
(lambda* (#:key inputs #:allow-other-keys)
;; search through the rust files and then replace `/bin/sh'
;; with the path to the `/bin/sh' in the drv inputs
(let ((rust-files (find-files "." "\\.rs$")))
(for-each (lambda (file)
(substitute* file
(("/bin/sh")
(search-input-file inputs "/bin/sh"))))
rust-files))))
;; Set "HOME" to be located inside the cwd so it is writable
;; for tests checking for user-configs
(add-before 'check 'set-test-env-vars
(lambda _
(setenv "HOME"
(string-append (getcwd) "/.test-home")))))
#:cargo-inputs `(("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-4)
("rust-clap-complete" ,rust-clap-complete-4)
("rust-deelevate" ,rust-deelevate-0.2)
("rust-dirs" ,rust-dirs-5)
("rust-dunce" ,rust-dunce-1)
("rust-gix" ,rust-gix-0.66)
("rust-gix-features" ,rust-gix-features-0.38)
("rust-guess-host-triple" ,rust-guess-host-triple-0.1)
("rust-home" ,rust-home-0.5)
("rust-indexmap" ,rust-indexmap-2)
("rust-log" ,rust-log-0.4)
("rust-nix" ,rust-nix-0.29)
("rust-notify-rust" ,rust-notify-rust-4)
("rust-nu-ansi-term" ,rust-nu-ansi-term-0.50)
("rust-open" ,rust-open-5)
("rust-os-info" ,rust-os-info-3)
("rust-path-slash" ,rust-path-slash-0.2)
("rust-pest" ,rust-pest-2)
("rust-pest-derive" ,rust-pest-derive-2)
("rust-process-control" ,rust-process-control-5)
("rust-quick-xml" ,rust-quick-xml-0.36)
("rust-rand" ,rust-rand-0.8)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-rust-ini" ,rust-rust-ini-0.21)
("rust-schemars" ,rust-schemars-0.8)
("rust-semver" ,rust-semver-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-sha1" ,rust-sha1-0.10)
("rust-shadow-rs" ,rust-shadow-rs-0.35)
("rust-shell-words" ,rust-shell-words-1)
("rust-starship-battery" ,rust-starship-battery-0.10)
("rust-strsim" ,rust-strsim-0.11)
("rust-systemstat" ,rust-systemstat-0.2)
("rust-terminal-size" ,rust-terminal-size-0.4)
("rust-toml" ,rust-toml-0.8)
("rust-toml-edit" ,rust-toml-edit-0.22)
("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
("rust-unicode-width" ,rust-unicode-width-0.2)
("rust-urlencoding" ,rust-urlencoding-2)
("rust-versions" ,rust-versions-6)
("rust-which" ,rust-which-6)
("rust-whoami" ,rust-whoami-1)
("rust-windows" ,rust-windows-0.58)
("rust-winres" ,rust-winres-0.1)
("rust-yaml-rust2" ,rust-yaml-rust2-0.9))
#:cargo-development-inputs `(("rust-mockall" ,rust-mockall-0.13)
("rust-tempfile" ,rust-tempfile-3))))
(inputs (list cmake-minimal))
(native-inputs
(append
(if (%current-target-system)
(list this-package)
'())
(list git-minimal)))
(home-page "https://starship.rs")
(synopsis
"The minimal, blazing-fast, and infinitely customizable prompt for any shell!")
(description
"This package provides The minimal, blazing-fast, and infinitely customizable
prompt for any shell!
@itemize
@item Fast: it's fast - *really really* fast :rocket:
@item Customizable: configure every aspect of your prompt
@item Universal: works on any shell, on any operating system
@item Intelligent: shows relevant information at a glance
@item Feature rich: support for all your favorite tools
@item Easy: quick to install - start using it in minutes
@end itemize
Note: users must have a nerd font installed and enabled in their terminal")
(license license:isc)))
(define-public envstore
(package

View file

@ -46,6 +46,7 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages curl)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
@ -236,23 +237,24 @@ cards.")
(define-public newsboat
(package
(name "newsboat")
(version "2.36.1")
(version "2.38")
(source
(origin
(method url-fetch)
(uri (string-append "https://newsboat.org/releases/" version
"/newsboat-" version ".tar.xz"))
(sha256
(base32 "1pgi19y1ym5dhh0szs0w0cjbvx83bzq30af24h73nwdalkwb3nhl"))))
(base32 "11fv2klyc16sfma0zy8phmp4x61w0hswxfwdds10gwa8i7qgdznn"))))
(build-system cargo-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("openssl" ,openssl)
("pkg-config" ,pkg-config)
(append
(list gettext-minimal
openssl
pkg-config)
;; For building documentation.
,@(if (supported-package? ruby-asciidoctor)
`(("asciidoctor" ,ruby-asciidoctor))
`())))
(if (supported-package? ruby-asciidoctor)
(list ruby-asciidoctor)
'())))
(inputs
(list curl
json-c
@ -261,46 +263,49 @@ cards.")
stfl
sqlite))
(arguments
`(#:modules ((guix build cargo-build-system)
(list
#:modules '((guix build cargo-build-system)
(guix build utils)
((guix build gnu-build-system) #:prefix gnu:))
#:install-source? #f
#:cargo-inputs
(("rust-backtrace" ,rust-backtrace-0.3)
("rust-bitflags" ,rust-bitflags-2)
("rust-chrono" ,rust-chrono-0.4)
("rust-curl-sys" ,rust-curl-sys-0.4)
("rust-cxx" ,rust-cxx-1)
("rust-cxx-build" ,rust-cxx-build-1)
("rust-fastrand" ,rust-fastrand-2)
("rust-gettext-rs" ,rust-gettext-rs-0.7)
("rust-lexopt" ,rust-lexopt-0.3)
("rust-libc" ,rust-libc-0.2)
("rust-md5" ,rust-md5-0.7)
("rust-natord" ,rust-natord-1)
("rust-nom" ,rust-nom-7)
("rust-percent-encoding" ,rust-percent-encoding-2)
("rust-url" ,rust-url-2)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-xdg" ,rust-xdg-2))
(list rust-backtrace-0.3
rust-bitflags-2
rust-chrono-0.4
rust-curl-sys-0.4
rust-cxx-1
rust-cxx-build-1
rust-fastrand-2
rust-gettext-rs-0.7
rust-httpmock-0.7
rust-lexopt-0.3
rust-libc-0.2
rust-md5-0.7
rust-natord-1
rust-nom-7
rust-percent-encoding-2
rust-url-2
rust-unicode-width-0.1
rust-unicode-segmentation-1
rust-xdg-2)
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3)
("rust-proptest" ,rust-proptest-1)
("rust-section-testing" ,rust-section-testing-0.0.5))
(list rust-tempfile-3
rust-proptest-1
rust-section-testing-0.0.5)
#:phases
(modify-phases %standard-phases
,@(if (not (assoc-ref inputs "asciidoctor"))
`((add-after 'unpack 'dont-use-asciidoctor
#~(modify-phases %standard-phases
#$@(if (not (this-package-native-input "asciidoctor"))
#~((add-after 'unpack 'dont-use-asciidoctor
(lambda _
(substitute* "config.sh"
((".*asciidoctor.*") ""))
(substitute* "Makefile"
(("^doc:.*") "doc:\n")
(("install-podboat install-docs") "install-podboat")))))
'())
#~())
(add-after 'unpack 'pre-build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CXX" ,(cxx-for-target))
(setenv "CXX" #$(cxx-for-target))
(setenv "CXX_FOR_BUILD" (which "g++"))
(substitute* "config.sh"
(("if curl-config")
@ -310,7 +315,7 @@ cards.")
(lambda* (#:key vendor-dir #:allow-other-keys)
;; Don't keep the whole tarball in the vendor directory
(delete-file-recursively
(string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
(string-append vendor-dir "/" #$name "-" #$version ".tar.xz"))))
(add-after 'unpack 'patch-source
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"

View file

@ -1558,6 +1558,10 @@ basic input/output.")
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
#:cargo-test-flags
'("--release" "--"
;; Changes in clap regularly break this test.
"--skip=cli::tests::completions")
#:cargo-inputs
(("rust-ahash" ,rust-ahash-0.8)
("rust-base64" ,rust-base64-0.22)

View file

@ -34,6 +34,7 @@
;;; Copyright © 2023 David Pflug <david@pflug.io>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 2024 Murilo <murilo@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -76,6 +77,8 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-vcs)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages crypto)
@ -376,7 +379,7 @@ competitive (as in keystroke count) with Vim.")
(define-public kak-lsp
(package
(name "kak-lsp")
(version "9.0.0")
(version "18.1.1")
(source
(origin
(method git-fetch)
@ -384,32 +387,49 @@ competitive (as in keystroke count) with Vim.")
(url "https://github.com/kak-lsp/kak-lsp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 "1wfv2fy5ga6kc51zka3pak0hq97csm2l11bz74w3n1hrf5q9nnf8")))
(sha256 "1dinxd3h0dllws1v28l1igvns94j91kifv1bxjds6859q22yhhpd")))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
("rust-clap" ,rust-clap-2)
("rust-daemonize" ,rust-daemonize-0.4)
("rust-dirs" ,rust-dirs-2)
("rust-enum_primitive" ,rust-enum-primitive-0.1)
`(#:install-source? #f
#:cargo-inputs
(("rust-clap" ,rust-clap-4)
("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
("rust-daemonize" ,rust-daemonize-0.5)
("rust-diffs" ,rust-diffs-0.5)
("rust-dirs" ,rust-dirs-5)
("rust-enum-primitive" ,rust-enum-primitive-0.1)
("rust-fs4" ,rust-fs4-0.8)
("rust-glob" ,rust-glob-0.3)
("rust-itertools" ,rust-itertools-0.9)
("rust-lsp-types" ,rust-lsp-types-0.80)
("rust-jsonrpc-core" ,rust-jsonrpc-core-14)
("rust-indoc" ,rust-indoc-2)
("rust-itertools" ,rust-itertools-0.13)
("rust-jsonrpc-core" ,rust-jsonrpc-core-18)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-rand" ,rust-rand-0.7)
("rust-lsp-types" ,rust-lsp-types-0.95)
("rust-mio" ,rust-mio-1)
("rust-notify-debouncer-full" ,rust-notify-debouncer-full-0.3)
("rust-pulldown-cmark" ,rust-pulldown-cmark-0.9)
("rust-rand" ,rust-rand-0.8)
("rust-regex" ,rust-regex-1)
("rust-ropey" ,rust-ropey-1)
;("rust-sentry" ,rust-sentry-0.35)
("rust-serde" ,rust-serde-1)
("rust-serde_derive" ,rust-serde-derive-1)
("rust-serde_json" ,rust-serde-json-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-serde-repr" ,rust-serde-repr-0.1)
("rust-slog" ,rust-slog-2)
("rust-slog-scope" ,rust-slog-scope-4)
("rust-sloggers" ,rust-sloggers-1)
("rust-toml" ,rust-toml-0.5)
("rust-sloggers" ,rust-sloggers-2)
("rust-toml" ,rust-toml-0.8)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-url" ,rust-url-2)
("rust-whoami" ,rust-whoami-0.8))))
("rust-whoami" ,rust-whoami-1))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-optional-crash-reporting
(lambda _
(substitute* "Cargo.toml"
((".*sentry.*") "")))))))
(home-page "https://github.com/kak-lsp/kak-lsp")
(synopsis "Language Server Protocol (LSP) client for Kakoune")
(description
@ -514,6 +534,110 @@ library intended to be loaded by the @command{emacs-parinfer-rust-mode} Emacs
plugin, though a standalone binary is built also.")
(license license:isc)))
(define-public helix
(package
(name "helix")
(version "23.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/helix-editor/helix")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0gl5iplj9x58pgqvb296d70xgq8fslqk8chai2arn65bcbgaw014"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-grammar-build
(lambda _
(setenv "HELIX_DISABLE_AUTO_GRAMMAR_BUILD" "1")))
(replace 'install
(lambda _
(let* ((bin (string-append #$output "/bin"))
(hx (string-append bin "/hx"))
(share (string-append #$output "/share/helix"))
(runtime (string-append share "/runtime"))
(applications (string-append share "/applications")))
(install-file "target/release/hx" bin)
(install-file "contrib/Helix.desktop" applications)
(copy-recursively "runtime" runtime)
(wrap-program hx
`("HELIX_RUNTIME" prefix
(,runtime)))))))
#:cargo-inputs
(list rust-ahash-0.8
rust-anyhow-1
rust-arc-swap-1
rust-bitflags-2
rust-cassowary-0.3
rust-cc-1
rust-chardetng-0.1
rust-chrono-0.4
rust-clipboard-win-4
rust-content-inspector-0.2
rust-crossterm-0.27
rust-dunce-1
rust-encoding-rs-0.8
rust-etcetera-0.8
rust-fern-0.6
rust-futures-executor-0.3
rust-futures-util-0.3
rust-gix-0.55
rust-globset-0.4
rust-grep-regex-0.1
rust-grep-searcher-0.1
rust-hashbrown-0.14
rust-ignore-0.4
rust-imara-diff-0.1
rust-libc-0.2
rust-libloading-0.8
rust-log-0.4
rust-lsp-types-0.94
rust-nucleo-0.2
rust-once-cell-1
rust-parking-lot-0.12
rust-pulldown-cmark-0.9
rust-regex-1
rust-ropey-1
rust-rustix-0.38
rust-serde-1
rust-serde-json-1
rust-signal-hook-0.3
rust-signal-hook-tokio-0.3
rust-slotmap-1
rust-smallvec-1
rust-smartstring-1
rust-tempfile-3
rust-termini-1
rust-textwrap-0.16
rust-thiserror-1
rust-threadpool-1
rust-tokio-1
rust-tokio-stream-0.1
rust-toml-0.7
rust-tree-sitter-0.20
rust-unicode-general-category-0.6
rust-unicode-segmentation-1
rust-unicode-width-0.1
rust-url-2
rust-which-4)
#:cargo-development-inputs
(list rust-fern-0.6
rust-indoc-2
rust-quickcheck-1
rust-smallvec-1
rust-tempfile-3)))
(inputs (list bash-minimal))
(home-page "https://helix-editor.com/")
(synopsis "Post-modern modal text editor")
(description "A Kakoune / Neovim inspired editor, written in Rust.")
(license (list license:mpl2.0))))
(define-public joe
(package
(name "joe")

View file

@ -168,7 +168,7 @@ This package includes the @code{libtree-sitter} runtime library.")
(arguments
(list
#:cargo-test-flags
''("--release" "--"
''("--"
;; Skip tests which rely on downloading grammar fixtures. It is
;; difficult to support such tests given upstream does not encode
;; which version of the grammars are expected.

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016, 2019, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015-2024 Flashner <efraim@flashner.co.il>
;;; Copyright © 2015-2025 Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2018, 2020, 2021, 2022 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
@ -103,8 +103,10 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages cook)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-vcs)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
@ -3368,6 +3370,127 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
(license (list license:public-domain ;src/miniz.c, src/shell.c
license:bsd-2))))
(define-public pijul
(package
(name "pijul")
(version "1.0.0-beta.9")
(source
(origin
(method url-fetch)
(uri (crate-uri "pijul" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1lk261rrk4xy60d4akfn8mrrqxls28kf9mzrjcrxdzbdysml66n5"))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "Cargo.toml"
(("\"= ?([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
(string-append "\"^" version)))))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-inputs
(list rust-anyhow-1
rust-async-trait-0.1
rust-atty-0.2
rust-byteorder-1
rust-bytes-1
rust-canonical-path-2
rust-chrono-0.4
rust-clap-4
rust-clap-complete-4
rust-ctrlc-3
rust-data-encoding-2
rust-dateparser-0.1
rust-dirs-next-2
rust-edit-0.1
rust-env-logger-0.8
rust-futures-0.3
rust-futures-util-0.3
rust-git2-0.13
rust-human-panic-1
rust-hyper-0.14
rust-ignore-0.4
rust-keyring-2
rust-lazy-static-1
rust-libpijul-1
rust-log-0.4
rust-open-3
rust-pager-0.16
rust-path-slash-0.1
rust-pijul-config-0.0.1
rust-pijul-identity-0.0.1
rust-pijul-interaction-0.0.1
rust-pijul-remote-1
rust-pijul-repository-0.0.1
rust-ptree-0.4
rust-rand-0.8
rust-regex-1
rust-reqwest-0.11
rust-sanakirja-1
rust-serde-1
rust-serde-derive-1
rust-serde-json-1
rust-tempfile-3
rust-termcolor-1
rust-thiserror-1
rust-thrussh-0.33
rust-thrussh-config-0.5
rust-thrussh-keys-0.21
rust-tokio-1
rust-toml-0.5
rust-url-2
rust-validator-0.15
rust-whoami-1)
#:cargo-development-inputs
(list rust-exitcode-1
rust-expectrl-0.7)
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-extras
(lambda* (#:key native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(bash-completions-dir
(string-append out "/etc/bash_completion.d/"))
(zsh-completions-dir
(string-append share "/zsh/site-functions"))
(fish-completions-dir
(string-append share "/fish/vendor_completions.d"))
(elvish-completions-dir
(string-append share "/elvish/lib"))
(pijul (if #$(%current-target-system)
(search-input-file native-inputs "/bin/pijul")
(string-append out "/bin/pijul"))))
(mkdir-p bash-completions-dir)
(with-output-to-file
(string-append bash-completions-dir "/pijul")
(lambda _ (invoke pijul "completion" "bash")))
(mkdir-p zsh-completions-dir)
(with-output-to-file
(string-append zsh-completions-dir "/_pijul")
(lambda _ (invoke pijul "completion" "zsh")))
(mkdir-p fish-completions-dir)
(with-output-to-file
(string-append fish-completions-dir "/pijul.fish")
(lambda _ (invoke pijul "completion" "fish")))
(mkdir-p elvish-completions-dir)
(with-output-to-file
(string-append elvish-completions-dir "/pijul")
(lambda _ (invoke pijul "completion" "elvish")))))))))
(native-inputs
(append (if (%current-target-system)
(list this-package)
'())
(list pkg-config)))
(inputs (list libsodium openssl))
(home-page "https://nest.pijul.com/pijul/pijul")
(synopsis "Distributed version control system")
(description "This package provides pijul, a sound and fast distributed
version control system based on a mathematical theory of asynchronous work.")
(license license:gpl2+)))
(define-public stagit
(package
(name "stagit")

View file

@ -130,6 +130,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages curl)
@ -1318,14 +1319,17 @@ on the Invidious instances only as a fallback method.")
(build-system cmake-build-system)
(native-inputs
;; XXX: ASM optimization fails on i686-linux, see <https://bugs.gnu.org/41768>.
(if (string-prefix? "i686" (%current-system))
'()
`(("nasm" ,nasm))))
(if (target-x86-64?)
(list nasm)
'()))
(arguments
`(#:tests? #f ; tests are skipped if ENABLE_ASSEMBLY is TRUE.
#:configure-flags
;; Ensure position independent code for everyone.
(list "-DENABLE_PIC=TRUE"
"-DLINKED_10BIT=ON"
"-DLINKED_12BIT=ON"
"-DEXTRA_LIB=x265_main10.a;x265_main12.a"
"-DEXTRA_LINK_FLAGS=-L../build-10bit -L../build-12bit"
(string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out")))
#:phases
@ -1344,7 +1348,7 @@ on the Invidious instances only as a fallback method.")
(lambda* (#:key (configure-flags '()) #:allow-other-keys #:rest args)
(mkdir "../build-12bit")
(with-directory-excursion "../build-12bit"
(apply invoke
(invoke
"cmake" "../source"
,@(if (target-aarch64?)
'("-DENABLE_ASSEMBLY=OFF")
@ -1356,8 +1360,9 @@ on the Invidious instances only as a fallback method.")
"-DHIGH_BIT_DEPTH=ON"
"-DEXPORT_C_API=OFF"
"-DENABLE_CLI=OFF"
"-DMAIN12=ON"
configure-flags)
"-DENABLE_SHARED=OFF"
"-DENABLE_PIC=TRUE"
"-DMAIN12=ON")
(substitute* (cons "cmake_install.cmake"
(append
(find-files "CMakeFiles/x265-shared.dir")
@ -1368,7 +1373,7 @@ on the Invidious instances only as a fallback method.")
(lambda* (#:key (configure-flags '()) #:allow-other-keys #:rest args)
(mkdir "../build-10bit")
(with-directory-excursion "../build-10bit"
(apply invoke
(invoke
"cmake" "../source"
,@(if (target-aarch64?)
'("-DENABLE_ASSEMBLY=OFF")
@ -1380,19 +1385,14 @@ on the Invidious instances only as a fallback method.")
"-DHIGH_BIT_DEPTH=ON"
"-DEXPORT_C_API=OFF"
"-DENABLE_CLI=OFF"
configure-flags)
"-DENABLE_SHARED=OFF"
"-DENABLE_PIC=TRUE")
(substitute* (cons "cmake_install.cmake"
(append
(find-files "CMakeFiles/x265-shared.dir")
(find-files "CMakeFiles/x265-static.dir")))
(("libx265") "libx265_main10"))
((assoc-ref %standard-phases 'build)))))
(add-after 'install 'install-more-libs
(lambda args
(with-directory-excursion "../build-12bit"
((assoc-ref %standard-phases 'install)))
(with-directory-excursion "../build-10bit"
((assoc-ref %standard-phases 'install)))))
(add-before 'strip 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
@ -6537,7 +6537,7 @@ result in several formats:
'())
(list pkg-config rust-cargo-c)))
(inputs
(list libgit2-1.7 zlib))
(list libgit2-1.8 zlib))
(home-page "https://github.com/xiph/rav1e/")
(synopsis "Fast and safe AV1 encoder")
(description "@code{rav1e} is an AV1 video encoder. It is designed to

View file

@ -477,7 +477,7 @@ replacing them with data URIs.")
(define-public monolith
(package
(name "monolith")
(version "2.8.1")
(version "2.8.3")
(source
(origin
(method git-fetch)
@ -486,24 +486,33 @@ replacing them with data URIs.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0xr63302yb5k9c2sihd1iy97j5c44d4jrzfaiwm81d9li577ih58"))))
(base32 "082xh0zmmy9abz7y3zjybbwffq7d0j1jl78ggzbwwanvam65v0dp"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
`(#:install-source? #f
#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
("rust-base64" ,rust-base64-0.21)
("rust-base64" ,rust-base64-0.22)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-3)
("rust-cssparser" ,rust-cssparser-0.33)
("rust-cssparser" ,rust-cssparser-0.34)
("rust-encoding-rs" ,rust-encoding-rs-0.8)
("rust-html5ever" ,rust-html5ever-0.24)
("rust-html5ever" ,rust-html5ever-0.27)
("rust-markup5ever-rcdom" ,rust-markup5ever-rcdom-0.3)
("rust-openssl" ,rust-openssl-0.10)
("rust-percent-encoding" ,rust-percent-encoding-2)
("rust-regex" ,rust-regex-1)
("rust-reqwest" ,rust-reqwest-0.11)
("rust-reqwest" ,rust-reqwest-0.12)
("rust-sha2" ,rust-sha2-0.10)
("rust-url" ,rust-url-2))
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-2))))
(("rust-assert-cmd" ,rust-assert-cmd-2))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'dont-default-to-vendored-openssl
(lambda _
(substitute* "Cargo.toml"
((".*\"vendored-openssl\".*") "")))))))
(native-inputs
(list pkg-config))
(inputs
@ -7379,7 +7388,13 @@ file links.")
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-cargo-requirements
(lambda _
(substitute* "Cargo.toml" (("~") "")))))
(substitute* "Cargo.toml" (("~") ""))))
(add-after 'install 'install-data
(lambda _
(invoke "make" (string-append "PREFIX=" #$output)
"copy-data"))))
#:parallel-tests? #f ; As per the Makefile
#:install-source? #f
#:cargo-inputs
`(("rust-ansi-parser" ,rust-ansi-parser-0.6)
("rust-dirs" ,rust-dirs-3)

View file

@ -124,6 +124,8 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-check)
#:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages datastructures)

View file

@ -5,7 +5,9 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,6 +31,7 @@
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix packages)
#:use-module (guix platform)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
@ -67,6 +70,11 @@ to NAME and VERSION."
(let ((module (resolve-interface '(gnu packages rust))))
(module-ref module 'make-rust-sysroot)))
(define (cargo-triplet target)
(false-if-exception
(platform-rust-target
(lookup-platform-by-target-or-system target))))
(define %cargo-utils-modules
;; Build-side modules imported by default.
`((guix build cargo-utils)
@ -85,10 +93,12 @@ to NAME and VERSION."
(test-target #f)
(vendor-dir "guix-vendor")
(cargo-build-flags ''("--release"))
(cargo-test-flags ''("--release"))
(cargo-test-flags ''())
(cargo-package-flags ''("--no-metadata" "--no-verify"))
(features ''())
(skip-build? #f)
(parallel-build? #t)
(parallel-tests? #t)
(install-source? #t)
(phases '%standard-phases)
(outputs '("out"))
@ -113,8 +123,11 @@ to NAME and VERSION."
#:cargo-build-flags #$(sexp->gexp cargo-build-flags)
#:cargo-test-flags #$(sexp->gexp cargo-test-flags)
#:cargo-package-flags #$(sexp->gexp cargo-package-flags)
#:cargo-target #$(cargo-triplet system)
#:features #$(sexp->gexp features)
#:skip-build? #$skip-build?
#:parallel-build? #$parallel-build?
#:parallel-tests? #$parallel-tests?
#:install-source? #$install-source?
#:tests? #$(and tests? (not skip-build?))
#:phases #$(if (pair? phases)
@ -140,10 +153,13 @@ to NAME and VERSION."
(test-target #f)
(vendor-dir "guix-vendor")
(cargo-build-flags ''("--release"))
(cargo-test-flags ''("--release"))
(cargo-test-flags ''())
(cargo-package-flags ''("--no-metadata" "--no-verify"))
(cargo-target (cargo-triplet (or target system)))
(features ''())
(skip-build? #f)
(parallel-build? #t)
(parallel-tests? #t)
(install-source? (not (target-mingw? target)))
(phases '%standard-phases)
(outputs '("out"))
@ -170,8 +186,11 @@ to NAME and VERSION."
#:cargo-build-flags #$(sexp->gexp cargo-build-flags)
#:cargo-test-flags #$(sexp->gexp cargo-test-flags)
#:cargo-package-flags #$(sexp->gexp cargo-package-flags)
#:cargo-target #$(cargo-triplet (or target system))
#:features #$(sexp->gexp features)
#:skip-build? #$skip-build?
#:parallel-build? #$parallel-build?
#:parallel-tests? #$parallel-tests?
#:install-source? #$install-source?
#:tests? #$(and tests? (not skip-build?))
#:phases #$(if (pair? phases)
@ -233,11 +252,14 @@ do not extract the conventional inputs)."
(if (null? propagated)
(reverse result)
(loop (reverse (concatenate propagated)) result '() seen)))
(((and input (label (? package? package))) rest ...)
;; Match inputs with labels for backward compatibility.
(((or (_ (? package? package))
(? package? package))
rest ...)
(if (seen? seen package)
(loop rest result propagated seen)
(loop rest
(cons input result)
(cons package result)
(cons (package-cargo-inputs package)
propagated)
(vhash-consq package package seen))))
@ -294,8 +316,8 @@ any dependent crates. This can be a benefits:
something that can always be extended or reworked in the future)."
(filter-map
(match-lambda
((label (? package? p))
(list label (package-source p)))
((? package? p)
(list (package-name p) (package-source p)))
((label input)
(list label input)))
(crate-closure (append cargo-inputs cargo-development-inputs))))
@ -313,7 +335,7 @@ any dependent crates. This can be a benefits:
(define private-keywords
`(#:rust #:inputs #:native-inputs #:outputs
#:cargo-inputs #:cargo-development-inputs
#:rust-sysroot
#:rust-sysroot #:cargo-target
,@(if target '() '(#:target))))
(bag

View file

@ -2,9 +2,11 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019-2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2025 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,8 +26,7 @@
(define-module (guix build cargo-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build json)
#:use-module (guix build utils)
#:use-module (guix build cargo-utils)
#:use-module ((guix build utils) #:hide (delete))
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 ftw)
@ -105,8 +106,7 @@ Cargo.toml file present at its root."
(for-each (lambda (crate)
(invoke "tar" "xzf" crate "-C" vendor-dir))
(find-files "target/package" "\\.crate$"))))
#t)
(find-files "target/package" "\\.crate$")))))
(define (rust-package? name)
(string-prefix? "rust-" name))
@ -120,6 +120,7 @@ libraries or executables."
(define* (configure #:key inputs
target system
cargo-target
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs."
@ -149,24 +150,7 @@ libraries or executables."
;; For cross-building
(when target
(setenv "CARGO_BUILD_TARGET"
;; Can this be replaced with platform-rust-architecture?
;; Keep this synchronized with (guix platforms *)
(match target
("aarch64-linux-gnu" "aarch64-unknown-linux-gnu")
("arm-linux-gnueabihf" "armv7-unknown-linux-gnueabihf")
("i686-linux-gnu" "i686-unknown-linux-gnu")
("mips64el-linux-gnu" "mips64el-unknown-linux-gnuabi64")
("powerpc-linux-gnu" "powerpc-unknown-linux-gnu")
("powerpc64-linux-gnu" "powerpc64-unknown-linux-gnu")
("powerpc64le-linux-gnu" "powerpc64le-unknown-linux-gnu")
("riscv64-linux-gnu" "riscv64gc-unknown-linux-gnu")
("x86_64-linux-gnu" "x86_64-unknown-linux-gnu")
("x86_64-linux-gnux32" "x86_64-unknown-linux-gnux32")
("i586-pc-gnu" "i686-unknown-hurd-gnu")
("i686-w64-mingw32" "i686-pc-windows-gnu")
("x86_64-w64-mingw32" "x86_64-pc-windows-gnu")
(else #f)))
(setenv "CARGO_BUILD_TARGET" cargo-target)
(setenv "RUSTFLAGS" (string-append
(or (getenv "RUSTFLAGS") "")
" --sysroot " (assoc-ref inputs "rust-sysroot")))
@ -223,6 +207,7 @@ directory = '" vendor-dir "'") port)
(setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1")
(setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1")
(setenv "SODIUM_USE_PKG_CONFIG" "1")
(setenv "ZSTD_SYS_USE_PKG_CONFIG" "1")
(when (assoc-ref inputs "openssl")
(setenv "OPENSSL_DIR" (assoc-ref inputs "openssl")))
@ -236,19 +221,24 @@ directory = '" vendor-dir "'") port)
;; during building, and in any case if one is not present it is created
;; during the 'build phase by cargo.
(when (file-exists? "Cargo.lock")
(delete-file "Cargo.lock"))
#t)
(delete-file "Cargo.lock")))
;; After the 'patch-generated-file-shebangs phase any vendored crates who have
;; their shebangs patched will have a mismatch on their checksum.
;; See: https://github.com/rust-lang/cargo/issues/11063.
(define* (patch-cargo-checksums #:key
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Patch the checksums of the vendored crates after patching their shebangs."
(generate-all-checksums vendor-dir)
#t)
"Add a stub checksum to each crate in VENDOR-DIR."
(with-directory-excursion vendor-dir
(call-with-output-file ".cargo-checksum.json"
(cut display "{\"files\":{}}" <>))
(for-each (lambda (dir)
(copy-file ".cargo-checksum.json"
(string-append dir "/.cargo-checksum.json")))
(drop (scandir ".") 3))
(delete-file ".cargo-checksum.json")))
(define* (build #:key
parallel-build?
skip-build?
(features '())
(cargo-build-flags '("--release"))
@ -257,19 +247,35 @@ directory = '" vendor-dir "'") port)
(or skip-build?
(apply invoke
`("cargo" "build"
,@(if parallel-build?
(list "-j" (number->string (parallel-job-count)))
(list "-j" "1"))
,@(if (null? features)
'()
`("--features" ,(string-join features)))
,@cargo-build-flags))))
(define* (check #:key
parallel-build?
parallel-tests?
tests?
(cargo-test-flags '("--release"))
(cargo-test-flags '())
#:allow-other-keys)
"Run tests for a given Cargo package."
(if tests?
(apply invoke "cargo" "test" cargo-test-flags)
#t))
(when tests?
(apply invoke
`("cargo" "test"
,@(if parallel-build?
(list "-j" (number->string (parallel-job-count)))
(list "-j" "1"))
,@cargo-test-flags
,@(if (member "--" cargo-test-flags)
'()
'("--"))
,@(if parallel-tests?
(list "--test-threads"
(number->string (parallel-job-count)))
(list "--test-threads" "1"))))))
(define* (package #:key
source
@ -327,8 +333,7 @@ directory = '" vendor-dir "'") port)
(find-files dir #:directories? #t))
(delete-file-recursively dir)))
(find-files "." "\\.crate$")))))
(format #t "Not installing cargo sources, skipping `cargo package`.~%"))
#t)
(format #t "Not installing cargo sources, skipping `cargo package`.~%")))
(define* (install #:key
inputs
@ -364,9 +369,7 @@ directory = '" vendor-dir "'") port)
(for-each (lambda (crate)
(invoke "tar" "xzf" crate "-C" sources))
(find-files registry "\\.crate$")))
#t))
(find-files registry "\\.crate$")))))
(define %standard-phases
(modify-phases gnu:%standard-phases

View file

@ -214,7 +214,10 @@ and LICENSE."
(source (origin
(method url-fetch)
(uri (crate-uri ,name version))
(file-name (string-append name "-" version ".tar.gz"))
(file-name
,@(if yanked?
`((string-append name "-" version "-yanked.tar.gz"))
`((string-append name "-" version ".tar.gz"))))
(sha256
(base32
,(bytevector->nix-base32-string (port-sha256 port))))))