summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2024-11-09 06:33:29 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2024-11-09 06:33:29 +0000
commit672a57f8ebbf9443e883e6caad81a0a5e51a833a (patch)
tree067a603812f1af7cbf3fd4d6660f2a2b1a445d2a
parent2024-11-09 04:03:24 UTC (diff)
parent*/*: update for slotted Rust (diff)
downloadgentoo-672a57f8ebbf9443e883e6caad81a0a5e51a833a.tar.gz
gentoo-672a57f8ebbf9443e883e6caad81a0a5e51a833a.tar.bz2
gentoo-672a57f8ebbf9443e883e6caad81a0a5e51a833a.zip
Merge updates from master
-rw-r--r--app-antivirus/clamav/clamav-1.0.5-r1.ebuild (renamed from app-antivirus/clamav/clamav-1.0.5.ebuild)3
-rw-r--r--app-antivirus/clamav/clamav-1.0.7-r1.ebuild (renamed from app-antivirus/clamav/clamav-1.0.7.ebuild)3
-rw-r--r--app-antivirus/clamav/clamav-1.2.2-r1.ebuild (renamed from app-antivirus/clamav/clamav-1.2.2.ebuild)4
-rw-r--r--app-antivirus/clamav/clamav-1.4.1-r2.ebuild (renamed from app-antivirus/clamav/clamav-1.4.1-r1.ebuild)4
-rw-r--r--app-backup/rdedup/rdedup-1.0.2-r2.ebuild (renamed from app-backup/rdedup/rdedup-1.0.2-r1.ebuild)0
-rw-r--r--app-benchmarks/hyperfine/hyperfine-1.18.0-r1.ebuild (renamed from app-benchmarks/hyperfine/hyperfine-1.18.0.ebuild)2
-rw-r--r--app-containers/aardvark-dns/aardvark-dns-1.10.0-r1.ebuild (renamed from app-containers/aardvark-dns/aardvark-dns-1.10.0.ebuild)0
-rw-r--r--app-containers/aardvark-dns/aardvark-dns-1.11.0-r1.ebuild (renamed from app-containers/aardvark-dns/aardvark-dns-1.11.0.ebuild)0
-rw-r--r--app-containers/aardvark-dns/aardvark-dns-1.12.2-r1.ebuild (renamed from app-containers/aardvark-dns/aardvark-dns-1.12.2.ebuild)0
-rw-r--r--app-containers/aardvark-dns/aardvark-dns-1.9.0-r1.ebuild (renamed from app-containers/aardvark-dns/aardvark-dns-1.9.0.ebuild)0
-rw-r--r--app-containers/netavark/netavark-1.10.2-r1.ebuild (renamed from app-containers/netavark/netavark-1.10.2.ebuild)0
-rw-r--r--app-containers/netavark/netavark-1.10.3-r1.ebuild (renamed from app-containers/netavark/netavark-1.10.3.ebuild)0
-rw-r--r--app-containers/netavark/netavark-1.11.0-r1.ebuild (renamed from app-containers/netavark/netavark-1.11.0.ebuild)0
-rw-r--r--app-containers/netavark/netavark-1.12.2-r1.ebuild (renamed from app-containers/netavark/netavark-1.12.2.ebuild)0
-rw-r--r--app-containers/netavark/netavark-1.9.0-r1.ebuild (renamed from app-containers/netavark/netavark-1.9.0.ebuild)0
-rw-r--r--app-crypt/nitrocli/nitrocli-0.4.1-r1.ebuild (renamed from app-crypt/nitrocli/nitrocli-0.4.1.ebuild)126
-rw-r--r--app-crypt/rpm-sequoia/rpm-sequoia-1.6.0-r1.ebuild (renamed from app-crypt/rpm-sequoia/rpm-sequoia-1.6.0.ebuild)12
-rw-r--r--app-crypt/rpm-sequoia/rpm-sequoia-1.7.0-r1.ebuild (renamed from app-crypt/rpm-sequoia/rpm-sequoia-1.7.0.ebuild)12
-rw-r--r--app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0-r1.ebuild (renamed from app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0.ebuild)12
-rw-r--r--app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1-r1.ebuild (renamed from app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1.ebuild)12
-rw-r--r--app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0-r1.ebuild (renamed from app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0.ebuild)12
-rw-r--r--app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0-r1.ebuild (renamed from app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0.ebuild)12
-rw-r--r--app-crypt/sequoia-sq/sequoia-sq-0.35.0-r1.ebuild (renamed from app-crypt/sequoia-sq/sequoia-sq-0.35.0.ebuild)8
-rw-r--r--app-crypt/sequoia-sq/sequoia-sq-0.36.0-r1.ebuild (renamed from app-crypt/sequoia-sq/sequoia-sq-0.36.0.ebuild)8
-rw-r--r--app-crypt/sequoia-sq/sequoia-sq-0.37.0-r1.ebuild (renamed from app-crypt/sequoia-sq/sequoia-sq-0.37.0.ebuild)8
-rw-r--r--app-crypt/sequoia-sqv/sequoia-sqv-1.2.1-r1.ebuild (renamed from app-crypt/sequoia-sqv/sequoia-sqv-1.2.1.ebuild)8
-rw-r--r--app-editors/helix/helix-24.03-r2.ebuild (renamed from app-editors/helix/helix-24.03-r1.ebuild)0
-rw-r--r--app-editors/helix/helix-24.07-r1.ebuild (renamed from app-editors/helix/helix-24.07.ebuild)1
-rw-r--r--app-editors/zed/zed-0.155.2-r1.ebuild (renamed from app-editors/zed/zed-0.155.2.ebuild)7
-rw-r--r--app-editors/zed/zed-0.159.10-r1.ebuild (renamed from app-editors/zed/zed-0.159.10.ebuild)7
-rw-r--r--app-editors/zed/zed-0.160.7-r1.ebuild (renamed from app-editors/zed/zed-0.160.7.ebuild)7
-rw-r--r--app-emulation/ruffle/ruffle-0_p20240929-r1.ebuild (renamed from app-emulation/ruffle/ruffle-0_p20240929.ebuild)3
-rw-r--r--app-emulation/ruffle/ruffle-0_p20241027-r1.ebuild (renamed from app-emulation/ruffle/ruffle-0_p20241027.ebuild)3
-rw-r--r--app-emulation/ruffle/ruffle-9999.ebuild3
-rw-r--r--app-emulation/virtiofsd/virtiofsd-1.10.0-r1.ebuild (renamed from app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild)0
-rw-r--r--app-emulation/virtiofsd/virtiofsd-1.10.1-r1.ebuild (renamed from app-emulation/virtiofsd/virtiofsd-1.10.1.ebuild)0
-rw-r--r--app-emulation/virtiofsd/virtiofsd-1.11.1-r1.ebuild (renamed from app-emulation/virtiofsd/virtiofsd-1.11.1.ebuild)0
-rw-r--r--app-forensics/yara-x/yara-x-0.5.0-r1.ebuild (renamed from app-forensics/yara-x/yara-x-0.5.0.ebuild)0
-rw-r--r--app-forensics/yara-x/yara-x-0.6.0-r1.ebuild (renamed from app-forensics/yara-x/yara-x-0.6.0.ebuild)0
-rw-r--r--app-forensics/yara-x/yara-x-0.7.0-r1.ebuild (renamed from app-forensics/yara-x/yara-x-0.7.0.ebuild)0
-rw-r--r--app-i18n/yaskkserv2/yaskkserv2-0.1.7-r1.ebuild232
-rw-r--r--app-i18n/yaskkserv2/yaskkserv2-0.1.7.ebuild229
-rw-r--r--app-laptop/tiny-dfr/tiny-dfr-0.3.0-r1.ebuild (renamed from app-laptop/tiny-dfr/tiny-dfr-0.3.0.ebuild)5
-rw-r--r--app-laptop/tiny-dfr/tiny-dfr-0.3.1-r1.ebuild261
-rw-r--r--app-laptop/tiny-dfr/tiny-dfr-0.3.1.ebuild256
-rw-r--r--app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920-r1.ebuild159
-rw-r--r--app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920.ebuild159
-rw-r--r--app-misc/anki/anki-24.06.3-r2.ebuild (renamed from app-misc/anki/anki-24.06.3-r1.ebuild)2
-rw-r--r--app-misc/battop/battop-0.2.4_p1-r1.ebuild (renamed from app-misc/battop/battop-0.2.4_p1.ebuild)2
-rw-r--r--app-misc/broot/broot-1.39.1-r1.ebuild (renamed from app-misc/broot/broot-1.39.1.ebuild)1
-rw-r--r--app-misc/broot/broot-1.40.0-r1.ebuild (renamed from app-misc/broot/broot-1.40.0.ebuild)1
-rw-r--r--app-misc/broot/broot-1.41.1-r1.ebuild (renamed from app-misc/broot/broot-1.41.1.ebuild)1
-rw-r--r--app-misc/broot/broot-1.42.0-r1.ebuild (renamed from app-misc/broot/broot-1.42.0.ebuild)2
-rw-r--r--app-misc/jaq/jaq-1.4.0-r1.ebuild (renamed from app-misc/jaq/jaq-1.4.0.ebuild)4
-rw-r--r--app-misc/jaq/jaq-1.5.0-r1.ebuild (renamed from app-misc/jaq/jaq-1.5.0.ebuild)4
-rw-r--r--app-misc/jaq/jaq-1.6.0-r1.ebuild (renamed from app-misc/jaq/jaq-1.6.0.ebuild)4
-rw-r--r--app-misc/jf/jf-0.6.2-r2.ebuild (renamed from app-misc/jf/jf-0.6.2-r1.ebuild)2
-rw-r--r--app-misc/rpick/rpick-0.9.1-r1.ebuild (renamed from app-misc/rpick/rpick-0.9.1.ebuild)0
-rw-r--r--app-misc/skim/skim-0.10.4-r1.ebuild (renamed from app-misc/skim/skim-0.10.4.ebuild)0
-rw-r--r--app-misc/tzupdate/tzupdate-3.1.0-r1.ebuild (renamed from app-misc/tzupdate/tzupdate-3.1.0.ebuild)0
-rw-r--r--app-misc/weggli/metadata.xml2
-rw-r--r--app-misc/weggli/weggli-0.2.4-r1.ebuild142
-rw-r--r--app-misc/weggli/weggli-0.2.4.ebuild141
-rw-r--r--app-misc/zellij/zellij-0.41.1-r1.ebuild (renamed from app-misc/zellij/zellij-0.41.1.ebuild)0
-rw-r--r--app-portage/emlop/emlop-0.7.0-r1.ebuild (renamed from app-portage/emlop/emlop-0.7.0.ebuild)4
-rw-r--r--app-portage/emlop/emlop-0.7.1-r1.ebuild (renamed from app-portage/emlop/emlop-0.7.1.ebuild)4
-rw-r--r--app-shells/atuin/atuin-18.3.0-r2.ebuild (renamed from app-shells/atuin/atuin-18.3.0-r1.ebuild)3
-rw-r--r--app-shells/mcfly/mcfly-0.5.13-r1.ebuild115
-rw-r--r--app-shells/mcfly/mcfly-0.5.13.ebuild115
-rw-r--r--app-shells/mcfly/mcfly-0.9.0-r1.ebuild (renamed from app-shells/mcfly/mcfly-0.9.0.ebuild)0
-rw-r--r--app-shells/nushell/nushell-0.95.0-r1.ebuild (renamed from app-shells/nushell/nushell-0.95.0.ebuild)0
-rw-r--r--app-shells/nushell/nushell-0.96.1-r1.ebuild (renamed from app-shells/nushell/nushell-0.96.1.ebuild)0
-rw-r--r--app-shells/nushell/nushell-0.98.0-r1.ebuild (renamed from app-shells/nushell/nushell-0.98.0.ebuild)2
-rw-r--r--app-shells/starship/starship-1.19.0-r1.ebuild (renamed from app-shells/starship/starship-1.19.0.ebuild)2
-rw-r--r--app-shells/starship/starship-1.20.1-r1.ebuild (renamed from app-shells/starship/starship-1.20.1.ebuild)2
-rw-r--r--app-shells/zoxide/zoxide-0.9.4-r1.ebuild (renamed from app-shells/zoxide/zoxide-0.9.4.ebuild)0
-rw-r--r--app-shells/zoxide/zoxide-0.9.6-r1.ebuild (renamed from app-shells/zoxide/zoxide-0.9.6.ebuild)0
-rw-r--r--app-text/fblog/fblog-4.10.0-r1.ebuild (renamed from app-text/fblog/fblog-4.10.0.ebuild)0
-rw-r--r--app-text/mdbook/mdbook-0.4.40-r1.ebuild (renamed from app-text/mdbook/mdbook-0.4.40.ebuild)0
-rw-r--r--dev-db/influxdb/influxdb-2.7.10-r1.ebuild (renamed from dev-db/influxdb/influxdb-2.7.10.ebuild)0
-rw-r--r--dev-db/influxdb/influxdb-2.7.8-r1.ebuild (renamed from dev-db/influxdb/influxdb-2.7.8.ebuild)5
-rw-r--r--dev-java/icedtea-web/icedtea-web-1.8.8-r2.ebuild (renamed from dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild)14
-rw-r--r--dev-lang/dafny/dafny-4.8.0.ebuild2
-rw-r--r--dev-lang/dafny/dafny-4.8.1.ebuild2
-rw-r--r--dev-lang/dafny/dafny-4.9.0.ebuild2
-rw-r--r--dev-lang/gleam/gleam-1.4.1-r1.ebuild (renamed from dev-lang/gleam/gleam-1.4.1.ebuild)0
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild3
-rw-r--r--dev-lang/ruby/ruby-3.2.4-r2.ebuild (renamed from dev-lang/ruby/ruby-3.2.4.ebuild)22
-rw-r--r--dev-lang/ruby/ruby-3.2.4-r3.ebuild (renamed from dev-lang/ruby/ruby-3.2.4-r1.ebuild)22
-rw-r--r--dev-lang/ruby/ruby-3.2.5-r1.ebuild (renamed from dev-lang/ruby/ruby-3.2.5.ebuild)22
-rw-r--r--dev-lang/ruby/ruby-3.2.6-r1.ebuild (renamed from dev-lang/ruby/ruby-3.2.6.ebuild)22
-rw-r--r--dev-lang/ruby/ruby-3.3.4-r2.ebuild (renamed from dev-lang/ruby/ruby-3.3.4-r1.ebuild)19
-rw-r--r--dev-lang/ruby/ruby-3.3.5-r1.ebuild (renamed from dev-lang/ruby/ruby-3.3.5.ebuild)19
-rw-r--r--dev-lang/ruby/ruby-3.3.6-r1.ebuild (renamed from dev-lang/ruby/ruby-3.3.6.ebuild)19
-rw-r--r--dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild232
-rw-r--r--dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild242
-rw-r--r--dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild242
-rw-r--r--dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild244
-rw-r--r--dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild247
-rw-r--r--dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild251
-rw-r--r--dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild249
-rw-r--r--dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild251
-rw-r--r--dev-lang/rust-common/Manifest4
-rw-r--r--dev-lang/rust-common/metadata.xml11
-rw-r--r--dev-lang/rust-common/rust-common-1.81.0.ebuild53
-rw-r--r--dev-lang/rust-common/rust-common-1.82.0.ebuild54
-rw-r--r--dev-lang/rust/rust-1.71.1-r100.ebuild734
-rw-r--r--dev-lang/rust/rust-1.74.1-r100.ebuild770
-rw-r--r--dev-lang/rust/rust-1.75.0-r100.ebuild773
-rw-r--r--dev-lang/rust/rust-1.77.1-r100.ebuild771
-rw-r--r--dev-lang/rust/rust-1.79.0-r100.ebuild774
-rw-r--r--dev-lang/rust/rust-1.80.1-r100.ebuild773
-rw-r--r--dev-lang/rust/rust-1.81.0-r100.ebuild774
-rw-r--r--dev-lang/rust/rust-1.82.0-r100.ebuild781
-rw-r--r--dev-lang/spidermonkey/spidermonkey-102.15.0-r1.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild)54
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-115.16.0.ebuild)60
-rw-r--r--dev-lang/spidermonkey/spidermonkey-128.3.0-r1.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-128.3.0.ebuild)13
-rw-r--r--dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-128.4.0.ebuild)11
-rw-r--r--dev-libs/dynolog/dynolog-0.3.1_p20230126-r3.ebuild (renamed from dev-libs/dynolog/dynolog-0.3.1_p20230126-r2.ebuild)0
-rw-r--r--dev-python/adblock/adblock-0.6.0-r1.ebuild (renamed from dev-python/adblock/adblock-0.6.0.ebuild)0
-rw-r--r--dev-python/bcrypt/bcrypt-4.2.0-r3.ebuild (renamed from dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild)0
-rw-r--r--dev-python/blake3/blake3-0.4.1-r1.ebuild (renamed from dev-python/blake3/blake3-0.4.1.ebuild)7
-rw-r--r--dev-python/cramjam/cramjam-2.8.3-r1.ebuild (renamed from dev-python/cramjam/cramjam-2.8.3.ebuild)0
-rw-r--r--dev-python/cramjam/cramjam-2.8.4-r1.ebuild (renamed from dev-python/cramjam/cramjam-2.8.4.ebuild)0
-rw-r--r--dev-python/cramjam/cramjam-2.9.0-r1.ebuild (renamed from dev-python/cramjam/cramjam-2.9.0.ebuild)0
-rw-r--r--dev-python/cryptography/cryptography-43.0.3-r1.ebuild (renamed from dev-python/cryptography/cryptography-43.0.3.ebuild)4
-rw-r--r--dev-python/dulwich/dulwich-0.22.4-r1.ebuild (renamed from dev-python/dulwich/dulwich-0.22.4.ebuild)0
-rw-r--r--dev-python/jellyfish/jellyfish-1.1.0-r1.ebuild (renamed from dev-python/jellyfish/jellyfish-1.1.0.ebuild)5
-rw-r--r--dev-python/libcst/libcst-1.5.0-r1.ebuild (renamed from dev-python/libcst/libcst-1.5.0.ebuild)5
-rw-r--r--dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20-r1.ebuild (renamed from dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20.ebuild)0
-rw-r--r--dev-python/nh3/nh3-0.2.18-r1.ebuild (renamed from dev-python/nh3/nh3-0.2.18.ebuild)0
-rw-r--r--dev-python/orjson/orjson-3.10.10-r1.ebuild (renamed from dev-python/orjson/orjson-3.10.10.ebuild)3
-rw-r--r--dev-python/orjson/orjson-3.10.11-r1.ebuild (renamed from dev-python/orjson/orjson-3.10.11.ebuild)3
-rw-r--r--dev-python/orjson/orjson-3.10.7-r1.ebuild (renamed from dev-python/orjson/orjson-3.10.7.ebuild)3
-rw-r--r--dev-python/orjson/orjson-3.10.9-r1.ebuild (renamed from dev-python/orjson/orjson-3.10.9.ebuild)3
-rw-r--r--dev-python/pydantic-core/pydantic-core-2.23.4-r1.ebuild (renamed from dev-python/pydantic-core/pydantic-core-2.23.4.ebuild)1
-rw-r--r--dev-python/pydantic-core/pydantic-core-2.25.0-r1.ebuild (renamed from dev-python/pydantic-core/pydantic-core-2.25.0.ebuild)1
-rw-r--r--dev-python/pydantic-core/pydantic-core-2.25.1-r1.ebuild (renamed from dev-python/pydantic-core/pydantic-core-2.25.1.ebuild)1
-rw-r--r--dev-python/pydantic-core/pydantic-core-2.26.0-r1.ebuild (renamed from dev-python/pydantic-core/pydantic-core-2.26.0.ebuild)1
-rw-r--r--dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3-r1.ebuild (renamed from dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3.ebuild)0
-rw-r--r--dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6-r1.ebuild (renamed from dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6.ebuild)0
-rw-r--r--dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1-r1.ebuild (renamed from dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1.ebuild)0
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.4.2-r1.ebuild (renamed from dev-python/pyproject-fmt/pyproject-fmt-2.4.2.ebuild)0
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.4.3-r1.ebuild (renamed from dev-python/pyproject-fmt/pyproject-fmt-2.4.3.ebuild)0
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.5.0-r1.ebuild (renamed from dev-python/pyproject-fmt/pyproject-fmt-2.5.0.ebuild)0
-rw-r--r--dev-python/qiskit/qiskit-1.2.4-r1.ebuild (renamed from dev-python/qiskit/qiskit-1.2.4.ebuild)0
-rw-r--r--dev-python/qiskit/qiskit-1.3.0_rc1-r1.ebuild (renamed from dev-python/qiskit/qiskit-1.3.0_rc1.ebuild)0
-rw-r--r--dev-python/regress/regress-2024.11.1-r1.ebuild (renamed from dev-python/regress/regress-2024.11.1.ebuild)0
-rw-r--r--dev-python/regress/regress-2024.8.1-r1.ebuild (renamed from dev-python/regress/regress-2024.8.1.ebuild)0
-rw-r--r--dev-python/rpds-py/rpds-py-0.19.1-r1.ebuild (renamed from dev-python/rpds-py/rpds-py-0.19.1.ebuild)6
-rw-r--r--dev-python/rpds-py/rpds-py-0.20.1-r1.ebuild (renamed from dev-python/rpds-py/rpds-py-0.20.1.ebuild)6
-rw-r--r--dev-python/rpds-py/rpds-py-0.21.0-r1.ebuild (renamed from dev-python/rpds-py/rpds-py-0.21.0.ebuild)6
-rw-r--r--dev-python/rustworkx/rustworkx-0.14.2-r2.ebuild (renamed from dev-python/rustworkx/rustworkx-0.14.2-r1.ebuild)0
-rw-r--r--dev-python/rustworkx/rustworkx-0.15.0-r1.ebuild (renamed from dev-python/rustworkx/rustworkx-0.15.0.ebuild)0
-rw-r--r--dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild (renamed from dev-python/rustworkx/rustworkx-0.15.1.ebuild)0
-rw-r--r--dev-python/setuptools-rust/setuptools-rust-1.10.2-r1.ebuild (renamed from dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild)2
-rw-r--r--dev-python/sqlglot/sqlglot-25.28.0-r1.ebuild (renamed from dev-python/sqlglot/sqlglot-25.29.0.ebuild)4
-rw-r--r--dev-python/sqlglot/sqlglot-25.29.0-r1.ebuild (renamed from dev-python/sqlglot/sqlglot-25.28.0.ebuild)4
-rw-r--r--dev-python/uv/uv-0.4.30-r1.ebuild (renamed from dev-python/uv/uv-0.4.30.ebuild)4
-rw-r--r--dev-python/uv/uv-0.5.0-r1.ebuild (renamed from dev-python/uv/uv-0.5.0.ebuild)4
-rw-r--r--dev-python/watchfiles/watchfiles-0.23.0-r1.ebuild (renamed from dev-python/watchfiles/watchfiles-0.23.0.ebuild)0
-rw-r--r--dev-python/watchfiles/watchfiles-0.24.0-r1.ebuild (renamed from dev-python/watchfiles/watchfiles-0.24.0.ebuild)0
-rw-r--r--dev-util/bindgen/bindgen-0.68.1-r1.ebuild (renamed from dev-util/bindgen/bindgen-0.68.1.ebuild)2
-rw-r--r--dev-util/bindgen/bindgen-0.69.4-r1.ebuild (renamed from dev-util/bindgen/bindgen-0.69.4.ebuild)2
-rw-r--r--dev-util/bindgen/bindgen-0.70.1-r1.ebuild (renamed from dev-util/bindgen/bindgen-0.70.1.ebuild)2
-rw-r--r--dev-util/bingrep/bingrep-0.10.1-r1.ebuild114
-rw-r--r--dev-util/bingrep/bingrep-0.10.1.ebuild104
-rw-r--r--dev-util/bingrep/bingrep-0.11.0-r1.ebuild117
-rw-r--r--dev-util/bingrep/bingrep-0.11.0.ebuild108
-rw-r--r--dev-util/bpftop/bpftop-0.2.3-r1.ebuild (renamed from dev-util/bpftop/bpftop-0.2.3.ebuild)0
-rw-r--r--dev-util/bpftop/bpftop-0.5.1-r1.ebuild (renamed from dev-util/bpftop/bpftop-0.5.1.ebuild)0
-rw-r--r--dev-util/bugbite-cli/bugbite-cli-0.0.12-r1.ebuild (renamed from dev-util/bugbite-cli/bugbite-cli-0.0.12.ebuild)6
-rw-r--r--dev-util/bugbite-cli/bugbite-cli-0.0.13.ebuild3
-rw-r--r--dev-util/cargo-audit/cargo-audit-0.20.1-r1.ebuild (renamed from dev-util/cargo-audit/cargo-audit-0.20.1.ebuild)0
-rw-r--r--dev-util/cargo-audit/cargo-audit-0.21.0-r1.ebuild (renamed from dev-util/cargo-audit/cargo-audit-0.21.0.ebuild)0
-rw-r--r--dev-util/cargo-c/cargo-c-0.10.0-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.10.0.ebuild)3
-rw-r--r--dev-util/cargo-c/cargo-c-0.10.4-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.10.4.ebuild)3
-rw-r--r--dev-util/cargo-c/cargo-c-0.10.5-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.10.5.ebuild)3
-rw-r--r--dev-util/cargo-c/cargo-c-0.9.14-r1.ebuild204
-rw-r--r--dev-util/cargo-c/cargo-c-0.9.14.ebuild206
-rw-r--r--dev-util/cargo-c/cargo-c-0.9.30-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.9.30.ebuild)3
-rw-r--r--dev-util/cargo-c/cargo-c-0.9.31-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.9.31.ebuild)3
-rw-r--r--dev-util/cargo-c/cargo-c-0.9.32-r1.ebuild (renamed from dev-util/cargo-c/cargo-c-0.9.32.ebuild)3
-rw-r--r--dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r2.ebuild (renamed from dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r1.ebuild)12
-rw-r--r--dev-util/cargo-license/cargo-license-0.5.1-r1.ebuild74
-rw-r--r--dev-util/cargo-license/cargo-license-0.5.1.ebuild74
-rw-r--r--dev-util/cargo-license/cargo-license-0.6.1-r1.ebuild (renamed from dev-util/cargo-license/cargo-license-0.6.1.ebuild)0
-rw-r--r--dev-util/cargo-nextest/cargo-nextest-0.9.67-r1.ebuild (renamed from dev-util/cargo-nextest/cargo-nextest-0.9.67.ebuild)0
-rw-r--r--dev-util/cargo-nextest/cargo-nextest-0.9.72-r1.ebuild (renamed from dev-util/cargo-nextest/cargo-nextest-0.9.72.ebuild)4
-rw-r--r--dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0-r1.ebuild (renamed from dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0.ebuild)6
-rw-r--r--dev-util/cbindgen/cbindgen-0.26.0-r1.ebuild (renamed from dev-util/cbindgen/cbindgen-0.26.0.ebuild)2
-rw-r--r--dev-util/cbindgen/cbindgen-0.27.0-r1.ebuild (renamed from dev-util/cbindgen/cbindgen-0.27.0.ebuild)0
-rw-r--r--dev-util/difftastic/difftastic-0.60.0-r1.ebuild (renamed from dev-util/difftastic/difftastic-0.60.0.ebuild)0
-rw-r--r--dev-util/difftastic/difftastic-0.61.0-r1.ebuild (renamed from dev-util/difftastic/difftastic-0.61.0.ebuild)0
-rw-r--r--dev-util/elfshaker/Manifest149
-rw-r--r--dev-util/elfshaker/elfshaker-0.9.0_p20230918.ebuild137
-rw-r--r--dev-util/elfshaker/elfshaker-0.9.0_p20240122.ebuild137
-rw-r--r--dev-util/elfshaker/elfshaker-0.9.0_p20240914.ebuild141
-rw-r--r--dev-util/elfshaker/files/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch16
-rw-r--r--dev-util/git-delta/git-delta-0.16.5-r1.ebuild (renamed from dev-util/git-delta/git-delta-0.16.5.ebuild)6
-rw-r--r--dev-util/git-delta/git-delta-0.17.0-r1.ebuild (renamed from dev-util/git-delta/git-delta-0.17.0.ebuild)5
-rw-r--r--dev-util/git-delta/git-delta-0.18.1-r1.ebuild (renamed from dev-util/git-delta/git-delta-0.18.1.ebuild)5
-rw-r--r--dev-util/git-delta/git-delta-0.18.2-r1.ebuild (renamed from dev-util/git-delta/git-delta-0.18.2.ebuild)5
-rw-r--r--dev-util/gnome-builder/gnome-builder-44.2-r1.ebuild4
-rw-r--r--dev-util/maturin/maturin-1.7.4-r1.ebuild (renamed from dev-util/maturin/maturin-1.7.4.ebuild)3
-rw-r--r--dev-util/pkgcruft/pkgcruft-0.0.1-r1.ebuild (renamed from dev-util/pkgcruft/pkgcruft-0.0.2.ebuild)4
-rw-r--r--dev-util/pkgcruft/pkgcruft-0.0.2-r1.ebuild (renamed from dev-util/pkgcruft/pkgcruft-0.0.3.ebuild)5
-rw-r--r--dev-util/pkgcruft/pkgcruft-0.0.3-r1.ebuild (renamed from dev-util/pkgcruft/pkgcruft-0.0.1.ebuild)3
-rw-r--r--dev-util/pkgcruft/pkgcruft-9999.ebuild3
-rw-r--r--dev-util/py-spy/Manifest281
-rw-r--r--dev-util/py-spy/py-spy-0.3.14.ebuild172
-rw-r--r--dev-util/py-spy/py-spy-0.4.0.ebuild227
-rw-r--r--dev-util/rinstall/rinstall-0.2.0-r1.ebuild108
-rw-r--r--dev-util/rinstall/rinstall-0.2.0.ebuild108
-rw-r--r--dev-util/ruff/ruff-0.7.0-r1.ebuild (renamed from dev-util/ruff/ruff-0.7.0.ebuild)5
-rw-r--r--dev-util/ruff/ruff-0.7.1-r1.ebuild (renamed from dev-util/ruff/ruff-0.7.1.ebuild)5
-rw-r--r--dev-util/ruff/ruff-0.7.2-r1.ebuild (renamed from dev-util/ruff/ruff-0.7.2.ebuild)5
-rw-r--r--dev-util/rustup/rustup-1.27.0-r1.ebuild (renamed from dev-util/rustup/rustup-1.27.0.ebuild)1
-rw-r--r--dev-util/rustup/rustup-1.27.1-r1.ebuild (renamed from dev-util/rustup/rustup-1.27.1.ebuild)0
-rw-r--r--dev-util/rustup/rustup-9999.ebuild1
-rw-r--r--dev-util/sccache/sccache-0.5.4-r2.ebuild (renamed from dev-util/sccache/sccache-0.5.4-r1.ebuild)10
-rw-r--r--dev-util/sccache/sccache-9999.ebuild1
-rw-r--r--dev-util/selenium-manager/selenium-manager-4.25.0-r1.ebuild (renamed from dev-util/selenium-manager/selenium-manager-4.25.0.ebuild)0
-rw-r--r--dev-util/selenium-manager/selenium-manager-4.26.0-r1.ebuild (renamed from dev-util/selenium-manager/selenium-manager-4.26.0.ebuild)0
-rw-r--r--dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6-r1.ebuild (renamed from dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6.ebuild)0
-rw-r--r--dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0-r1.ebuild (renamed from dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0.ebuild)0
-rw-r--r--dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2-r1.ebuild (renamed from dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2.ebuild)0
-rw-r--r--dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3-r1.ebuild (renamed from dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3.ebuild)0
-rw-r--r--dev-util/wachy/wachy-0.1.0_alpha6-r2.ebuild (renamed from dev-util/wachy/wachy-0.1.0_alpha6-r1.ebuild)0
-rw-r--r--dev-util/wasmer/wasmer-0.11.0.ebuild1
-rw-r--r--dev-util/watchman/watchman-2023.06.19.00-r1.ebuild (renamed from dev-util/watchman/watchman-2023.06.19.00.ebuild)3
-rw-r--r--dev-vcs/breezy/breezy-3.3.5-r1.ebuild (renamed from dev-vcs/breezy/breezy-3.3.5.ebuild)0
-rw-r--r--dev-vcs/breezy/breezy-3.3.7-r2.ebuild (renamed from dev-vcs/breezy/breezy-3.3.7-r1.ebuild)0
-rw-r--r--dev-vcs/git-absorb/git-absorb-0.6.15-r1.ebuild (renamed from dev-vcs/git-absorb/git-absorb-0.6.15.ebuild)0
-rw-r--r--dev-vcs/mercurial/mercurial-6.5.3-r2.ebuild (renamed from dev-vcs/mercurial/mercurial-6.5.3-r1.ebuild)5
-rw-r--r--dev-vcs/mercurial/mercurial-6.6.2-r2.ebuild (renamed from dev-vcs/mercurial/mercurial-6.6.2-r1.ebuild)3
-rw-r--r--dev-vcs/mercurial/mercurial-6.7.4-r2.ebuild (renamed from dev-vcs/mercurial/mercurial-6.7.4-r1.ebuild)3
-rw-r--r--dev-vcs/mercurial/mercurial-6.8.1-r1.ebuild (renamed from dev-vcs/mercurial/mercurial-6.8.1.ebuild)3
-rw-r--r--dev-vcs/mercurial/mercurial-9999.ebuild3
-rw-r--r--dev-vcs/stgit/stgit-2.4.11-r1.ebuild (renamed from dev-vcs/stgit/stgit-2.4.11.ebuild)0
-rw-r--r--dev-vcs/stgit/stgit-2.4.12-r1.ebuild (renamed from dev-vcs/stgit/stgit-2.4.12.ebuild)0
-rw-r--r--dev-vcs/stgit/stgit-2.4.6-r1.ebuild (renamed from dev-vcs/stgit/stgit-2.4.6.ebuild)0
-rw-r--r--eclass/cargo.eclass59
-rw-r--r--eclass/rust.eclass464
-rw-r--r--eclass/toolchain.eclass6
-rw-r--r--games-board/jja/jja-0.9.1-r1.ebuild (renamed from games-board/jja/jja-0.9.1.ebuild)2
-rw-r--r--games-emulation/rmg/rmg-0.6.5-r1.ebuild (renamed from games-emulation/rmg/rmg-0.6.6.ebuild)3
-rw-r--r--games-emulation/rmg/rmg-0.6.6-r1.ebuild (renamed from games-emulation/rmg/rmg-0.6.5.ebuild)3
-rw-r--r--games-emulation/rmg/rmg-9999.ebuild3
-rw-r--r--games-puzzle/syzygy/syzygy-1.0.2-r1.ebuild (renamed from games-puzzle/syzygy/syzygy-1.0.2.ebuild)1
-rw-r--r--games-rpg/rpg-cli/rpg-cli-1.2.0-r1.ebuild (renamed from games-rpg/rpg-cli/rpg-cli-1.2.0.ebuild)0
-rw-r--r--games-strategy/0ad/0ad-0.0.26_alpha-r2.ebuild (renamed from games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild)7
-rw-r--r--games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0-r1.ebuild278
-rw-r--r--games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0.ebuild271
-rw-r--r--gnome-base/librsvg/librsvg-2.57.3-r1.ebuild (renamed from gnome-base/librsvg/librsvg-2.57.3.ebuild)6
-rw-r--r--gnome-base/librsvg/librsvg-2.58.2-r1.ebuild (renamed from gnome-base/librsvg/librsvg-2.58.2.ebuild)12
-rw-r--r--gui-apps/railway/railway-2.7.0-r1.ebuild (renamed from gui-apps/railway/railway-2.7.0.ebuild)4
-rw-r--r--gui-apps/tuigreet/tuigreet-0.8.0-r1.ebuild164
-rw-r--r--gui-apps/tuigreet/tuigreet-0.8.0-r2.ebuild164
-rw-r--r--gui-apps/tuigreet/tuigreet-0.9.1-r1.ebuild (renamed from gui-apps/tuigreet/tuigreet-0.9.1.ebuild)0
-rw-r--r--gui-libs/greetd/greetd-0.10.0-r1.ebuild (renamed from gui-libs/greetd/greetd-0.10.0.ebuild)0
-rw-r--r--gui-libs/greetd/greetd-0.10.3-r1.ebuild (renamed from gui-libs/greetd/greetd-0.10.3.ebuild)0
-rw-r--r--mail-client/thunderbird/thunderbird-128.3.1-r1.ebuild (renamed from mail-client/thunderbird/thunderbird-128.3.1.ebuild)27
-rw-r--r--mail-client/thunderbird/thunderbird-128.3.3-r1.ebuild (renamed from mail-client/thunderbird/thunderbird-128.3.3.ebuild)27
-rw-r--r--mail-client/thunderbird/thunderbird-128.4.0-r1.ebuild (renamed from mail-client/thunderbird/thunderbird-128.4.0.ebuild)27
-rw-r--r--mail-client/thunderbird/thunderbird-128.4.2-r1.ebuild (renamed from mail-client/thunderbird/thunderbird-128.4.2.ebuild)28
-rw-r--r--media-gfx/darktable/darktable-4.6.0.ebuild2
-rw-r--r--media-gfx/darktable/darktable-4.6.1.ebuild2
-rw-r--r--media-gfx/darktable/darktable-4.8.0.ebuild2
-rw-r--r--media-gfx/fotema/fotema-1.14.2-r2.ebuild (renamed from media-gfx/fotema/fotema-1.14.2-r1.ebuild)0
-rw-r--r--media-gfx/fotema/fotema-1.14.3-r1.ebuild (renamed from media-gfx/fotema/fotema-1.14.3.ebuild)0
-rw-r--r--media-gfx/fotema/fotema-1.14.4-r1.ebuild (renamed from media-gfx/fotema/fotema-1.14.4.ebuild)0
-rw-r--r--media-gfx/libimagequant/libimagequant-4.2.2-r1.ebuild (renamed from media-gfx/libimagequant/libimagequant-4.2.2.ebuild)1
-rw-r--r--media-gfx/libimagequant/libimagequant-4.3.0-r1.ebuild (renamed from media-gfx/libimagequant/libimagequant-4.3.0.ebuild)1
-rw-r--r--media-gfx/oxipng/oxipng-8.0.0-r1.ebuild117
-rw-r--r--media-gfx/oxipng/oxipng-8.0.0.ebuild118
-rw-r--r--media-gfx/oxipng/oxipng-9.0.0-r1.ebuild (renamed from media-gfx/oxipng/oxipng-9.0.0.ebuild)2
-rw-r--r--media-gfx/oxipng/oxipng-9.1.2-r1.ebuild (renamed from media-gfx/oxipng/oxipng-9.1.2.ebuild)4
-rw-r--r--media-libs/glycin-loaders/glycin-loaders-1.1.0-r1.ebuild (renamed from media-libs/glycin-loaders/glycin-loaders-1.1.0.ebuild)0
-rw-r--r--media-libs/glycin-loaders/glycin-loaders-1.1.1-r1.ebuild (renamed from media-libs/glycin-loaders/glycin-loaders-1.1.1.ebuild)0
-rw-r--r--media-libs/libdovi/libdovi-3.3.1-r1.ebuild (renamed from media-libs/libdovi/libdovi-3.3.1.ebuild)5
-rw-r--r--media-libs/libopenraw/libopenraw-0.3.7-r1.ebuild (renamed from media-libs/libopenraw/libopenraw-0.3.7.ebuild)3
-rw-r--r--media-libs/mesa/mesa-24.1.7-r1.ebuild (renamed from media-libs/mesa/mesa-24.1.7.ebuild)11
-rw-r--r--media-libs/mesa/mesa-24.2.3-r1.ebuild (renamed from media-libs/mesa/mesa-24.2.3.ebuild)11
-rw-r--r--media-libs/mesa/mesa-24.2.4-r1.ebuild (renamed from media-libs/mesa/mesa-24.2.4.ebuild)11
-rw-r--r--media-libs/mesa/mesa-24.2.5-r1.ebuild (renamed from media-libs/mesa/mesa-24.2.5.ebuild)11
-rw-r--r--media-libs/mesa/mesa-24.2.6-r1.ebuild (renamed from media-libs/mesa/mesa-24.2.6.ebuild)11
-rw-r--r--media-libs/mesa/mesa-9999.ebuild14
-rw-r--r--media-sound/helvum/helvum-0.4.1-r1.ebuild8
-rw-r--r--media-sound/helvum/helvum-0.5.1-r3.ebuild8
-rw-r--r--media-sound/ncspot/ncspot-1.1.2-r1.ebuild (renamed from media-sound/ncspot/ncspot-1.1.2.ebuild)5
-rw-r--r--media-sound/ncspot/ncspot-1.2.0-r1.ebuild (renamed from media-sound/ncspot/ncspot-1.2.0.ebuild)0
-rw-r--r--media-sound/ncspot/ncspot-1.2.1-r1.ebuild (renamed from media-sound/ncspot/ncspot-1.2.1.ebuild)0
-rw-r--r--media-sound/rescrobbled/rescrobbled-0.7.1-r1.ebuild (renamed from media-sound/rescrobbled/rescrobbled-0.7.1.ebuild)2
-rw-r--r--media-video/rav1e/rav1e-0.6.6-r1.ebuild306
-rw-r--r--media-video/rav1e/rav1e-0.6.6.ebuild307
-rw-r--r--media-video/rav1e/rav1e-0.7.1-r1.ebuild (renamed from media-video/rav1e/rav1e-0.7.1.ebuild)1
-rw-r--r--media-video/rav1e/rav1e-9999.ebuild1
-rw-r--r--net-analyzer/suricata/suricata-7.0.5-r1.ebuild (renamed from net-analyzer/suricata/suricata-7.0.5.ebuild)9
-rw-r--r--net-analyzer/trippy/trippy-0.10.0-r1.ebuild (renamed from net-analyzer/trippy/trippy-0.10.0.ebuild)0
-rw-r--r--net-analyzer/trippy/trippy-0.11.0-r1.ebuild (renamed from net-analyzer/trippy/trippy-0.11.0.ebuild)0
-rw-r--r--net-analyzer/trippy/trippy-0.9.0-r1.ebuild (renamed from net-analyzer/trippy/trippy-0.9.0.ebuild)0
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-5.0.9-r1.ebuild (renamed from net-dns/pdns-recursor/pdns-recursor-5.0.9.ebuild)1
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-5.1.2-r1.ebuild (renamed from net-dns/pdns-recursor/pdns-recursor-5.1.3.ebuild)1
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-5.1.3-r1.ebuild (renamed from net-dns/pdns-recursor/pdns-recursor-5.1.2.ebuild)1
-rw-r--r--net-im/fractal/fractal-8-r1.ebuild (renamed from net-im/fractal/fractal-8.ebuild)5
-rw-r--r--net-im/synapse/synapse-1.114.0-r3.ebuild (renamed from net-im/synapse/synapse-1.114.0-r2.ebuild)0
-rw-r--r--net-im/synapse/synapse-1.116.0-r5.ebuild (renamed from net-im/synapse/synapse-1.116.0-r3.ebuild)0
-rw-r--r--net-im/synapse/synapse-1.117.0-r1.ebuild (renamed from net-im/synapse/synapse-1.117.0.ebuild)0
-rw-r--r--net-im/synapse/synapse-1.118.0-r1.ebuild (renamed from net-im/synapse/synapse-1.118.0.ebuild)0
-rw-r--r--net-libs/quiche/quiche-0.22.0-r1.ebuild (renamed from net-libs/quiche/quiche-0.22.0.ebuild)5
-rw-r--r--net-libs/quiche/quiche-9999.ebuild5
-rw-r--r--net-libs/rustls-ffi/rustls-ffi-0.10.0-r2.ebuild (renamed from net-libs/rustls-ffi/rustls-ffi-0.10.0-r1.ebuild)84
-rw-r--r--net-libs/rustls-ffi/rustls-ffi-0.12.1-r3.ebuild (renamed from net-libs/rustls-ffi/rustls-ffi-0.12.1-r2.ebuild)2
-rw-r--r--net-libs/rustls-ffi/rustls-ffi-0.12.2-r1.ebuild (renamed from net-libs/rustls-ffi/rustls-ffi-0.12.2.ebuild)0
-rw-r--r--net-libs/rustls-ffi/rustls-ffi-0.13.0-r1.ebuild (renamed from net-libs/rustls-ffi/rustls-ffi-0.13.0.ebuild)0
-rw-r--r--net-libs/rustls-ffi/rustls-ffi-0.9.1-r2.ebuild (renamed from net-libs/rustls-ffi/rustls-ffi-0.9.1-r1.ebuild)126
-rw-r--r--net-misc/asahi-btsync/asahi-btsync-0.2.0-r1.ebuild (renamed from net-misc/asahi-btsync/asahi-btsync-0.2.0.ebuild)10
-rw-r--r--net-misc/asahi-wifisync/asahi-wifisync-0.2.0-r1.ebuild (renamed from net-misc/asahi-wifisync/asahi-wifisync-0.2.0.ebuild)8
-rw-r--r--net-misc/geckodriver/geckodriver-0.35.0-r1.ebuild (renamed from net-misc/geckodriver/geckodriver-0.35.0.ebuild)1
-rw-r--r--net-misc/hurl/hurl-4.1.0-r1.ebuild (renamed from net-misc/hurl/hurl-4.1.0.ebuild)0
-rw-r--r--net-misc/hurl/hurl-5.0.1-r1.ebuild (renamed from net-misc/hurl/hurl-5.0.1.ebuild)0
-rw-r--r--net-misc/websocat/websocat-1.12.0-r1.ebuild (renamed from net-misc/websocat/websocat-1.12.0.ebuild)1
-rw-r--r--net-misc/websocat/websocat-1.13.0-r1.ebuild (renamed from net-misc/websocat/websocat-1.13.0.ebuild)1
-rw-r--r--net-misc/zerotier/zerotier-1.14.1-r1.ebuild (renamed from net-misc/zerotier/zerotier-1.14.1.ebuild)4
-rw-r--r--net-misc/zerotier/zerotier-1.14.2-r1.ebuild (renamed from net-misc/zerotier/zerotier-1.14.2.ebuild)4
-rw-r--r--net-nds/389-ds-base/389-ds-base-3.0.2-r1.ebuild (renamed from net-nds/389-ds-base/389-ds-base-3.0.2.ebuild)9
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch34
-rw-r--r--net-news/newsboat/newsboat-2.30.1-r1.ebuild174
-rw-r--r--net-news/newsboat/newsboat-2.30.1.ebuild175
-rw-r--r--net-news/newsboat/newsboat-2.34-r1.ebuild (renamed from net-news/newsboat/newsboat-2.34.ebuild)3
-rw-r--r--net-p2p/arti/arti-1.2.6-r1.ebuild (renamed from net-p2p/arti/arti-1.2.6.ebuild)0
-rw-r--r--net-p2p/arti/arti-1.2.7-r1.ebuild (renamed from net-p2p/arti/arti-1.2.7.ebuild)0
-rw-r--r--net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild (renamed from net-vpn/vpncloud/vpncloud-2.3.0-r1.ebuild)0
-rw-r--r--profiles/arch/mips/package.use.mask4
-rw-r--r--profiles/features/wd40/README2
-rw-r--r--profiles/features/wd40/package.use.mask4
-rw-r--r--profiles/package.mask36
-rw-r--r--sci-calculators/xsv/xsv-0.13.0-r1.ebuild2
-rw-r--r--sci-libs/safetensors/safetensors-0.4.3-r1.ebuild (renamed from sci-libs/safetensors/safetensors-0.4.3.ebuild)0
-rw-r--r--sci-libs/safetensors/safetensors-0.4.5-r1.ebuild (renamed from sci-libs/safetensors/safetensors-0.4.5.ebuild)0
-rw-r--r--sci-libs/tokenizers/tokenizers-0.20.1-r1.ebuild (renamed from sci-libs/tokenizers/tokenizers-0.20.1.ebuild)5
-rw-r--r--sys-apps/amdgpu_top/amdgpu_top-0.7.0-r1.ebuild (renamed from sys-apps/amdgpu_top/amdgpu_top-0.7.0.ebuild)3
-rw-r--r--sys-apps/amdgpu_top/amdgpu_top-0.9.1-r1.ebuild (renamed from sys-apps/amdgpu_top/amdgpu_top-0.9.1.ebuild)0
-rw-r--r--sys-apps/asahi-bless/asahi-bless-0.3.0-r1.ebuild (renamed from sys-apps/asahi-bless/asahi-bless-0.3.0.ebuild)5
-rw-r--r--sys-apps/asahi-nvram/asahi-nvram-0.2.1-r1.ebuild (renamed from sys-apps/asahi-nvram/asahi-nvram-0.2.1.ebuild)5
-rw-r--r--sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3-r1.ebuild (renamed from sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3.ebuild)0
-rw-r--r--sys-apps/bat/bat-0.23.0-r2.ebuild (renamed from sys-apps/bat/bat-0.23.0-r1.ebuild)0
-rw-r--r--sys-apps/bat/bat-0.24.0-r2.ebuild (renamed from sys-apps/bat/bat-0.24.0-r1.ebuild)0
-rw-r--r--sys-apps/cyme/cyme-2.0.0-r1.ebuild (renamed from sys-apps/cyme/cyme-2.0.0.ebuild)0
-rw-r--r--sys-apps/cyme/cyme-2.1.0-r1.ebuild (renamed from sys-apps/cyme/cyme-2.1.0.ebuild)0
-rw-r--r--sys-apps/eza/eza-0.18.16-r1.ebuild (renamed from sys-apps/eza/eza-0.18.16.ebuild)1
-rw-r--r--sys-apps/eza/eza-0.19.0-r1.ebuild (renamed from sys-apps/eza/eza-0.19.0.ebuild)1
-rw-r--r--sys-apps/eza/eza-0.19.2-r1.ebuild (renamed from sys-apps/eza/eza-0.19.2.ebuild)1
-rw-r--r--sys-apps/eza/eza-0.20.0-r1.ebuild (renamed from sys-apps/eza/eza-0.20.0.ebuild)1
-rw-r--r--sys-apps/fd/fd-10.2.0-r1.ebuild (renamed from sys-apps/fd/fd-10.2.0.ebuild)5
-rw-r--r--sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0-r1.ebuild161
-rw-r--r--sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0.ebuild161
-rw-r--r--sys-apps/ipmi-fan-control/ipmi-fan-control-9999.ebuild2
-rw-r--r--sys-apps/lsd/lsd-1.1.3-r1.ebuild (renamed from sys-apps/lsd/lsd-1.1.3.ebuild)0
-rw-r--r--sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14-r1.ebuild (renamed from sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15.ebuild)11
-rw-r--r--sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15-r1.ebuild (renamed from sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16.ebuild)12
-rw-r--r--sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16-r1.ebuild (renamed from sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14.ebuild)18
-rw-r--r--sys-apps/pkgcraft-tools/pkgcraft-tools-9999.ebuild10
-rw-r--r--sys-apps/ripgrep/ripgrep-14.1.1-r1.ebuild (renamed from sys-apps/ripgrep/ripgrep-14.1.1.ebuild)3
-rw-r--r--sys-apps/systemctl-tui/systemctl-tui-0.3.4-r1.ebuild (renamed from sys-apps/systemctl-tui/systemctl-tui-0.3.4.ebuild)0
-rw-r--r--sys-apps/uutils-coreutils/uutils-coreutils-0.0.25-r1.ebuild (renamed from sys-apps/uutils-coreutils/uutils-coreutils-0.0.25.ebuild)1
-rw-r--r--sys-apps/uutils-coreutils/uutils-coreutils-0.0.27-r1.ebuild (renamed from sys-apps/uutils-coreutils/uutils-coreutils-0.0.27.ebuild)1
-rw-r--r--sys-apps/uutils-coreutils/uutils-coreutils-9999.ebuild1
-rw-r--r--sys-apps/uutils-findutils/uutils-findutils-0.4.2-r1.ebuild15
-rw-r--r--sys-apps/uutils-findutils/uutils-findutils-0.5.0-r1.ebuild (renamed from sys-apps/uutils-findutils/uutils-findutils-0.5.0.ebuild)6
-rw-r--r--sys-apps/uutils-findutils/uutils-findutils-9999.ebuild3
-rw-r--r--sys-apps/zram-generator/zram-generator-1.1.2-r1.ebuild (renamed from sys-apps/zram-generator/zram-generator-1.1.2.ebuild)83
-rw-r--r--sys-block/dust/dust-1.1.1-r1.ebuild (renamed from sys-block/dust/dust-1.1.1.ebuild)0
-rw-r--r--sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10-r1.ebuild (renamed from sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10.ebuild)0
-rw-r--r--sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13-r1.ebuild (renamed from sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13.ebuild)0
-rw-r--r--sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild (renamed from sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14.ebuild)2
-rw-r--r--sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild (renamed from sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r1.ebuild)2
-rw-r--r--sys-devel/gcc/gcc-8.5.0-r2.ebuild (renamed from sys-devel/gcc/gcc-8.5.0-r1.ebuild)2
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-1.11.0-r1.ebuild (renamed from sys-fs/bcachefs-tools/bcachefs-tools-1.11.0.ebuild)3
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-1.13.0-r1.ebuild (renamed from sys-fs/bcachefs-tools/bcachefs-tools-1.13.0.ebuild)4
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-1.7.0-r1.ebuild (renamed from sys-fs/bcachefs-tools/bcachefs-tools-1.7.0.ebuild)3
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-1.9.4-r1.ebuild (renamed from sys-fs/bcachefs-tools/bcachefs-tools-1.9.4.ebuild)3
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-9999.ebuild1
-rw-r--r--sys-kernel/scx/scx-1.0.5-r2.ebuild (renamed from sys-kernel/scx/scx-1.0.5-r1.ebuild)6
-rw-r--r--sys-kernel/scx/scx-1.0.6-r1.ebuild (renamed from sys-kernel/scx/scx-1.0.6.ebuild)6
-rw-r--r--sys-libs/pkgcraft/pkgcraft-0.0.14-r1.ebuild (renamed from sys-libs/pkgcraft/pkgcraft-0.0.15.ebuild)2
-rw-r--r--sys-libs/pkgcraft/pkgcraft-0.0.15-r1.ebuild (renamed from sys-libs/pkgcraft/pkgcraft-0.0.14.ebuild)3
-rw-r--r--sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild (renamed from sys-libs/pkgcraft/pkgcraft-0.0.16.ebuild)4
-rw-r--r--sys-libs/pkgcraft/pkgcraft-9999.ebuild1
-rw-r--r--sys-power/wluma/wluma-4.3.0-r3.ebuild (renamed from sys-power/wluma/wluma-4.3.0-r2.ebuild)0
-rw-r--r--sys-power/wluma/wluma-4.4.0-r2.ebuild (renamed from sys-power/wluma/wluma-4.4.0-r1.ebuild)0
-rw-r--r--sys-process/below/below-0.8.1-r1.ebuild (renamed from sys-process/below/below-0.8.1.ebuild)3
-rw-r--r--sys-process/bottom/bottom-0.10.1-r1.ebuild (renamed from sys-process/bottom/bottom-0.10.1.ebuild)0
-rw-r--r--sys-process/bottom/bottom-0.10.2-r1.ebuild (renamed from sys-process/bottom/bottom-0.10.2.ebuild)0
-rw-r--r--sys-process/procs/procs-0.14.5-r1.ebuild (renamed from sys-process/procs/procs-0.14.5.ebuild)4
-rw-r--r--sys-process/procs/procs-0.14.6-r1.ebuild (renamed from sys-process/procs/procs-0.14.6.ebuild)4
-rw-r--r--www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0-r1.ebuild (renamed from www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0.ebuild)0
-rw-r--r--www-client/chromium/chromium-129.0.6668.100-r1.ebuild (renamed from www-client/chromium/chromium-129.0.6668.100.ebuild)143
-rw-r--r--www-client/chromium/chromium-130.0.6723.116-r1.ebuild (renamed from www-client/chromium/chromium-130.0.6723.116.ebuild)180
-rw-r--r--www-client/chromium/chromium-130.0.6723.91-r1.ebuild (renamed from www-client/chromium/chromium-130.0.6723.91.ebuild)147
-rw-r--r--www-client/chromium/chromium-131.0.6753.0-r1.ebuild (renamed from www-client/chromium/chromium-131.0.6753.0.ebuild)137
-rw-r--r--www-client/chromium/chromium-131.0.6778.24-r1.ebuild (renamed from www-client/chromium/chromium-131.0.6778.24.ebuild)139
-rw-r--r--www-client/firefox/firefox-115.16.1-r1.ebuild (renamed from www-client/firefox/firefox-115.16.1.ebuild)68
-rw-r--r--www-client/firefox/firefox-128.3.1-r1.ebuild (renamed from www-client/firefox/firefox-128.3.1.ebuild)15
-rw-r--r--www-client/firefox/firefox-128.4.0-r1.ebuild (renamed from www-client/firefox/firefox-128.4.0.ebuild)17
-rw-r--r--www-client/firefox/firefox-131.0.3-r1.ebuild (renamed from www-client/firefox/firefox-131.0.3.ebuild)17
-rw-r--r--www-client/firefox/firefox-132.0-r1.ebuild (renamed from www-client/firefox/firefox-132.0.ebuild)87
-rw-r--r--www-client/firefox/firefox-132.0.1-r1.ebuild (renamed from www-client/firefox/firefox-132.0.1.ebuild)87
-rw-r--r--www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild (renamed from www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild)4
-rw-r--r--www-client/seamonkey/seamonkey-2.53.19-r1.ebuild (renamed from www-client/seamonkey/seamonkey-2.53.19.ebuild)4
-rw-r--r--x11-terms/alacritty/alacritty-0.12.3-r1.ebuild362
-rw-r--r--x11-terms/alacritty/alacritty-0.12.3.ebuild364
-rw-r--r--x11-terms/alacritty/alacritty-0.13.2-r1.ebuild (renamed from x11-terms/alacritty/alacritty-0.13.2.ebuild)1
-rw-r--r--x11-terms/alacritty/alacritty-0.14.0-r1.ebuild (renamed from x11-terms/alacritty/alacritty-0.14.0.ebuild)3
-rw-r--r--x11-terms/alacritty/alacritty-9999.ebuild6
-rw-r--r--x11-terms/wezterm/wezterm-20240203.110809-r2.ebuild (renamed from x11-terms/wezterm/wezterm-20240203.110809-r1.ebuild)4
417 files changed, 13661 insertions, 5296 deletions
diff --git a/app-antivirus/clamav/clamav-1.0.5.ebuild b/app-antivirus/clamav/clamav-1.0.5-r1.ebuild
index 5759a6890ff1..50043bc0c4d6 100644
--- a/app-antivirus/clamav/clamav-1.0.5.ebuild
+++ b/app-antivirus/clamav/clamav-1.0.5-r1.ebuild
@@ -202,11 +202,8 @@ COMMON_DEPEND="
test? ( dev-python/pytest )
"
-# rust-bin < 1.71 has an executable stack
-# which is not supported on selinux #911589
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.71
doc? ( app-text/doxygen )
test? (
${PYTHON_DEPS}
diff --git a/app-antivirus/clamav/clamav-1.0.7.ebuild b/app-antivirus/clamav/clamav-1.0.7-r1.ebuild
index 70d983eb73e3..571fa8143a9b 100644
--- a/app-antivirus/clamav/clamav-1.0.7.ebuild
+++ b/app-antivirus/clamav/clamav-1.0.7-r1.ebuild
@@ -204,11 +204,8 @@ COMMON_DEPEND="
test? ( dev-python/pytest )
"
-# rust-bin < 1.71 has an executable stack
-# which is not supported on selinux #911589
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.71
doc? ( app-text/doxygen )
test? (
${PYTHON_DEPS}
diff --git a/app-antivirus/clamav/clamav-1.2.2.ebuild b/app-antivirus/clamav/clamav-1.2.2-r1.ebuild
index a7f3533276d6..aa5502025906 100644
--- a/app-antivirus/clamav/clamav-1.2.2.ebuild
+++ b/app-antivirus/clamav/clamav-1.2.2-r1.ebuild
@@ -197,11 +197,9 @@ COMMON_DEPEND="
system-mspack? ( dev-libs/libmspack )
test? ( dev-python/pytest )
"
-# rust-bin < 1.71 has an executable stack
-# which is not supported on selinux #911589
+
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.71
doc? ( app-text/doxygen )
test? (
${PYTHON_DEPS}
diff --git a/app-antivirus/clamav/clamav-1.4.1-r1.ebuild b/app-antivirus/clamav/clamav-1.4.1-r2.ebuild
index e5e30c4f8dc5..296e17179a3a 100644
--- a/app-antivirus/clamav/clamav-1.4.1-r1.ebuild
+++ b/app-antivirus/clamav/clamav-1.4.1-r2.ebuild
@@ -206,11 +206,9 @@ COMMON_DEPEND="
system-mspack? ( dev-libs/libmspack )
test? ( dev-python/pytest )
"
-# rust-bin < 1.71 has an executable stack
-# which is not supported on selinux #911589
+
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.71
doc? ( app-text/doxygen )
test? (
${PYTHON_DEPS}
diff --git a/app-backup/rdedup/rdedup-1.0.2-r1.ebuild b/app-backup/rdedup/rdedup-1.0.2-r2.ebuild
index b5cc8252eaf7..b5cc8252eaf7 100644
--- a/app-backup/rdedup/rdedup-1.0.2-r1.ebuild
+++ b/app-backup/rdedup/rdedup-1.0.2-r2.ebuild
diff --git a/app-benchmarks/hyperfine/hyperfine-1.18.0.ebuild b/app-benchmarks/hyperfine/hyperfine-1.18.0-r1.ebuild
index 4275055e68c6..c293416066e5 100644
--- a/app-benchmarks/hyperfine/hyperfine-1.18.0.ebuild
+++ b/app-benchmarks/hyperfine/hyperfine-1.18.0-r1.ebuild
@@ -179,8 +179,6 @@ LICENSE+=" Apache-2.0 BSD-2 BSD ISC MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv"
-BDEPEND=">=virtual/rust-1.70.0"
-
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_prepare() {
diff --git a/app-containers/aardvark-dns/aardvark-dns-1.10.0.ebuild b/app-containers/aardvark-dns/aardvark-dns-1.10.0-r1.ebuild
index 3f6fb3a7a9f2..3f6fb3a7a9f2 100644
--- a/app-containers/aardvark-dns/aardvark-dns-1.10.0.ebuild
+++ b/app-containers/aardvark-dns/aardvark-dns-1.10.0-r1.ebuild
diff --git a/app-containers/aardvark-dns/aardvark-dns-1.11.0.ebuild b/app-containers/aardvark-dns/aardvark-dns-1.11.0-r1.ebuild
index ff2bd6fba837..ff2bd6fba837 100644
--- a/app-containers/aardvark-dns/aardvark-dns-1.11.0.ebuild
+++ b/app-containers/aardvark-dns/aardvark-dns-1.11.0-r1.ebuild
diff --git a/app-containers/aardvark-dns/aardvark-dns-1.12.2.ebuild b/app-containers/aardvark-dns/aardvark-dns-1.12.2-r1.ebuild
index 6eb7550f45c2..6eb7550f45c2 100644
--- a/app-containers/aardvark-dns/aardvark-dns-1.12.2.ebuild
+++ b/app-containers/aardvark-dns/aardvark-dns-1.12.2-r1.ebuild
diff --git a/app-containers/aardvark-dns/aardvark-dns-1.9.0.ebuild b/app-containers/aardvark-dns/aardvark-dns-1.9.0-r1.ebuild
index 3f6fb3a7a9f2..3f6fb3a7a9f2 100644
--- a/app-containers/aardvark-dns/aardvark-dns-1.9.0.ebuild
+++ b/app-containers/aardvark-dns/aardvark-dns-1.9.0-r1.ebuild
diff --git a/app-containers/netavark/netavark-1.10.2.ebuild b/app-containers/netavark/netavark-1.10.2-r1.ebuild
index 42ba29c8332d..42ba29c8332d 100644
--- a/app-containers/netavark/netavark-1.10.2.ebuild
+++ b/app-containers/netavark/netavark-1.10.2-r1.ebuild
diff --git a/app-containers/netavark/netavark-1.10.3.ebuild b/app-containers/netavark/netavark-1.10.3-r1.ebuild
index 499417f28d96..499417f28d96 100644
--- a/app-containers/netavark/netavark-1.10.3.ebuild
+++ b/app-containers/netavark/netavark-1.10.3-r1.ebuild
diff --git a/app-containers/netavark/netavark-1.11.0.ebuild b/app-containers/netavark/netavark-1.11.0-r1.ebuild
index 81168b09df45..81168b09df45 100644
--- a/app-containers/netavark/netavark-1.11.0.ebuild
+++ b/app-containers/netavark/netavark-1.11.0-r1.ebuild
diff --git a/app-containers/netavark/netavark-1.12.2.ebuild b/app-containers/netavark/netavark-1.12.2-r1.ebuild
index 81168b09df45..81168b09df45 100644
--- a/app-containers/netavark/netavark-1.12.2.ebuild
+++ b/app-containers/netavark/netavark-1.12.2-r1.ebuild
diff --git a/app-containers/netavark/netavark-1.9.0.ebuild b/app-containers/netavark/netavark-1.9.0-r1.ebuild
index 499417f28d96..499417f28d96 100644
--- a/app-containers/netavark/netavark-1.9.0.ebuild
+++ b/app-containers/netavark/netavark-1.9.0-r1.ebuild
diff --git a/app-crypt/nitrocli/nitrocli-0.4.1.ebuild b/app-crypt/nitrocli/nitrocli-0.4.1-r1.ebuild
index f41366c4a624..1c560a2e5176 100644
--- a/app-crypt/nitrocli/nitrocli-0.4.1.ebuild
+++ b/app-crypt/nitrocli/nitrocli-0.4.1-r1.ebuild
@@ -4,75 +4,75 @@
EAPI=8
CRATES="
-aho-corasick-0.7.18
-anyhow-1.0.40
-autocfg-1.0.1
-base32-0.4.0
-bitflags-1.2.1
-cc-1.0.67
-cfg-if-1.0.0
-clap-2.33.3
-directories-3.0.2
-dirs-sys-0.3.6
-envy-0.4.2
-getrandom-0.1.16
-getrandom-0.2.2
-heck-0.3.2
-lazy_static-1.4.0
-libc-0.2.146
-log-0.4.14
-memchr-2.4.0
-merge-0.1.0
-merge_derive-0.1.0
-nitrocli-0.4.1
-nitrokey-0.9.0
-nitrokey-sys-3.6.0
-nitrokey-test-0.5.0
-nitrokey-test-state-0.1.0
-num-traits-0.2.14
-numtoa-0.1.0
-ppv-lite86-0.2.10
-proc-macro-error-1.0.4
-proc-macro-error-attr-1.0.4
-proc-macro2-1.0.26
-progressing-3.0.2
-quote-1.0.9
-rand-0.8.3
-rand_chacha-0.3.0
-rand_core-0.5.1
-rand_core-0.6.2
-rand_hc-0.3.0
-redox_syscall-0.2.8
-redox_termios-0.1.2
-redox_users-0.4.0
-regex-1.5.4
-regex-syntax-0.6.25
-remove_dir_all-0.5.3
-serde-1.0.125
-serde_derive-1.0.125
-structopt-0.3.21
-structopt-derive-0.4.14
-syn-1.0.72
-tempfile-3.2.0
-termion-1.5.6
-textwrap-0.11.0
-toml-0.5.8
-unicode-segmentation-1.7.1
-unicode-width-0.1.8
-unicode-xid-0.2.2
-version_check-0.9.3
-wasi-0.9.0+wasi-snapshot-preview1
-wasi-0.10.2+wasi-snapshot-preview1
-winapi-0.3.9
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
+ aho-corasick@0.7.18
+ anyhow@1.0.40
+ autocfg@1.0.1
+ base32@0.4.0
+ bitflags@1.2.1
+ cc@1.0.67
+ cfg-if@1.0.0
+ clap@2.33.3
+ directories@3.0.2
+ dirs-sys@0.3.6
+ envy@0.4.2
+ getrandom@0.1.16
+ getrandom@0.2.2
+ heck@0.3.2
+ lazy_static@1.4.0
+ libc@0.2.146
+ log@0.4.14
+ memchr@2.4.0
+ merge@0.1.0
+ merge_derive@0.1.0
+ nitrocli@0.4.1
+ nitrokey@0.9.0
+ nitrokey-sys@3.6.0
+ nitrokey-test@0.5.0
+ nitrokey-test-state@0.1.0
+ num-traits@0.2.14
+ numtoa@0.1.0
+ ppv-lite86@0.2.10
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.26
+ progressing@3.0.2
+ quote@1.0.9
+ rand@0.8.3
+ rand_chacha@0.3.0
+ rand_core@0.5.1
+ rand_core@0.6.2
+ rand_hc@0.3.0
+ redox_syscall@0.2.8
+ redox_termios@0.1.2
+ redox_users@0.4.0
+ regex@1.5.4
+ regex-syntax@0.6.25
+ remove_dir_all@0.5.3
+ serde@1.0.125
+ serde_derive@1.0.125
+ structopt@0.3.21
+ structopt-derive@0.4.14
+ syn@1.0.72
+ tempfile@3.2.0
+ termion@1.5.6
+ textwrap@0.11.0
+ toml@0.5.8
+ unicode-segmentation@1.7.1
+ unicode-width@0.1.8
+ unicode-xid@0.2.2
+ version_check@0.9.3
+ wasi@0.9.0+wasi-snapshot-preview1
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
"
inherit bash-completion-r1 cargo
DESCRIPTION="A command line tool for interacting with Nitrokey devices"
HOMEPAGE="https://github.com/d-e-s-o/nitrocli"
-SRC_URI="$(cargo_crate_uris)"
+SRC_URI="${CARGO_CRATE_URIS}"
LICENSE="Apache-2.0 BSD-2 CC0-1.0 GPL-3+ LGPL-3 MIT"
SLOT="0"
diff --git a/app-crypt/rpm-sequoia/rpm-sequoia-1.6.0.ebuild b/app-crypt/rpm-sequoia/rpm-sequoia-1.6.0-r1.ebuild
index da34f4210ca1..f4f0fd4e2697 100644
--- a/app-crypt/rpm-sequoia/rpm-sequoia-1.6.0.ebuild
+++ b/app-crypt/rpm-sequoia/rpm-sequoia-1.6.0-r1.ebuild
@@ -235,9 +235,10 @@ CRATES="
zeroize_derive@1.4.2
"
-LLVM_MAX_SLOT=17
+LLVM_COMPAT=( 17 )
+RUST_NEEDS_LLVM=1
-inherit cargo llvm
+inherit llvm-r1 cargo
DESCRIPTION="Implementation of the RPM PGP interface using Sequoia"
HOMEPAGE="https://sequoia-pgp.org/ https://github.com/rpm-software-management/rpm-sequoia"
@@ -265,11 +266,16 @@ RDEPEND="${DEPEND}"
# Clang is required for bindgen
BDEPEND="
virtual/pkgconfig
- nettle? ( <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)) )
+ nettle? ( $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}') )
"
QA_FLAGS_IGNORED="usr/lib.*/librpm_sequoia.so.1"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
llvm_check_deps() {
if use nettle; then
has_version -b "sys-devel/clang:${LLVM_SLOT}"
diff --git a/app-crypt/rpm-sequoia/rpm-sequoia-1.7.0.ebuild b/app-crypt/rpm-sequoia/rpm-sequoia-1.7.0-r1.ebuild
index 082e1f09d371..9f361d92c6c6 100644
--- a/app-crypt/rpm-sequoia/rpm-sequoia-1.7.0.ebuild
+++ b/app-crypt/rpm-sequoia/rpm-sequoia-1.7.0-r1.ebuild
@@ -248,9 +248,11 @@ CRATES="
zerovec@0.10.4
"
-LLVM_COMPAT=( {17..18} )
+LLVM_COMPAT=( 17 18 )
+RUST_MIN_VER="1.74.1"
+RUST_NEEDS_LLVM=1
-inherit cargo llvm-r1
+inherit llvm-r1 cargo
DESCRIPTION="Implementation of the RPM PGP interface using Sequoia"
HOMEPAGE="https://sequoia-pgp.org/ https://github.com/rpm-software-management/rpm-sequoia"
@@ -282,12 +284,16 @@ RDEPEND="${DEPEND}"
# Clang is required for bindgen
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.73
nettle? ( $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}') )
"
QA_FLAGS_IGNORED="usr/lib.*/librpm_sequoia.so.1"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_configure() {
local myfeatures=(
$(usev nettle crypto-nettle)
diff --git a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0.ebuild b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0-r1.ebuild
index 48f2892554d8..280dbafde49f 100644
--- a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0.ebuild
+++ b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.0-r1.ebuild
@@ -394,8 +394,10 @@ CRATES="
zerovec@0.10.2
"
-LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1 xdg-utils
+LLVM_COMPAT=( 17 18 )
+RUST_NEEDS_LLVM=1
+
+inherit llvm-r1 cargo xdg-utils
DESCRIPTION="Sequoia's reimplementation of the GnuPG interface"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/"
@@ -429,11 +431,15 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED="usr/bin/gpg-sq usr/bin/gpgv-sq"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_test() {
local -x GNUPGHOME="${T}"/.gnupg
local -x REAL_GPG_BIN="${BROOT}"/usr/bin/gpg
diff --git a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1.ebuild b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1-r1.ebuild
index c9deedb94c85..7fc3f4de8de3 100644
--- a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1.ebuild
+++ b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.10.1-r1.ebuild
@@ -392,8 +392,10 @@ CRATES="
zerovec@0.10.3
"
-LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1 xdg-utils
+LLVM_COMPAT=( 17 18 )
+RUST_NEEDS_LLVM=1
+
+inherit llvm-r1 cargo xdg-utils
DESCRIPTION="Sequoia's reimplementation of the GnuPG interface"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/"
@@ -427,11 +429,15 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED="usr/bin/gpg-sq usr/bin/gpgv-sq"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_test() {
local -x GNUPGHOME="${T}"/.gnupg
local -x REAL_GPG_BIN="${BROOT}"/usr/bin/gpg
diff --git a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0.ebuild b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0-r1.ebuild
index b76dcfd07db1..b38f75ac05fc 100644
--- a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0.ebuild
+++ b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.8.0-r1.ebuild
@@ -365,8 +365,10 @@ CRATES="
zeroize@1.7.0
"
-LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1 xdg-utils
+LLVM_COMPAT=( 17 18 )
+RUST_NEEDS_LLVM=1
+
+inherit llvm-r1 cargo xdg-utils
DESCRIPTION="Sequoia's reimplementation of the GnuPG interface"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/"
@@ -400,11 +402,15 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED="usr/bin/gpg-sq usr/bin/gpgv-sq"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_test() {
local -x GNUPGHOME="${T}"/.gnupg
local -x REAL_GPG_BIN="${BROOT}"/usr/bin/gpg
diff --git a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0.ebuild b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0-r1.ebuild
index b28c6c443ec4..0e53cf510e24 100644
--- a/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0.ebuild
+++ b/app-crypt/sequoia-chameleon-gnupg/sequoia-chameleon-gnupg-0.9.0-r1.ebuild
@@ -368,8 +368,10 @@ CRATES="
zeroize@1.7.0
"
-LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1 xdg-utils
+LLVM_COMPAT=( 17 18 )
+RUST_NEEDS_LLVM=1
+
+inherit llvm-r1 cargo xdg-utils
DESCRIPTION="Sequoia's reimplementation of the GnuPG interface"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/"
@@ -403,11 +405,15 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED="usr/bin/gpg-sq usr/bin/gpgv-sq"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_test() {
local -x GNUPGHOME="${T}"/.gnupg
local -x REAL_GPG_BIN="${BROOT}"/usr/bin/gpg
diff --git a/app-crypt/sequoia-sq/sequoia-sq-0.35.0.ebuild b/app-crypt/sequoia-sq/sequoia-sq-0.35.0-r1.ebuild
index 5ff711b14f9a..e1cdf632523b 100644
--- a/app-crypt/sequoia-sq/sequoia-sq-0.35.0.ebuild
+++ b/app-crypt/sequoia-sq/sequoia-sq-0.35.0-r1.ebuild
@@ -487,7 +487,7 @@ CRATES="
LLVM_COMPAT=( {16..17} )
-inherit cargo shell-completion llvm-r1
+inherit llvm-r1 cargo shell-completion
DESCRIPTION="CLI of the Sequoia OpenPGP implementation"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-sq"
@@ -528,9 +528,13 @@ BDEPEND="
sys-devel/clang:${LLVM_SLOT}
')
virtual/pkgconfig
- >=virtual/rust-1.70
"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_compile() {
# Set this here so that it doesn't change if we run tests
# and cause a recompilation.
diff --git a/app-crypt/sequoia-sq/sequoia-sq-0.36.0.ebuild b/app-crypt/sequoia-sq/sequoia-sq-0.36.0-r1.ebuild
index b2cd91a0baa2..5434f7d3b001 100644
--- a/app-crypt/sequoia-sq/sequoia-sq-0.36.0.ebuild
+++ b/app-crypt/sequoia-sq/sequoia-sq-0.36.0-r1.ebuild
@@ -491,7 +491,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
-inherit cargo shell-completion llvm-r1
+inherit llvm-r1 cargo shell-completion
DESCRIPTION="CLI of the Sequoia OpenPGP implementation"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-sq"
@@ -532,9 +532,13 @@ BDEPEND="
sys-devel/clang:${LLVM_SLOT}
')
virtual/pkgconfig
- >=virtual/rust-1.70
"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_compile() {
# Set this here so that it doesn't change if we run tests
# and cause a recompilation.
diff --git a/app-crypt/sequoia-sq/sequoia-sq-0.37.0.ebuild b/app-crypt/sequoia-sq/sequoia-sq-0.37.0-r1.ebuild
index 03427bf5486d..ce8075c0d2dc 100644
--- a/app-crypt/sequoia-sq/sequoia-sq-0.37.0.ebuild
+++ b/app-crypt/sequoia-sq/sequoia-sq-0.37.0-r1.ebuild
@@ -517,7 +517,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
-inherit cargo shell-completion llvm-r1
+inherit llvm-r1 cargo shell-completion
DESCRIPTION="CLI of the Sequoia OpenPGP implementation"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-sq"
@@ -558,9 +558,13 @@ BDEPEND="
sys-devel/clang:${LLVM_SLOT}
')
virtual/pkgconfig
- >=virtual/rust-1.70
"
+pkg_setup() {
+ llvm_r1_pkg_setup
+ rust_pkg_setup
+}
+
src_compile() {
# Set this here so that it doesn't change if we run tests
# and cause a recompilation.
diff --git a/app-crypt/sequoia-sqv/sequoia-sqv-1.2.1.ebuild b/app-crypt/sequoia-sqv/sequoia-sqv-1.2.1-r1.ebuild
index 4352e534ebb9..cd4d8540631c 100644
--- a/app-crypt/sequoia-sqv/sequoia-sqv-1.2.1.ebuild
+++ b/app-crypt/sequoia-sqv/sequoia-sqv-1.2.1-r1.ebuild
@@ -251,8 +251,9 @@ CRATES="
"
LLVM_COMPAT=( {17..18} )
+RUST_NEEDS_LLVM=1
-inherit bash-completion-r1 cargo llvm-r1
+inherit bash-completion-r1 llvm-r1 cargo
DESCRIPTION="A simple OpenPGP signature verification program"
HOMEPAGE="https://sequoia-pgp.org/ https://gitlab.com/sequoia-pgp/sequoia-sqv"
@@ -290,6 +291,11 @@ BDEPEND="
virtual/pkgconfig
"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_compile() {
# Set this here so that it doesn't change if we run tests
# and cause a recompilation.
diff --git a/app-editors/helix/helix-24.03-r1.ebuild b/app-editors/helix/helix-24.03-r2.ebuild
index 46ee3c25397e..46ee3c25397e 100644
--- a/app-editors/helix/helix-24.03-r1.ebuild
+++ b/app-editors/helix/helix-24.03-r2.ebuild
diff --git a/app-editors/helix/helix-24.07.ebuild b/app-editors/helix/helix-24.07-r1.ebuild
index 89deeb654e5f..23c9065f87bd 100644
--- a/app-editors/helix/helix-24.07.ebuild
+++ b/app-editors/helix/helix-24.07-r1.ebuild
@@ -311,6 +311,7 @@ pkg_setup() {
"
export HELIX_DEFAULT_RUNTIME="${EPREFIX}/usr/share/${PN}/runtime"
use grammar || export HELIX_DISABLE_AUTO_GRAMMAR_BUILD=1
+ rust_pkg_setup
}
src_install() {
diff --git a/app-editors/zed/zed-0.155.2.ebuild b/app-editors/zed/zed-0.155.2-r1.ebuild
index b4cace50d25f..7ac2746fed38 100644
--- a/app-editors/zed/zed-0.155.2.ebuild
+++ b/app-editors/zed/zed-0.155.2-r1.ebuild
@@ -31,8 +31,10 @@ declare -A GIT_CRATES=(
)
LLVM_COMPAT=( 18 )
+RUST_MIN_VER="1.80.1"
+RUST_NEEDS_LLVM=1
-inherit cargo check-reqs desktop flag-o-matic llvm-r1 toolchain-funcs xdg
+inherit llvm-r1 cargo check-reqs desktop flag-o-matic toolchain-funcs xdg
DESCRIPTION="The fast, collaborative code editor"
HOMEPAGE="https://zed.dev https://github.com/zed-industries/zed"
@@ -74,7 +76,6 @@ DEPEND="
"
RDEPEND="${DEPEND}"
BDEPEND="
- >=virtual/rust-1.80.0
dev-util/vulkan-headers
sys-devel/gettext
sys-devel/mold
@@ -97,6 +98,8 @@ pkg_setup() {
export RUSTFLAGS="${RUSTFLAGS} -C symbol-mangling-version=v0 --cfg tokio_unstable -C link-arg=-fuse-ld=mold -C link-args=-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib"
# linking error with llvm-18
export RUSTFLAGS="${RUSTFLAGS} -C link-args=-Wl,-z,nostart-stop-gc"
+ llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_prepare() {
diff --git a/app-editors/zed/zed-0.159.10.ebuild b/app-editors/zed/zed-0.159.10-r1.ebuild
index 63b11db2c3dd..6b5c07a29c86 100644
--- a/app-editors/zed/zed-0.159.10.ebuild
+++ b/app-editors/zed/zed-0.159.10-r1.ebuild
@@ -55,8 +55,10 @@ declare -A GIT_CRATES=(
)
LLVM_COMPAT=( 18 )
+RUST_MIN_VER="1.80.1"
+RUST_NEEDS_LLVM=1
-inherit cargo check-reqs desktop flag-o-matic llvm-r1 toolchain-funcs xdg
+inherit llvm-r1 cargo check-reqs desktop flag-o-matic toolchain-funcs xdg
DESCRIPTION="The fast, collaborative code editor"
HOMEPAGE="https://zed.dev https://github.com/zed-industries/zed"
@@ -103,7 +105,6 @@ BDEPEND="
dev-util/vulkan-headers
sys-devel/gettext
sys-devel/mold
- >=virtual/rust-1.80.0
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=
sys-devel/llvm:${LLVM_SLOT}=
@@ -126,6 +127,8 @@ pkg_setup() {
if use gles; then
export RUSTFLAGS="${RUSTFLAGS} --cfg gles"
fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_prepare() {
diff --git a/app-editors/zed/zed-0.160.7.ebuild b/app-editors/zed/zed-0.160.7-r1.ebuild
index 63b11db2c3dd..6b5c07a29c86 100644
--- a/app-editors/zed/zed-0.160.7.ebuild
+++ b/app-editors/zed/zed-0.160.7-r1.ebuild
@@ -55,8 +55,10 @@ declare -A GIT_CRATES=(
)
LLVM_COMPAT=( 18 )
+RUST_MIN_VER="1.80.1"
+RUST_NEEDS_LLVM=1
-inherit cargo check-reqs desktop flag-o-matic llvm-r1 toolchain-funcs xdg
+inherit llvm-r1 cargo check-reqs desktop flag-o-matic toolchain-funcs xdg
DESCRIPTION="The fast, collaborative code editor"
HOMEPAGE="https://zed.dev https://github.com/zed-industries/zed"
@@ -103,7 +105,6 @@ BDEPEND="
dev-util/vulkan-headers
sys-devel/gettext
sys-devel/mold
- >=virtual/rust-1.80.0
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=
sys-devel/llvm:${LLVM_SLOT}=
@@ -126,6 +127,8 @@ pkg_setup() {
if use gles; then
export RUSTFLAGS="${RUSTFLAGS} --cfg gles"
fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_prepare() {
diff --git a/app-emulation/ruffle/ruffle-0_p20240929.ebuild b/app-emulation/ruffle/ruffle-0_p20240929-r1.ebuild
index 2246aaa0a1de..2ca7a360fdef 100644
--- a/app-emulation/ruffle/ruffle-0_p20240929.ebuild
+++ b/app-emulation/ruffle/ruffle-0_p20240929-r1.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+RUST_MIN_VER="1.81.0"
+
inherit cargo desktop optfeature xdg
if [[ ${PV} == 9999 ]]; then
@@ -48,7 +50,6 @@ DEPEND="
BDEPEND="
virtual/jre:*
virtual/pkgconfig
- >=virtual/rust-1.81
"
QA_FLAGS_IGNORED="usr/bin/${PN}.*"
diff --git a/app-emulation/ruffle/ruffle-0_p20241027.ebuild b/app-emulation/ruffle/ruffle-0_p20241027-r1.ebuild
index fbb6ac59d57f..ed46221ee0c5 100644
--- a/app-emulation/ruffle/ruffle-0_p20241027.ebuild
+++ b/app-emulation/ruffle/ruffle-0_p20241027-r1.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+RUST_MIN_VER="1.81.0"
+
inherit cargo desktop optfeature xdg
if [[ ${PV} == 9999 ]]; then
@@ -48,7 +50,6 @@ DEPEND="
BDEPEND="
virtual/jre:*
virtual/pkgconfig
- >=virtual/rust-1.81
"
QA_FLAGS_IGNORED="usr/bin/${PN}.*"
diff --git a/app-emulation/ruffle/ruffle-9999.ebuild b/app-emulation/ruffle/ruffle-9999.ebuild
index fbb6ac59d57f..31372db61bf0 100644
--- a/app-emulation/ruffle/ruffle-9999.ebuild
+++ b/app-emulation/ruffle/ruffle-9999.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+RUST_MIN_VERSION="1.81.0"
+
inherit cargo desktop optfeature xdg
if [[ ${PV} == 9999 ]]; then
@@ -48,7 +50,6 @@ DEPEND="
BDEPEND="
virtual/jre:*
virtual/pkgconfig
- >=virtual/rust-1.81
"
QA_FLAGS_IGNORED="usr/bin/${PN}.*"
diff --git a/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild b/app-emulation/virtiofsd/virtiofsd-1.10.0-r1.ebuild
index 7358e8fdae58..7358e8fdae58 100644
--- a/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild
+++ b/app-emulation/virtiofsd/virtiofsd-1.10.0-r1.ebuild
diff --git a/app-emulation/virtiofsd/virtiofsd-1.10.1.ebuild b/app-emulation/virtiofsd/virtiofsd-1.10.1-r1.ebuild
index 7358e8fdae58..7358e8fdae58 100644
--- a/app-emulation/virtiofsd/virtiofsd-1.10.1.ebuild
+++ b/app-emulation/virtiofsd/virtiofsd-1.10.1-r1.ebuild
diff --git a/app-emulation/virtiofsd/virtiofsd-1.11.1.ebuild b/app-emulation/virtiofsd/virtiofsd-1.11.1-r1.ebuild
index 410c131a66b5..410c131a66b5 100644
--- a/app-emulation/virtiofsd/virtiofsd-1.11.1.ebuild
+++ b/app-emulation/virtiofsd/virtiofsd-1.11.1-r1.ebuild
diff --git a/app-forensics/yara-x/yara-x-0.5.0.ebuild b/app-forensics/yara-x/yara-x-0.5.0-r1.ebuild
index d658ac1b9717..d658ac1b9717 100644
--- a/app-forensics/yara-x/yara-x-0.5.0.ebuild
+++ b/app-forensics/yara-x/yara-x-0.5.0-r1.ebuild
diff --git a/app-forensics/yara-x/yara-x-0.6.0.ebuild b/app-forensics/yara-x/yara-x-0.6.0-r1.ebuild
index bca3d88152a2..bca3d88152a2 100644
--- a/app-forensics/yara-x/yara-x-0.6.0.ebuild
+++ b/app-forensics/yara-x/yara-x-0.6.0-r1.ebuild
diff --git a/app-forensics/yara-x/yara-x-0.7.0.ebuild b/app-forensics/yara-x/yara-x-0.7.0-r1.ebuild
index 1f95cf49b85c..1f95cf49b85c 100644
--- a/app-forensics/yara-x/yara-x-0.7.0.ebuild
+++ b/app-forensics/yara-x/yara-x-0.7.0-r1.ebuild
diff --git a/app-i18n/yaskkserv2/yaskkserv2-0.1.7-r1.ebuild b/app-i18n/yaskkserv2/yaskkserv2-0.1.7-r1.ebuild
new file mode 100644
index 000000000000..c3688574c714
--- /dev/null
+++ b/app-i18n/yaskkserv2/yaskkserv2-0.1.7-r1.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+CRATES="
+ addr2line@0.21.0
+ adler@1.0.2
+ aho-corasick@1.0.5
+ atty@0.2.14
+ autocfg@1.1.0
+ backtrace@0.3.69
+ base64@0.21.4
+ bincode@1.3.3
+ bitflags@1.3.2
+ bitflags@2.4.0
+ block-buffer@0.10.4
+ bumpalo@3.14.0
+ bytes@1.5.0
+ cc@1.0.83
+ cfg-if@1.0.0
+ clap@3.2.25
+ clap_lex@0.2.4
+ core-foundation@0.9.3
+ core-foundation-sys@0.8.4
+ cpufeatures@0.2.9
+ crypto-common@0.1.6
+ daemonize@0.5.0
+ digest@0.10.7
+ encoding_rs@0.8.33
+ env_logger@0.7.1
+ errno@0.3.3
+ errno-dragonfly@0.1.2
+ error-chain@0.11.0
+ fastrand@2.0.0
+ fnv@1.0.7
+ foreign-types@0.3.2
+ foreign-types-shared@0.1.1
+ form_urlencoded@1.2.0
+ futures-channel@0.3.28
+ futures-core@0.3.28
+ futures-io@0.3.28
+ futures-sink@0.3.28
+ futures-task@0.3.28
+ futures-util@0.3.28
+ generic-array@0.14.7
+ getrandom@0.2.10
+ gimli@0.28.0
+ h2@0.3.21
+ hashbrown@0.12.3
+ hermit-abi@0.1.19
+ hermit-abi@0.3.2
+ http@0.2.9
+ http-body@0.4.5
+ httparse@1.8.0
+ httpdate@1.0.3
+ humantime@1.3.0
+ hyper@0.14.27
+ hyper-tls@0.5.0
+ idna@0.4.0
+ indexmap@1.9.3
+ ipnet@2.8.0
+ itoa@1.0.9
+ js-sys@0.3.64
+ json@0.12.4
+ lazy_static@1.4.0
+ libc@0.2.148
+ linux-raw-sys@0.4.7
+ log@0.4.20
+ memchr@2.6.3
+ mime@0.3.17
+ miniz_oxide@0.7.1
+ mio@0.8.8
+ native-tls@0.2.11
+ num_cpus@1.16.0
+ object@0.32.1
+ once_cell@1.18.0
+ openssl@0.10.57
+ openssl-macros@0.1.1
+ openssl-probe@0.1.5
+ openssl-sys@0.9.93
+ os_str_bytes@6.5.1
+ percent-encoding@2.3.0
+ pin-project-lite@0.2.13
+ pin-utils@0.1.0
+ pkg-config@0.3.27
+ ppv-lite86@0.2.17
+ proc-macro2@1.0.67
+ quick-error@1.2.3
+ quote@1.0.33
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.3.5
+ regex@1.9.5
+ regex-automata@0.3.8
+ regex-syntax@0.7.5
+ reqwest@0.11.20
+ rustc-demangle@0.1.23
+ rustc-hash@1.1.0
+ rustix@0.38.13
+ ryu@1.0.15
+ schannel@0.1.22
+ security-framework@2.9.2
+ security-framework-sys@2.9.1
+ serde@1.0.188
+ serde_derive@1.0.188
+ serde_json@1.0.107
+ serde_urlencoded@0.7.1
+ sha1@0.10.5
+ slab@0.4.9
+ socket2@0.4.9
+ socket2@0.5.4
+ strsim@0.10.0
+ syn@2.0.33
+ syslog@4.0.1
+ tempfile@3.8.0
+ termcolor@1.2.0
+ textwrap@0.16.0
+ thiserror@1.0.48
+ thiserror-impl@1.0.48
+ time@0.1.45
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tokio@1.32.0
+ tokio-native-tls@0.3.1
+ tokio-util@0.7.8
+ tower-service@0.3.2
+ tracing@0.1.37
+ tracing-core@0.1.31
+ try-lock@0.2.4
+ twoway@0.2.2
+ typenum@1.16.0
+ unchecked-index@0.2.2
+ unicode-bidi@0.3.13
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.22
+ url@2.4.1
+ vcpkg@0.2.15
+ version_check@0.9.4
+ want@0.3.1
+ wasi@0.10.0+wasi-snapshot-preview1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen@0.2.87
+ wasm-bindgen-backend@0.2.87
+ wasm-bindgen-futures@0.4.37
+ wasm-bindgen-macro@0.2.87
+ wasm-bindgen-macro-support@0.2.87
+ wasm-bindgen-shared@0.2.87
+ web-sys@0.3.64
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+ winreg@0.50.0
+"
+TESTDATA="${PN}-testdata-202110"
+
+inherit cargo systemd
+
+DESCRIPTION="Yet Another SKK server"
+HOMEPAGE="https://github.com/wachikun/yaskkserv2"
+SRC_URI="https://github.com/wachikun/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+ test? ( https://dev.gentoo.org/~hattya/distfiles/${TESTDATA}.tar.xz )"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="dev-libs/openssl:0="
+RDEPEND="${DEPEND}
+ app-i18n/skk-jisyo"
+BDEPEND="test? (
+ app-emacs/ddskk
+ app-i18n/yaskkserv
+)"
+
+QA_FLAGS_IGNORED=".*"
+
+src_prepare() {
+ default
+
+ sed -i "/^dictionary =/s|= .*|= ${EPREFIX}/usr/lib/${PN}/default.euc|" etc/${PN}.conf
+ export OPENSSL_NO_VENDOR=true
+ # skip network tests
+ sed -i "s/^fn ${PN}.*_google_/#[ignore]\n&/" src/skk/test_unix/${PN}.rs
+}
+
+src_test() {
+ export YASKKSERV2_TEST_DIRECTORY="${T}"/${PN}
+ mkdir -p "${YASKKSERV2_TEST_DIRECTORY}" || die
+ cp -r "${WORKDIR}"/${TESTDATA}/* "${YASKKSERV2_TEST_DIRECTORY}" || die
+ cargo_src_test
+}
+
+src_install() {
+ cargo_src_install
+ dodir /usr/sbin
+ mv "${ED}"/usr/{,s}bin/${PN} || die
+ rm "${ED}"/usr/bin/test_wrapper || die
+ einstalldocs
+
+ keepdir /usr/lib/${PN}
+
+ insinto /etc
+ doins etc/${PN}.conf
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+
+ systemd_dounit "${FILESDIR}"/${PN}.service
+}
+
+pkg_preinst() {
+ "${ED}"/usr/bin/${PN}_make_dictionary --dictionary-filename "${ED}"/usr/lib/${PN}/default.euc \
+ "${EPREFIX}"/usr/share/skk/SKK-JISYO.L || die
+ "${ED}"/usr/bin/${PN}_make_dictionary --dictionary-filename "${ED}"/usr/lib/${PN}/default.utf8 \
+ --utf8 "${EPREFIX}"/usr/share/skk/SKK-JISYO.L || die
+}
diff --git a/app-i18n/yaskkserv2/yaskkserv2-0.1.7.ebuild b/app-i18n/yaskkserv2/yaskkserv2-0.1.7.ebuild
deleted file mode 100644
index 7c5d7b13e2b2..000000000000
--- a/app-i18n/yaskkserv2/yaskkserv2-0.1.7.ebuild
+++ /dev/null
@@ -1,229 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-CRATES="
- addr2line-0.21.0
- adler-1.0.2
- aho-corasick-1.0.5
- atty-0.2.14
- autocfg-1.1.0
- backtrace-0.3.69
- base64-0.21.4
- bincode-1.3.3
- bitflags-1.3.2
- bitflags-2.4.0
- block-buffer-0.10.4
- bumpalo-3.14.0
- bytes-1.5.0
- cc-1.0.83
- cfg-if-1.0.0
- clap-3.2.25
- clap_lex-0.2.4
- core-foundation-0.9.3
- core-foundation-sys-0.8.4
- cpufeatures-0.2.9
- crypto-common-0.1.6
- daemonize-0.5.0
- digest-0.10.7
- encoding_rs-0.8.33
- env_logger-0.7.1
- errno-0.3.3
- errno-dragonfly-0.1.2
- error-chain-0.11.0
- fastrand-2.0.0
- fnv-1.0.7
- foreign-types-0.3.2
- foreign-types-shared-0.1.1
- form_urlencoded-1.2.0
- futures-channel-0.3.28
- futures-core-0.3.28
- futures-io-0.3.28
- futures-sink-0.3.28
- futures-task-0.3.28
- futures-util-0.3.28
- generic-array-0.14.7
- getrandom-0.2.10
- gimli-0.28.0
- h2-0.3.21
- hashbrown-0.12.3
- hermit-abi-0.1.19
- hermit-abi-0.3.2
- http-0.2.9
- http-body-0.4.5
- httparse-1.8.0
- httpdate-1.0.3
- humantime-1.3.0
- hyper-0.14.27
- hyper-tls-0.5.0
- idna-0.4.0
- indexmap-1.9.3
- ipnet-2.8.0
- itoa-1.0.9
- js-sys-0.3.64
- json-0.12.4
- lazy_static-1.4.0
- libc-0.2.148
- linux-raw-sys-0.4.7
- log-0.4.20
- memchr-2.6.3
- mime-0.3.17
- miniz_oxide-0.7.1
- mio-0.8.8
- native-tls-0.2.11
- num_cpus-1.16.0
- object-0.32.1
- once_cell-1.18.0
- openssl-0.10.57
- openssl-macros-0.1.1
- openssl-probe-0.1.5
- openssl-sys-0.9.93
- os_str_bytes-6.5.1
- percent-encoding-2.3.0
- pin-project-lite-0.2.13
- pin-utils-0.1.0
- pkg-config-0.3.27
- ppv-lite86-0.2.17
- proc-macro2-1.0.67
- quick-error-1.2.3
- quote-1.0.33
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.4
- redox_syscall-0.3.5
- regex-1.9.5
- regex-automata-0.3.8
- regex-syntax-0.7.5
- reqwest-0.11.20
- rustc-demangle-0.1.23
- rustc-hash-1.1.0
- rustix-0.38.13
- ryu-1.0.15
- schannel-0.1.22
- security-framework-2.9.2
- security-framework-sys-2.9.1
- serde-1.0.188
- serde_derive-1.0.188
- serde_json-1.0.107
- serde_urlencoded-0.7.1
- sha1-0.10.5
- slab-0.4.9
- socket2-0.4.9
- socket2-0.5.4
- strsim-0.10.0
- syn-2.0.33
- syslog-4.0.1
- tempfile-3.8.0
- termcolor-1.2.0
- textwrap-0.16.0
- thiserror-1.0.48
- thiserror-impl-1.0.48
- time-0.1.45
- tinyvec-1.6.0
- tinyvec_macros-0.1.1
- tokio-1.32.0
- tokio-native-tls-0.3.1
- tokio-util-0.7.8
- tower-service-0.3.2
- tracing-0.1.37
- tracing-core-0.1.31
- try-lock-0.2.4
- twoway-0.2.2
- typenum-1.16.0
- unchecked-index-0.2.2
- unicode-bidi-0.3.13
- unicode-ident-1.0.12
- unicode-normalization-0.1.22
- url-2.4.1
- vcpkg-0.2.15
- version_check-0.9.4
- want-0.3.1
- wasi-0.10.0+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.87
- wasm-bindgen-backend-0.2.87
- wasm-bindgen-futures-0.4.37
- wasm-bindgen-macro-0.2.87
- wasm-bindgen-macro-support-0.2.87
- wasm-bindgen-shared-0.2.87
- web-sys-0.3.64
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.48.0
- windows-targets-0.48.5
- windows_aarch64_gnullvm-0.48.5
- windows_aarch64_msvc-0.48.5
- windows_i686_gnu-0.48.5
- windows_i686_msvc-0.48.5
- windows_x86_64_gnu-0.48.5
- windows_x86_64_gnullvm-0.48.5
- windows_x86_64_msvc-0.48.5
- winreg-0.50.0
-"
-TESTDATA="${PN}-testdata-202110"
-
-inherit cargo systemd
-
-DESCRIPTION="Yet Another SKK server"
-HOMEPAGE="https://github.com/wachikun/yaskkserv2"
-SRC_URI="https://github.com/wachikun/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)
- test? ( https://dev.gentoo.org/~hattya/distfiles/${TESTDATA}.tar.xz )"
-RESTRICT="!test? ( test )"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="test"
-
-DEPEND="dev-libs/openssl:0="
-RDEPEND="${DEPEND}
- app-i18n/skk-jisyo"
-BDEPEND="test? (
- app-emacs/ddskk
- app-i18n/yaskkserv
-)"
-
-QA_FLAGS_IGNORED=".*"
-
-src_prepare() {
- default
-
- sed -i "/^dictionary =/s|= .*|= ${EPREFIX}/usr/lib/${PN}/default.euc|" etc/${PN}.conf
- export OPENSSL_NO_VENDOR=true
- # skip network tests
- sed -i "s/^fn ${PN}.*_google_/#[ignore]\n&/" src/skk/test_unix/${PN}.rs
-}
-
-src_test() {
- export YASKKSERV2_TEST_DIRECTORY="${T}"/${PN}
- mkdir -p "${YASKKSERV2_TEST_DIRECTORY}" || die
- cp -r "${WORKDIR}"/${TESTDATA}/* "${YASKKSERV2_TEST_DIRECTORY}" || die
- cargo_src_test
-}
-
-src_install() {
- cargo_src_install
- dodir /usr/sbin
- mv "${ED}"/usr/{,s}bin/${PN} || die
- rm "${ED}"/usr/bin/test_wrapper || die
- einstalldocs
-
- keepdir /usr/lib/${PN}
-
- insinto /etc
- doins etc/${PN}.conf
-
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- newconfd "${FILESDIR}"/${PN}.confd ${PN}
-
- systemd_dounit "${FILESDIR}"/${PN}.service
-}
-
-pkg_preinst() {
- "${ED}"/usr/bin/${PN}_make_dictionary --dictionary-filename "${ED}"/usr/lib/${PN}/default.euc "${EPREFIX}"/usr/share/skk/SKK-JISYO.L || die
- "${ED}"/usr/bin/${PN}_make_dictionary --dictionary-filename "${ED}"/usr/lib/${PN}/default.utf8 --utf8 "${EPREFIX}"/usr/share/skk/SKK-JISYO.L || die
-}
diff --git a/app-laptop/tiny-dfr/tiny-dfr-0.3.0.ebuild b/app-laptop/tiny-dfr/tiny-dfr-0.3.0-r1.ebuild
index 163c14018843..50dc4b3865d9 100644
--- a/app-laptop/tiny-dfr/tiny-dfr-0.3.0.ebuild
+++ b/app-laptop/tiny-dfr/tiny-dfr-0.3.0-r1.ebuild
@@ -230,6 +230,11 @@ RDEPEND="${DEPEND}"
QA_FLAGS_IGNORED="usr/bin/tiny-dfr"
QA_PRESTRIPPED="usr/bin/tiny-dfr"
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
pkg_pretend() {
local CONFIG_CHECK="~INPUT_UINPUT"
[[ ${MERGE_TYPE} != buildonly ]] && check_extra_config
diff --git a/app-laptop/tiny-dfr/tiny-dfr-0.3.1-r1.ebuild b/app-laptop/tiny-dfr/tiny-dfr-0.3.1-r1.ebuild
new file mode 100644
index 000000000000..b062920af350
--- /dev/null
+++ b/app-laptop/tiny-dfr/tiny-dfr-0.3.1-r1.ebuild
@@ -0,0 +1,261 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ CRATES="
+ aho-corasick@1.0.5
+ anyhow@1.0.75
+ approx@0.5.1
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.4.0
+ block@0.1.6
+ bytemuck@1.14.0
+ bytemuck_derive@1.5.0
+ byteorder@1.4.3
+ cairo-rs@0.18.5
+ cairo-sys-rs@0.18.0
+ cast@0.3.0
+ cc@1.0.83
+ cfg-expr@0.15.5
+ cfg-if@1.0.0
+ crossbeam-channel@0.5.8
+ crossbeam-deque@0.8.3
+ crossbeam-epoch@0.9.15
+ crossbeam-utils@0.8.16
+ cssparser@0.31.2
+ cssparser-macros@0.6.1
+ data-url@0.3.0
+ derive_more@0.99.17
+ drm@0.11.1
+ drm-ffi@0.7.1
+ drm-fourcc@2.2.0
+ drm-sys@0.6.1
+ dtoa@1.0.9
+ dtoa-short@0.3.4
+ either@1.9.0
+ encoding_rs@0.8.33
+ equivalent@1.0.1
+ errno@0.3.8
+ float-cmp@0.9.0
+ form_urlencoded@1.2.0
+ freetype-rs@0.32.0
+ freetype-sys@0.17.0
+ futf@0.1.5
+ futures-channel@0.3.28
+ futures-core@0.3.28
+ futures-executor@0.3.28
+ futures-io@0.3.28
+ futures-macro@0.3.28
+ futures-task@0.3.28
+ futures-util@0.3.28
+ fxhash@0.2.1
+ gdk-pixbuf@0.18.0
+ gdk-pixbuf-sys@0.18.0
+ getrandom@0.2.10
+ gio@0.18.1
+ gio-sys@0.18.1
+ glib@0.18.1
+ glib-macros@0.18.0
+ glib-sys@0.18.1
+ gobject-sys@0.18.0
+ hashbrown@0.14.0
+ heck@0.4.1
+ hermit-abi@0.3.2
+ idna@0.4.0
+ indexmap@2.0.0
+ input@0.8.3
+ input-linux@0.6.0
+ input-linux-sys@0.8.0
+ input-sys@1.17.0
+ io-lifetimes@1.0.11
+ itertools@0.11.0
+ itoa@1.0.9
+ language-tags@0.3.2
+ lazy_static@1.4.0
+ libc@0.2.152
+ librsvg@2.57.1
+ libudev-sys@0.1.4
+ linux-raw-sys@0.4.13
+ linux-raw-sys@0.6.4
+ locale_config@0.3.0
+ lock_api@0.4.10
+ log@0.4.20
+ mac@0.1.1
+ malloc_buf@0.0.6
+ markup5ever@0.11.0
+ matrixmultiply@0.3.7
+ memchr@2.6.3
+ memoffset@0.7.1
+ memoffset@0.9.0
+ nalgebra@0.32.3
+ nalgebra-macros@0.2.1
+ new_debug_unreachable@1.0.4
+ nix@0.26.4
+ nix@0.27.1
+ num-complex@0.4.4
+ num-integer@0.1.45
+ num-rational@0.4.1
+ num-traits@0.2.16
+ num_cpus@1.16.0
+ objc@0.2.7
+ objc-foundation@0.1.1
+ objc_id@0.1.1
+ once_cell@1.18.0
+ pango@0.18.0
+ pango-sys@0.18.0
+ pangocairo@0.18.0
+ pangocairo-sys@0.18.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.8
+ paste@1.0.14
+ percent-encoding@2.3.0
+ phf@0.10.1
+ phf_codegen@0.10.0
+ phf_generator@0.10.0
+ phf_macros@0.10.0
+ phf_shared@0.10.0
+ pin-project-lite@0.2.13
+ pin-utils@0.1.0
+ pkg-config@0.3.27
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ privdrop@0.5.4
+ proc-macro-crate@1.3.1
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.66
+ quote@1.0.33
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rawpointer@0.2.1
+ rayon@1.7.0
+ rayon-core@1.11.0
+ rctree@0.5.0
+ redox_syscall@0.3.5
+ regex@1.9.5
+ regex-automata@0.3.8
+ regex-syntax@0.7.5
+ rgb@0.8.36
+ rustix@0.38.30
+ safe_arch@0.7.1
+ scopeguard@1.2.0
+ selectors@0.25.0
+ serde@1.0.188
+ serde_derive@1.0.188
+ serde_spanned@0.6.4
+ servo_arc@0.3.0
+ simba@0.8.1
+ siphasher@0.3.11
+ slab@0.4.9
+ smallvec@1.11.0
+ stable_deref_trait@1.2.0
+ string_cache@0.8.7
+ string_cache_codegen@0.5.2
+ syn@1.0.109
+ syn@2.0.32
+ system-deps@6.1.1
+ target-lexicon@0.12.11
+ tendril@0.4.3
+ thiserror@1.0.48
+ thiserror-impl@1.0.48
+ tiny-dfr@0.3.0
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ toml@0.7.8
+ toml@0.8.8
+ toml_datetime@0.6.5
+ toml_edit@0.19.15
+ toml_edit@0.21.0
+ typenum@1.16.0
+ udev@0.7.0
+ unicode-bidi@0.3.13
+ unicode-ident@1.0.11
+ unicode-normalization@0.1.22
+ url@2.4.1
+ utf-8@0.7.6
+ version-compare@0.1.1
+ version_check@0.9.4
+ wasi@0.11.0+wasi-snapshot-preview1
+ wide@0.7.11
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.48.5
+ windows-targets@0.52.0
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.0
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.0
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.0
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.0
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.0
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.0
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.0
+ winnow@0.5.15
+ xml5ever@0.17.0
+"
+
+inherit cargo udev systemd linux-info
+
+DESCRIPTION="The most basic dynamic function row daemon possible"
+HOMEPAGE="https://github.com/WhatAmISupposedToPutHere/tiny-dfr"
+
+SRC_URI="
+ ${CARGO_CRATE_URIS}
+ https://github.com/WhatAmISupposedToPutHere/tiny-dfr/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~arm64"
+
+DEPEND="
+ dev-libs/libinput
+ x11-libs/pango
+ x11-libs/gdk-pixbuf
+"
+
+RDEPEND="${DEPEND}"
+
+QA_FLAGS_IGNORED="usr/bin/tiny-dfr"
+QA_PRESTRIPPED="usr/bin/tiny-dfr"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
+pkg_pretend() {
+ local CONFIG_CHECK="~INPUT_UINPUT"
+ [[ ${MERGE_TYPE} != buildonly ]] && check_extra_config
+}
+
+src_install() {
+ cargo_src_install
+
+ insinto /usr/share/tiny-dfr
+ doins share/tiny-dfr/*
+
+ udev_dorules etc/udev/rules.d/*
+ systemd_dounit etc/systemd/system/*
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-laptop/tiny-dfr/tiny-dfr-0.3.1.ebuild b/app-laptop/tiny-dfr/tiny-dfr-0.3.1.ebuild
deleted file mode 100644
index a22ac9e469f6..000000000000
--- a/app-laptop/tiny-dfr/tiny-dfr-0.3.1.ebuild
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-aho-corasick@1.0.5
-anyhow@1.0.75
-approx@0.5.1
-autocfg@1.1.0
-bitflags@1.3.2
-bitflags@2.4.0
-block@0.1.6
-bytemuck@1.14.0
-bytemuck_derive@1.5.0
-byteorder@1.4.3
-cairo-rs@0.18.5
-cairo-sys-rs@0.18.0
-cast@0.3.0
-cc@1.0.83
-cfg-expr@0.15.5
-cfg-if@1.0.0
-crossbeam-channel@0.5.8
-crossbeam-deque@0.8.3
-crossbeam-epoch@0.9.15
-crossbeam-utils@0.8.16
-cssparser@0.31.2
-cssparser-macros@0.6.1
-data-url@0.3.0
-derive_more@0.99.17
-drm@0.11.1
-drm-ffi@0.7.1
-drm-fourcc@2.2.0
-drm-sys@0.6.1
-dtoa@1.0.9
-dtoa-short@0.3.4
-either@1.9.0
-encoding_rs@0.8.33
-equivalent@1.0.1
-errno@0.3.8
-float-cmp@0.9.0
-form_urlencoded@1.2.0
-freetype-rs@0.32.0
-freetype-sys@0.17.0
-futf@0.1.5
-futures-channel@0.3.28
-futures-core@0.3.28
-futures-executor@0.3.28
-futures-io@0.3.28
-futures-macro@0.3.28
-futures-task@0.3.28
-futures-util@0.3.28
-fxhash@0.2.1
-gdk-pixbuf@0.18.0
-gdk-pixbuf-sys@0.18.0
-getrandom@0.2.10
-gio@0.18.1
-gio-sys@0.18.1
-glib@0.18.1
-glib-macros@0.18.0
-glib-sys@0.18.1
-gobject-sys@0.18.0
-hashbrown@0.14.0
-heck@0.4.1
-hermit-abi@0.3.2
-idna@0.4.0
-indexmap@2.0.0
-input@0.8.3
-input-linux@0.6.0
-input-linux-sys@0.8.0
-input-sys@1.17.0
-io-lifetimes@1.0.11
-itertools@0.11.0
-itoa@1.0.9
-language-tags@0.3.2
-lazy_static@1.4.0
-libc@0.2.152
-librsvg@2.57.1
-libudev-sys@0.1.4
-linux-raw-sys@0.4.13
-linux-raw-sys@0.6.4
-locale_config@0.3.0
-lock_api@0.4.10
-log@0.4.20
-mac@0.1.1
-malloc_buf@0.0.6
-markup5ever@0.11.0
-matrixmultiply@0.3.7
-memchr@2.6.3
-memoffset@0.7.1
-memoffset@0.9.0
-nalgebra@0.32.3
-nalgebra-macros@0.2.1
-new_debug_unreachable@1.0.4
-nix@0.26.4
-nix@0.27.1
-num-complex@0.4.4
-num-integer@0.1.45
-num-rational@0.4.1
-num-traits@0.2.16
-num_cpus@1.16.0
-objc@0.2.7
-objc-foundation@0.1.1
-objc_id@0.1.1
-once_cell@1.18.0
-pango@0.18.0
-pango-sys@0.18.0
-pangocairo@0.18.0
-pangocairo-sys@0.18.0
-parking_lot@0.12.1
-parking_lot_core@0.9.8
-paste@1.0.14
-percent-encoding@2.3.0
-phf@0.10.1
-phf_codegen@0.10.0
-phf_generator@0.10.0
-phf_macros@0.10.0
-phf_shared@0.10.0
-pin-project-lite@0.2.13
-pin-utils@0.1.0
-pkg-config@0.3.27
-ppv-lite86@0.2.17
-precomputed-hash@0.1.1
-privdrop@0.5.4
-proc-macro-crate@1.3.1
-proc-macro-error@1.0.4
-proc-macro-error-attr@1.0.4
-proc-macro-hack@0.5.20+deprecated
-proc-macro2@1.0.66
-quote@1.0.33
-rand@0.8.5
-rand_chacha@0.3.1
-rand_core@0.6.4
-rawpointer@0.2.1
-rayon@1.7.0
-rayon-core@1.11.0
-rctree@0.5.0
-redox_syscall@0.3.5
-regex@1.9.5
-regex-automata@0.3.8
-regex-syntax@0.7.5
-rgb@0.8.36
-rustix@0.38.30
-safe_arch@0.7.1
-scopeguard@1.2.0
-selectors@0.25.0
-serde@1.0.188
-serde_derive@1.0.188
-serde_spanned@0.6.4
-servo_arc@0.3.0
-simba@0.8.1
-siphasher@0.3.11
-slab@0.4.9
-smallvec@1.11.0
-stable_deref_trait@1.2.0
-string_cache@0.8.7
-string_cache_codegen@0.5.2
-syn@1.0.109
-syn@2.0.32
-system-deps@6.1.1
-target-lexicon@0.12.11
-tendril@0.4.3
-thiserror@1.0.48
-thiserror-impl@1.0.48
-tiny-dfr@0.3.0
-tinyvec@1.6.0
-tinyvec_macros@0.1.1
-toml@0.7.8
-toml@0.8.8
-toml_datetime@0.6.5
-toml_edit@0.19.15
-toml_edit@0.21.0
-typenum@1.16.0
-udev@0.7.0
-unicode-bidi@0.3.13
-unicode-ident@1.0.11
-unicode-normalization@0.1.22
-url@2.4.1
-utf-8@0.7.6
-version-compare@0.1.1
-version_check@0.9.4
-wasi@0.11.0+wasi-snapshot-preview1
-wide@0.7.11
-winapi@0.3.9
-winapi-i686-pc-windows-gnu@0.4.0
-winapi-x86_64-pc-windows-gnu@0.4.0
-windows-sys@0.48.0
-windows-sys@0.52.0
-windows-targets@0.48.5
-windows-targets@0.52.0
-windows_aarch64_gnullvm@0.48.5
-windows_aarch64_gnullvm@0.52.0
-windows_aarch64_msvc@0.48.5
-windows_aarch64_msvc@0.52.0
-windows_i686_gnu@0.48.5
-windows_i686_gnu@0.52.0
-windows_i686_msvc@0.48.5
-windows_i686_msvc@0.52.0
-windows_x86_64_gnu@0.48.5
-windows_x86_64_gnu@0.52.0
-windows_x86_64_gnullvm@0.48.5
-windows_x86_64_gnullvm@0.52.0
-windows_x86_64_msvc@0.48.5
-windows_x86_64_msvc@0.52.0
-winnow@0.5.15
-xml5ever@0.17.0
-"
-
-inherit cargo udev systemd linux-info
-
-DESCRIPTION="The most basic dynamic function row daemon possible"
-HOMEPAGE="https://github.com/WhatAmISupposedToPutHere/tiny-dfr"
-
-SRC_URI="
- ${CARGO_CRATE_URIS}
- https://github.com/WhatAmISupposedToPutHere/tiny-dfr/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~arm64"
-
-DEPEND="
- dev-libs/libinput
- x11-libs/pango
- x11-libs/gdk-pixbuf
-"
-
-RDEPEND="${DEPEND}"
-
-QA_FLAGS_IGNORED="usr/bin/tiny-dfr"
-QA_PRESTRIPPED="usr/bin/tiny-dfr"
-
-pkg_pretend() {
- local CONFIG_CHECK="~INPUT_UINPUT"
- [[ ${MERGE_TYPE} != buildonly ]] && check_extra_config
-}
-
-src_install() {
- cargo_src_install
-
- insinto /usr/share/tiny-dfr
- doins share/tiny-dfr/*
-
- udev_dorules etc/udev/rules.d/*
- systemd_dounit etc/systemd/system/*
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
-}
-
-pkg_postinst() {
- udev_reload
-}
-
-pkg_postrm() {
- udev_reload
-}
diff --git a/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920-r1.ebuild b/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920-r1.ebuild
new file mode 100644
index 000000000000..2c009a021830
--- /dev/null
+++ b/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 2017-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+[[ ${PV} == *_pre???????? ]] && \
+ COMMIT="19e53b05828a43b7062b67a9cc6c84836ca26439"
+
+ CRATES="
+ ansi_term@0.11.0
+ approx@0.5.0
+ async-trait@0.1.51
+ atty@0.2.14
+ autocfg@1.0.1
+ bitflags@1.3.2
+ bytes@0.5.6
+ bytes@1.1.0
+ cc@1.0.70
+ cfg-if@0.1.10
+ cfg-if@1.0.0
+ claim@0.5.0
+ clap@2.33.3
+ core-foundation@0.6.4
+ core-foundation-sys@0.6.2
+ domain@0.6.1
+ dtoa@0.4.8
+ fnv@1.0.7
+ foreign-types@0.3.2
+ foreign-types-shared@0.1.1
+ fuchsia-zircon@0.3.3
+ fuchsia-zircon-sys@0.3.3
+ futures-channel@0.3.17
+ futures-core@0.3.17
+ futures-sink@0.3.17
+ futures-task@0.3.17
+ futures-util@0.3.17
+ getrandom@0.2.3
+ h2@0.2.7
+ hashbrown@0.11.2
+ heck@0.3.3
+ hermit-abi@0.1.19
+ http@0.2.4
+ http-body@0.3.1
+ httparse@1.5.1
+ httpdate@0.3.2
+ hyper@0.13.10
+ indexmap@1.7.0
+ iovec@0.1.4
+ itoa@0.4.8
+ kernel32-sys@0.2.2
+ lazy_static@1.4.0
+ libc@0.2.102
+ log@0.4.14
+ memchr@2.4.1
+ mio@0.6.23
+ mio-uds@0.6.8
+ miow@0.2.2
+ net2@0.2.37
+ num-traits@0.2.14
+ once_cell@1.8.0
+ openssl@0.10.36
+ openssl-probe@0.1.4
+ openssl-sys@0.9.66
+ openssl-src@111.16.0+1.1.1l
+ pin-project@1.0.8
+ pin-project-internal@1.0.8
+ pin-project-lite@0.1.12
+ pin-project-lite@0.2.7
+ pin-utils@0.1.0
+ pkg-config@0.3.19
+ ppv-lite86@0.2.10
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.29
+ quote@1.0.9
+ rand@0.8.4
+ rand_chacha@0.3.1
+ rand_core@0.6.3
+ rand_hc@0.3.1
+ redox_syscall@0.2.10
+ remove_dir_all@0.5.3
+ schannel@0.1.19
+ security-framework@0.3.4
+ security-framework-sys@0.3.3
+ signal-hook-registry@1.4.0
+ simple_logger@1.13.0
+ slab@0.4.4
+ socket2@0.3.19
+ strsim@0.8.0
+ structopt@0.3.23
+ structopt-derive@0.4.16
+ syn@1.0.76
+ tempfile@3.2.0
+ textwrap@0.11.0
+ tokio@0.2.25
+ tokio-macros@0.2.6
+ tokio-tls@0.3.1
+ tokio-util@0.3.1
+ tower-service@0.3.1
+ tracing@0.1.28
+ tracing-core@0.1.20
+ tracing-futures@0.2.5
+ try-lock@0.2.3
+ unicode-segmentation@1.8.0
+ unicode-width@0.1.9
+ unicode-xid@0.2.2
+ vcpkg@0.2.15
+ vec_map@0.8.2
+ version_check@0.9.3
+ want@0.3.0
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.2.8
+ winapi@0.3.9
+ winapi-build@0.1.1
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ ws2_32-sys@0.2.1
+"
+
+inherit cargo
+
+RUST_NATIVE_TLS_COMMIT="255dd5493b446755a9e40be3a4638afedfe67b03"
+DESCRIPTION="Prometheus exporter for Unbound DNS resolver"
+HOMEPAGE="https://github.com/svartalf/unbound-telemetry"
+SRC_URI="
+ https://github.com/svartalf/unbound-telemetry/archive/${COMMIT:-${PV}}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+ https://github.com/Goirad/rust-native-tls/archive/${RUST_NATIVE_TLS_COMMIT}.tar.gz -> rust-native-tls-${RUST_NATIVE_TLS_COMMIT}.crate
+"
+S="${WORKDIR}/${PN}-${COMMIT:-${PV}}"
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unlicense"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ acct-group/unbound-telemetry
+ acct-user/unbound-telemetry
+"
+
+DOCS=(
+ README.md
+)
+
+src_prepare() {
+ # Ensure Cargo is satisfied with the manually downloaded rust-native-tls
+ # Upstream use a fork *and* a certain branch
+ sed -i -e '/pkcs8/d' Cargo.toml || die
+
+ default
+}
+
+src_install() {
+ cargo_src_install
+
+ dodoc "${DOCS[@]}"
+ newinitd "${FILESDIR}/initd" "${PN}"
+ newconfd "${FILESDIR}/confd" "${PN}"
+}
diff --git a/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920.ebuild b/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920.ebuild
deleted file mode 100644
index ae841340c866..000000000000
--- a/app-metrics/unbound-telemetry/unbound-telemetry-0.1.0_pre20210920.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 2017-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-[[ ${PV} == *_pre???????? ]] && \
- COMMIT="19e53b05828a43b7062b67a9cc6c84836ca26439"
-
-CRATES="
-ansi_term-0.11.0
-approx-0.5.0
-async-trait-0.1.51
-atty-0.2.14
-autocfg-1.0.1
-bitflags-1.3.2
-bytes-0.5.6
-bytes-1.1.0
-cc-1.0.70
-cfg-if-0.1.10
-cfg-if-1.0.0
-claim-0.5.0
-clap-2.33.3
-core-foundation-0.6.4
-core-foundation-sys-0.6.2
-domain-0.6.1
-dtoa-0.4.8
-fnv-1.0.7
-foreign-types-0.3.2
-foreign-types-shared-0.1.1
-fuchsia-zircon-0.3.3
-fuchsia-zircon-sys-0.3.3
-futures-channel-0.3.17
-futures-core-0.3.17
-futures-sink-0.3.17
-futures-task-0.3.17
-futures-util-0.3.17
-getrandom-0.2.3
-h2-0.2.7
-hashbrown-0.11.2
-heck-0.3.3
-hermit-abi-0.1.19
-http-0.2.4
-http-body-0.3.1
-httparse-1.5.1
-httpdate-0.3.2
-hyper-0.13.10
-indexmap-1.7.0
-iovec-0.1.4
-itoa-0.4.8
-kernel32-sys-0.2.2
-lazy_static-1.4.0
-libc-0.2.102
-log-0.4.14
-memchr-2.4.1
-mio-0.6.23
-mio-uds-0.6.8
-miow-0.2.2
-net2-0.2.37
-num-traits-0.2.14
-once_cell-1.8.0
-openssl-0.10.36
-openssl-probe-0.1.4
-openssl-sys-0.9.66
-openssl-src-111.16.0+1.1.1l
-pin-project-1.0.8
-pin-project-internal-1.0.8
-pin-project-lite-0.1.12
-pin-project-lite-0.2.7
-pin-utils-0.1.0
-pkg-config-0.3.19
-ppv-lite86-0.2.10
-proc-macro-error-1.0.4
-proc-macro-error-attr-1.0.4
-proc-macro2-1.0.29
-quote-1.0.9
-rand-0.8.4
-rand_chacha-0.3.1
-rand_core-0.6.3
-rand_hc-0.3.1
-redox_syscall-0.2.10
-remove_dir_all-0.5.3
-schannel-0.1.19
-security-framework-0.3.4
-security-framework-sys-0.3.3
-signal-hook-registry-1.4.0
-simple_logger-1.13.0
-slab-0.4.4
-socket2-0.3.19
-strsim-0.8.0
-structopt-0.3.23
-structopt-derive-0.4.16
-syn-1.0.76
-tempfile-3.2.0
-textwrap-0.11.0
-tokio-0.2.25
-tokio-macros-0.2.6
-tokio-tls-0.3.1
-tokio-util-0.3.1
-tower-service-0.3.1
-tracing-0.1.28
-tracing-core-0.1.20
-tracing-futures-0.2.5
-try-lock-0.2.3
-unicode-segmentation-1.8.0
-unicode-width-0.1.9
-unicode-xid-0.2.2
-vcpkg-0.2.15
-vec_map-0.8.2
-version_check-0.9.3
-want-0.3.0
-wasi-0.10.2+wasi-snapshot-preview1
-winapi-0.2.8
-winapi-0.3.9
-winapi-build-0.1.1
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
-ws2_32-sys-0.2.1
-"
-
-inherit cargo
-
-RUST_NATIVE_TLS_COMMIT="255dd5493b446755a9e40be3a4638afedfe67b03"
-DESCRIPTION="Prometheus exporter for Unbound DNS resolver"
-HOMEPAGE="https://github.com/svartalf/unbound-telemetry"
-SRC_URI="
- https://github.com/svartalf/unbound-telemetry/archive/${COMMIT:-${PV}}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris ${CRATES})
- https://github.com/Goirad/rust-native-tls/archive/${RUST_NATIVE_TLS_COMMIT}.tar.gz -> rust-native-tls-${RUST_NATIVE_TLS_COMMIT}.crate
-"
-S="${WORKDIR}/${PN}-${COMMIT:-${PV}}"
-
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unlicense"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- acct-group/unbound-telemetry
- acct-user/unbound-telemetry
-"
-
-DOCS=(
- README.md
-)
-
-src_prepare() {
- # Ensure Cargo is satisfied with the manually downloaded rust-native-tls
- # Upstream use a fork *and* a certain branch
- sed -i -e '/pkcs8/d' Cargo.toml || die
-
- default
-}
-
-src_install() {
- cargo_src_install
-
- dodoc "${DOCS[@]}"
- newinitd "${FILESDIR}/initd" "${PN}"
- newconfd "${FILESDIR}/confd" "${PN}"
-}
diff --git a/app-misc/anki/anki-24.06.3-r1.ebuild b/app-misc/anki/anki-24.06.3-r2.ebuild
index 19438db1f49e..dea830f2ea71 100644
--- a/app-misc/anki/anki-24.06.3-r1.ebuild
+++ b/app-misc/anki/anki-24.06.3-r2.ebuild
@@ -774,7 +774,6 @@ BDEPEND="
>=app-arch/zstd-1.5.5:=
dev-libs/protobuf
virtual/pkgconfig
- >=virtual/rust-1.75.0
doc? (
$(python_gen_cond_dep '
>=dev-python/sphinx-7.2.6[${PYTHON_USEDEP}]
@@ -827,6 +826,7 @@ pkg_setup() {
fi
fi
fi
+ rust_pkg_setup
}
src_prepare() {
diff --git a/app-misc/battop/battop-0.2.4_p1.ebuild b/app-misc/battop/battop-0.2.4_p1-r1.ebuild
index fc2e2043620b..330c3c977e1c 100644
--- a/app-misc/battop/battop-0.2.4_p1.ebuild
+++ b/app-misc/battop/battop-0.2.4_p1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Autogenerated by pycargoebuild 0.12.1
diff --git a/app-misc/broot/broot-1.39.1.ebuild b/app-misc/broot/broot-1.39.1-r1.ebuild
index 69a4effdf7ac..f50fb99c83a9 100644
--- a/app-misc/broot/broot-1.39.1.ebuild
+++ b/app-misc/broot/broot-1.39.1-r1.ebuild
@@ -343,7 +343,6 @@ RDEPEND="
X? ( x11-libs/libxcb:= )
"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.65"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/broot/broot-1.40.0.ebuild b/app-misc/broot/broot-1.40.0-r1.ebuild
index 69a4effdf7ac..f50fb99c83a9 100644
--- a/app-misc/broot/broot-1.40.0.ebuild
+++ b/app-misc/broot/broot-1.40.0-r1.ebuild
@@ -343,7 +343,6 @@ RDEPEND="
X? ( x11-libs/libxcb:= )
"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.65"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/broot/broot-1.41.1.ebuild b/app-misc/broot/broot-1.41.1-r1.ebuild
index cf8bfec8f22d..2379a151314b 100644
--- a/app-misc/broot/broot-1.41.1.ebuild
+++ b/app-misc/broot/broot-1.41.1-r1.ebuild
@@ -343,7 +343,6 @@ RDEPEND="
X? ( x11-libs/libxcb:= )
"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.76"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/broot/broot-1.42.0.ebuild b/app-misc/broot/broot-1.42.0-r1.ebuild
index ec4dd63e7847..15532af1196f 100644
--- a/app-misc/broot/broot-1.42.0.ebuild
+++ b/app-misc/broot/broot-1.42.0-r1.ebuild
@@ -330,6 +330,7 @@ zerocopy-derive@0.7.35
zune-inflate@0.2.54
"
+RUST_MIN_VER="1.77.1"
inherit bash-completion-r1 cargo
DESCRIPTION="A new way to see and navigate directory trees"
@@ -348,7 +349,6 @@ RDEPEND="
X? ( x11-libs/libxcb:= )
"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.76"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/jaq/jaq-1.4.0.ebuild b/app-misc/jaq/jaq-1.4.0-r1.ebuild
index 3ab923ebfc7a..47621a72b4a6 100644
--- a/app-misc/jaq/jaq-1.4.0.ebuild
+++ b/app-misc/jaq/jaq-1.4.0-r1.ebuild
@@ -104,10 +104,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND="
- >=virtual/rust-1.64
-"
-
QA_FLAGS_IGNORED="usr/bin/jaq"
QA_PRESTRIPPED="usr/bin/jaq"
diff --git a/app-misc/jaq/jaq-1.5.0.ebuild b/app-misc/jaq/jaq-1.5.0-r1.ebuild
index 84cd770b0588..0ed97bf85a63 100644
--- a/app-misc/jaq/jaq-1.5.0.ebuild
+++ b/app-misc/jaq/jaq-1.5.0-r1.ebuild
@@ -103,10 +103,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND="
- >=virtual/rust-1.64
-"
-
QA_FLAGS_IGNORED="usr/bin/jaq"
QA_PRESTRIPPED="usr/bin/jaq"
diff --git a/app-misc/jaq/jaq-1.6.0.ebuild b/app-misc/jaq/jaq-1.6.0-r1.ebuild
index 5be92024ab2c..911945462c9e 100644
--- a/app-misc/jaq/jaq-1.6.0.ebuild
+++ b/app-misc/jaq/jaq-1.6.0-r1.ebuild
@@ -100,10 +100,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND="
- >=virtual/rust-1.64
-"
-
QA_FLAGS_IGNORED="usr/bin/jaq"
QA_PRESTRIPPED="usr/bin/jaq"
diff --git a/app-misc/jf/jf-0.6.2-r1.ebuild b/app-misc/jf/jf-0.6.2-r2.ebuild
index cf3416531097..849e01ee7f1a 100644
--- a/app-misc/jf/jf-0.6.2-r1.ebuild
+++ b/app-misc/jf/jf-0.6.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Autogenerated by pycargoebuild 0.10
diff --git a/app-misc/rpick/rpick-0.9.1.ebuild b/app-misc/rpick/rpick-0.9.1-r1.ebuild
index 064cbbda8ef7..064cbbda8ef7 100644
--- a/app-misc/rpick/rpick-0.9.1.ebuild
+++ b/app-misc/rpick/rpick-0.9.1-r1.ebuild
diff --git a/app-misc/skim/skim-0.10.4.ebuild b/app-misc/skim/skim-0.10.4-r1.ebuild
index 3ffb2711ab1e..3ffb2711ab1e 100644
--- a/app-misc/skim/skim-0.10.4.ebuild
+++ b/app-misc/skim/skim-0.10.4-r1.ebuild
diff --git a/app-misc/tzupdate/tzupdate-3.1.0.ebuild b/app-misc/tzupdate/tzupdate-3.1.0-r1.ebuild
index 1143edfba7dc..1143edfba7dc 100644
--- a/app-misc/tzupdate/tzupdate-3.1.0.ebuild
+++ b/app-misc/tzupdate/tzupdate-3.1.0-r1.ebuild
diff --git a/app-misc/weggli/metadata.xml b/app-misc/weggli/metadata.xml
index 8e6ae4d7b0c1..749e1a60957a 100644
--- a/app-misc/weggli/metadata.xml
+++ b/app-misc/weggli/metadata.xml
@@ -6,6 +6,6 @@
<name>Matthew Smith</name>
</maintainer>
<upstream>
- <remote-id type="github">googleprojectzero/weggli</remote-id>
+ <remote-id type="github">weggli-rs/weggli</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-misc/weggli/weggli-0.2.4-r1.ebuild b/app-misc/weggli/weggli-0.2.4-r1.ebuild
new file mode 100644
index 000000000000..cf0b3be9e3bb
--- /dev/null
+++ b/app-misc/weggli/weggli-0.2.4-r1.ebuild
@@ -0,0 +1,142 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ ansi_term@0.12.1
+ assert_cmd@2.0.2
+ atty@0.2.14
+ autocfg@1.0.1
+ bitflags@1.3.2
+ bstr@0.2.17
+ bumpalo@3.9.1
+ cast@0.2.7
+ cc@1.0.72
+ cfg-if@0.1.10
+ cfg-if@1.0.0
+ chrono@0.4.19
+ clap@2.34.0
+ colored@2.0.0
+ criterion@0.3.5
+ criterion-plot@0.4.4
+ crossbeam-channel@0.5.2
+ crossbeam-deque@0.8.1
+ crossbeam-epoch@0.9.6
+ crossbeam-utils@0.8.6
+ csv@1.1.6
+ csv-core@0.1.10
+ ctor@0.1.21
+ difference@2.0.0
+ difflib@0.4.0
+ doc-comment@0.3.3
+ either@1.6.1
+ float-cmp@0.8.0
+ ghost@0.1.2
+ half@1.8.2
+ hermit-abi@0.1.19
+ indoc@0.3.6
+ indoc-impl@0.3.6
+ instant@0.1.12
+ inventory@0.1.11
+ inventory-impl@0.1.11
+ itertools@0.10.3
+ itoa@0.4.8
+ itoa@1.0.1
+ js-sys@0.3.55
+ lazy_static@1.4.0
+ libc@0.2.112
+ lock_api@0.4.5
+ log@0.4.14
+ memchr@2.4.1
+ memoffset@0.6.5
+ nix@0.17.0
+ normalize-line-endings@0.3.0
+ num-integer@0.1.44
+ num-traits@0.2.14
+ num_cpus@1.13.1
+ oorandom@11.1.3
+ parking_lot@0.11.2
+ parking_lot_core@0.8.5
+ paste@0.1.18
+ paste-impl@0.1.18
+ plotters@0.3.1
+ plotters-backend@0.3.2
+ plotters-svg@0.3.1
+ predicates@1.0.8
+ predicates@2.1.0
+ predicates-core@1.0.2
+ predicates-tree@1.0.4
+ proc-macro-hack@0.5.19
+ proc-macro2@1.0.36
+ pyo3@0.13.2
+ pyo3-macros@0.13.2
+ pyo3-macros-backend@0.13.2
+ quote@1.0.14
+ rayon@1.5.1
+ rayon-core@1.9.1
+ redox_syscall@0.2.10
+ regex@1.5.4
+ regex-automata@0.1.10
+ regex-syntax@0.6.25
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ ryu@1.0.9
+ same-file@1.0.6
+ scopeguard@1.1.0
+ semver@1.0.4
+ serde@1.0.133
+ serde_cbor@0.11.2
+ serde_derive@1.0.133
+ serde_json@1.0.74
+ simplelog@0.10.2
+ smallvec@1.7.0
+ strsim@0.8.0
+ syn@1.0.85
+ termcolor@1.1.2
+ termtree@0.2.4
+ textwrap@0.11.0
+ time@0.1.44
+ tinytemplate@1.2.1
+ tree-sitter@0.20.2
+ unicode-width@0.1.9
+ unicode-xid@0.2.2
+ unindent@0.1.7
+ vec_map@0.8.2
+ void@1.0.2
+ wait-timeout@0.2.0
+ walkdir@2.3.2
+ wasi@0.10.0+wasi-snapshot-preview1
+ wasm-bindgen@0.2.78
+ wasm-bindgen-backend@0.2.78
+ wasm-bindgen-macro@0.2.78
+ wasm-bindgen-macro-support@0.2.78
+ wasm-bindgen-shared@0.2.78
+ web-sys@0.3.55
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+"
+
+# We can inherit distutils-r1 here and build the Python
+# module. Unfortunately the Python module seems to not include the
+# tree-sitter grammar. Patching the .so to need the system's
+# libtree-sitter-cpp seems to work, but it is not correct because the
+# weggli grammar has some minor modifications.
+
+inherit cargo
+
+DESCRIPTION="a fast and robust semantic search tool for C and C++ codebases"
+HOMEPAGE="https://github.com/weggli-rs/weggli"
+SRC_URI="
+ https://github.com/weggli-rs/weggli/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unlicense"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/weggli/weggli-0.2.4.ebuild b/app-misc/weggli/weggli-0.2.4.ebuild
deleted file mode 100644
index f4580b114190..000000000000
--- a/app-misc/weggli/weggli-0.2.4.ebuild
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick-0.7.18
- ansi_term-0.12.1
- assert_cmd-2.0.2
- atty-0.2.14
- autocfg-1.0.1
- bitflags-1.3.2
- bstr-0.2.17
- bumpalo-3.9.1
- cast-0.2.7
- cc-1.0.72
- cfg-if-0.1.10
- cfg-if-1.0.0
- chrono-0.4.19
- clap-2.34.0
- colored-2.0.0
- criterion-0.3.5
- criterion-plot-0.4.4
- crossbeam-channel-0.5.2
- crossbeam-deque-0.8.1
- crossbeam-epoch-0.9.6
- crossbeam-utils-0.8.6
- csv-1.1.6
- csv-core-0.1.10
- ctor-0.1.21
- difference-2.0.0
- difflib-0.4.0
- doc-comment-0.3.3
- either-1.6.1
- float-cmp-0.8.0
- ghost-0.1.2
- half-1.8.2
- hermit-abi-0.1.19
- indoc-0.3.6
- indoc-impl-0.3.6
- instant-0.1.12
- inventory-0.1.11
- inventory-impl-0.1.11
- itertools-0.10.3
- itoa-0.4.8
- itoa-1.0.1
- js-sys-0.3.55
- lazy_static-1.4.0
- libc-0.2.112
- lock_api-0.4.5
- log-0.4.14
- memchr-2.4.1
- memoffset-0.6.5
- nix-0.17.0
- normalize-line-endings-0.3.0
- num-integer-0.1.44
- num-traits-0.2.14
- num_cpus-1.13.1
- oorandom-11.1.3
- parking_lot-0.11.2
- parking_lot_core-0.8.5
- paste-0.1.18
- paste-impl-0.1.18
- plotters-0.3.1
- plotters-backend-0.3.2
- plotters-svg-0.3.1
- predicates-1.0.8
- predicates-2.1.0
- predicates-core-1.0.2
- predicates-tree-1.0.4
- proc-macro-hack-0.5.19
- proc-macro2-1.0.36
- pyo3-0.13.2
- pyo3-macros-0.13.2
- pyo3-macros-backend-0.13.2
- quote-1.0.14
- rayon-1.5.1
- rayon-core-1.9.1
- redox_syscall-0.2.10
- regex-1.5.4
- regex-automata-0.1.10
- regex-syntax-0.6.25
- rustc-hash-1.1.0
- rustc_version-0.4.0
- ryu-1.0.9
- same-file-1.0.6
- scopeguard-1.1.0
- semver-1.0.4
- serde-1.0.133
- serde_cbor-0.11.2
- serde_derive-1.0.133
- serde_json-1.0.74
- simplelog-0.10.2
- smallvec-1.7.0
- strsim-0.8.0
- syn-1.0.85
- termcolor-1.1.2
- termtree-0.2.4
- textwrap-0.11.0
- time-0.1.44
- tinytemplate-1.2.1
- tree-sitter-0.20.2
- unicode-width-0.1.9
- unicode-xid-0.2.2
- unindent-0.1.7
- vec_map-0.8.2
- void-1.0.2
- wait-timeout-0.2.0
- walkdir-2.3.2
- wasi-0.10.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.78
- wasm-bindgen-backend-0.2.78
- wasm-bindgen-macro-0.2.78
- wasm-bindgen-macro-support-0.2.78
- wasm-bindgen-shared-0.2.78
- web-sys-0.3.55
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
-"
-
-# We can inherit distutils-r1 here and build the Python
-# module. Unfortunately the Python module seems to not include the
-# tree-sitter grammar. Patching the .so to need the system's
-# libtree-sitter-cpp seems to work, but it is not correct because the
-# weggli grammar has some minor modifications.
-inherit cargo
-
-DESCRIPTION="a fast and robust semantic search tool for C and C++ codebases"
-HOMEPAGE="https://github.com/googleprojectzero/weggli"
-SRC_URI="
- https://github.com/googleprojectzero/weggli/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)
-"
-
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unlicense"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-misc/zellij/zellij-0.41.1.ebuild b/app-misc/zellij/zellij-0.41.1-r1.ebuild
index cc15a6b9910d..cc15a6b9910d 100644
--- a/app-misc/zellij/zellij-0.41.1.ebuild
+++ b/app-misc/zellij/zellij-0.41.1-r1.ebuild
diff --git a/app-portage/emlop/emlop-0.7.0.ebuild b/app-portage/emlop/emlop-0.7.0-r1.ebuild
index 40f36cd2218c..169c26543157 100644
--- a/app-portage/emlop/emlop-0.7.0.ebuild
+++ b/app-portage/emlop/emlop-0.7.0-r1.ebuild
@@ -88,6 +88,8 @@ CRATES="
winnow@0.6.5
"
+RUST_MIN_VER="1.71.1"
+
inherit cargo shell-completion
DESCRIPTION="A fast, accurate, ergonomic emerge.log parser"
@@ -106,8 +108,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="amd64"
-BDEPEND=">=virtual/rust-1.71.0"
-
# rust does not use *FLAGS from make.conf, silence portage warning
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-portage/emlop/emlop-0.7.1.ebuild b/app-portage/emlop/emlop-0.7.1-r1.ebuild
index a2209e78a73a..4c336514e628 100644
--- a/app-portage/emlop/emlop-0.7.1.ebuild
+++ b/app-portage/emlop/emlop-0.7.1-r1.ebuild
@@ -90,6 +90,8 @@ CRATES="
winnow@0.6.20
"
+RUST_MIN_VER="1.71.1"
+
inherit cargo shell-completion
DESCRIPTION="A fast, accurate, ergonomic emerge.log parser"
@@ -108,8 +110,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND=">=virtual/rust-1.71.0"
-
# rust does not use *FLAGS from make.conf, silence portage warning
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-shells/atuin/atuin-18.3.0-r1.ebuild b/app-shells/atuin/atuin-18.3.0-r2.ebuild
index 584ccab1160b..2aeb85eee95a 100644
--- a/app-shells/atuin/atuin-18.3.0-r1.ebuild
+++ b/app-shells/atuin/atuin-18.3.0-r2.ebuild
@@ -454,6 +454,8 @@ CRATES="
zeroize_derive@1.4.2
"
+RUST_MIN_VER="1.71.1"
+
inherit cargo greadme shell-completion systemd
DESCRIPTION="Shell history manager supporting encrypted synchronisation"
@@ -482,7 +484,6 @@ DEPEND="test? ( dev-db/postgresql )"
# protox with 9fa223eaaf0e ("chore(build): compile protobufs with protox (#2122)")
BDEPEND="
dev-libs/protobuf
- >=virtual/rust-1.71.0
"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/app-shells/mcfly/mcfly-0.5.13-r1.ebuild b/app-shells/mcfly/mcfly-0.5.13-r1.ebuild
new file mode 100644
index 000000000000..0f6affe490b3
--- /dev/null
+++ b/app-shells/mcfly/mcfly-0.5.13-r1.ebuild
@@ -0,0 +1,115 @@
+# Copyright 2017-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.10
+ ansi_term@0.11.0
+ arrayref@0.3.6
+ arrayvec@0.5.1
+ atty@0.2.14
+ autocfg@1.0.0
+ base64@0.11.0
+ bitflags@1.2.1
+ blake2b_simd@0.5.10
+ bstr@0.2.12
+ byteorder@1.3.4
+ cc@1.0.52
+ cfg-if@0.1.10
+ chrono@0.4.19
+ clap@2.33.0
+ constant_time_eq@0.1.5
+ crossbeam-utils@0.7.2
+ csv@1.1.3
+ csv-core@0.1.10
+ dirs@2.0.2
+ dirs-sys@0.3.4
+ either@1.6.1
+ getrandom@0.1.14
+ hermit-abi@0.1.12
+ humantime@2.1.0
+ itertools@0.9.0
+ itoa@0.4.5
+ lazy_static@1.4.0
+ libc@0.2.69
+ libsqlite3-sys@0.10.0
+ linked-hash-map@0.5.3
+ lru-cache@0.1.2
+ memchr@2.3.3
+ num-integer@0.1.44
+ num-traits@0.2.14
+ numtoa@0.1.0
+ pkg-config@0.3.17
+ ppv-lite86@0.2.6
+ rand@0.7.3
+ rand_chacha@0.2.2
+ rand_core@0.5.1
+ rand_hc@0.2.0
+ redox_syscall@0.1.56
+ redox_termios@0.1.1
+ redox_users@0.3.4
+ regex@1.3.7
+ regex-automata@0.1.9
+ regex-syntax@0.6.17
+ relative-path@1.0.0
+ rusqlite@0.15.0
+ rust-argon2@0.7.0
+ ryu@1.0.4
+ serde@1.0.106
+ shellexpand@2.0.0
+ strsim@0.8.0
+ termion@1.5.5
+ textwrap@0.11.0
+ thread_local@1.0.1
+ time@0.1.43
+ unicode-segmentation@1.6.0
+ unicode-width@0.1.7
+ vcpkg@0.2.8
+ vec_map@0.8.2
+ wasi@0.9.0+wasi-snapshot-preview1
+ winapi@0.3.8
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+"
+
+inherit cargo readme.gentoo-r1
+
+DESCRIPTION="Context-aware bash history search replacement (ctrl-r)"
+HOMEPAGE="https://github.com/cantino/mcfly"
+SRC_URI="https://github.com/cantino/mcfly/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 CC0-1.0 MIT Unlicense"
+SLOT="0"
+KEYWORDS="~amd64"
+
+QA_FLAGS_IGNORED="usr/bin/mcfly"
+
+src_install() {
+ cargo_src_install
+
+ insinto /usr/share/${PN}
+ doins ${PN}.{bash,fish,zsh}
+
+ # create README.gentoo
+ local DISABLE_AUTOFORMATTING="yes"
+ local DOC_CONTENTS=\
+"To start using ${PN}, add the following to your shell:
+
+~/.bashrc
+eval \"\$(mcfly init bash)\"
+
+~/.config/fish/config.fish
+mcfly init fish | source
+
+~/.zsh
+eval \"\$(mcfly init zsh)\""
+ readme.gentoo_create_doc
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-shells/mcfly/mcfly-0.5.13.ebuild b/app-shells/mcfly/mcfly-0.5.13.ebuild
deleted file mode 100644
index 888504821bc2..000000000000
--- a/app-shells/mcfly/mcfly-0.5.13.ebuild
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2017-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick-0.7.10
- ansi_term-0.11.0
- arrayref-0.3.6
- arrayvec-0.5.1
- atty-0.2.14
- autocfg-1.0.0
- base64-0.11.0
- bitflags-1.2.1
- blake2b_simd-0.5.10
- bstr-0.2.12
- byteorder-1.3.4
- cc-1.0.52
- cfg-if-0.1.10
- chrono-0.4.19
- clap-2.33.0
- constant_time_eq-0.1.5
- crossbeam-utils-0.7.2
- csv-1.1.3
- csv-core-0.1.10
- dirs-2.0.2
- dirs-sys-0.3.4
- either-1.6.1
- getrandom-0.1.14
- hermit-abi-0.1.12
- humantime-2.1.0
- itertools-0.9.0
- itoa-0.4.5
- lazy_static-1.4.0
- libc-0.2.69
- libsqlite3-sys-0.10.0
- linked-hash-map-0.5.3
- lru-cache-0.1.2
- memchr-2.3.3
- num-integer-0.1.44
- num-traits-0.2.14
- numtoa-0.1.0
- pkg-config-0.3.17
- ppv-lite86-0.2.6
- rand-0.7.3
- rand_chacha-0.2.2
- rand_core-0.5.1
- rand_hc-0.2.0
- redox_syscall-0.1.56
- redox_termios-0.1.1
- redox_users-0.3.4
- regex-1.3.7
- regex-automata-0.1.9
- regex-syntax-0.6.17
- relative-path-1.0.0
- rusqlite-0.15.0
- rust-argon2-0.7.0
- ryu-1.0.4
- serde-1.0.106
- shellexpand-2.0.0
- strsim-0.8.0
- termion-1.5.5
- textwrap-0.11.0
- thread_local-1.0.1
- time-0.1.43
- unicode-segmentation-1.6.0
- unicode-width-0.1.7
- vcpkg-0.2.8
- vec_map-0.8.2
- wasi-0.9.0+wasi-snapshot-preview1
- winapi-0.3.8
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-x86_64-pc-windows-gnu-0.4.0
-"
-
-inherit cargo readme.gentoo-r1
-
-DESCRIPTION="Context-aware bash history search replacement (ctrl-r)"
-HOMEPAGE="https://github.com/cantino/mcfly"
-SRC_URI="https://github.com/cantino/mcfly/archive/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
-
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 CC0-1.0 MIT Unlicense"
-SLOT="0"
-KEYWORDS="~amd64"
-
-QA_FLAGS_IGNORED="usr/bin/mcfly"
-
-src_install() {
- cargo_src_install
-
- insinto /usr/share/${PN}
- doins ${PN}.{bash,fish,zsh}
-
- # create README.gentoo
- local DISABLE_AUTOFORMATTING="yes"
- local DOC_CONTENTS=\
-"To start using ${PN}, add the following to your shell:
-
-~/.bashrc
-eval \"\$(mcfly init bash)\"
-
-~/.config/fish/config.fish
-mcfly init fish | source
-
-~/.zsh
-eval \"\$(mcfly init zsh)\""
- readme.gentoo_create_doc
-
- einstalldocs
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/app-shells/mcfly/mcfly-0.9.0.ebuild b/app-shells/mcfly/mcfly-0.9.0-r1.ebuild
index 2c4a7577b00a..2c4a7577b00a 100644
--- a/app-shells/mcfly/mcfly-0.9.0.ebuild
+++ b/app-shells/mcfly/mcfly-0.9.0-r1.ebuild
diff --git a/app-shells/nushell/nushell-0.95.0.ebuild b/app-shells/nushell/nushell-0.95.0-r1.ebuild
index 26e04a4ee1e0..26e04a4ee1e0 100644
--- a/app-shells/nushell/nushell-0.95.0.ebuild
+++ b/app-shells/nushell/nushell-0.95.0-r1.ebuild
diff --git a/app-shells/nushell/nushell-0.96.1.ebuild b/app-shells/nushell/nushell-0.96.1-r1.ebuild
index 36fc5ed12705..36fc5ed12705 100644
--- a/app-shells/nushell/nushell-0.96.1.ebuild
+++ b/app-shells/nushell/nushell-0.96.1-r1.ebuild
diff --git a/app-shells/nushell/nushell-0.98.0.ebuild b/app-shells/nushell/nushell-0.98.0-r1.ebuild
index ad8fb2112036..9d5bc205942e 100644
--- a/app-shells/nushell/nushell-0.98.0.ebuild
+++ b/app-shells/nushell/nushell-0.98.0-r1.ebuild
@@ -698,6 +698,7 @@ CRATES="
zstd@0.13.2
"
+RUST_MIN_VER="1.79.0"
inherit cargo
DESCRIPTION="A new type of shell, written in Rust"
@@ -732,7 +733,6 @@ DEPEND="
"
RDEPEND="${DEPEND}"
BDEPEND="
- >=virtual/rust-1.79.0
virtual/pkgconfig
"
diff --git a/app-shells/starship/starship-1.19.0.ebuild b/app-shells/starship/starship-1.19.0-r1.ebuild
index c44e5bb3dec5..ccaa9e9dcd64 100644
--- a/app-shells/starship/starship-1.19.0.ebuild
+++ b/app-shells/starship/starship-1.19.0-r1.ebuild
@@ -5,6 +5,7 @@ EAPI=8
CRATES=""
+RUST_MIN_VER="1.74.1"
inherit cargo
DESCRIPTION="The minimal, blazing-fast, and infinitely customizable prompt for any shell"
@@ -26,7 +27,6 @@ KEYWORDS="amd64 arm64"
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.74.1
"
QA_FLAGS_IGNORED="usr/bin/starship"
diff --git a/app-shells/starship/starship-1.20.1.ebuild b/app-shells/starship/starship-1.20.1-r1.ebuild
index a6607e763860..6080429d8bc4 100644
--- a/app-shells/starship/starship-1.20.1.ebuild
+++ b/app-shells/starship/starship-1.20.1-r1.ebuild
@@ -395,6 +395,7 @@ CRATES="
zvariant_utils@2.1.0
"
+RUST_MIN_VER="1.74.1"
inherit cargo
DESCRIPTION="The minimal, blazing-fast, and infinitely customizable prompt for any shell"
@@ -414,7 +415,6 @@ KEYWORDS="amd64 arm64"
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.74.1
"
QA_FLAGS_IGNORED="usr/bin/starship"
diff --git a/app-shells/zoxide/zoxide-0.9.4.ebuild b/app-shells/zoxide/zoxide-0.9.4-r1.ebuild
index 000e4b303a2d..000e4b303a2d 100644
--- a/app-shells/zoxide/zoxide-0.9.4.ebuild
+++ b/app-shells/zoxide/zoxide-0.9.4-r1.ebuild
diff --git a/app-shells/zoxide/zoxide-0.9.6.ebuild b/app-shells/zoxide/zoxide-0.9.6-r1.ebuild
index ebabae35a6f2..ebabae35a6f2 100644
--- a/app-shells/zoxide/zoxide-0.9.6.ebuild
+++ b/app-shells/zoxide/zoxide-0.9.6-r1.ebuild
diff --git a/app-text/fblog/fblog-4.10.0.ebuild b/app-text/fblog/fblog-4.10.0-r1.ebuild
index 19cb0922d9dc..19cb0922d9dc 100644
--- a/app-text/fblog/fblog-4.10.0.ebuild
+++ b/app-text/fblog/fblog-4.10.0-r1.ebuild
diff --git a/app-text/mdbook/mdbook-0.4.40.ebuild b/app-text/mdbook/mdbook-0.4.40-r1.ebuild
index bf8098720bf5..bf8098720bf5 100644
--- a/app-text/mdbook/mdbook-0.4.40.ebuild
+++ b/app-text/mdbook/mdbook-0.4.40-r1.ebuild
diff --git a/dev-db/influxdb/influxdb-2.7.10.ebuild b/dev-db/influxdb/influxdb-2.7.10-r1.ebuild
index 60339b24dc5b..60339b24dc5b 100644
--- a/dev-db/influxdb/influxdb-2.7.10.ebuild
+++ b/dev-db/influxdb/influxdb-2.7.10-r1.ebuild
diff --git a/dev-db/influxdb/influxdb-2.7.8.ebuild b/dev-db/influxdb/influxdb-2.7.8-r1.ebuild
index 1baa0b00ed71..020930e8bf16 100644
--- a/dev-db/influxdb/influxdb-2.7.8.ebuild
+++ b/dev-db/influxdb/influxdb-2.7.8-r1.ebuild
@@ -216,6 +216,11 @@ DEPEND="
"
RDEPEND="${DEPEND}"
+pkg_setup() {
+ go_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
cargo_src_unpack
}
diff --git a/dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild b/dev-java/icedtea-web/icedtea-web-1.8.8-r2.ebuild
index 73754338cb33..ff395edab946 100644
--- a/dev-java/icedtea-web/icedtea-web-1.8.8-r1.ebuild
+++ b/dev-java/icedtea-web/icedtea-web-1.8.8-r2.ebuild
@@ -4,14 +4,16 @@
EAPI=8
README_GENTOO_SUFFIX="-r3"
-CRATES="dunce-0.1.1"
+CRATES="dunce@0.1.1"
inherit autotools bash-completion-r1 cargo java-pkg-2 readme.gentoo-r1 xdg-utils
DESCRIPTION="FOSS Java browser plugin and Web Start implementation"
HOMEPAGE="https://github.com/AdoptOpenJDK/IcedTea-Web"
SRC_URI="https://github.com/AdoptOpenJDK/${PN}/archive/${P}.tar.gz
- $(cargo_crate_uris ${CRATES})"
+ ${CARGO_CRATE_URIS}"
+S="${WORKDIR}/IcedTea-Web-${P}"
+
LICENSE="GPL-2 GPL-2-with-linking-exception LGPL-2"
SLOT="0"
KEYWORDS="amd64 arm64 ppc64"
@@ -25,7 +27,6 @@ BDEPEND="
app-arch/zip
app-alternatives/bc
virtual/pkgconfig
- virtual/rust
doc? ( app-alternatives/bc )
"
@@ -58,10 +59,13 @@ RDEPEND="
>=virtual/jre-1.8:*
"
-S="${WORKDIR}/IcedTea-Web-${P}"
-
QA_FLAGS_IGNORED="usr/bin/.*"
+pkg_setup() {
+ java-pkg-2_pkg_setup
+ rust_pkg_setup
+}
+
src_prepare() {
eapply_user
sed -i 's/JAVADOC_OPTS=/\0-Xdoclint:none /g' Makefile.am || die
diff --git a/dev-lang/dafny/dafny-4.8.0.ebuild b/dev-lang/dafny/dafny-4.8.0.ebuild
index fc41fee57b24..d759dd478757 100644
--- a/dev-lang/dafny/dafny-4.8.0.ebuild
+++ b/dev-lang/dafny/dafny-4.8.0.ebuild
@@ -667,5 +667,5 @@ src_install() {
pkg_postinst() {
optfeature "Dafny GO language backend" dev-go/go-tools
- optfeature "Dafny Rust language backend" virtual/rust
+ optfeature "Dafny Rust language backend" dev-lang/rust dev-lang/rust-bin
}
diff --git a/dev-lang/dafny/dafny-4.8.1.ebuild b/dev-lang/dafny/dafny-4.8.1.ebuild
index f1cba38874f6..0bf40a85c501 100644
--- a/dev-lang/dafny/dafny-4.8.1.ebuild
+++ b/dev-lang/dafny/dafny-4.8.1.ebuild
@@ -668,5 +668,5 @@ src_install() {
pkg_postinst() {
optfeature "Dafny GO language backend" dev-go/go-tools
- optfeature "Dafny Rust language backend" virtual/rust
+ optfeature "Dafny Rust language backend" dev-lang/rust dev-lang/rust-bin
}
diff --git a/dev-lang/dafny/dafny-4.9.0.ebuild b/dev-lang/dafny/dafny-4.9.0.ebuild
index aad9495c760b..dd8da1ebd4cd 100644
--- a/dev-lang/dafny/dafny-4.9.0.ebuild
+++ b/dev-lang/dafny/dafny-4.9.0.ebuild
@@ -643,5 +643,5 @@ src_install() {
pkg_postinst() {
optfeature "Dafny GO language backend" dev-go/go-tools
- optfeature "Dafny Rust language backend" virtual/rust
+ optfeature "Dafny Rust language backend" dev-lang/rust dev-lang/rust-bin
}
diff --git a/dev-lang/gleam/gleam-1.4.1.ebuild b/dev-lang/gleam/gleam-1.4.1-r1.ebuild
index 7151240a5284..7151240a5284 100644
--- a/dev-lang/gleam/gleam-1.4.1.ebuild
+++ b/dev-lang/gleam/gleam-1.4.1-r1.ebuild
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
index 442fabf6223f..0b3ec6d0b5d2 100644
--- a/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
+++ b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
@@ -39,6 +39,7 @@ inherit flag-o-matic toolchain-funcs toolchain
DESCRIPTION="GNAT Ada Compiler - GPL version"
HOMEPAGE="http://libre.adacore.com/"
+S="${WORKDIR}"/${MYP}
LICENSE+=" GPL-2 GPL-3"
KEYWORDS="amd64 x86"
@@ -48,8 +49,6 @@ RESTRICT="test"
RDEPEND="!=sys-devel/gcc-${TOOLCHAIN_GCC_PV}*"
BDEPEND=sys-devel/binutils
-S="${WORKDIR}"/${MYP}
-
pkg_pretend() {
toolchain_pkg_pretend
if tc-is-clang; then
diff --git a/dev-lang/ruby/ruby-3.2.4.ebuild b/dev-lang/ruby/ruby-3.2.4-r2.ebuild
index 524d5af27834..7d109feb42c6 100644
--- a/dev-lang/ruby/ruby-3.2.4.ebuild
+++ b/dev-lang/ruby/ruby-3.2.4-r2.ebuild
@@ -3,28 +3,30 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
+inherit autotools flag-o-matic multiprocessing rust
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
+MY_P="${PN}-$(ver_cut 1-3)"
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+S=${WORKDIR}/${MY_P}
LICENSE="|| ( Ruby-BSD BSD-2 )"
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -76,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
diff --git a/dev-lang/ruby/ruby-3.2.4-r1.ebuild b/dev-lang/ruby/ruby-3.2.4-r3.ebuild
index 7152cb0f52fc..76287f2c4584 100644
--- a/dev-lang/ruby/ruby-3.2.4-r1.ebuild
+++ b/dev-lang/ruby/ruby-3.2.4-r3.ebuild
@@ -3,28 +3,30 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
+inherit autotools flag-o-matic multiprocessing rust
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
+MY_P="${PN}-$(ver_cut 1-3)"
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+S=${WORKDIR}/${MY_P}
LICENSE="|| ( Ruby-BSD BSD-2 )"
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -76,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
diff --git a/dev-lang/ruby/ruby-3.2.5.ebuild b/dev-lang/ruby/ruby-3.2.5-r1.ebuild
index a7a40d60ef35..51a1833e9b4f 100644
--- a/dev-lang/ruby/ruby-3.2.5.ebuild
+++ b/dev-lang/ruby/ruby-3.2.5-r1.ebuild
@@ -3,28 +3,30 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
+inherit autotools flag-o-matic multiprocessing rust
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
+MY_P="${PN}-$(ver_cut 1-3)"
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+S=${WORKDIR}/${MY_P}
LICENSE="|| ( Ruby-BSD BSD-2 )"
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -76,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
diff --git a/dev-lang/ruby/ruby-3.2.6.ebuild b/dev-lang/ruby/ruby-3.2.6-r1.ebuild
index 988bb6012c76..74fa2ffc9b24 100644
--- a/dev-lang/ruby/ruby-3.2.6.ebuild
+++ b/dev-lang/ruby/ruby-3.2.6-r1.ebuild
@@ -3,28 +3,30 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
+inherit autotools flag-o-matic multiprocessing rust
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
+MY_P="${PN}-$(ver_cut 1-3)"
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+S=${WORKDIR}/${MY_P}
LICENSE="|| ( Ruby-BSD BSD-2 )"
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -76,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/011*.patch
diff --git a/dev-lang/ruby/ruby-3.3.4-r1.ebuild b/dev-lang/ruby/ruby-3.3.4-r2.ebuild
index cac3085b6240..a48e45203585 100644
--- a/dev-lang/ruby/ruby-3.3.4-r1.ebuild
+++ b/dev-lang/ruby/ruby-3.3.4-r2.ebuild
@@ -3,21 +3,22 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
+inherit autotools flag-o-matic multiprocessing rust
MY_P="${PN}-$(ver_cut 1-3)"
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P}
+LICENSE="|| ( Ruby-BSD BSD-2 )"
SLOT=$(ver_cut 1-2)
MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
RUBYVERSION=${SLOT}.0
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
@@ -25,7 +26,7 @@ RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -77,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/013*.patch
diff --git a/dev-lang/ruby/ruby-3.3.5.ebuild b/dev-lang/ruby/ruby-3.3.5-r1.ebuild
index cac3085b6240..a48e45203585 100644
--- a/dev-lang/ruby/ruby-3.3.5.ebuild
+++ b/dev-lang/ruby/ruby-3.3.5-r1.ebuild
@@ -3,21 +3,22 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
+inherit autotools flag-o-matic multiprocessing rust
MY_P="${PN}-$(ver_cut 1-3)"
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P}
+LICENSE="|| ( Ruby-BSD BSD-2 )"
SLOT=$(ver_cut 1-2)
MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
RUBYVERSION=${SLOT}.0
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
@@ -25,7 +26,7 @@ RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -77,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/013*.patch
diff --git a/dev-lang/ruby/ruby-3.3.6.ebuild b/dev-lang/ruby/ruby-3.3.6-r1.ebuild
index 9ea8087ae9f1..7680cec58196 100644
--- a/dev-lang/ruby/ruby-3.3.6.ebuild
+++ b/dev-lang/ruby/ruby-3.3.6-r1.ebuild
@@ -3,21 +3,22 @@
EAPI=8
-inherit autotools flag-o-matic multiprocessing
+RUST_OPTIONAL="yes"
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
+inherit autotools flag-o-matic multiprocessing rust
MY_P="${PN}-$(ver_cut 1-3)"
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P}
+LICENSE="|| ( Ruby-BSD BSD-2 )"
SLOT=$(ver_cut 1-2)
MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
RUBYVERSION=${SLOT}.0
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
@@ -25,7 +26,7 @@ RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
- jit? ( >=virtual/rust-1.58.1 )
+ jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
@@ -77,6 +78,10 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )
"
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/013*.patch
diff --git a/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild
new file mode 100644
index 000000000000..1c40bfad383f
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 16 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-08-03/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash")
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild
new file mode 100644
index 000000000000..c439536ef6bd
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-07/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash")
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild
new file mode 100644
index 000000000000..10b3ef1a7932
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-28/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+#SRC_URI+=" mips? (
+# abi_mips_o32? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+# )
+# abi_mips_n64? (
+# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+# )
+#)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild
new file mode 100644
index 000000000000..c973e8b738de
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild
@@ -0,0 +1,244 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-03-28/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-demangler
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild
new file mode 100644
index 000000000000..1aac4008cb46
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild
@@ -0,0 +1,247 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+)"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so*
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-demangler
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild
new file mode 100644
index 000000000000..3e8c9a394475
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-08-08/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+)"
+SRC_URI+=" ppc64? ( elibc_musl? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz )
+) )"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so*
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-demangler
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild
new file mode 100644
index 000000000000..b5f1ce54ec05
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-09-05/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+)"
+SRC_URI+=" ppc64? ( elibc_musl? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz )
+) )"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so*
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild
new file mode 100644
index 000000000000..4dbbd8d3be47
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 19 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-10-17/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+)"
+SRC_URI+=" ppc64? ( elibc_musl? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz )
+) )"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+ !dev-lang/rust-bin:stable
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so*
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ docompress /opt/${P}/man/
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest
new file mode 100644
index 000000000000..88ff26dbed31
--- /dev/null
+++ b/dev-lang/rust-common/Manifest
@@ -0,0 +1,4 @@
+DIST rustc-1.81.0-src.tar.xz 216743872 BLAKE2B d9f52da9092d0723c862ebbb2dc351cad0670be6872f691b4c9f36faf06803f072720ebd04f06745c355d807991b38312cc830b12d6d3f50b0574bb7325340b7 SHA512 b8a837ced521d2ca2c7f228a0640da591384519e4dbc1ae768524d50616da6abbd2f7bdae3777caebc0447dac91bf76481282ce5a2264d7f30e173caa6321a51
+DIST rustc-1.81.0-src.tar.xz.asc 801 BLAKE2B 01cd9f386d3fd73f4eb43b14d7d479ebababb8640abbff170e697817b94b8a18edd801c6047ecf3c084a0a51764c5e4f3f4bd6b00e8ae000ef0b850e9506572a SHA512 19c0da9d67f2bd9fd79a2078f0f486ee7fad5646a09a609b7e30d9531851955ae8df0ec69f9ddc09e2fd6e74d529648335b0fda833839c88c54c84494ec1988e
+DIST rustc-1.82.0-src.tar.xz 219769328 BLAKE2B 611f33e134c2d459c9af1695c0a4d033df93afc986e91a17fceb0dd293fb4ffbd5f7475ef571d36cecf49da6c3fdb3801c98d7f72f9dd1c39e42502f649b192f SHA512 d158c7c71c1814bde2a3ec3cbeabe34949bd3201b730c0d7ec6baad4158bb28dd13696c430a6b99dc38b9d23ad7ddf8dde7d2487cbfbbbe9c3473016994210f0
+DIST rustc-1.82.0-src.tar.xz.asc 801 BLAKE2B 8138fb15b8d7ec15be45378fe663207a8e87e3c527348ab079995b1840a771ed6e9d5464eb8855ac9e006c0cfcf54b1a4fea489d31e6c9899cb03e6f4c737b67 SHA512 3cd6b27e72041baf9996efa10f25aca2e04f3e3727b60ecfd90c1bef9c52d216d2dc130802f935b110e35766645a27637a01661aa8d5acf02bf64b02a107c93c
diff --git a/dev-lang/rust-common/metadata.xml b/dev-lang/rust-common/metadata.xml
new file mode 100644
index 000000000000..b5c189c5f9b0
--- /dev/null
+++ b/dev-lang/rust-common/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>rust@gentoo.org</email>
+ <name>Rust Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">rust-lang/rust</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/rust-common/rust-common-1.81.0.ebuild b/dev-lang/rust-common/rust-common-1.81.0.ebuild
new file mode 100644
index 000000000000..fadef8ec46b5
--- /dev/null
+++ b/dev-lang/rust-common/rust-common-1.81.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1
+
+DESCRIPTION="Common files shared between multiple slots of Rust"
+HOMEPAGE="https://www.rust-lang.org/"
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ ABI_VER="$(ver_cut 1-2)"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+fi
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT=0
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+IUSE="verify-sig"
+
+RDEPEND="
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
+}
diff --git a/dev-lang/rust-common/rust-common-1.82.0.ebuild b/dev-lang/rust-common/rust-common-1.82.0.ebuild
new file mode 100644
index 000000000000..c1d6b791917f
--- /dev/null
+++ b/dev-lang/rust-common/rust-common-1.82.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1
+
+DESCRIPTION="Common files shared between multiple slots of Rust"
+HOMEPAGE="https://www.rust-lang.org/"
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ ABI_VER="$(ver_cut 1-2)"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+fi
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT=0
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="verify-sig"
+
+# Legacy non-slotted versions bash completions will collide.
+RDEPEND="
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
+}
diff --git a/dev-lang/rust/rust-1.71.1-r100.ebuild b/dev-lang/rust/rust-1.71.1-r100.ebuild
new file mode 100644
index 000000000000..abec1d3edea7
--- /dev/null
+++ b/dev-lang/rust/rust-1.71.1-r100.ebuild
@@ -0,0 +1,734 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 16 )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+S="${WORKDIR}/${MY_P}-src"
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430
+ NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.71.1-fix-bootstrap-version-comparison.patch
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+)
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc", "rust-demangler"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}"
+ CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}"
+ CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
+ CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
+ CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
+ CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}"
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_target}"
+ host = ["${rust_target}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ default-linker = "$(tc-getCC)"
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.74.1-r100.ebuild b/dev-lang/rust/rust-1.74.1-r100.ebuild
new file mode 100644
index 000000000000..48efa65873f4
--- /dev/null
+++ b/dev-lang/rust/rust-1.74.1-r100.ebuild
@@ -0,0 +1,770 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+S="${WORKDIR}/${MY_P}-src"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc", "rust-demangler"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.75.0-r100.ebuild b/dev-lang/rust/rust-1.75.0-r100.ebuild
new file mode 100644
index 000000000000..d0154a05fc14
--- /dev/null
+++ b/dev-lang/rust/rust-1.75.0-r100.ebuild
@@ -0,0 +1,773 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
+fi
+
+S="${WORKDIR}/${MY_P}-src"
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Language empowering everyone to build reliable and efficient software"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ # This patch shouldn't be necessary for later versions of Rust because its
+ # code was backported from master.
+ "${FILESDIR}"/1.75.0-handle-vendored-sources.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc", "rust-demangler"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ lto = "$(usex lto fat off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.77.1-r100.ebuild b/dev-lang/rust/rust-1.77.1-r100.ebuild
new file mode 100644
index 000000000000..0088c87f6631
--- /dev/null
+++ b/dev-lang/rust/rust-1.77.1-r100.ebuild
@@ -0,0 +1,771 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 17 )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
+fi
+S="${WORKDIR}/${MY_P}-src"
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.76.0-loong-code-model.patch # remove for >=1.78.0
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc", "rust-demangler"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.79.0-r100.ebuild b/dev-lang/rust/rust-1.79.0-r100.ebuild
new file mode 100644
index 000000000000..d33958ee42ba
--- /dev/null
+++ b/dev-lang/rust/rust-1.79.0-r100.ebuild
@@ -0,0 +1,774 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.78.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.79.0-revert-8c40426.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc", "rust-demangler"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ musl-root = "$($(tc-getCC) -print-sysroot)/usr"
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.80.1-r100.ebuild b/dev-lang/rust/rust-1.80.1-r100.ebuild
new file mode 100644
index 000000000000..3ae140bf6924
--- /dev/null
+++ b/dev-lang/rust/rust-1.80.1-r100.ebuild
@@ -0,0 +1,773 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.79.0-revert-8c40426.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ musl-root = "$($(tc-getCC) -print-sysroot)/usr"
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ rust-demangler
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-demangler
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.81.0-r100.ebuild b/dev-lang/rust/rust-1.81.0-r100.ebuild
new file mode 100644
index 000000000000..a8b946c44d66
--- /dev/null
+++ b/dev-lang/rust/rust-1.81.0-r100.ebuild
@@ -0,0 +1,774 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.79.0-revert-8c40426.patch
+ "${FILESDIR}/1.81.0-backport-bug937164.patch"
+ "${FILESDIR}/1.81.0-backport-llvm-pr101761.patch"
+ "${FILESDIR}/1.81.0-backport-llvm-pr101766.patch"
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ musl-root = "$($(tc-getCC) -print-sysroot)/usr"
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/rust-1.82.0-r100.ebuild b/dev-lang/rust/rust-1.82.0-r100.ebuild
new file mode 100644
index 000000000000..fd370bf6309e
--- /dev/null
+++ b/dev-lang/rust/rust-1.82.0-r100.ebuild
@@ -0,0 +1,781 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 19 )
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+S="${WORKDIR}/${MY_P}-src"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+SLOT="${PV}"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+LLVM_DEPEND=()
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+for _x in "${ALL_LLVM_TARGETS[@]}"; do
+ LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "sys-devel/llvm:\${LLVM_SLOT}[${_x}]") )" )
+done
+LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" )
+LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" )
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ dev-lang/rust-common
+ sys-apps/lsb-release
+ !dev-lang/rust:stable/1.71.1
+ !dev-lang/rust:stable/1.74.1
+ !dev-lang/rust:stable/1.75.0
+ !dev-lang/rust:stable/1.77.1
+ !dev-lang/rust:stable/1.79.0
+ !dev-lang/rust:stable/1.80.1
+ !dev-lang/rust:stable/1.81.0
+ !dev-lang/rust:stable/1.82.0
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+ "${FILESDIR}"/1.79.0-revert-8c40426.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm-r1_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set.
+ if use x86; then
+ if ! use cpu_flags_x86_sse2; then
+ eapply "${FILESDIR}/1.82.0-i586-baseline.patch"
+ grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die
+ fi
+ fi
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = true
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ musl-root = "$($(tc-getCC) -print-sysroot)/usr"
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ docompress /usr/lib/${PN}/${PV}/share/man/
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ optfeature "emacs support for rust" app-emacs/rust-mode
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ optfeature "vim support for rust" app-vim/rust-vim
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild b/dev-lang/spidermonkey/spidermonkey-102.15.0-r1.ebuild
index b1ab05478ed6..bf9a67de35f8 100644
--- a/dev-lang/spidermonkey/spidermonkey-102.15.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-102.15.0-r1.ebuild
@@ -7,14 +7,16 @@ EAPI="8"
FIREFOX_PATCHSET="firefox-102esr-patches-13.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-102-patches-05j.tar.xz"
-LLVM_MAX_SLOT=17
+LLVM_COMPAT=( 17 )
PYTHON_COMPAT=( python3_{10..11} )
PYTHON_REQ_USE="ssl,xml(+)"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing prefix python-any-r1 rust toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
@@ -71,41 +73,13 @@ IUSE="clang cpu_flags_arm_neon debug +jit lto test"
RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
- || (
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/clang:17
- sys-devel/lld:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/clang:16
- sys-devel/lld:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- lto? ( sys-devel/lld:15 )
- )
- )
- (
- sys-devel/llvm:14
- clang? (
- sys-devel/clang:14
- virtual/rust:0/llvm-14
- lto? ( sys-devel/lld:14 )
- )
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
)
- )
- !clang? ( virtual/rust )
+ ')
virtual/pkgconfig
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
@@ -130,11 +104,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use lto ; then
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -172,7 +141,8 @@ pkg_setup() {
check-reqs_pkg_setup
- llvm_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/dev-lang/spidermonkey/spidermonkey-115.16.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild
index ec49a5bdada9..b1444fb6dae3 100644
--- a/dev-lang/spidermonkey/spidermonkey-115.16.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-115.16.0-r1.ebuild
@@ -7,14 +7,16 @@ EAPI="8"
FIREFOX_PATCHSET="firefox-115esr-patches-13.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-02.tar.xz"
-LLVM_MAX_SLOT=18
+LLVM_COMPAT=( 18 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+RUST_NEEDS_LLVM="1"
+
WANT_AUTOCONF="2.1"
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing prefix python-any-r1 rust toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
@@ -72,47 +74,13 @@ RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
virtual/pkgconfig
- || (
- (
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- sys-devel/clang:18
- virtual/rust:0/llvm-18
- )
- )
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- sys-devel/clang:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- sys-devel/clang:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- )
- )
- )
- !clang? ( virtual/rust )
- !elibc_glibc? (
- || (
- dev-lang/rust
- <dev-lang/rust-bin-1.73
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
)
- )
+ ')
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
)"
@@ -136,11 +104,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if ! tc-ld-is-mold ; then
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -212,7 +175,8 @@ pkg_setup() {
check-reqs_pkg_setup
- llvm_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/dev-lang/spidermonkey/spidermonkey-128.3.0.ebuild b/dev-lang/spidermonkey/spidermonkey-128.3.0-r1.ebuild
index 77e9e3247dbd..9b70f62cf9c9 100644
--- a/dev-lang/spidermonkey/spidermonkey-128.3.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-128.3.0-r1.ebuild
@@ -11,9 +11,11 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
-inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 toolchain-funcs
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}"
@@ -73,11 +75,8 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/clang:${LLVM_SLOT}
sys-devel/lld:${LLVM_SLOT}
sys-devel/llvm:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
')
- !clang? ( virtual/rust )
- !elibc_glibc? ( dev-lang/rust )
>=dev-util/cbindgen-0.26.0
virtual/pkgconfig
test? (
@@ -103,11 +102,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if ! tc-ld-is-mold ; then
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -189,6 +183,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/dev-lang/spidermonkey/spidermonkey-128.4.0.ebuild b/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild
index 3915902d6caa..0bf52dabea6e 100644
--- a/dev-lang/spidermonkey/spidermonkey-128.4.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild
@@ -13,7 +13,7 @@ PYTHON_REQ_USE="ncurses,ssl,xml(+)"
WANT_AUTOCONF="2.1"
-inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 toolchain-funcs
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}"
@@ -73,11 +73,8 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/clang:${LLVM_SLOT}
sys-devel/lld:${LLVM_SLOT}
sys-devel/llvm:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
')
- !clang? ( virtual/rust )
- !elibc_glibc? ( dev-lang/rust )
>=dev-util/cbindgen-0.26.0
virtual/pkgconfig
test? (
@@ -103,11 +100,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if ! tc-ld-is-mold ; then
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -189,6 +181,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/dev-libs/dynolog/dynolog-0.3.1_p20230126-r2.ebuild b/dev-libs/dynolog/dynolog-0.3.1_p20230126-r3.ebuild
index ca74802f6de0..ca74802f6de0 100644
--- a/dev-libs/dynolog/dynolog-0.3.1_p20230126-r2.ebuild
+++ b/dev-libs/dynolog/dynolog-0.3.1_p20230126-r3.ebuild
diff --git a/dev-python/adblock/adblock-0.6.0.ebuild b/dev-python/adblock/adblock-0.6.0-r1.ebuild
index 2204153a01f8..2204153a01f8 100644
--- a/dev-python/adblock/adblock-0.6.0.ebuild
+++ b/dev-python/adblock/adblock-0.6.0-r1.ebuild
diff --git a/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild b/dev-python/bcrypt/bcrypt-4.2.0-r3.ebuild
index 01fd00db34ee..01fd00db34ee 100644
--- a/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild
+++ b/dev-python/bcrypt/bcrypt-4.2.0-r3.ebuild
diff --git a/dev-python/blake3/blake3-0.4.1.ebuild b/dev-python/blake3/blake3-0.4.1-r1.ebuild
index 169408721d16..c09028b90ccb 100644
--- a/dev-python/blake3/blake3-0.4.1.ebuild
+++ b/dev-python/blake3/blake3-0.4.1-r1.ebuild
@@ -108,8 +108,13 @@ QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/blake3/blake3.*.so"
distutils_enable_tests pytest
+pkg_setup() {
+ distutils-r1_pkg_setup
+ use rust && cargo_pkg_setup
+}
+
src_unpack() {
- cargo_src_unpack
+ use rust && cargo_src_unpack
}
src_prepare() {
diff --git a/dev-python/cramjam/cramjam-2.8.3.ebuild b/dev-python/cramjam/cramjam-2.8.3-r1.ebuild
index 73bb943dde59..73bb943dde59 100644
--- a/dev-python/cramjam/cramjam-2.8.3.ebuild
+++ b/dev-python/cramjam/cramjam-2.8.3-r1.ebuild
diff --git a/dev-python/cramjam/cramjam-2.8.4.ebuild b/dev-python/cramjam/cramjam-2.8.4-r1.ebuild
index 800415fe85a3..800415fe85a3 100644
--- a/dev-python/cramjam/cramjam-2.8.4.ebuild
+++ b/dev-python/cramjam/cramjam-2.8.4-r1.ebuild
diff --git a/dev-python/cramjam/cramjam-2.9.0.ebuild b/dev-python/cramjam/cramjam-2.9.0-r1.ebuild
index 54236d80d254..54236d80d254 100644
--- a/dev-python/cramjam/cramjam-2.9.0.ebuild
+++ b/dev-python/cramjam/cramjam-2.9.0-r1.ebuild
diff --git a/dev-python/cryptography/cryptography-43.0.3.ebuild b/dev-python/cryptography/cryptography-43.0.3-r1.ebuild
index dde6f100fd31..d2d62f9acef7 100644
--- a/dev-python/cryptography/cryptography-43.0.3.ebuild
+++ b/dev-python/cryptography/cryptography-43.0.3-r1.ebuild
@@ -77,11 +77,9 @@ RDEPEND="
DEPEND="
${RDEPEND}
"
-# XXX: Drop explicit >=virtual/rust-1.56.0 dep once that's the minimum in cargo.eclass
-# and replace it with ${RUST_DEPEND}
+
BDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
- >=virtual/rust-1.56.0
test? (
dev-python/certifi[${PYTHON_USEDEP}]
>=dev-python/hypothesis-1.11.4[${PYTHON_USEDEP}]
diff --git a/dev-python/dulwich/dulwich-0.22.4.ebuild b/dev-python/dulwich/dulwich-0.22.4-r1.ebuild
index ed4304223767..ed4304223767 100644
--- a/dev-python/dulwich/dulwich-0.22.4.ebuild
+++ b/dev-python/dulwich/dulwich-0.22.4-r1.ebuild
diff --git a/dev-python/jellyfish/jellyfish-1.1.0.ebuild b/dev-python/jellyfish/jellyfish-1.1.0-r1.ebuild
index e3bcd852ea94..da3d699aea29 100644
--- a/dev-python/jellyfish/jellyfish-1.1.0.ebuild
+++ b/dev-python/jellyfish/jellyfish-1.1.0-r1.ebuild
@@ -74,6 +74,11 @@ distutils_enable_tests pytest
export UNSAFE_PYO3_SKIP_VERSION_CHECK=1
+pkg_setup() {
+ distutils-r1_pkg_setup
+ cargo_src_prepare
+}
+
python_test_all() {
cargo_src_test
}
diff --git a/dev-python/libcst/libcst-1.5.0.ebuild b/dev-python/libcst/libcst-1.5.0-r1.ebuild
index 2eb6ef190406..ef97ae4e765b 100644
--- a/dev-python/libcst/libcst-1.5.0.ebuild
+++ b/dev-python/libcst/libcst-1.5.0-r1.ebuild
@@ -160,6 +160,11 @@ distutils_enable_tests pytest
QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/libcst/native.*"
+pkg_setup() {
+ distutils_r1_pkg_setup
+ rust_pkg_setup
+}
+
python_test() {
local EPYTEST_DESELECT=(
# TODO
diff --git a/dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20.ebuild b/dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20-r1.ebuild
index 8b203a51a8e5..8b203a51a8e5 100644
--- a/dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20.ebuild
+++ b/dev-python/mitmproxy_wireguard/mitmproxy_wireguard-0.1.20-r1.ebuild
diff --git a/dev-python/nh3/nh3-0.2.18.ebuild b/dev-python/nh3/nh3-0.2.18-r1.ebuild
index 14e9c185d518..14e9c185d518 100644
--- a/dev-python/nh3/nh3-0.2.18.ebuild
+++ b/dev-python/nh3/nh3-0.2.18-r1.ebuild
diff --git a/dev-python/orjson/orjson-3.10.10.ebuild b/dev-python/orjson/orjson-3.10.10-r1.ebuild
index cbc4ab2ab2b7..2b4112470abe 100644
--- a/dev-python/orjson/orjson-3.10.10.ebuild
+++ b/dev-python/orjson/orjson-3.10.10-r1.ebuild
@@ -45,6 +45,8 @@ CRATES="
xxhash-rust@0.8.12
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
@@ -65,7 +67,6 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
- >=virtual/rust-1.72
test? (
dev-python/arrow[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/orjson/orjson-3.10.11.ebuild b/dev-python/orjson/orjson-3.10.11-r1.ebuild
index 5c03b8c36edb..3a501dfa5083 100644
--- a/dev-python/orjson/orjson-3.10.11.ebuild
+++ b/dev-python/orjson/orjson-3.10.11-r1.ebuild
@@ -45,6 +45,8 @@ CRATES="
xxhash-rust@0.8.12
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
@@ -65,7 +67,6 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
- >=virtual/rust-1.72
test? (
dev-python/arrow[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/orjson/orjson-3.10.7.ebuild b/dev-python/orjson/orjson-3.10.7-r1.ebuild
index f19958a1c0bf..7a61a1451002 100644
--- a/dev-python/orjson/orjson-3.10.7.ebuild
+++ b/dev-python/orjson/orjson-3.10.7-r1.ebuild
@@ -49,6 +49,8 @@ CRATES="
xxhash-rust@0.8.12
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
@@ -69,7 +71,6 @@ SLOT="0"
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
BDEPEND="
- >=virtual/rust-1.72
test? (
dev-python/arrow[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/orjson/orjson-3.10.9.ebuild b/dev-python/orjson/orjson-3.10.9-r1.ebuild
index ed6c5c62af3c..738c33a18fb6 100644
--- a/dev-python/orjson/orjson-3.10.9.ebuild
+++ b/dev-python/orjson/orjson-3.10.9-r1.ebuild
@@ -45,6 +45,8 @@ CRATES="
xxhash-rust@0.8.12
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
@@ -65,7 +67,6 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
- >=virtual/rust-1.72
test? (
dev-python/arrow[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/pydantic-core/pydantic-core-2.23.4.ebuild b/dev-python/pydantic-core/pydantic-core-2.23.4-r1.ebuild
index 861953aeca39..cfe9a3db749c 100644
--- a/dev-python/pydantic-core/pydantic-core-2.23.4.ebuild
+++ b/dev-python/pydantic-core/pydantic-core-2.23.4-r1.ebuild
@@ -130,7 +130,6 @@ RDEPEND="
>=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}]
"
BDEPEND="
- >=virtual/rust-1.70.0
test? (
>=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
>=dev-python/hypothesis-6.63.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pydantic-core/pydantic-core-2.25.0.ebuild b/dev-python/pydantic-core/pydantic-core-2.25.0-r1.ebuild
index 1a69812ffb66..eb5decd5dfc7 100644
--- a/dev-python/pydantic-core/pydantic-core-2.25.0.ebuild
+++ b/dev-python/pydantic-core/pydantic-core-2.25.0-r1.ebuild
@@ -130,7 +130,6 @@ RDEPEND="
>=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}]
"
BDEPEND="
- >=virtual/rust-1.70.0
test? (
>=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
>=dev-python/hypothesis-6.63.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pydantic-core/pydantic-core-2.25.1.ebuild b/dev-python/pydantic-core/pydantic-core-2.25.1-r1.ebuild
index 30937b9650bb..399c36f2970d 100644
--- a/dev-python/pydantic-core/pydantic-core-2.25.1.ebuild
+++ b/dev-python/pydantic-core/pydantic-core-2.25.1-r1.ebuild
@@ -130,7 +130,6 @@ RDEPEND="
>=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}]
"
BDEPEND="
- >=virtual/rust-1.70.0
test? (
>=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
>=dev-python/hypothesis-6.63.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pydantic-core/pydantic-core-2.26.0.ebuild b/dev-python/pydantic-core/pydantic-core-2.26.0-r1.ebuild
index 452195914fcb..35a5f2977d0d 100644
--- a/dev-python/pydantic-core/pydantic-core-2.26.0.ebuild
+++ b/dev-python/pydantic-core/pydantic-core-2.26.0-r1.ebuild
@@ -130,7 +130,6 @@ RDEPEND="
>=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}]
"
BDEPEND="
- >=virtual/rust-1.70.0
test? (
>=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
>=dev-python/hypothesis-6.63.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3.ebuild b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3-r1.ebuild
index 8d2c176c570d..8d2c176c570d 100644
--- a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3.ebuild
+++ b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.3-r1.ebuild
diff --git a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6.ebuild b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6-r1.ebuild
index 3a270dc74904..3a270dc74904 100644
--- a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6.ebuild
+++ b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.1.6-r1.ebuild
diff --git a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1.ebuild b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1-r1.ebuild
index 8c854f82e476..8c854f82e476 100644
--- a/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1.ebuild
+++ b/dev-python/pyproject-fmt-rust/pyproject-fmt-rust-1.2.1-r1.ebuild
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.4.2.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.4.2-r1.ebuild
index f1cc388d223d..f1cc388d223d 100644
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.4.2.ebuild
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.4.2-r1.ebuild
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.4.3.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.4.3-r1.ebuild
index f9fbd6066985..f9fbd6066985 100644
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.4.3.ebuild
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.4.3-r1.ebuild
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.5.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.5.0-r1.ebuild
index 377b7a43756d..377b7a43756d 100644
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.5.0.ebuild
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.5.0-r1.ebuild
diff --git a/dev-python/qiskit/qiskit-1.2.4.ebuild b/dev-python/qiskit/qiskit-1.2.4-r1.ebuild
index 4dd579104bf4..4dd579104bf4 100644
--- a/dev-python/qiskit/qiskit-1.2.4.ebuild
+++ b/dev-python/qiskit/qiskit-1.2.4-r1.ebuild
diff --git a/dev-python/qiskit/qiskit-1.3.0_rc1.ebuild b/dev-python/qiskit/qiskit-1.3.0_rc1-r1.ebuild
index 86853089155e..86853089155e 100644
--- a/dev-python/qiskit/qiskit-1.3.0_rc1.ebuild
+++ b/dev-python/qiskit/qiskit-1.3.0_rc1-r1.ebuild
diff --git a/dev-python/regress/regress-2024.11.1.ebuild b/dev-python/regress/regress-2024.11.1-r1.ebuild
index 7f155c521cdc..7f155c521cdc 100644
--- a/dev-python/regress/regress-2024.11.1.ebuild
+++ b/dev-python/regress/regress-2024.11.1-r1.ebuild
diff --git a/dev-python/regress/regress-2024.8.1.ebuild b/dev-python/regress/regress-2024.8.1-r1.ebuild
index 108fba133b20..108fba133b20 100644
--- a/dev-python/regress/regress-2024.8.1.ebuild
+++ b/dev-python/regress/regress-2024.8.1-r1.ebuild
diff --git a/dev-python/rpds-py/rpds-py-0.19.1.ebuild b/dev-python/rpds-py/rpds-py-0.19.1-r1.ebuild
index 28d2cfbee5ee..629949dd782e 100644
--- a/dev-python/rpds-py/rpds-py-0.19.1.ebuild
+++ b/dev-python/rpds-py/rpds-py-0.19.1-r1.ebuild
@@ -35,6 +35,8 @@ CRATES="
unindent@0.2.3
"
+RUST_MIN_VER="1.77.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
@@ -52,10 +54,6 @@ LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-BDEPEND="
- >=virtual/rust-1.76.0
-"
-
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
distutils_enable_tests pytest
diff --git a/dev-python/rpds-py/rpds-py-0.20.1.ebuild b/dev-python/rpds-py/rpds-py-0.20.1-r1.ebuild
index 86c8f68d545d..a7c044d8f8fd 100644
--- a/dev-python/rpds-py/rpds-py-0.20.1.ebuild
+++ b/dev-python/rpds-py/rpds-py-0.20.1-r1.ebuild
@@ -34,6 +34,8 @@ CRATES="
unindent@0.2.3
"
+RUST_MIN_VER="1.77.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
@@ -51,10 +53,6 @@ LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-BDEPEND="
- >=virtual/rust-1.76.0
-"
-
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
distutils_enable_tests pytest
diff --git a/dev-python/rpds-py/rpds-py-0.21.0.ebuild b/dev-python/rpds-py/rpds-py-0.21.0-r1.ebuild
index 36e0b76d46b8..593819cdcb35 100644
--- a/dev-python/rpds-py/rpds-py-0.21.0.ebuild
+++ b/dev-python/rpds-py/rpds-py-0.21.0-r1.ebuild
@@ -34,6 +34,8 @@ CRATES="
unindent@0.2.3
"
+RUST_MIN_VER="1.77.1"
+
inherit cargo distutils-r1 pypi
DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
@@ -51,10 +53,6 @@ LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-BDEPEND="
- >=virtual/rust-1.76.0
-"
-
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
distutils_enable_tests pytest
diff --git a/dev-python/rustworkx/rustworkx-0.14.2-r1.ebuild b/dev-python/rustworkx/rustworkx-0.14.2-r2.ebuild
index 7f9ec72bc304..7f9ec72bc304 100644
--- a/dev-python/rustworkx/rustworkx-0.14.2-r1.ebuild
+++ b/dev-python/rustworkx/rustworkx-0.14.2-r2.ebuild
diff --git a/dev-python/rustworkx/rustworkx-0.15.0.ebuild b/dev-python/rustworkx/rustworkx-0.15.0-r1.ebuild
index 2809ede475f2..2809ede475f2 100644
--- a/dev-python/rustworkx/rustworkx-0.15.0.ebuild
+++ b/dev-python/rustworkx/rustworkx-0.15.0-r1.ebuild
diff --git a/dev-python/rustworkx/rustworkx-0.15.1.ebuild b/dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild
index e152e322a49b..e152e322a49b 100644
--- a/dev-python/rustworkx/rustworkx-0.15.1.ebuild
+++ b/dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild
diff --git a/dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild b/dev-python/setuptools-rust/setuptools-rust-1.10.2-r1.ebuild
index 927ad25c0bb7..bd8b5b3cbb58 100644
--- a/dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild
+++ b/dev-python/setuptools-rust/setuptools-rust-1.10.2-r1.ebuild
@@ -121,7 +121,7 @@ IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
- virtual/rust
+ ${RUST_DEPEND}
<dev-python/semantic-version-3[${PYTHON_USEDEP}]
>=dev-python/semantic-version-2.8.2[${PYTHON_USEDEP}]
>=dev-python/setuptools-62.4[${PYTHON_USEDEP}]
diff --git a/dev-python/sqlglot/sqlglot-25.29.0.ebuild b/dev-python/sqlglot/sqlglot-25.28.0-r1.ebuild
index 456b6e98cfce..57b6841009e1 100644
--- a/dev-python/sqlglot/sqlglot-25.29.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-25.28.0-r1.ebuild
@@ -81,6 +81,10 @@ distutils_enable_tests pytest
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
src_unpack() {
cargo_src_unpack
}
diff --git a/dev-python/sqlglot/sqlglot-25.28.0.ebuild b/dev-python/sqlglot/sqlglot-25.29.0-r1.ebuild
index 456b6e98cfce..57b6841009e1 100644
--- a/dev-python/sqlglot/sqlglot-25.28.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-25.29.0-r1.ebuild
@@ -81,6 +81,10 @@ distutils_enable_tests pytest
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
src_unpack() {
cargo_src_unpack
}
diff --git a/dev-python/uv/uv-0.4.30.ebuild b/dev-python/uv/uv-0.4.30-r1.ebuild
index 8ce7f04ec3be..4d826c5cfb40 100644
--- a/dev-python/uv/uv-0.4.30.ebuild
+++ b/dev-python/uv/uv-0.4.30-r1.ebuild
@@ -15,6 +15,8 @@ declare -A GIT_CRATES=(
[version-ranges]='https://github.com/astral-sh/pubgrub;95e1390399cdddee986b658be19587eb1fdb2d79;pubgrub-%commit%/version-ranges'
)
+RUST_MIN_VER="1.80.1"
+
inherit cargo check-reqs
CRATE_PV=${PV}
@@ -60,7 +62,6 @@ RDEPEND="
${DEPEND}
"
BDEPEND="
- >=virtual/rust-1.80
test? (
dev-lang/python:3.8
dev-lang/python:3.9
@@ -84,6 +85,7 @@ pkg_pretend() {
pkg_setup() {
check_space
+ rust_pkg_setup
}
src_prepare() {
diff --git a/dev-python/uv/uv-0.5.0.ebuild b/dev-python/uv/uv-0.5.0-r1.ebuild
index e67a3e7e521e..944b6b4eeafa 100644
--- a/dev-python/uv/uv-0.5.0.ebuild
+++ b/dev-python/uv/uv-0.5.0-r1.ebuild
@@ -15,6 +15,8 @@ declare -A GIT_CRATES=(
[version-ranges]='https://github.com/astral-sh/pubgrub;95e1390399cdddee986b658be19587eb1fdb2d79;pubgrub-%commit%/version-ranges'
)
+RUST_MIN_VER="1.80.1"
+
inherit cargo check-reqs
CRATE_PV=${PV}
@@ -60,7 +62,6 @@ RDEPEND="
${DEPEND}
"
BDEPEND="
- >=virtual/rust-1.80
test? (
dev-lang/python:3.8
dev-lang/python:3.9
@@ -84,6 +85,7 @@ pkg_pretend() {
pkg_setup() {
check_space
+ rust_pkg_setup
}
src_prepare() {
diff --git a/dev-python/watchfiles/watchfiles-0.23.0.ebuild b/dev-python/watchfiles/watchfiles-0.23.0-r1.ebuild
index 7566d6a68321..7566d6a68321 100644
--- a/dev-python/watchfiles/watchfiles-0.23.0.ebuild
+++ b/dev-python/watchfiles/watchfiles-0.23.0-r1.ebuild
diff --git a/dev-python/watchfiles/watchfiles-0.24.0.ebuild b/dev-python/watchfiles/watchfiles-0.24.0-r1.ebuild
index 5f1de831da87..5f1de831da87 100644
--- a/dev-python/watchfiles/watchfiles-0.24.0.ebuild
+++ b/dev-python/watchfiles/watchfiles-0.24.0-r1.ebuild
diff --git a/dev-util/bindgen/bindgen-0.68.1.ebuild b/dev-util/bindgen/bindgen-0.68.1-r1.ebuild
index 23360f73eeba..9b9bbaeb26d3 100644
--- a/dev-util/bindgen/bindgen-0.68.1.ebuild
+++ b/dev-util/bindgen/bindgen-0.68.1-r1.ebuild
@@ -116,7 +116,7 @@ LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
-DEPEND="virtual/rust"
+DEPEND="${RUST_DEPEND}"
RDEPEND="${DEPEND}
sys-devel/clang:*"
diff --git a/dev-util/bindgen/bindgen-0.69.4.ebuild b/dev-util/bindgen/bindgen-0.69.4-r1.ebuild
index 9e0b5b99c434..02f369060287 100644
--- a/dev-util/bindgen/bindgen-0.69.4.ebuild
+++ b/dev-util/bindgen/bindgen-0.69.4-r1.ebuild
@@ -114,7 +114,7 @@ LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
-DEPEND="virtual/rust"
+DEPEND="${RUST_DEPEND}"
RDEPEND="${DEPEND}
sys-devel/clang:*"
diff --git a/dev-util/bindgen/bindgen-0.70.1.ebuild b/dev-util/bindgen/bindgen-0.70.1-r1.ebuild
index 33bc91925636..0f2fb05d05b7 100644
--- a/dev-util/bindgen/bindgen-0.70.1.ebuild
+++ b/dev-util/bindgen/bindgen-0.70.1-r1.ebuild
@@ -109,7 +109,7 @@ LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
-DEPEND="virtual/rust"
+DEPEND="${RUST_DEPEND}"
RDEPEND="${DEPEND}
sys-devel/clang:*"
diff --git a/dev-util/bingrep/bingrep-0.10.1-r1.ebuild b/dev-util/bingrep/bingrep-0.10.1-r1.ebuild
new file mode 100644
index 000000000000..c83dca277b99
--- /dev/null
+++ b/dev-util/bingrep/bingrep-0.10.1-r1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ anyhow@1.0.63
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bstr@0.2.17
+ cfg-if@1.0.0
+ clap@3.2.20
+ clap_derive@3.2.18
+ clap_lex@0.2.4
+ cpp_demangle@0.3.5
+ csv@1.1.6
+ csv-core@0.1.10
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ encode_unicode@1.0.0
+ env_logger@0.9.0
+ fuchsia-cprng@0.1.1
+ getrandom@0.2.7
+ goblin@0.5.4
+ hashbrown@0.12.3
+ heck@0.4.0
+ hermit-abi@0.1.19
+ hexplay@0.2.1
+ humantime@2.1.0
+ indexmap@1.9.1
+ itoa@0.4.8
+ lazy_static@1.4.0
+ libc@0.2.132
+ log@0.4.17
+ memchr@2.5.0
+ memrange@0.1.3
+ metagoblin@0.6.0
+ once_cell@1.14.0
+ os_str_bytes@6.3.0
+ plain@0.2.3
+ prettytable-rs@0.9.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.43
+ quote@1.0.21
+ rand@0.3.23
+ rand@0.4.6
+ rand_core@0.3.1
+ rand_core@0.4.2
+ rdrand@0.4.0
+ redox_syscall@0.2.16
+ redox_users@0.4.3
+ regex@1.6.0
+ regex-automata@0.1.10
+ regex-syntax@0.6.27
+ rustc-demangle@0.1.21
+ rustc-serialize@0.3.24
+ rustversion@1.0.9
+ ryu@1.0.11
+ scroll@0.11.0
+ scroll_derive@0.11.0
+ serde@1.0.144
+ strsim@0.10.0
+ syn@1.0.99
+ term@0.7.0
+ termcolor@0.3.6
+ termcolor@1.1.3
+ terminal_size@0.1.17
+ textwrap@0.15.0
+ theban_interval_tree@0.7.1
+ thiserror@1.0.33
+ thiserror-impl@1.0.33
+ time@0.1.44
+ unicode-ident@1.0.3
+ unicode-width@0.1.9
+ version_check@0.9.4
+ wasi@0.10.0+wasi-snapshot-preview1
+ wasi@0.11.0+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ wincolor@0.1.6
+"
+
+# https://github.com/rust-lang/rust/issues/113152#issuecomment-1612578376
+RUST_MAX_VER="1.71.1"
+
+inherit cargo
+
+DESCRIPTION="Binary file analysis tool"
+HOMEPAGE="https://github.com/m4b/bingrep"
+SRC_URI="https://github.com/m4b/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 BSD Boost-1.0 MIT Unicode-DFS-2016"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+QA_FLAGS_IGNORED="usr/bin/bingrep"
+
+pkg_setup() {
+ rust_pkg_setup
+ # Requires nightly feature proc-macro2
+ export RUSTC_BOOTSTRAP=1
+}
+
+src_install() {
+ cargo_src_install
+ einstalldocs
+}
diff --git a/dev-util/bingrep/bingrep-0.10.1.ebuild b/dev-util/bingrep/bingrep-0.10.1.ebuild
deleted file mode 100644
index 008322659186..000000000000
--- a/dev-util/bingrep/bingrep-0.10.1.ebuild
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 2019-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick-0.7.18
- anyhow-1.0.63
- atty-0.2.14
- autocfg-1.1.0
- bitflags-1.3.2
- bstr-0.2.17
- cfg-if-1.0.0
- clap-3.2.20
- clap_derive-3.2.18
- clap_lex-0.2.4
- cpp_demangle-0.3.5
- csv-1.1.6
- csv-core-0.1.10
- dirs-next-2.0.0
- dirs-sys-next-0.1.2
- encode_unicode-1.0.0
- env_logger-0.9.0
- fuchsia-cprng-0.1.1
- getrandom-0.2.7
- goblin-0.5.4
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- hexplay-0.2.1
- humantime-2.1.0
- indexmap-1.9.1
- itoa-0.4.8
- lazy_static-1.4.0
- libc-0.2.132
- log-0.4.17
- memchr-2.5.0
- memrange-0.1.3
- metagoblin-0.6.0
- once_cell-1.14.0
- os_str_bytes-6.3.0
- plain-0.2.3
- prettytable-rs-0.9.0
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- quote-1.0.21
- rand-0.3.23
- rand-0.4.6
- rand_core-0.3.1
- rand_core-0.4.2
- rdrand-0.4.0
- redox_syscall-0.2.16
- redox_users-0.4.3
- regex-1.6.0
- regex-automata-0.1.10
- regex-syntax-0.6.27
- rustc-demangle-0.1.21
- rustc-serialize-0.3.24
- rustversion-1.0.9
- ryu-1.0.11
- scroll-0.11.0
- scroll_derive-0.11.0
- serde-1.0.144
- strsim-0.10.0
- syn-1.0.99
- term-0.7.0
- termcolor-0.3.6
- termcolor-1.1.3
- terminal_size-0.1.17
- textwrap-0.15.0
- theban_interval_tree-0.7.1
- thiserror-1.0.33
- thiserror-impl-1.0.33
- time-0.1.44
- unicode-ident-1.0.3
- unicode-width-0.1.9
- version_check-0.9.4
- wasi-0.10.0+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- wincolor-0.1.6
-"
-
-inherit cargo
-
-DESCRIPTION="Binary file analysis tool"
-HOMEPAGE="https://github.com/m4b/bingrep"
-SRC_URI="https://github.com/m4b/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
-
-LICENSE="MIT Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 ISC MIT Unicode-DFS-2016 Unlicense"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-
-QA_FLAGS_IGNORED="usr/bin/bingrep"
-
-src_install() {
- cargo_src_install
- einstalldocs
-}
diff --git a/dev-util/bingrep/bingrep-0.11.0-r1.ebuild b/dev-util/bingrep/bingrep-0.11.0-r1.ebuild
new file mode 100644
index 000000000000..0fd92e6bef06
--- /dev/null
+++ b/dev-util/bingrep/bingrep-0.11.0-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.20
+ anyhow@1.0.69
+ atty@0.2.14
+ bitflags@1.3.2
+ bstr@0.2.17
+ cc@1.0.79
+ cfg-if@1.0.0
+ clap@4.1.4
+ clap_derive@4.1.0
+ clap_lex@0.3.1
+ cpp_demangle@0.4.0
+ csv@1.1.6
+ csv-core@0.1.10
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ encode_unicode@1.0.0
+ env_logger@0.10.0
+ errno@0.2.8
+ errno-dragonfly@0.1.2
+ getrandom@0.2.8
+ goblin@0.6.0
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.3.0
+ hexplay@0.2.1
+ humantime@2.1.0
+ io-lifetimes@1.0.5
+ is-terminal@0.4.3
+ itoa@0.4.8
+ lazy_static@1.4.0
+ libc@0.2.139
+ linux-raw-sys@0.1.4
+ log@0.4.17
+ memchr@2.5.0
+ metagoblin@0.8.0
+ once_cell@1.17.0
+ os_str_bytes@6.4.1
+ plain@0.2.3
+ prettytable-rs@0.10.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.51
+ quote@1.0.23
+ redox_syscall@0.2.16
+ redox_users@0.4.3
+ regex@1.7.1
+ regex-automata@0.1.10
+ regex-syntax@0.6.28
+ rustc-demangle@0.1.21
+ rustix@0.36.8
+ rustversion@1.0.11
+ ryu@1.0.12
+ scroll@0.11.0
+ scroll_derive@0.11.0
+ serde@1.0.152
+ strsim@0.10.0
+ syn@1.0.107
+ term@0.7.0
+ termcolor@0.3.6
+ termcolor@1.2.0
+ terminal_size@0.2.3
+ thiserror@1.0.38
+ thiserror-impl@1.0.38
+ unicode-ident@1.0.6
+ unicode-width@0.1.10
+ version_check@0.9.4
+ wasi@0.11.0+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ wincolor@0.1.6
+ windows-sys@0.42.0
+ windows-sys@0.45.0
+ windows-targets@0.42.1
+ windows_aarch64_gnullvm@0.42.1
+ windows_aarch64_msvc@0.42.1
+ windows_i686_gnu@0.42.1
+ windows_i686_msvc@0.42.1
+ windows_x86_64_gnu@0.42.1
+ windows_x86_64_gnullvm@0.42.1
+ windows_x86_64_msvc@0.42.1
+"
+
+# https://github.com/rust-lang/rust/issues/113152#issuecomment-1612578376
+RUST_MAX_VER="1.71.1"
+
+inherit cargo
+
+DESCRIPTION="Binary file analysis tool"
+HOMEPAGE="https://github.com/m4b/bingrep"
+SRC_URI="https://github.com/m4b/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 BSD Boost-1.0 MIT Unicode-DFS-2016"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+QA_FLAGS_IGNORED="usr/bin/bingrep"
+
+pkg_setup() {
+ rust_pkg_setup
+ # Requires nightly feature proc-macro2
+ export RUSTC_BOOTSTRAP=1
+}
+
+src_install() {
+ cargo_src_install
+ einstalldocs
+}
diff --git a/dev-util/bingrep/bingrep-0.11.0.ebuild b/dev-util/bingrep/bingrep-0.11.0.ebuild
deleted file mode 100644
index 395ef46cd927..000000000000
--- a/dev-util/bingrep/bingrep-0.11.0.ebuild
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 2019-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick-0.7.20
- anyhow-1.0.69
- atty-0.2.14
- bitflags-1.3.2
- bstr-0.2.17
- cc-1.0.79
- cfg-if-1.0.0
- clap-4.1.4
- clap_derive-4.1.0
- clap_lex-0.3.1
- cpp_demangle-0.4.0
- csv-1.1.6
- csv-core-0.1.10
- dirs-next-2.0.0
- dirs-sys-next-0.1.2
- encode_unicode-1.0.0
- env_logger-0.10.0
- errno-0.2.8
- errno-dragonfly-0.1.2
- getrandom-0.2.8
- goblin-0.6.0
- heck-0.4.1
- hermit-abi-0.1.19
- hermit-abi-0.3.0
- hexplay-0.2.1
- humantime-2.1.0
- io-lifetimes-1.0.5
- is-terminal-0.4.3
- itoa-0.4.8
- lazy_static-1.4.0
- libc-0.2.139
- linux-raw-sys-0.1.4
- log-0.4.17
- memchr-2.5.0
- metagoblin-0.8.0
- once_cell-1.17.0
- os_str_bytes-6.4.1
- plain-0.2.3
- prettytable-rs-0.10.0
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.51
- quote-1.0.23
- redox_syscall-0.2.16
- redox_users-0.4.3
- regex-1.7.1
- regex-automata-0.1.10
- regex-syntax-0.6.28
- rustc-demangle-0.1.21
- rustix-0.36.8
- rustversion-1.0.11
- ryu-1.0.12
- scroll-0.11.0
- scroll_derive-0.11.0
- serde-1.0.152
- strsim-0.10.0
- syn-1.0.107
- term-0.7.0
- termcolor-0.3.6
- termcolor-1.2.0
- terminal_size-0.2.3
- thiserror-1.0.38
- thiserror-impl-1.0.38
- unicode-ident-1.0.6
- unicode-width-0.1.10
- version_check-0.9.4
- wasi-0.11.0+wasi-snapshot-preview1
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- wincolor-0.1.6
- windows-sys-0.42.0
- windows-sys-0.45.0
- windows-targets-0.42.1
- windows_aarch64_gnullvm-0.42.1
- windows_aarch64_msvc-0.42.1
- windows_i686_gnu-0.42.1
- windows_i686_msvc-0.42.1
- windows_x86_64_gnu-0.42.1
- windows_x86_64_gnullvm-0.42.1
- windows_x86_64_msvc-0.42.1
-"
-
-inherit cargo
-
-DESCRIPTION="Binary file analysis tool"
-HOMEPAGE="https://github.com/m4b/bingrep"
-SRC_URI="https://github.com/m4b/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
-
-LICENSE="Apache-2.0 BSD Boost-1.0 MIT Unicode-DFS-2016"
-
-SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-
-QA_FLAGS_IGNORED="usr/bin/bingrep"
-
-src_install() {
- cargo_src_install
- einstalldocs
-}
diff --git a/dev-util/bpftop/bpftop-0.2.3.ebuild b/dev-util/bpftop/bpftop-0.2.3-r1.ebuild
index cd6267d43984..cd6267d43984 100644
--- a/dev-util/bpftop/bpftop-0.2.3.ebuild
+++ b/dev-util/bpftop/bpftop-0.2.3-r1.ebuild
diff --git a/dev-util/bpftop/bpftop-0.5.1.ebuild b/dev-util/bpftop/bpftop-0.5.1-r1.ebuild
index 1104d45155a3..1104d45155a3 100644
--- a/dev-util/bpftop/bpftop-0.5.1.ebuild
+++ b/dev-util/bpftop/bpftop-0.5.1-r1.ebuild
diff --git a/dev-util/bugbite-cli/bugbite-cli-0.0.12.ebuild b/dev-util/bugbite-cli/bugbite-cli-0.0.12-r1.ebuild
index c6f7e464be0b..b8f9a8d31389 100644
--- a/dev-util/bugbite-cli/bugbite-cli-0.0.12.ebuild
+++ b/dev-util/bugbite-cli/bugbite-cli-0.0.12-r1.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+RUST_MIN_VER="1.79.0"
+
inherit cargo edo shell-completion
DESCRIPTION="A command line tool for bug, issue, and ticket mangling"
@@ -15,13 +17,13 @@ IUSE="static test"
RESTRICT="!test? ( test ) "
BDEPEND="
- >=virtual/rust-1.79
test? ( dev-util/cargo-nextest )
"
QA_FLAGS_IGNORED="usr/bin/bite"
pkg_setup() {
+ rust_pkg_setup
if [[ ${MERGE_TYPE} != binary ]] && use static ; then
local rust_target=$( rustc -vV 2>/dev/null | sed -n 's|^host: ||p' )
[[ -z ${rust_target} ]] && die "Failed to read host target from rustc!"
@@ -35,7 +37,7 @@ src_configure() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --features test --tests ${static_stuff}
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --features test --tests ${static_stuff}
}
src_install() {
diff --git a/dev-util/bugbite-cli/bugbite-cli-0.0.13.ebuild b/dev-util/bugbite-cli/bugbite-cli-0.0.13.ebuild
index dacf74522b2c..d9c801ecf1fb 100644
--- a/dev-util/bugbite-cli/bugbite-cli-0.0.13.ebuild
+++ b/dev-util/bugbite-cli/bugbite-cli-0.0.13.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+RUST_MIN_VER="1.80.1"
+
inherit cargo edo shell-completion
DESCRIPTION="A command line tool for bug, issue, and ticket mangling"
@@ -15,7 +17,6 @@ IUSE="openssl static test"
RESTRICT="!test? ( test ) "
BDEPEND="
- >=virtual/rust-1.80
openssl? (
!static? ( dev-libs/openssl:= )
static? ( dev-libs/openssl:=[static-libs] )
diff --git a/dev-util/cargo-audit/cargo-audit-0.20.1.ebuild b/dev-util/cargo-audit/cargo-audit-0.20.1-r1.ebuild
index cb1193b7ee72..cb1193b7ee72 100644
--- a/dev-util/cargo-audit/cargo-audit-0.20.1.ebuild
+++ b/dev-util/cargo-audit/cargo-audit-0.20.1-r1.ebuild
diff --git a/dev-util/cargo-audit/cargo-audit-0.21.0.ebuild b/dev-util/cargo-audit/cargo-audit-0.21.0-r1.ebuild
index 6fdfa5b0f742..6fdfa5b0f742 100644
--- a/dev-util/cargo-audit/cargo-audit-0.21.0.ebuild
+++ b/dev-util/cargo-audit/cargo-audit-0.21.0-r1.ebuild
diff --git a/dev-util/cargo-c/cargo-c-0.10.0.ebuild b/dev-util/cargo-c/cargo-c-0.10.0-r1.ebuild
index badf600a45c9..b76e05e5b0fc 100644
--- a/dev-util/cargo-c/cargo-c-0.10.0.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.10.0-r1.ebuild
@@ -344,6 +344,8 @@ CRATES="
zeroize@1.8.1
"
+RUST_MIN_VER="1.79.0"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -368,7 +370,6 @@ RDEPEND=">=dev-libs/libgit2-1.7:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.77.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-c/cargo-c-0.10.4.ebuild b/dev-util/cargo-c/cargo-c-0.10.4-r1.ebuild
index 3c153cbed608..b21bd5e2a82f 100644
--- a/dev-util/cargo-c/cargo-c-0.10.4.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.10.4-r1.ebuild
@@ -345,6 +345,8 @@ CRATES="
zeroize@1.8.1
"
+RUST_MIN_VER="1.79.0"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -369,7 +371,6 @@ RDEPEND=">=dev-libs/libgit2-1.8.1:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.79.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-c/cargo-c-0.10.5.ebuild b/dev-util/cargo-c/cargo-c-0.10.5-r1.ebuild
index 7e38d52410f3..8680604e4f06 100644
--- a/dev-util/cargo-c/cargo-c-0.10.5.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.10.5-r1.ebuild
@@ -350,6 +350,8 @@ CRATES="
zeroize@1.8.1
"
+RUST_MIN_VER="1.80.1"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -374,7 +376,6 @@ RDEPEND=">=dev-libs/libgit2-1.8.1:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.80.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-c/cargo-c-0.9.14-r1.ebuild b/dev-util/cargo-c/cargo-c-0.9.14-r1.ebuild
new file mode 100644
index 000000000000..096073063784
--- /dev/null
+++ b/dev-util/cargo-c/cargo-c-0.9.14-r1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 2017-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Only bother defining this if the github tarball doesn't work!
+# Otherwise just comment it out and things should Just Work (TM).
+#MY_P="${P}+cargo-{CARGO_V}"
+
+CRATES="
+ adler@1.0.2
+ aho-corasick@0.7.19
+ anyhow@1.0.66
+ arrayvec@0.5.2
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitmaps@2.1.0
+ bstr@0.2.17
+ bytes@1.2.1
+ bytesize@1.1.0
+ cargo@0.66.0
+ cargo-platform@0.1.2
+ cargo-util@0.2.2
+ cbindgen@0.24.3
+ cc@1.0.76
+ cfg-if@1.0.0
+ clap@3.2.23
+ clap_derive@3.2.18
+ clap_lex@0.2.4
+ combine@4.6.6
+ commoncrypto@0.2.0
+ commoncrypto-sys@0.2.0
+ core-foundation@0.9.3
+ core-foundation-sys@0.8.3
+ crates-io@0.34.0
+ crc32fast@1.3.2
+ crossbeam-utils@0.8.12
+ crypto-hash@0.3.4
+ curl@0.4.44
+ curl-sys@0.4.59+curl-7.86.0
+ either@1.8.0
+ env_logger@0.9.3
+ fastrand@1.8.0
+ filetime@0.2.18
+ flate2@1.0.24
+ fnv@1.0.7
+ foreign-types@0.3.2
+ foreign-types-shared@0.1.1
+ form_urlencoded@1.1.0
+ fwdansi@1.1.0
+ git2@0.15.0
+ git2-curl@0.16.0
+ glob@0.3.0
+ globset@0.4.9
+ hashbrown@0.12.3
+ heck@0.4.0
+ hermit-abi@0.1.19
+ hex@0.3.2
+ hex@0.4.3
+ home@0.5.4
+ humantime@2.1.0
+ idna@0.3.0
+ ignore@0.4.18
+ im-rc@15.1.0
+ indexmap@1.9.2
+ instant@0.1.12
+ itertools@0.10.5
+ itoa@1.0.4
+ jobserver@0.1.25
+ kstring@2.0.0
+ lazycell@1.3.0
+ lazy_static@1.4.0
+ libc@0.2.137
+ libgit2-sys@0.14.0+1.5.0
+ libnghttp2-sys@0.1.7+1.45.0
+ libssh2-sys@0.2.23
+ libz-sys@1.1.8
+ log@0.4.17
+ memchr@2.5.0
+ miniz_oxide@0.5.4
+ miow@0.3.7
+ once_cell@1.16.0
+ opener@0.5.0
+ openssl@0.10.42
+ openssl-macros@0.1.0
+ openssl-probe@0.1.5
+ openssl-src@111.24.0+1.1.1s
+ openssl-sys@0.9.77
+ os_info@3.5.1
+ os_str_bytes@6.4.1
+ pathdiff@0.2.1
+ percent-encoding@2.2.0
+ pkg-config@0.3.26
+ proc-macro2@1.0.47
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ quote@1.0.21
+ rand_core@0.6.4
+ rand_xoshiro@0.6.0
+ redox_syscall@0.2.16
+ regex@1.7.0
+ regex-automata@0.1.10
+ regex-syntax@0.6.28
+ remove_dir_all@0.5.3
+ rustc-workspace-hack@1.0.0
+ rustfix@0.6.1
+ ryu@1.0.11
+ same-file@1.0.6
+ schannel@0.1.20
+ semver@1.0.14
+ serde@1.0.147
+ serde_derive@1.0.147
+ serde_ignored@0.1.5
+ serde_json@1.0.87
+ shell-escape@0.1.5
+ sized-chunks@0.6.5
+ socket2@0.4.7
+ static_assertions@1.1.0
+ strip-ansi-escapes@0.1.1
+ strsim@0.10.0
+ syn@1.0.103
+ tar@0.4.38
+ tempfile@3.3.0
+ termcolor@1.1.3
+ textwrap@0.16.0
+ thread_local@1.1.4
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.0
+ toml@0.5.9
+ toml_edit@0.14.4
+ typenum@1.15.0
+ unicode-bidi@0.3.8
+ unicode-ident@1.0.5
+ unicode-normalization@0.1.22
+ unicode-width@0.1.10
+ unicode-xid@0.2.4
+ url@2.3.1
+ utf8parse@0.2.0
+ vcpkg@0.2.15
+ version_check@0.9.4
+ vte@0.10.1
+ vte_generate_state_changes@0.1.1
+ walkdir@2.3.2
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows_aarch64_gnullvm@0.42.0
+ windows_aarch64_msvc@0.36.1
+ windows_aarch64_msvc@0.42.0
+ windows_i686_gnu@0.36.1
+ windows_i686_gnu@0.42.0
+ windows_i686_msvc@0.36.1
+ windows_i686_msvc@0.42.0
+ windows-sys@0.36.1
+ windows-sys@0.42.0
+ windows_x86_64_gnu@0.36.1
+ windows_x86_64_gnu@0.42.0
+ windows_x86_64_gnullvm@0.42.0
+ windows_x86_64_msvc@0.36.1
+ windows_x86_64_msvc@0.42.0
+"
+
+inherit cargo
+
+DESCRIPTION="Helper program to build and install c-like libraries"
+HOMEPAGE="https://github.com/lu-zero/cargo-c"
+if [[ -z ${MY_P} ]] ; then
+ SRC_URI="https://github.com/lu-zero/cargo-c/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+else
+ S="${WORKDIR}/${MY_P}"
+fi
+
+SRC_URI+=" ${CARGO_CRATE_URIS}"
+
+LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions Boost-1.0 MIT MPL-2.0 Unlicense ZLIB"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86"
+
+RDEPEND="dev-libs/libgit2:=
+ dev-libs/openssl:=
+ net-libs/libssh2:=
+ net-misc/curl[ssl]
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
+
+src_unpack() {
+ cargo_src_unpack
+
+ if [[ -n ${MY_P} ]] ; then
+ tar -xf "${DISTDIR}"/"${MY_P}.crate" -C "${WORKDIR}" || die
+ fi
+}
+
+src_configure() {
+ # Some crates will auto-build and statically link C libraries(!)
+ # Tracker bug #709568
+ export LIBSSH2_SYS_USE_PKG_CONFIG=1
+ export LIBGIT2_SYS_USE_PKG_CONFIG=1
+ export PKG_CONFIG_ALLOW_CROSS=1
+}
diff --git a/dev-util/cargo-c/cargo-c-0.9.14.ebuild b/dev-util/cargo-c/cargo-c-0.9.14.ebuild
deleted file mode 100644
index 7d18dcd56616..000000000000
--- a/dev-util/cargo-c/cargo-c-0.9.14.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 2017-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Only bother defining this if the github tarball doesn't work!
-# Otherwise just comment it out and things should Just Work (TM).
-#MY_P="${P}+cargo-{CARGO_V}"
-
-CRATES="
- ${MY_P}
- adler-1.0.2
- aho-corasick-0.7.19
- anyhow-1.0.66
- arrayvec-0.5.2
- atty-0.2.14
- autocfg-1.1.0
- bitflags-1.3.2
- bitmaps-2.1.0
- bstr-0.2.17
- bytes-1.2.1
- bytesize-1.1.0
- cargo-0.66.0
- cargo-platform-0.1.2
- cargo-util-0.2.2
- cbindgen-0.24.3
- cc-1.0.76
- cfg-if-1.0.0
- clap-3.2.23
- clap_derive-3.2.18
- clap_lex-0.2.4
- combine-4.6.6
- commoncrypto-0.2.0
- commoncrypto-sys-0.2.0
- core-foundation-0.9.3
- core-foundation-sys-0.8.3
- crates-io-0.34.0
- crc32fast-1.3.2
- crossbeam-utils-0.8.12
- crypto-hash-0.3.4
- curl-0.4.44
- curl-sys-0.4.59+curl-7.86.0
- either-1.8.0
- env_logger-0.9.3
- fastrand-1.8.0
- filetime-0.2.18
- flate2-1.0.24
- fnv-1.0.7
- foreign-types-0.3.2
- foreign-types-shared-0.1.1
- form_urlencoded-1.1.0
- fwdansi-1.1.0
- git2-0.15.0
- git2-curl-0.16.0
- glob-0.3.0
- globset-0.4.9
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- hex-0.3.2
- hex-0.4.3
- home-0.5.4
- humantime-2.1.0
- idna-0.3.0
- ignore-0.4.18
- im-rc-15.1.0
- indexmap-1.9.2
- instant-0.1.12
- itertools-0.10.5
- itoa-1.0.4
- jobserver-0.1.25
- kstring-2.0.0
- lazycell-1.3.0
- lazy_static-1.4.0
- libc-0.2.137
- libgit2-sys-0.14.0+1.5.0
- libnghttp2-sys-0.1.7+1.45.0
- libssh2-sys-0.2.23
- libz-sys-1.1.8
- log-0.4.17
- memchr-2.5.0
- miniz_oxide-0.5.4
- miow-0.3.7
- once_cell-1.16.0
- opener-0.5.0
- openssl-0.10.42
- openssl-macros-0.1.0
- openssl-probe-0.1.5
- openssl-src-111.24.0+1.1.1s
- openssl-sys-0.9.77
- os_info-3.5.1
- os_str_bytes-6.4.1
- pathdiff-0.2.1
- percent-encoding-2.2.0
- pkg-config-0.3.26
- proc-macro2-1.0.47
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- quote-1.0.21
- rand_core-0.6.4
- rand_xoshiro-0.6.0
- redox_syscall-0.2.16
- regex-1.7.0
- regex-automata-0.1.10
- regex-syntax-0.6.28
- remove_dir_all-0.5.3
- rustc-workspace-hack-1.0.0
- rustfix-0.6.1
- ryu-1.0.11
- same-file-1.0.6
- schannel-0.1.20
- semver-1.0.14
- serde-1.0.147
- serde_derive-1.0.147
- serde_ignored-0.1.5
- serde_json-1.0.87
- shell-escape-0.1.5
- sized-chunks-0.6.5
- socket2-0.4.7
- static_assertions-1.1.0
- strip-ansi-escapes-0.1.1
- strsim-0.10.0
- syn-1.0.103
- tar-0.4.38
- tempfile-3.3.0
- termcolor-1.1.3
- textwrap-0.16.0
- thread_local-1.1.4
- tinyvec-1.6.0
- tinyvec_macros-0.1.0
- toml-0.5.9
- toml_edit-0.14.4
- typenum-1.15.0
- unicode-bidi-0.3.8
- unicode-ident-1.0.5
- unicode-normalization-0.1.22
- unicode-width-0.1.10
- unicode-xid-0.2.4
- url-2.3.1
- utf8parse-0.2.0
- vcpkg-0.2.15
- version_check-0.9.4
- vte-0.10.1
- vte_generate_state_changes-0.1.1
- walkdir-2.3.2
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows_aarch64_gnullvm-0.42.0
- windows_aarch64_msvc-0.36.1
- windows_aarch64_msvc-0.42.0
- windows_i686_gnu-0.36.1
- windows_i686_gnu-0.42.0
- windows_i686_msvc-0.36.1
- windows_i686_msvc-0.42.0
- windows-sys-0.36.1
- windows-sys-0.42.0
- windows_x86_64_gnu-0.36.1
- windows_x86_64_gnu-0.42.0
- windows_x86_64_gnullvm-0.42.0
- windows_x86_64_msvc-0.36.1
- windows_x86_64_msvc-0.42.0
-"
-
-inherit cargo
-
-DESCRIPTION="Helper program to build and install c-like libraries"
-HOMEPAGE="https://github.com/lu-zero/cargo-c"
-if [[ -z ${MY_P} ]] ; then
- SRC_URI="https://github.com/lu-zero/cargo-c/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-else
- S="${WORKDIR}/${MY_P}"
-fi
-
-SRC_URI+=" $(cargo_crate_uris)"
-
-LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions Boost-1.0 MIT MPL-2.0 Unlicense ZLIB"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="dev-libs/libgit2:=
- dev-libs/openssl:=
- net-libs/libssh2:=
- net-misc/curl[ssl]
- sys-libs/zlib"
-DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.65.0"
-
-QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
-
-src_unpack() {
- cargo_src_unpack
-
- if [[ -n ${MY_P} ]] ; then
- tar -xf "${DISTDIR}"/"${MY_P}.crate" -C "${WORKDIR}" || die
- fi
-}
-
-src_configure() {
- # Some crates will auto-build and statically link C libraries(!)
- # Tracker bug #709568
- export LIBSSH2_SYS_USE_PKG_CONFIG=1
- export LIBGIT2_SYS_USE_PKG_CONFIG=1
- export PKG_CONFIG_ALLOW_CROSS=1
-}
diff --git a/dev-util/cargo-c/cargo-c-0.9.30.ebuild b/dev-util/cargo-c/cargo-c-0.9.30-r1.ebuild
index 73b813f99c3e..f90eec93c99d 100644
--- a/dev-util/cargo-c/cargo-c-0.9.30.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.9.30-r1.ebuild
@@ -336,6 +336,8 @@ CRATES="
zeroize@1.7.0
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -360,7 +362,6 @@ RDEPEND="dev-libs/libgit2:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.74.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-c/cargo-c-0.9.31.ebuild b/dev-util/cargo-c/cargo-c-0.9.31-r1.ebuild
index da84e83c95ec..2b6b8999a858 100644
--- a/dev-util/cargo-c/cargo-c-0.9.31.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.9.31-r1.ebuild
@@ -338,6 +338,8 @@ CRATES="
zeroize@1.7.0
"
+RUST_MIN_VER="1.75.0"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -362,7 +364,6 @@ RDEPEND=">=dev-libs/libgit2-1.7:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.75.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-c/cargo-c-0.9.32.ebuild b/dev-util/cargo-c/cargo-c-0.9.32-r1.ebuild
index 0b979a700e99..133af9ec5bfb 100644
--- a/dev-util/cargo-c/cargo-c-0.9.32.ebuild
+++ b/dev-util/cargo-c/cargo-c-0.9.32-r1.ebuild
@@ -342,6 +342,8 @@ CRATES="
zeroize@1.7.0
"
+RUST_MIN_VER="1.77.1"
+
inherit cargo
DESCRIPTION="Helper program to build and install c-like libraries"
@@ -366,7 +368,6 @@ RDEPEND=">=dev-libs/libgit2-1.7:=
net-misc/curl[ssl]
sys-libs/zlib"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.76.0"
QA_FLAGS_IGNORED="usr/bin/cargo-capi usr/bin/cargo-cbuild usr/bin/cargo-ctest usr/bin/cargo-cinstall"
diff --git a/dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r1.ebuild b/dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r2.ebuild
index a2c1374def5e..990d4d5893a5 100644
--- a/dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r1.ebuild
+++ b/dev-util/cargo-ebuild/cargo-ebuild-0.5.4-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2017-2023 Gentoo Authors
+# Copyright 2017-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Auto-Generated by cargo-ebuild 0.5.4-r1
@@ -134,6 +134,9 @@ CRATES="
winapi-x86_64-pc-windows-gnu@0.4.0
"
+# https://github.com/rust-lang/rust/issues/113152#issuecomment-1612578376
+RUST_MAX_VER="1.71.1"
+
inherit cargo
DESCRIPTION="Generates an ebuild for a package using the in-tree eclasses."
@@ -156,7 +159,6 @@ DEPEND="
RDEPEND="
${DEPEND}
- virtual/rust
"
PATCHES=(
@@ -165,6 +167,12 @@ PATCHES=(
QA_FLAGS_IGNORED="usr/bin/cargo-ebuild"
+pkg_setup() {
+ rust_pkg_setup
+ # Requires nightly feature proc-macro2
+ export RUSTC_BOOTSTRAP=1
+}
+
src_configure() {
export LIBGIT2_SYS_USE_PKG_CONFIG=1 LIBSSH2_SYS_USE_PKG_CONFIG=1 PKG_CONFIG_ALLOW_CROSS=1
cargo_src_configure
diff --git a/dev-util/cargo-license/cargo-license-0.5.1-r1.ebuild b/dev-util/cargo-license/cargo-license-0.5.1-r1.ebuild
new file mode 100644
index 000000000000..24b8d9a2828d
--- /dev/null
+++ b/dev-util/cargo-license/cargo-license-0.5.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ansi_term@0.12.1
+ anyhow@1.0.36
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.2.1
+ bstr@0.2.14
+ byteorder@1.3.4
+ camino@1.1.1
+ cargo-platform@0.1.2
+ cargo_metadata@0.15.0
+ clap@3.2.16
+ clap_derive@3.2.15
+ clap_lex@0.2.4
+ csv@1.1.5
+ csv-core@0.1.10
+ getopts@0.2.21
+ hashbrown@0.12.3
+ heck@0.4.0
+ hermit-abi@0.1.17
+ indexmap@1.9.1
+ itoa@0.4.7
+ itoa@1.0.3
+ lazy_static@1.4.0
+ libc@0.2.81
+ memchr@2.3.4
+ once_cell@1.13.0
+ os_str_bytes@6.2.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.43
+ quote@1.0.21
+ regex-automata@0.1.9
+ ryu@1.0.5
+ semver@1.0.13
+ serde@1.0.143
+ serde_derive@1.0.143
+ serde_json@1.0.83
+ strsim@0.10.0
+ syn@1.0.99
+ termcolor@1.1.3
+ textwrap@0.15.0
+ toml@0.5.8
+ unicode-ident@1.0.3
+ unicode-width@0.1.8
+ version_check@0.9.2
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ cargo-license@0.5.1
+"
+
+inherit cargo
+
+DESCRIPTION="Cargo subcommand to see license of dependencies"
+HOMEPAGE="https://github.com/onur/cargo-license"
+SRC_URI="${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 Boost-1.0 MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+QA_FLAGS_IGNORED="/usr/bin/cargo-license"
+
+src_install() {
+ cargo_src_install
+ einstalldocs
+}
diff --git a/dev-util/cargo-license/cargo-license-0.5.1.ebuild b/dev-util/cargo-license/cargo-license-0.5.1.ebuild
deleted file mode 100644
index 15e4f70c2838..000000000000
--- a/dev-util/cargo-license/cargo-license-0.5.1.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 2019-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- ansi_term-0.12.1
- anyhow-1.0.36
- atty-0.2.14
- autocfg-1.1.0
- bitflags-1.2.1
- bstr-0.2.14
- byteorder-1.3.4
- camino-1.1.1
- cargo-platform-0.1.2
- cargo_metadata-0.15.0
- clap-3.2.16
- clap_derive-3.2.15
- clap_lex-0.2.4
- csv-1.1.5
- csv-core-0.1.10
- getopts-0.2.21
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.17
- indexmap-1.9.1
- itoa-0.4.7
- itoa-1.0.3
- lazy_static-1.4.0
- libc-0.2.81
- memchr-2.3.4
- once_cell-1.13.0
- os_str_bytes-6.2.0
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- quote-1.0.21
- regex-automata-0.1.9
- ryu-1.0.5
- semver-1.0.13
- serde-1.0.143
- serde_derive-1.0.143
- serde_json-1.0.83
- strsim-0.10.0
- syn-1.0.99
- termcolor-1.1.3
- textwrap-0.15.0
- toml-0.5.8
- unicode-ident-1.0.3
- unicode-width-0.1.8
- version_check-0.9.2
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- cargo-license-0.5.1
-"
-
-inherit cargo
-
-DESCRIPTION="Cargo subcommand to see license of dependencies"
-HOMEPAGE="https://github.com/onur/cargo-license"
-SRC_URI="$(cargo_crate_uris ${CRATES})"
-
-LICENSE="Apache-2.0 Boost-1.0 MIT Unicode-DFS-2016 Unlicense"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-
-QA_FLAGS_IGNORED="/usr/bin/cargo-license"
-
-src_install() {
- cargo_src_install
- einstalldocs
-}
diff --git a/dev-util/cargo-license/cargo-license-0.6.1.ebuild b/dev-util/cargo-license/cargo-license-0.6.1-r1.ebuild
index f49937088edc..f49937088edc 100644
--- a/dev-util/cargo-license/cargo-license-0.6.1.ebuild
+++ b/dev-util/cargo-license/cargo-license-0.6.1-r1.ebuild
diff --git a/dev-util/cargo-nextest/cargo-nextest-0.9.67.ebuild b/dev-util/cargo-nextest/cargo-nextest-0.9.67-r1.ebuild
index 0c90986fb80b..0c90986fb80b 100644
--- a/dev-util/cargo-nextest/cargo-nextest-0.9.67.ebuild
+++ b/dev-util/cargo-nextest/cargo-nextest-0.9.67-r1.ebuild
diff --git a/dev-util/cargo-nextest/cargo-nextest-0.9.72.ebuild b/dev-util/cargo-nextest/cargo-nextest-0.9.72-r1.ebuild
index 4ea6db5a1fdf..310cb6d9957b 100644
--- a/dev-util/cargo-nextest/cargo-nextest-0.9.72.ebuild
+++ b/dev-util/cargo-nextest/cargo-nextest-0.9.72-r1.ebuild
@@ -380,6 +380,8 @@ CRATES="
zstd@0.13.1
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo
DESCRIPTION="Next-generation test runner for Rust"
@@ -397,6 +399,4 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-BDEPEND=">=virtual/rust-1.74"
-
QA_FLAGS_IGNORED="usr/bin/cargo-nextest"
diff --git a/dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0.ebuild b/dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0-r1.ebuild
index 1153394b410a..53bfa40db93a 100644
--- a/dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0.ebuild
+++ b/dev-util/cargo-tarpaulin/cargo-tarpaulin-0.30.0-r1.ebuild
@@ -238,6 +238,8 @@ CRATES="
winreg@0.50.0
"
+RUST_MIN_VER="1.76.0"
+
inherit cargo
DESCRIPTION="Cargo-Tarpaulin is a tool to determine code coverage achieved via tests"
@@ -254,10 +256,6 @@ LICENSE+=" Apache-2.0 BSD MIT Unicode-DFS-2016 ZLIB"
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND="
- >=virtual/rust-1.76
-"
-
QA_FLAGS_IGNORED="/usr/bin/cargo-tarpaulin"
PATCHES=(
diff --git a/dev-util/cbindgen/cbindgen-0.26.0.ebuild b/dev-util/cbindgen/cbindgen-0.26.0-r1.ebuild
index b89c7d668af8..2619ec257605 100644
--- a/dev-util/cbindgen/cbindgen-0.26.0.ebuild
+++ b/dev-util/cbindgen/cbindgen-0.26.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2023 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Autogenerated by pycargoebuild 0.10
diff --git a/dev-util/cbindgen/cbindgen-0.27.0.ebuild b/dev-util/cbindgen/cbindgen-0.27.0-r1.ebuild
index 8c5bac853d65..8c5bac853d65 100644
--- a/dev-util/cbindgen/cbindgen-0.27.0.ebuild
+++ b/dev-util/cbindgen/cbindgen-0.27.0-r1.ebuild
diff --git a/dev-util/difftastic/difftastic-0.60.0.ebuild b/dev-util/difftastic/difftastic-0.60.0-r1.ebuild
index 40daceaccbec..40daceaccbec 100644
--- a/dev-util/difftastic/difftastic-0.60.0.ebuild
+++ b/dev-util/difftastic/difftastic-0.60.0-r1.ebuild
diff --git a/dev-util/difftastic/difftastic-0.61.0.ebuild b/dev-util/difftastic/difftastic-0.61.0-r1.ebuild
index 4f9224cf6950..4f9224cf6950 100644
--- a/dev-util/difftastic/difftastic-0.61.0.ebuild
+++ b/dev-util/difftastic/difftastic-0.61.0-r1.ebuild
diff --git a/dev-util/elfshaker/Manifest b/dev-util/elfshaker/Manifest
index fc2029bea3bc..bd5764962c9f 100644
--- a/dev-util/elfshaker/Manifest
+++ b/dev-util/elfshaker/Manifest
@@ -1,56 +1,49 @@
-DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
-DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST ahash-0.7.8.crate 38550 BLAKE2B 0fd5f220c15bc0a1aa2e95d13477bcc832d992c6406f9da0994ae32419e440a6f7ef84c1a7a1242d5904dca5d91206602d943ca81b444f46d2eb91d55844baea SHA512 63677b2001d633ecabb36c08bd92e00b5fa71f24aed1c4601d12d846ea06aeaf093c37cfe1f6642147800caa6c749e9a202aa21f9ab4799efa379ad0d952a2ee
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
-DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
-DIST base64-0.13.1.crate 61002 BLAKE2B 3b3a5b26e2ef18e9b4f1ede72b1bd160a1494751878e8441d463f8a514e6cb9ac859231536989e19fb1261fd864617fe31440df1b5855a0ec625521fc6fcef91 SHA512 1eb76aff9a84057f2ccb7082e9c57b015c2d71a28173089b02e7aacd09a7d311bedf0a943529611ada29f8d7b536d7ae4de256d98eee8450003a3a9a652bda4b
+DIST autocfg-1.3.0.crate 16524 BLAKE2B 7d5a03853d6b4f0da08d8e139fb200da21e47fa7e50d1956270d0ff0cc496f660f8f800122c95eee9ba98d9210ab200c3010b782097483d12d6be4ac0df0e7c9 SHA512 a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635
+DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
-DIST bumpalo-3.12.0.crate 81604 BLAKE2B 2370094f0c23a3e9b75c8e523e54637189543d9df90ae7ddc349d316054d3d1abd1319e51cf1578f1630be0673fd7f65d130469b2729aa32617372e8bc5dd5f7 SHA512 37f2228f251340e82c27f2b34da2af6eb520077b3809331547cbe4887c0b4791b1a7d75a017decccef162cd02a088d504214b7a44b484a7d93eb6a278b329ee4
-DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa
-DIST cc-1.0.78.crate 61375 BLAKE2B fd4765cf5ae0dc7018bc6b56298cd0fa9bf6fe23545e845670d98ce73baee55354e77c6d87cf047f10b074f3d742deca8b5631a250c69b347b4a1fc653965d43 SHA512 b85bec4c75cb1d1e252419052e9dd22b6892e54ea36195ff483a04f785b5b103e82b30b778459fd45324ffeb2463aa4f5696baeff2779c25ffe9f65eb99ae893
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST cc-1.1.18.crate 83315 BLAKE2B a97d24ffdf44f80795f67f7721ed4d2524d92342bfb4ba39e00a1d3351945c904ba84cc7e245c637453e70d19b1584a400e8422e185d42c036ef44d3f2135663 SHA512 af525791c6ba731d688d3f5bf898c0ff86bbd81b127454d7f933491cea1e921d171cb819d04e460e759c6ae0f6da2188ede6bbe94c940c47c6d9d9f991925401
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
-DIST chrono-0.4.23.crate 187259 BLAKE2B b4a7cfb8d1921d396c9e2bf350e6c61d04480a78c170d153e525ff581e8298936583744b6c59769774fdb8ad433269d01ad792f967da96e6c19d33460de937f9 SHA512 697a78ee83eaf38d83011bdf2086b3149b830d3d270e8414828b98ed2426063df43ac6eb4324f2dd694662afb86e6e4f005dee6116dfdd97adaebedefffd43fa
+DIST chrono-0.4.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
-DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844
-DIST core-foundation-sys-0.8.3.crate 17519 BLAKE2B 4ac3d9ab16753dd995abe82f158d460d0d22184ab55d260e73b20305cffe4e03427dabfe0c8be968b6c3ecd348be2e17154ded7c9bbd5a95334ff266fe83bbf7 SHA512 a3ba3184cef65dafe8318c4db7e59eb2749dcde7b2370ad20272b0735ded0032daf2de3fd0cf55eb48448a335f5b81e8e745f2a647f9a43bb85946ce714bfd82
-DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357
-DIST crossbeam-utils-0.8.14.crate 42127 BLAKE2B 3e31e6371e46aba6697501a34e1b737680dcb692c0d1ba7cc1ce7025ec70ee69f7595e3abd90fb52c11e42cb43fa5fae6103f97add35cf87b0a68ea83213d0d0 SHA512 fa00a57c41c9daa152f8a6c6f4d3c77986de1aa21585984adf577e244c2f121db014ba2beb92241590e1cf78710e77d9a703ce4a4d44d8854bc3e60690151393
-DIST cxx-1.0.88.crate 682495 BLAKE2B f1f584dd961d6d0375d6ac7c0b25022997067c6fed76b9f3bc227fdff84209e1901ca902ddec54528621f46869b2b43a7c0f31a70642e5c234e413dc6ee760e8 SHA512 ace3368c9a97b0c74dffd90890c2060e8657476b87d138fbf1a65c5bc0682c1cc627597e564906eb40e80c7503c8ef970438b8bca045ec9c14baaec9970a1e1b
-DIST cxx-build-1.0.88.crate 84429 BLAKE2B 67eaa7120368eccfbf7646170a6f7ecb69402d6814b314090905b85f0a81411524b9925b02c4114ed9c6d1d96d4a7c83d9630f56fab8e5b890ab51cf24a14e35 SHA512 54d10970348b8d0fe9c21d5c4435eebbcd0a058a996594564d8b3140d4b6023b691afece1f14c4dd7341061072301bc762aef580dd15cb9f5cebe778cc846e5b
-DIST cxxbridge-flags-1.0.88.crate 5253 BLAKE2B 6eab1a58c966eb7b355a8781ca49b523e52f51d9b261cabe1c0df3c74a01174afa813e4947a54604760ba7a17d15288f06949258fea7af1b200e3bba97a72eb2 SHA512 fcd1231f38b0e5d84fba7c268f337c419665a269d08fe2752f8373e5152448d544e5fe0d08d6a7e769705450d07af22ec13e0040e80859fd02161527afd7a226
-DIST cxxbridge-macro-1.0.88.crate 59476 BLAKE2B 4c364d534d0d7fd789843e10633996148b31ad501084c1bf59233c97e30c38074c4344b213f32d5f946a51363ce7195360c01e8bb0893e93ab1f8e2cf31a3605 SHA512 7ced29b6a45abfa3649a2ff2cbb1801308f62e58c74e03fa74857329dfabd1c60bccfebf40ae0e041cb1cfdb6c7823157da924ff349c04afcfc78ce24e08e8d8
-DIST elfshaker-0.9.0_p20230918.tar.gz 123248 BLAKE2B 80e174a7b1598f7d0721f60a1814f031698fc001d184dca23412d610f823253cc126fcee52d16441ee31c974bcf8639b209635f145977b4721f701deb7a44551 SHA512 631d2b6592e712a4741d82139a9c6ca1505570f26c2c4d1e04b5af2a9d41996cb1e12541b4bc884bce0d9b5875232d24dc559a5baaed48fae7a9fbda86db0efc
-DIST elfshaker-0.9.0_p20240122.tar.gz 136396 BLAKE2B c066ade3ea2e25e850237145659f4374062e075216c3fb358ac0cccf82edeb49717b31ba0d0fe6e95940ea18ce0384e00725d3e2748d61da69bbba74ed1f0aad SHA512 5017dcb13cf421902ea440951b9df03f5d3c5748ed6bead8bf5f3a1811421e14478ffbaa300b1c48b760677e3846c69ffb6a0e4b994d804c54b7937d964c30e2
-DIST flate2-1.0.25.crate 70210 BLAKE2B 992525ffeeb4433a222487cdfb0c3927ad77f914e1db94f612d80e81faef4a2c955c755c2b800251e3416d0b22726d5f7d7e432a81c3582c54b7de95ab7a324e SHA512 d81a463360ee2778f609ff297e04548120d1fda1f9e020fb2f429ea51189b8fe6cae57252fcd924d71fb65ad0f93ff7cdc7235913f8b78fa82925939cf884af7
-DIST form_urlencoded-1.1.0.crate 8734 BLAKE2B eaca73d73d16242f3fa3e38e23531c67c01404697bc7b7eb7c64fa04167dcb403a41818487fc46c5d9118842818472d549a2f5fcef5e4d962461e1c103d895d1 SHA512 9e245495dbf235b147e4216b313f2e6a96357d2782a66d71c08c2902c6a065701ca8ecdbb6b2035983a83c44cf36c921b5c71d63af0e02dd39bf5f8347117e11
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST elfshaker-0.9.0_p20240914.tar.gz 136875 BLAKE2B 10f6fdbd65614d74bcf4de68ff6d969c468590e8de47cf83aa12e701e68b11c6cd84dd31f14040655881da126d75047965050b3030138a00b55f8575633e3078 SHA512 f6d814a61a3ab268a614a406b77201ff4bbecc71f5a166d17b4ee0857e1d7980622a48ebae79090d54c89d6d5375123b24de84d181d4dcd8315371276867e2b9
+DIST flate2-1.0.33.crate 108838 BLAKE2B 9fd23b3b0a75c29f750c873f74de8565f0d8f3a574c7d28e11d15e6c3c4686c42ba98b5769a08c21f3b9c6ffe7140196c3e7001153ff5a046ee7af40f7f6d965 SHA512 59a871137518586f1d66810528595acad5ca763ec5acc100098a372194f55f33b48e59c0806fd237c644a6d797b5deb26c541fa871a1194ee3ac725da3b6d134
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
DIST fs2-0.4.3.crate 13138 BLAKE2B a8c53130014affc276544360425718c480fe6b6583675e15e8bf25dca0cd2752aeb0793135fce1bdc12bcfc0ef21fb7f6aa298981d61ac150300eb134c2014e0 SHA512 b83fefa9123f304e4813ec1dacbb1aee5dc0c94e1316cd7c8a434aa2a242c9c42523d2bd8232d78e6c84c4e172b5c46ef8605e93b54216a2d4496fdf885dcf50
DIST fuchsia-cprng-0.1.1.crate 2950 BLAKE2B 8519407ab5d1f04d03cc946a07050db4dd7bc70e03894e35b9e66910a3be11224084a86ba45103fdec845e94b7ba4defbd7c5217b035a0796c0c4a94b9562cd7 SHA512 ea9f5beb0dfcb023c22cfc2b37ce52dfcf3a2cbbed0f79ffffc332878858386805c65dce8469a431002367562d857a6c064e075688540c27fcb4056a110059d2
DIST gcc-0.3.55.crate 37262 BLAKE2B 3341dc7136c14fa822a67fdeb72f7ea50b1264823e695e189d69604b8b8cce898ee2d40d8a536d0f520f5e190576afde16afa5d9cbe0a2c4b8600cf50bbd1447 SHA512 b045b60cf65c1deae44e4f40d0f511dab05c82be5065390dfbdaf5b51ee2d0653c3a6d8d1e7606e4bb6d234adfd22a8c68bde724406f3edb4bb6366617d46a86
-DIST getrandom-0.2.8.crate 30553 BLAKE2B 30211bc6a8ceb5ba765cbf068405cfc08842b2521c5850647971f4cb4bc9a5b0a9195ccfbc1461de019eeb7744ee69f934922ff21677259d7b815800516df4dc SHA512 cd7aea29f79a33a0de2a52a0a82f2b57ea8f27908ccfe00a5f42248766df88b225023603ec56d6fc634ef9c1eb67ad0135c90d4c695f6f659db0767e7fda44c5
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
-DIST hermit-abi-0.2.6.crate 13027 BLAKE2B 4df5306639511a5f69594e903f8ce62482cbbfbfe272a91a12f407483dbac4e87c2d7e5668cc06ca5c0fc149ca93a3152fe6ad4bb3b96cacf56a22cb635e5b7f SHA512 bad8442bb822a9c99f6536db16523c80f5139af6a139bcc359c03725c59ff935816e2ecc5c491dc362ac75ab2dff41ab1e9dd29431f5e9a109b60eb9b7a8dc28
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
-DIST iana-time-zone-0.1.53.crate 20176 BLAKE2B 842c3c2a9f5b753363668af5162edb6f2734a51fa6c6fc8bafc3981f5f287451258f5ab31d5ea6c2a1df75934233849bba8dde4ee5aa9fcc456fbafa93d8b51b SHA512 a3f899fe9ebc7501bd22e75b2df34c3b26ad5a53afbff4fa552672d0185d8a291736c48ac2fa76dab36a6621e689b5584a2d7bd0334055994bb21077765aa7cb
-DIST iana-time-zone-haiku-0.1.1.crate 7200 BLAKE2B 9e748694423cadd6edebc1daef2aa4126904f5597202874d68066a15580cade77f48f1e6f2a77e17c7de0fae5204ef1262ad5b6f30bd95f4faec77748aa2ae0a SHA512 daa7570aaf5a07c990b07fdc2153b63d947598ed35aa9c35c4773772a6c67997143b120a18ff4c7c13474d296e81a92975ebf5b9aa9d204c1820e9629cb2e369
-DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441
-DIST jobserver-0.1.25.crate 21888 BLAKE2B 2ecd417446f9eb975119af4ec74c9b3463d061f5348ebca380f0ab9963ccce6dcea8c1671c7701f3f867c7e49d0ec130809a37bff466261a2fc75e80cc01d15c SHA512 0c014e7c72a070e3332463cfa6e9c9095d542a68f8631150bad0efa3706a2d6de0347bf7d1221cc3bc0f3d5f9840fe7188aad949559375403b929d43b4a524b7
-DIST js-sys-0.3.60.crate 79257 BLAKE2B 714facdab00d567d074de4a25b69487400c23194d0f58ca784159483f9e02289acadce084b1514d8816cc9e0597800de82a5298b071b7df19a24df93541f23c1 SHA512 543dfd444539fad27bafcbbf112366f53d4ccf4bc63f8bb17820d818c3e1804656697ed6268a793f383ddf6b6227f7e9b3a11fb6fbb24e10732fdbd971801665
-DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
-DIST libc-0.2.139.crate 638983 BLAKE2B e92b296cf8c916e10e859722ed75f4790401662ff7aa2fe8ed84ef9b94a00538768be33c272f0881e42da887c8c43e1fd44d061343386216492a76fe5d308598 SHA512 ff5fae517c49c382dee9b1d7479b65b0a818780453e5c00c416847d02f42186e2fcf19a8a8dc5e9cc2611300690c6ad324f9c0f0e8172e913a1b781fb7c0b5b4
-DIST link-cplusplus-1.0.8.crate 7674 BLAKE2B cbb93184d9deadd4912f6e03dfb7bb9d37f01b6d8d47dc9744724c848f297adb9cafb1599c2bbaffbff336f883e9a24c3cb4f11745ec4716a9a2c8cfa05f6305 SHA512 690afe063eb9726faa03443bfd01789a559aa10ded4bb3714ef7b13095005c817ad019fcc62b5f7b286c974a81e387ca3342d238e60ed7ab237c3628383a661e
-DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
-DIST miniz_oxide-0.6.2.crate 54536 BLAKE2B 8127ebec5a2cee1c2101d9533da573e01ef1a0fcb169bb0fb1419973ddd2e6953d8dfe85f9509a5d1226643ad290f0ee1479fc68f1788ade7ddf9633d90bfe1e SHA512 250782e214572acdd11df87c2788cd5f78e8388d9b285d0a850918219678e262e8b9905cc88728f5b70d13920ef9d19c43d243dad8fbcc18f8c8462662ce1419
-DIST num-integer-0.1.45.crate 22529 BLAKE2B 4da3e801f71ba8f92c692497e200bfc8d32183c94eaad91260683b09f4697c03175fec7cff5a9ff3782d5db5d514d74f22f7a61a102c0f0d2e67a7a4b4f29222 SHA512 731bdc09c3af7f9d8b171041f2957aa60facef93b06886000d8ba60d410aabbbee358d700bf31b2588b2e077464f290f24a0b712df7bb7f12972675b6c9bd735
-DIST num-traits-0.2.15.crate 49262 BLAKE2B 942ab170b2acce1cb40e6847f766bf810a79edd293d34f3a27864f464c16fe2b99fb13171ba429cc6d584248de879434beaadf1b231a4001b0e8389ed6c1be04 SHA512 5228498af0f15daeac3c9210f3e6e71cfaaeb30beea81dd37f8eb06b9592c8bf3226a47597cd8592ad4c513964a9a40f1ab2c33102ef3dfe3800d22c8d4528e8
-DIST num_cpus-1.15.0.crate 15680 BLAKE2B a4d98b29ad534de9bc262f58f615ec06bde5d5a2f5252f09b5a0a6ecb06a9daf9709ad9045eb08f7cb744d8a838854b9095aa73918e06624a84efbc11a9a5c1d SHA512 fd4772868def9460a6ee17ef6fc00b0bc74115eec891bb3fdb07ba5b5fe4057a2ac69eb31ba8beddbd3189c7be4545888e5724879f3a89132fbc9b32aa7bb10f
-DIST once_cell-1.17.0.crate 32736 BLAKE2B 767fc8f362ce5ed7a9eafceb2f0764a2a1c7f4070e22d1e6e2498b3c841c5f761e77fb66a34b899a75d48f1563f6b9b73b90aa9431055d4e0269c47a1b043c1f SHA512 291d87380c0ea17fb3ffc9fdff8620d2ff55601c06ef65b2f0c54254fecd5b488645c6e94c6026b82071893f4d420491ff712399a782e14efa1e323e5c299c46
-DIST paste-1.0.11.crate 18349 BLAKE2B 02e3168fd03a4036bff486cd01bb7f7fa2c355cb6087c4b92c091e9e16d6d098fca1f142cf29fd0428fae9fc32bf96e84a0fd59ddb5f6bbbe155dcbfd1d41558 SHA512 136f7e840a20d18b6706929b0c440ea2d546d0931da91236e3b401e0dbaa74aea95510277620fbcba401f2ca7f56a315049a77ee16a4b228dcaf63f90bd2c9a8
-DIST percent-encoding-2.2.0.crate 10075 BLAKE2B 397e59acc3953868c709244b89a2e0db3304c0b574ecba761026b570a485f2cb5b0b2a0159586d1f342ec395ef02ace536da3bc1c72093e1cf93f8b37b26b0ec SHA512 890a5256d2b4290e12e04a02c3529f3a017faa2b6016a4dd0f08b36509f0b1107eacfcb4702024d6a21ff8852a11f263c1adc096b16ef8d12c45a734c087fe68
-DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
-DIST proc-macro2-1.0.50.crate 41667 BLAKE2B 6ee76c87013226881a0cb1221f449b052feaf1b92fa6f7a3aa82420ee1881713b8bb71ac6cebff67fad436f5c05b2a8f601a84ba361bc08a06b0b26aec0e11e7 SHA512 89ddaf9b994026519e5ddd618ffdca1fb39d31904a13229c1496dc862e2a259086ed9554821ff33f73adf6df45f446231217fa7e22922289fe6fbd71e06ddd2b
-DIST quote-1.0.23.crate 28058 BLAKE2B 81c483fa26b36b5c4dbe85b386a74f5bfeaa854a99c0d678374507613da916a60e3f5b14d4a4d295e1c9ef0413fa1f16447df8f19a9db8cb0485b7a5c327fdc1 SHA512 3bce6846dda94d285de15771549099e60df39c8395c498b372c90a240f77df31d6d9048127913ec1c7ed8f3a189470ade1db2bede406bb00fa715ea641ec87c2
+DIST iana-time-zone-0.1.60.crate 27074 BLAKE2B 6f534056e220e2f721fc7c7f3ed24152eea7f07d1f4cb3609ca734ade32a2d6b18fd0164ed831170cdff192cbe48653b2c4eb0903fb6f157292b3b5bf47299bb SHA512 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c
+DIST jobserver-0.1.32.crate 27549 BLAKE2B 5f6556788d10af992fafcb578ecfd2c81698eea31b636d3adb7544e12155796082623735c8b10ac4c04d891d1acc307fb4e4ac3f88b2006e181013006f51c8cb SHA512 d4528113dd5a5d4a3765d55599a07e0998c69c7d21a90d2872679755ec4bd7726e9721af9220c36e1179b153ad8a39214a422af63aea15eaafd7cefc828ddff4
+DIST js-sys-0.3.70.crate 53863 BLAKE2B 15e75a94a2b7c77ff18847f98f76a1442b6e5f66960f3375534440c382a255e6b16ba3cb8c5345365d2195f7598564bf856755988f1288eb1b0b964e26446e21 SHA512 5dff8e790447a475b3c0a7068f0bdf1cced5fb8be2d66c92cb6f6c799f9d807f9d3c498e4f42c67e16d83dd4bb3be70472ece20fc42c3a8c8d57615ac8d398d7
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST libc-0.2.158.crate 751340 BLAKE2B a67318ab24bb86c4df682cdf846d51f5f0a69504567acff43cc6e724f2641521945dc75dddc10c1c265fda960cb28b528575b5d39ce321073844dbddbc77bdb8 SHA512 c2d90d58480cca3464db475d7c70cd66bc1492239d8183038b48def8f5d8a437a1e2a2f084cb2bd9456889221b10aa07981cd5e9bcbb6bea28a2bde3c76f1105
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
+DIST miniz_oxide-0.8.0.crate 56343 BLAKE2B e4abcacab4c8698d0489faca8556faa7bff53d272ea0c80e2e7843dc0f6f9229b7d5b0a17ae210344722a379853e7f14212505ee05da4e60549081cf77717c1b SHA512 044b641ce6d98d1968c1ee0906f91963f9f524d6f3fdf3059708177a759e1d498c63e595d3a3f0f9f3210c45c828b9b70274134ba078b899d7fefc2bbddbeee6
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1
+DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6a3885a6269740a23359b41bb4099ac2484565d3b2b0936261689ca525785ac620c766997234fd8d0f409e80e5ea3 SHA512 1cdb7e22a35ae231d880c9420784c9acf97bda2db258b3d34aae5061dc1858449defe19a49e12c6a4173906aa72a4115059ac2db0fc760205fd2ab8b5b414434
+DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
DIST rand-0.3.23.crate 11318 BLAKE2B 5ad9b187fcdfc515c606a73bd1e9aa3215e367659c35a013c9d4d0f80f9832331dfb971ca370a627c0a2afe2b8860514740e00b1d7572e221a557b5570cff6ff SHA512 a4f46fb7dfe39677dfc112eeb56fb3c28cec4cdaaf95f336f2a494f0b2b30fdf22ceb9ea956f90e13c7ffe711a68aef9fc1a80d9a911d93221ae263c243fb2c3
DIST rand-0.4.6.crate 76401 BLAKE2B 5593ad2d7fb8214d917e2eb734f5eee548f48fd699c9fccc0de9c0c6ee49803a426492a25fda2ffcf844169e2bca00709d4dcd9ceede72a4667ec431f5502fda SHA512 a91c6da7188b426bf9cb832892ee2af87c4cd65fad505c34e9c63343da71efe8c0c67b75c405dca5345317b7940d1d0fc0b20be85afd6b3089203e5698d86f0a
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
@@ -59,49 +52,63 @@ DIST rand_core-0.3.1.crate 15483 BLAKE2B 2e09b3b3306514c29bd7588498e79be7353de65
DIST rand_core-0.4.2.crate 20243 BLAKE2B 22fee5e44127eee047ad8abcd9dd828befd0feee77ee9a0bcd4dd42174b1e650f2a19f1f3b39fde937e58c17afaabf7231e2aabf214c2eb22edf3f85b73f6eec SHA512 f7ae3b690e2cc1fbf2707ee04b752bc5472433f737ab581f9872f7c5660966bc6be45f0c5d2cd8771105df6d4a9d206c55f5cc6ffc1693b46e1ae03a2883b028
DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
DIST rdrand-0.4.0.crate 6456 BLAKE2B 330ee64d998a0358f95a3dce50b3e1bbda531a3b613db7e5ba4038a1cf7191b60be3a0f33416e05380c41040704ce52727928915e9d2f4565d39984d1c86fcd6 SHA512 6476275d124bee28747191471e8d8f321a3b1c148c1f2a7ece4175f5244a7de90afe5f99d2eba5244d886b92e38232398864bf90e6d434b09494533942c8d894
-DIST ring-0.16.20.crate 5082615 BLAKE2B 6011eb7148c2d2ab410e564a06604f4350e07ea030e4d7dcb30574b977f0b0c7e53e09f6e6dbb2d068cdf110262876c48dfaeeef1b691932a056fe149916d934 SHA512 d97d1b08eb796d4c107426ff2c015ab1f221612500c8a57fca8e3f064e8c0f5ae2a5e6071d013313cd9f4be8fed4ba03beae84bd446f56b2b2ca5d483c328191
-DIST rmp-0.8.11.crate 28829 BLAKE2B 42aeff1a8d4874f1cec8a19085e4f23ae33cebcfd024c28772c0cea36e096d5ff012e6063647f31b9e9c3ca311f1036566411675fe2f632dd9dc1d5d1f7f929c SHA512 27a499316542722a4d9fe4fa9cc005b6b5fa75dcf66686a5c08aa6130497b67511c0283419adb64fec09a51a563f4991f2039280d2e74f8ea4102afbe4977f38
+DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358
+DIST rmp-0.8.14.crate 29687 BLAKE2B 8467f30a5c015798bcd984297c9af33b5cea52b775e21d79322021c1232efadf3fcf9db86310a66a22cc84dcec2450da410d7308be6e723279279df98e922a4b SHA512 f83634cf6a9eb9a905b55039b59efea72b0f5fb88aa92fa008d9a867812d06d9dfeab8b4ced5047eec66568742e3d873ea35e57e66da36f67cd266be6b64e00e
DIST rmp-serde-0.15.5.crate 28657 BLAKE2B bf2db6d713e8c105b337c06b97c5ba607d509fd0de1356c7b711eff47b77f5e5246a8d2b6c876f8db4baa9c0f308cbb5b447a2a5327734711701b9d8ea6f13e5 SHA512 d546e170452eb58fd684cd0b4c150b99005a39611f40cf2b6f2919822246d36206e94808569ff8249f14e50f17989b885ef6016477bab9d16be5a18a0c8428fa
DIST rust-crypto-0.2.36.crate 857879 BLAKE2B c486a2e43eb9ac9d2558bb39a249dcd689e86eef51d9a7613a3964baa633cebec824d5a490254dc06eca7a5faa471126de92452d62c522a3dbf494b9940a13e1 SHA512 0fac026d8799ecde523f20e7b34b9486343e48b95e79cd76bb6c8bfaeaebed550e45d59d85d8a3a58595f10c02a4a5e55691da15c203a4336a9bdb5480cd2e90
DIST rustc-serialize-0.3.25.crate 46114 BLAKE2B 54feaa72c7cda8aa4d4de225a99b3e2c78fa3893eef47c7666b6503e183bfd830d9693676a274e0dbf1d2f650489c4ba924ebf8650c47d11d561ec8bf8e85a11 SHA512 d7023ab949a1bcb43b3458a7bf3f6a8903a5a8e43ad87e8c635f5b1a43c72a27052b96bd9f2e9e8da4a532b5a97674850e5a11537ef8a1b17ef44017c7be1be8
-DIST rustls-0.20.8.crate 270142 BLAKE2B 0d9563e302eac78871eb8346c72fde2a05618dc8a966198cb4d607b41930dd54487d9f4d9c8ebbdf943b4593d4cbb75543c3aea9dddc61a06500b4b322aa726f SHA512 4f56494987cd3a56f47dd07d31c7f73d262a4d003cf9cc11e0bce5fa85c87f18124b1c364186501736f0d40a1f193a24d5d73f37a491ff81ca8eff568559e547
+DIST rustls-0.23.13.crate 335735 BLAKE2B bb0539da0d213f84a91988c75352eef0f84496c7b6cce3f2bf8cce0539872c649245974f2b31cf0244e81c3e68d7077f23103f94f44d44f344458553ea72d4c0 SHA512 8c2c2ef5f7868ae50d2c8846d45461e4b787297ecaa157053db919e7ec2debbad320f0e3304f00e39d658160ba762ce47537b7a2c7eacd154d3860ff87c6acf4
+DIST rustls-pki-types-1.8.0.crate 29562 BLAKE2B 933e281d6f4725717c09699cbc73368b7212745df7900e9242dfb872edbf6908faf417b5684c843af8b37a198dc4104de279bec0d72d2c43581f837a62f67683 SHA512 f8a223b904c224e4aae9f06046280f3f9daacb50d1456f8ea2911cc7174a4b8317f86e4ea5431a29c0ad8dcef44bae53c20bc88ffd9dd72bf83161289bb65e04
+DIST rustls-webpki-0.102.8.crate 204327 BLAKE2B 8db832f181b46bdecc419e1433dd5550bc181cbffa1961aa90b2533f92696ebe15d71d742225bf806e2dc3a4ebb110d48bf62b0677089df1eede6d5a072c0a28 SHA512 8cdd5d07bb8d6c3f0d1d6663babc3b7ccbe8c9b1463870a3dd095c67f46addf4097a715da796c70f1891ebc1d045ae7d7c3a352400e8bfd6687e6cddfd33b1ba
DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
-DIST scratch-1.0.3.crate 8198 BLAKE2B 804af80d09da85a88221c7aed7740a25a327bece99eeda0d7adceb3e5111917b70fb4a4e4e39c83b041d57baad2e3582e877356d58386e05ccd65e0a5334f86d SHA512 8fb3c0d36adbcd915e3adad108e35665ddd6e5622b252833349f89448a620bac6eaf1c212ffc172ec015e5af46e5637901c3442083b17ed29a2bdd9c0c48d595
-DIST sct-0.7.0.crate 27502 BLAKE2B 93912044e47473d72d7415e01cbe2545f84d7d087e7a7fb210be7524d44f69daaa58edf487ea6f8e5f06cbe25ec02062b1b55978e7cb4761b8bfd79a32d4fcc7 SHA512 175d2a912e3f35dcb110991a066d7d9b0d47a0febe4e92ab7d92a27c886a7eb9abf203c9080b3e2cbda9bedbc816bd138476363c2a0c7367d3abc7e6bce83046
-DIST serde-1.0.152.crate 77091 BLAKE2B 89c01ce359042ebe6b1b64ea710580886f965a98e1d6085c58a75269a9b43401e2cace080c4c93ee51982855fb7e2f09fdefe9bd237bbf30c5537f3a4258283b SHA512 b47bd58fdc1a81d96cc0c9d14c8b19153b6689e893851975b1d7c7010c4448750e7fa09056dd4f13ed475a4aea2a3950952ff528832976919a6e78504a37bea7
-DIST serde_derive-1.0.152.crate 55586 BLAKE2B f133c6cdb87d435ea0c05144e685047fec22b93df7c61df4aa139358c2732326c98d0f62fda629da0f648aaacfc9d6f312813940238f45b359546dd435e7a516 SHA512 2f4dffb5671b4758f0b7dc0939f6b5cfe3b3ba02a53c62c75b5a0ec89d2db26bdd95f3e269d1fd4b07ec921bc0ca5f0741c26fdfcd25bd6532ac698c6c701e91
-DIST spin-0.5.2.crate 12004 BLAKE2B d67d9156ca6dbcf4022711cce797cd423a4977115abac4cafaa507aa2e1071b637275637a20934d4d0d6d2bf82c98c74a4506720326d1804952aa0fd5fc4895c SHA512 fc57f7906da2b7a298c5f89215e881e8827b4d9f934dbf138338e0ee30122d8459483be566268fa374b41d63d8dbf65d42e0b322535ba35c827d7edb2176f267
+DIST serde-1.0.210.crate 78338 BLAKE2B b3621d1313312177a346313e6e384fe9660f74eefb18e6cffa39fc2aadc0ab73be84b9037c59b716e5feafcd73f4f054f83e6d17d82746984b3064bf8d3ed338 SHA512 0d853ca51543ae8b4a0c70204ff4e559a4eec77af3d3bdcfc75c5905c80d4ffd1bd9eb8258ea4f6ecfbdd26477ecac7dd698d84d86759fa32e03a9cce02fa4ae
+DIST serde_derive-1.0.210.crate 56020 BLAKE2B b346e574c99b6a8b12dfc29b20a4fd2daf8abfabd3714ccfde059a3a1f14a5628d4acf6a03f8076174fd28adfdb7cb9bbdb8ac0d4403aa2f43e917eed4b08028 SHA512 1c54d70a55007c00d3ff3d8c2096f4f9966431ba7bfd9195bcf41932de71b71c4ab934f9a8c5067cb56a042742cf0efab07377dbabf12feb1af6d20399de00b5
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
-DIST syn-1.0.107.crate 237539 BLAKE2B 5a65968806c72fedf69638661f827a0426b9e49c2f9a5e5208f986105f8facca2bdf241f92f74bde790e9a0dd68240d4827a345a939c087364360e19a5cbeff3 SHA512 58132adb76643521a6a9cbc0316431318ac25f8517bba3cbb98e7e28ed536f9e24f643e898fa21a2f74cc8c1aeafaecf9b4199b23048c7be8c0bab2fe3aa7623
-DIST termcolor-1.2.0.crate 17917 BLAKE2B 5ca7802b0bd29495bcd2deaddcdb4c3ff964073a373eaf39964a24ed91a48c5c33e192d676099e2837064df3149fdd73aba7d241e9aeaad9887bf1bcae9d38f0 SHA512 cf1896523353390b2f90b2a8bf30f47da5fc7c2daa635bd0cd8059bdc73feb243e46e4279562fe45d5726f2840833b1e967c7de19ffc0c853592d9f86c0c1be7
+DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+DIST syn-2.0.77.crate 268784 BLAKE2B adf14ddc4b284ad78dae3c05be7e63a58a85a2ef16c1051b991aa278843ba7231f0da3cf2adc65eb95762d4c88b4e1440cb616c651d3bb568392bb036399304c SHA512 f8030332c3c4ab34fc1e86196eb0eeda9700e5438f2a339591a5968d8bdd3373b523dba4bd998bf578e4247e0019d999d4e9c6d062a1dedcafe18d27b6c9f6d4
DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
DIST time-0.1.45.crate 28911 BLAKE2B d43e2431752881f6885d572017f461b304d07ee5ef0d8b4898e62b47c8154268839c3bf69b141159090cfc0d90bd0113d6084fe99ea1f2b1e20668528ce21112 SHA512 e643fb8649f3efdaa1b0b6abc6a140d55ac550a55cad99d0cce9415dc51e155fb1ea240953eeaba5dc47ec73c49ab7f2962af79c693436289de0eb3ff60985ee
-DIST tinyvec-1.6.0.crate 45991 BLAKE2B e9699d4d80a78978f0ebfd049f5b33d7f23d401cf4f4439ccb168e8c0e322473ad0ea7e2ff0ff69e9aac3e5c4c9ae5a7102185533bfbf96dbe77b3526e700bc9 SHA512 e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c
-DIST tinyvec_macros-0.1.0.crate 1817 BLAKE2B a3d1966bf57c11afcd026269135a6189f149f905bb70b47537c0a7bcaef0bfc6c89bdcbdb0f6cb8e5255632855134631c683fc90606a254ec8ba818fd5ef0794 SHA512 d6afc83a3c70cde916a6ff599e2772588e4bbfa7a5b1c7e5c8aa0f4a8a5c9426182497a644e4a88194ece986d38fa64b6c8eda9eb1630441c8e65a8741a45873
-DIST unicode-bidi-0.3.10.crate 43530 BLAKE2B 2bd5ffea133793ed7588ea95b0848adea16e79fc3ce9a159c33c73929a1af90e0578c44980fe114aeec1d6424d294552bcbf4089e3c196c2ed3d0751d992c216 SHA512 70f81dcf3fb3ada1eb503cfda548e083cae6e7001dc445c0a481b8f467025f17dc26ac14e487edcdc2aba8b67f94a35eb4b5083a62d5b954dafca7b734edd3e3
-DIST unicode-ident-1.0.6.crate 42158 BLAKE2B 6e4ef61fcac69b4ccbf743a2c2f857a6ea9fcbac9b9890f5b7208cc0732c6892aa5889b3030e87c8c29ce4ce24ddb7adec6bcf47b7aefe9cb5d19f920f12cfbd SHA512 ee1dc78fe535f46bdaf3e19dd8dfc859bf3133d9271026cadf626a07ba586c39caca4e45d905156a6276cf852f9cebef196b2229c3ba4b5e2b26c956fd6cff86
-DIST unicode-normalization-0.1.22.crate 122604 BLAKE2B 3f3430b279cc0ce1595392c869442ce676ab097154c688779ebcf726e10c497df59be2cd7bb2f84f99499a9df0654760a10ac92224c17d74775aeebe291241e1 SHA512 a5810d5e9cd93dbb80e013997aa9d38e60834619483a6623eb2859ec5d59a5aec3fc4db123dc7f4e2fe9f2b8799cf6af48bdff22d69a00a23707240e8bf3bb3c
-DIST unicode-width-0.1.10.crate 18968 BLAKE2B 6174e307fd3ee290d0a5d1d31233baaa5315cdb73f19b8580718e9f9eb04cfd3aeaeb474af1e50c4b9fecc6fc777937dedc527c9dc9ed14ccf42af099e591f31 SHA512 9836a8d489d18ea1ecfe1957ed6d5da7dce825e138cd1848aef093fa8d2eb83fcf01eabb1a2446df4f5ede4e67316e9e81b5d58b59d4e8c5d67870e8fa5dca3b
-DIST untrusted-0.7.1.crate 7924 BLAKE2B e0152791e781a4805120e3437b7e0219db3aa0282af4faaf2cfb15718421ff26abc56021c546f6aebb411f5abd27020273ba0f785e012a4b0089e96c2db4faa6 SHA512 5ebe3266912e4e78fdfdd13f9fcc07e9cf489d19d5e9ff346486f47aa58a0aca35278d561612c49eb3cab5a6759ac974d3b92bfabc399e1bc0808428dc347be0
-DIST ureq-2.6.2.crate 105924 BLAKE2B b055cf00473a6d67d181fe6ffc9d960ee9c1ef4bc346f30466e9d8c129b82abc908344fe61957e6840b1d1cf302df12c94b0c74b49daf0e978173e36899f3c4f SHA512 712922b21d321932b6e4d8602903d92fac93549200cd10d66052f404e7734a5aab2ebfe78e14cc443df3320530454a6585aa8005fc39471cb1aa95e54dcb951c
-DIST url-2.3.1.crate 72777 BLAKE2B 6ca0e537baf373b92269b2531945c1cdf360f1566cae4734dfb96f05a605e5c6c82e3192a1b9dde0ff22b92b87aba2d56e32a1bf17882b4de15efd7cdf52bc76 SHA512 8224010bef067574481e5d84100d944782d52b49db7c396ae2b4dfc145ed58769c15440d97a0fed4d2f9857592a8601417cc5b1bdea959c47a3e7a1f7182ed0d
+DIST tinyvec-1.8.0.crate 46796 BLAKE2B 720d0e6d881855a36779e12f5ffa708d3a8b96e6d0de9056cb33c9b8ce0d408f99b22f5b2bb9d64bee72a011fef846dbebbea2ccd238d7b951eb5ef0c4866e05 SHA512 b7b32e38229645965900f80f298685f13e6d13e58cfd6945409a6643ca9c9adc2621456956d5998ab9dd91c2db4ae79638b156ca0d9c7c5505023fd9b28414df
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8
+DIST unicode-ident-1.0.13.crate 43279 BLAKE2B b5e935020d1c9f3aa24f7d382f6b73d6510d654a61ce1c9c024e2e365bb817182e076139f370e822573531356fb78ff7499049b1f29aa1e2f4a2cc74a955b47b SHA512 5ba884f39debe9c8eb0b1d251ca713f7e2bc191d211707ed10cd81465487dbdca53914c19e131edfa1da15af132dc2c346260c3969c61e3747b63399ccb1cc51
+DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5
+DIST unicode-width-0.1.13.crate 457228 BLAKE2B 757c4da5fa090369a26130b08440c2348f1cd1c0dfbb6770dd75b65eba797eaa65f5d683f0c2862cced06124d46a89b4825af0d990f6adc2df8709b8ef291665 SHA512 9781d6dab2c6343e8c28ec66b50cb4293261bb2114e122fa80ad2facdb23020f5b621c38030193b918669e58adf143808e5ab4c507c18beb6dc61e97b2e296f4
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST ureq-2.10.1.crate 113163 BLAKE2B aece4293775ee9bed49dfd7c1761fdee20c92322dedf70431b6214e8a40fd9f63e43d2846c1929135005c5260ffba4a388d779a2cb2808eb892b6b869f65fa08 SHA512 9944f0790b9c342a3584bb9217d0546dc4272b011bdaa47d22b42684dd7f655aad22750d395875c63e7c92d8d44ddf1ef610061b485f9600dfd79b4db5743656
+DIST url-2.5.2.crate 79704 BLAKE2B be3526298a8816fbd88385caf49c2d58aacc7dcbe2d9183478cf501c26fb5f22d7704ef1313ba6d355e849cbf8ab7980310c1aae85e253a2b28d59099e23af29 SHA512 2515903e41c0659cb226f9bb049ef80f2a49d1b609b6ac480e570a84e899088ffe3be4fb58f41a1fa7f5288eb5f97ab513f331aeb6d56979df783d48e2ace28a
DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
-DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
-DIST walkdir-2.3.2.crate 23516 BLAKE2B 473f2b51aafd6ac17e5c3da8d545d179b31486b3a65ab39fbd8bd7fbb2ebcc24bebf01781200a26a68f0b1cb464f5763a919aead3b03eba5a7e1be6efec5500b SHA512 6c44071354faf37720ec4117ded34c8d530489542ee107ac26a7a56ef4a882b9003e22e84f1d61f6078643521343e35aa1f7b57c838779e78e5937a667bf82da
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
DIST wasi-0.10.0+wasi-snapshot-preview1.crate 26964 BLAKE2B 525db01649a5981ee82ad80a1a4bab9baffd235262452675619f36a1b454017a74593c53c129f8c30b865994bbe30ef19cebaad9d245ccf54b9b07ef70d5d8ec SHA512 88e2da617f50d9ebfb1e0c5857321fb86b5ee88ae8a8d199d3cc092e0f39688a2cb68503f7c6bb09dd6bc50a9a03597a1eb2e032150fbd0d0b8afa02ad771c88
DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
-DIST wasm-bindgen-0.2.83.crate 169618 BLAKE2B f6158596c80a0385bee0a05bd9cf0b3beee83a7958efb40244956b4fec2c83baa1a1b4605eb604f313db3508a7911c78f645acbb19f6fc93eef27e9f7f0ac109 SHA512 ec93d1334417d0329e113d5f2da7f16c0f1209d71e5cbd21a2dc9278d877e70ca2327ff7863b40505504883ed51d6bf20dda98c22ef44011a47c604a7b44e82d
-DIST wasm-bindgen-backend-0.2.83.crate 25620 BLAKE2B 3cbba20a2f5344c0ed2791de7b04ee294746606289ba83a9c139b53b56edf31eab8d3b3802cec309d5395e2404bbd75b7fab5d748a9961b36906fabeb0e66493 SHA512 dd1b65733e4d0a198d61a5287bb75db3e03ef738d2c2dcd3ce3e873c27d41c90cfcbb775ad40b2a546190db8d7213e5866f8e3f9913c28fe4b43a49054bfea44
-DIST wasm-bindgen-macro-0.2.83.crate 12075 BLAKE2B 3b358ba7c2a3563840f54f11170cde78044a8f087659daa7c784fa252f5dd4b7f6200eba425d95b568e50fd43c04c32a509994ddaf5248120feaa67586402150 SHA512 eb83e06f998e858cf25494c1d171984269e72db798147d4d1d8aeeb25ea7a35c5986b882011e131968621742ceecff976430856b4e8b7d7fd7f1237767cf01b4
-DIST wasm-bindgen-macro-support-0.2.83.crate 18530 BLAKE2B f305c9fc1f7bba5bee65a1c76fc2216c98aa306a072286e1ced048ab191f49e7e4436bf2f67d4c1fff558f59b2cef5e9b40e9e940268128ab1ebeb3c64696107 SHA512 804014c75ae5f8c1c7f0fad3f3209887fa346d74029e5f6e1830e44f7318719e65c4a643c71d87cf388f131fd370af40d536bbc15fc11c25b91cb785f56a908b
-DIST wasm-bindgen-shared-0.2.83.crate 7194 BLAKE2B 4dd1cffea1edc98dcd4993bf6fdde8100fe00d1e97322ce8bc0bdefd0c659047c8c726e5da27b59fd7a6621c1e5385c18204e834c6c6fd1fb9de52f95b40e40d SHA512 2bfc1a068fa41a9ecacce7bda494fc0485c57ccb102c1d76c87a42e00ad30b944b0cb788642e8339d050a0e831ce8306844a77292ab9f79ed765b65cdb4765e7
-DIST web-sys-0.3.60.crate 700485 BLAKE2B 13942a583dd8462b0591a19759a41f41fb17d2356b3bcd78402e420fdf5726782e5b4ed211c3716a81c1cdf64ce9b8adecaa3fa22756a3ec84eb7c3e12e3018c SHA512 d883363f99300e2d50bc5bf198f0fb8d6c53e5a778217e340573560ac07db26a71c98419fa2ced32820472126d6f97ad5773ad082521be0a1c9a374af9d61df9
-DIST webpki-0.22.0.crate 58663 BLAKE2B 4fff91a8ce3d46a9daa9e39c50755f79574c91faddead2f6c879f6e9bc2189b76c4951cbc36e607e099ab8a870b422e1afcd4bcbecc14e96555c26c8cbefeb84 SHA512 7c2916d47f2232587e3ccaa8fefc8b576addaf84b55166011032e471f91ce54a79d2fca7fcc1144552c254f5baead708fba2b0ce76a1c34286838a8744b0f570
-DIST webpki-roots-0.22.6.crate 242386 BLAKE2B b7c4ca7b372effa1cab48d890e468a272e0bfb7109900c4077906d088e85448c058a6be420eca24ed42bc9c0a0f1922c08c5ae6b0cfd85aa71662a5f7157791a SHA512 00413a8354e2277f50c29851ed49a97f76bacb2017d61b10333981d15bcee13eceef8711e87d2aef1ed4f8a85763c6b1e7e21d61a57e7f689fe4aa6e67f4c140
+DIST wasm-bindgen-0.2.93.crate 43769 BLAKE2B e1abf981a042ebbc5c506975d5c2258942278fc000ac62aafe4221725fc52003c4032dc04a396e8fc8ec6712155e056ea9381a72070ee7c45b348ce470f52c7c SHA512 0c0a63b04b02b57fca78d2c0b885ea752ef1e8e4317c27dc84fd35843c9c396ae20557a1321c03a405b050f21895e6f25e95ddb56f3a3e8cec13928858ae8422
+DIST wasm-bindgen-backend-0.2.93.crate 30344 BLAKE2B d0b9f0cd0e6191dc3f57869023450952f2d73c0432fd4516522df5f63090de021f44f11ce7676fd2f87b31f6b236eb155b22b36eb80c3ccf3880f55ca23d4b0b SHA512 c67dad5fa26f78b233612cb6ebd44f48edd84253e46a2f5094e95da935185cf2a7be14d49247e8b8cd1d916721ed82ea44046080a40b2fe37ad88175a5f96597
+DIST wasm-bindgen-macro-0.2.93.crate 6822 BLAKE2B 3704c01b90ae900032e455a265b614d1057a7ed7b7eef1ebfdce75a7b0f0b97083211db562d1602160cf9e70843a1949be836465398787315d66ccf85fbe0801 SHA512 8b1a690bf4fc344728bae21a11c8ce4641d81b02e215d88a489f8155433d8e579ed367c96bc19a345b561f2ddb42afa44056b71e15dc935a4fe38fd7f937a632
+DIST wasm-bindgen-macro-support-0.2.93.crate 20642 BLAKE2B 3fef9d35c09e97317e8531f11c3cfcafc5cb58126ab7a96374cd5e2e3f8736ef016b4c0b3b16bcdc0bef686e9f07439f263c54dc980649e9963b12d0a6814ddc SHA512 9fe590636e229184a944acbb8472c03db0a48a9094cd9ee204c09cee6c5241194a9757f06b09e7c30ba9db1a2feca616cd1e7dc0e52c7f1c1560c50c9d3adbb8
+DIST wasm-bindgen-shared-0.2.93.crate 7527 BLAKE2B a2df995ba72d83beb3f347909c004d9693ee06cec62de248a1f96b0244c05dd8b62d46356f1b7eb0a29122517bc23270eb4eaf045e6cdbb7122089dc84829d9f SHA512 4e9271a746d3b3ea44bae472b7d9722edbcf262fdec2e03c18788d95b923c71c26f309e316ad3c621d5773311d6b1d5ad468cd7bdff015d162193b6effaf8420
+DIST webpki-roots-0.26.5.crate 258951 BLAKE2B 1d95e7462b7626bccae2655a9973edec1f5fa69a6319247c5a8e70198d2ae6290196d90476290395352360b1b9c9289e32f9ab4d80c337a4fe6ef05a9a80dfc5 SHA512 4c5423020f58d64989acd79098eba6f7f78a1870f28b0e2071bb14788fd67f8f60ba365668ba1f823f30bd2712eaf39a7697b7a40989768d1b697485ade74ba7
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
-DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
+DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe
DIST zstd-0.9.2+zstd.1.5.1.crate 27538 BLAKE2B 72b8e30910f3221dfb0a13861f30c75cab701ae481120a20bff68e7d150a00bd07868b030c52493d076b30d68ddf2a9c2fcb1a084dfd0ee15ea1da8afa3ed7d3 SHA512 44bbcf78aa75ba77c797bcff5fe738c97ab444fbecceaf302a2f40ca74761bfa13d2a74bbeffa0d8822688eeabdbfb77cbf835a7b4854aef3b5aedc7f4cea571
DIST zstd-safe-4.1.3+zstd.1.5.1.crate 16677 BLAKE2B 0c5d74997bf72eb3bc47a314b07a90327cee7ce24a31f22eecf1cd9ab93cd8366359c7647e4f371a94f8932a0e08a05eea6b588fedc9a44226bbd5a7b03fc266 SHA512 e8387d866bd9cd2a4063780b36ec8b45a2c47a2103a1107ae045b17302dcd507d6740fb3681c0fdc786918fbae33b5b68e639308505de31b04b25ac43ba3b594
DIST zstd-sys-1.6.2+zstd.1.5.1.crate 718776 BLAKE2B 6f59f1ee4b886beb6d72872bc557ee90d4da4d97b5834b028b55ff2d0566da72a49a589fdfd1a84146793342249120420253e15998deb22f34eab3159f76fa96 SHA512 25b28da7cd4465be2ff909cc30c879db4c0fe3e91c1faa8e2e7d9483f8439286123570f09bfa5aea1754a4473aa6f6851180b000df2094b6b56aec9b3b5d6d30
diff --git a/dev-util/elfshaker/elfshaker-0.9.0_p20230918.ebuild b/dev-util/elfshaker/elfshaker-0.9.0_p20230918.ebuild
deleted file mode 100644
index 9a2fcdfb2d8c..000000000000
--- a/dev-util/elfshaker/elfshaker-0.9.0_p20230918.ebuild
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright 2023-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Autogenerated by pycargoebuild 0.10
-
-EAPI=8
-
-CRATES="
- adler@1.0.2
- ahash@0.7.6
- android_system_properties@0.1.5
- ansi_term@0.12.1
- atty@0.2.14
- autocfg@1.1.0
- base64@0.13.1
- bitflags@1.3.2
- bumpalo@3.12.0
- byteorder@1.4.3
- cc@1.0.78
- cfg-if@1.0.0
- chrono@0.4.23
- clap@2.34.0
- codespan-reporting@0.11.1
- core-foundation-sys@0.8.3
- crc32fast@1.3.2
- crossbeam-utils@0.8.14
- cxx-build@1.0.88
- cxx@1.0.88
- cxxbridge-flags@1.0.88
- cxxbridge-macro@1.0.88
- flate2@1.0.25
- form_urlencoded@1.1.0
- fs2@0.4.3
- fuchsia-cprng@0.1.1
- gcc@0.3.55
- getrandom@0.2.8
- hashbrown@0.12.3
- hermit-abi@0.1.19
- hermit-abi@0.2.6
- hex@0.4.3
- iana-time-zone-haiku@0.1.1
- iana-time-zone@0.1.53
- idna@0.3.0
- jobserver@0.1.25
- js-sys@0.3.60
- lazy_static@1.4.0
- libc@0.2.139
- link-cplusplus@1.0.8
- log@0.4.17
- miniz_oxide@0.6.2
- num-integer@0.1.45
- num-traits@0.2.15
- num_cpus@1.15.0
- once_cell@1.17.0
- paste@1.0.11
- percent-encoding@2.2.0
- ppv-lite86@0.2.17
- proc-macro2@1.0.50
- quote@1.0.23
- rand@0.3.23
- rand@0.4.6
- rand@0.8.5
- rand_chacha@0.3.1
- rand_core@0.3.1
- rand_core@0.4.2
- rand_core@0.6.4
- rdrand@0.4.0
- ring@0.16.20
- rmp-serde@0.15.5
- rmp@0.8.11
- rust-crypto@0.2.36
- rustc-serialize@0.3.25
- rustls@0.20.8
- same-file@1.0.6
- scratch@1.0.3
- sct@0.7.0
- serde@1.0.152
- serde_derive@1.0.152
- spin@0.5.2
- strsim@0.8.0
- syn@1.0.107
- termcolor@1.2.0
- textwrap@0.11.0
- time@0.1.45
- tinyvec@1.6.0
- tinyvec_macros@0.1.0
- unicode-bidi@0.3.10
- unicode-ident@1.0.6
- unicode-normalization@0.1.22
- unicode-width@0.1.10
- untrusted@0.7.1
- ureq@2.6.2
- url@2.3.1
- vec_map@0.8.2
- version_check@0.9.4
- walkdir@2.3.2
- wasi@0.10.0+wasi-snapshot-preview1
- wasi@0.11.0+wasi-snapshot-preview1
- wasm-bindgen-backend@0.2.83
- wasm-bindgen-macro-support@0.2.83
- wasm-bindgen-macro@0.2.83
- wasm-bindgen-shared@0.2.83
- wasm-bindgen@0.2.83
- web-sys@0.3.60
- webpki-roots@0.22.6
- webpki@0.22.0
- winapi-i686-pc-windows-gnu@0.4.0
- winapi-util@0.1.5
- winapi-x86_64-pc-windows-gnu@0.4.0
- winapi@0.3.9
- zstd-safe@4.1.3+zstd.1.5.1
- zstd-sys@1.6.2+zstd.1.5.1
- zstd@0.9.2+zstd.1.5.1
-"
-
-inherit cargo
-
-ELFSHAKER_COMMIT="9b65a536ed25d698311b7298332900c54967aa97"
-DESCRIPTION="Stores binary objects efficiently"
-HOMEPAGE="https://github.com/elfshaker/elfshaker"
-SRC_URI="
- https://github.com/elfshaker/elfshaker/archive/${ELFSHAKER_COMMIT}.tar.gz -> ${P}.tar.gz
- ${CARGO_CRATE_URIS}
-"
-S="${WORKDIR}"/${PN}-${ELFSHAKER_COMMIT}
-
-LICENSE="Apache-2.0"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0 ISC MIT MPL-2.0 Unicode-DFS-2016"
-SLOT="0"
-KEYWORDS="~amd64"
-
-QA_FLAGS_IGNORED="usr/bin/elfshaker"
-
-PATCHES=(
- "${FILESDIR}"/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch
-)
diff --git a/dev-util/elfshaker/elfshaker-0.9.0_p20240122.ebuild b/dev-util/elfshaker/elfshaker-0.9.0_p20240122.ebuild
deleted file mode 100644
index 4cbd38452777..000000000000
--- a/dev-util/elfshaker/elfshaker-0.9.0_p20240122.ebuild
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright 2023-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Autogenerated by pycargoebuild 0.10
-
-EAPI=8
-
-CRATES="
- adler@1.0.2
- ahash@0.7.6
- android_system_properties@0.1.5
- ansi_term@0.12.1
- atty@0.2.14
- autocfg@1.1.0
- base64@0.13.1
- bitflags@1.3.2
- bumpalo@3.12.0
- byteorder@1.4.3
- cc@1.0.78
- cfg-if@1.0.0
- chrono@0.4.23
- clap@2.34.0
- codespan-reporting@0.11.1
- core-foundation-sys@0.8.3
- crc32fast@1.3.2
- crossbeam-utils@0.8.14
- cxx-build@1.0.88
- cxx@1.0.88
- cxxbridge-flags@1.0.88
- cxxbridge-macro@1.0.88
- flate2@1.0.25
- form_urlencoded@1.1.0
- fs2@0.4.3
- fuchsia-cprng@0.1.1
- gcc@0.3.55
- getrandom@0.2.8
- hashbrown@0.12.3
- hermit-abi@0.1.19
- hermit-abi@0.2.6
- hex@0.4.3
- iana-time-zone-haiku@0.1.1
- iana-time-zone@0.1.53
- idna@0.3.0
- jobserver@0.1.25
- js-sys@0.3.60
- lazy_static@1.4.0
- libc@0.2.139
- link-cplusplus@1.0.8
- log@0.4.17
- miniz_oxide@0.6.2
- num-integer@0.1.45
- num-traits@0.2.15
- num_cpus@1.15.0
- once_cell@1.17.0
- paste@1.0.11
- percent-encoding@2.2.0
- ppv-lite86@0.2.17
- proc-macro2@1.0.50
- quote@1.0.23
- rand@0.3.23
- rand@0.4.6
- rand@0.8.5
- rand_chacha@0.3.1
- rand_core@0.3.1
- rand_core@0.4.2
- rand_core@0.6.4
- rdrand@0.4.0
- ring@0.16.20
- rmp-serde@0.15.5
- rmp@0.8.11
- rust-crypto@0.2.36
- rustc-serialize@0.3.25
- rustls@0.20.8
- same-file@1.0.6
- scratch@1.0.3
- sct@0.7.0
- serde@1.0.152
- serde_derive@1.0.152
- spin@0.5.2
- strsim@0.8.0
- syn@1.0.107
- termcolor@1.2.0
- textwrap@0.11.0
- time@0.1.45
- tinyvec@1.6.0
- tinyvec_macros@0.1.0
- unicode-bidi@0.3.10
- unicode-ident@1.0.6
- unicode-normalization@0.1.22
- unicode-width@0.1.10
- untrusted@0.7.1
- ureq@2.6.2
- url@2.3.1
- vec_map@0.8.2
- version_check@0.9.4
- walkdir@2.3.2
- wasi@0.10.0+wasi-snapshot-preview1
- wasi@0.11.0+wasi-snapshot-preview1
- wasm-bindgen-backend@0.2.83
- wasm-bindgen-macro-support@0.2.83
- wasm-bindgen-macro@0.2.83
- wasm-bindgen-shared@0.2.83
- wasm-bindgen@0.2.83
- web-sys@0.3.60
- webpki-roots@0.22.6
- webpki@0.22.0
- winapi-i686-pc-windows-gnu@0.4.0
- winapi-util@0.1.5
- winapi-x86_64-pc-windows-gnu@0.4.0
- winapi@0.3.9
- zstd-safe@4.1.3+zstd.1.5.1
- zstd-sys@1.6.2+zstd.1.5.1
- zstd@0.9.2+zstd.1.5.1
-"
-
-inherit cargo
-
-ELFSHAKER_COMMIT="bf7097efb1e645f74f2c820741ad791f38cff38c"
-DESCRIPTION="Stores binary objects efficiently"
-HOMEPAGE="https://github.com/elfshaker/elfshaker"
-SRC_URI="
- https://github.com/elfshaker/elfshaker/archive/${ELFSHAKER_COMMIT}.tar.gz -> ${P}.tar.gz
- ${CARGO_CRATE_URIS}
-"
-S="${WORKDIR}"/${PN}-${ELFSHAKER_COMMIT}
-
-LICENSE="Apache-2.0"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0 ISC MIT MPL-2.0 Unicode-DFS-2016"
-SLOT="0"
-KEYWORDS="~amd64"
-
-QA_FLAGS_IGNORED="usr/bin/elfshaker"
-
-PATCHES=(
- "${FILESDIR}"/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch
-)
diff --git a/dev-util/elfshaker/elfshaker-0.9.0_p20240914.ebuild b/dev-util/elfshaker/elfshaker-0.9.0_p20240914.ebuild
new file mode 100644
index 000000000000..342836a7df7a
--- /dev/null
+++ b/dev-util/elfshaker/elfshaker-0.9.0_p20240914.ebuild
@@ -0,0 +1,141 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.10
+
+EAPI=8
+
+CRATES="
+ adler2@2.0.0
+ ahash@0.7.8
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ atty@0.2.14
+ autocfg@1.3.0
+ base64@0.22.1
+ bitflags@1.3.2
+ bumpalo@3.16.0
+ byteorder@1.5.0
+ cc@1.1.18
+ cfg-if@1.0.0
+ chrono@0.4.38
+ clap@2.34.0
+ core-foundation-sys@0.8.7
+ crc32fast@1.4.2
+ crossbeam-utils@0.8.20
+ flate2@1.0.33
+ form_urlencoded@1.2.1
+ fs2@0.4.3
+ fuchsia-cprng@0.1.1
+ gcc@0.3.55
+ getrandom@0.2.15
+ hashbrown@0.12.3
+ hermit-abi@0.1.19
+ hermit-abi@0.3.9
+ hex@0.4.3
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ idna@0.5.0
+ jobserver@0.1.32
+ js-sys@0.3.70
+ lazy_static@1.5.0
+ libc@0.2.158
+ log@0.4.22
+ miniz_oxide@0.8.0
+ num-traits@0.2.19
+ num_cpus@1.16.0
+ once_cell@1.19.0
+ paste@1.0.15
+ percent-encoding@2.3.1
+ ppv-lite86@0.2.20
+ proc-macro2@1.0.86
+ quote@1.0.37
+ rand@0.3.23
+ rand@0.4.6
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.3.1
+ rand_core@0.4.2
+ rand_core@0.6.4
+ rdrand@0.4.0
+ ring@0.17.8
+ rmp-serde@0.15.5
+ rmp@0.8.14
+ rust-crypto@0.2.36
+ rustc-serialize@0.3.25
+ rustls-pki-types@1.8.0
+ rustls-webpki@0.102.8
+ rustls@0.23.13
+ same-file@1.0.6
+ serde@1.0.210
+ serde_derive@1.0.210
+ shlex@1.3.0
+ spin@0.9.8
+ strsim@0.8.0
+ subtle@2.6.1
+ syn@2.0.77
+ textwrap@0.11.0
+ time@0.1.45
+ tinyvec@1.8.0
+ tinyvec_macros@0.1.1
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.13
+ unicode-normalization@0.1.23
+ unicode-width@0.1.13
+ untrusted@0.9.0
+ ureq@2.10.1
+ url@2.5.2
+ vec_map@0.8.2
+ version_check@0.9.5
+ walkdir@2.5.0
+ wasi@0.10.0+wasi-snapshot-preview1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.93
+ wasm-bindgen-macro-support@0.2.93
+ wasm-bindgen-macro@0.2.93
+ wasm-bindgen-shared@0.2.93
+ wasm-bindgen@0.2.93
+ webpki-roots@0.26.5
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+ zeroize@1.8.1
+ zstd-safe@4.1.3+zstd.1.5.1
+ zstd-sys@1.6.2+zstd.1.5.1
+ zstd@0.9.2+zstd.1.5.1
+"
+
+inherit cargo
+
+ELFSHAKER_COMMIT="244b4cf57cd6fbfb8b615cc53df53d9d3dddfc9f"
+DESCRIPTION="Stores binary objects efficiently"
+HOMEPAGE="https://github.com/elfshaker/elfshaker"
+SRC_URI="
+ https://github.com/elfshaker/elfshaker/archive/${ELFSHAKER_COMMIT}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}"/${PN}-${ELFSHAKER_COMMIT}
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 ISC MIT MPL-2.0 Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64"
+
+QA_FLAGS_IGNORED="usr/bin/elfshaker"
diff --git a/dev-util/elfshaker/files/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch b/dev-util/elfshaker/files/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch
deleted file mode 100644
index 619fcf9c2bf1..000000000000
--- a/dev-util/elfshaker/files/elfshaker-0.9.0_p20230918-update-rustc-serialize.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-https://github.com/elfshaker/elfshaker/issues/129
-https://bugs.gentoo.org/926668
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -601,9 +601,9 @@ dependencies = [
-
- [[package]]
- name = "rustc-serialize"
--version = "0.3.24"
-+version = "0.3.25"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-+checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401"
-
- [[package]]
- name = "rustls"
diff --git a/dev-util/git-delta/git-delta-0.16.5.ebuild b/dev-util/git-delta/git-delta-0.16.5-r1.ebuild
index 01d36f11f583..f6ccb8ad33b0 100644
--- a/dev-util/git-delta/git-delta-0.16.5.ebuild
+++ b/dev-util/git-delta/git-delta-0.16.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -202,7 +202,9 @@ LICENSE+=" Apache-2.0 CC0-1.0 LGPL-3+ MIT Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+"
DEPEND="
dev-libs/libgit2:=
dev-libs/oniguruma:=
diff --git a/dev-util/git-delta/git-delta-0.17.0.ebuild b/dev-util/git-delta/git-delta-0.17.0-r1.ebuild
index 9b0a9265a036..a47d6743c72d 100644
--- a/dev-util/git-delta/git-delta-0.17.0.ebuild
+++ b/dev-util/git-delta/git-delta-0.17.0-r1.ebuild
@@ -217,7 +217,9 @@ LICENSE+=" Apache-2.0 BSD LGPL-3+ MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+"
DEPEND="
dev-libs/libgit2:0/1.7
dev-libs/oniguruma:=
@@ -234,6 +236,7 @@ pkg_setup() {
export LIBGIT2_NO_VENDOR=1
export PKG_CONFIG_ALLOW_CROSS=1
export RUSTONIG_SYSTEM_LIBONIG=1
+ rust_pkg_setup
}
src_install() {
diff --git a/dev-util/git-delta/git-delta-0.18.1.ebuild b/dev-util/git-delta/git-delta-0.18.1-r1.ebuild
index 7d869731add4..37e91fd246ef 100644
--- a/dev-util/git-delta/git-delta-0.18.1.ebuild
+++ b/dev-util/git-delta/git-delta-0.18.1-r1.ebuild
@@ -238,7 +238,9 @@ LICENSE+=" Apache-2.0 BSD LGPL-3+ MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+"
# dev-libs/libgit2:0/1.7
DEPEND="
dev-libs/oniguruma:=
@@ -256,6 +258,7 @@ pkg_setup() {
#export LIBGIT2_NO_VENDOR=1
export PKG_CONFIG_ALLOW_CROSS=1
export RUSTONIG_SYSTEM_LIBONIG=1
+ rust_pkg_setup
}
src_install() {
diff --git a/dev-util/git-delta/git-delta-0.18.2.ebuild b/dev-util/git-delta/git-delta-0.18.2-r1.ebuild
index 5ac0636674e9..50d0e15aaab2 100644
--- a/dev-util/git-delta/git-delta-0.18.2.ebuild
+++ b/dev-util/git-delta/git-delta-0.18.2-r1.ebuild
@@ -238,7 +238,9 @@ LICENSE+=" Apache-2.0 BSD LGPL-3+ MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+"
# dev-libs/libgit2:0/1.7
DEPEND="
dev-libs/oniguruma:=
@@ -256,6 +258,7 @@ pkg_setup() {
#export LIBGIT2_NO_VENDOR=1
export PKG_CONFIG_ALLOW_CROSS=1
export RUSTONIG_SYSTEM_LIBONIG=1
+ rust_pkg_setup
}
src_install() {
diff --git a/dev-util/gnome-builder/gnome-builder-44.2-r1.ebuild b/dev-util/gnome-builder/gnome-builder-44.2-r1.ebuild
index 03de6261d441..ddbfa22cb95c 100644
--- a/dev-util/gnome-builder/gnome-builder-44.2-r1.ebuild
+++ b/dev-util/gnome-builder/gnome-builder-44.2-r1.ebuild
@@ -114,7 +114,7 @@ that are currently available with packages include:
autocompletion support.
* dev-debug/valgrind for integration with valgrind.
* dev-build/meson for integration with the Meson build system.
-* virtual/rust for integration with the Rust Cargo build system.
+* dev-lang/rust{,-bin} for integration with the Rust Cargo build system.
* dev-build/cmake for integration with the CMake build system.
* net-libs/nodejs[npm] for integration with the NPM package system.
'
@@ -272,7 +272,7 @@ pkg_postinst() {
readme.gentoo_print_elog
optfeature_header "Language support"
- optfeature "Rust's Cargo build system" virtual/rust
+ optfeature "Rust's Cargo build system" dev-lang/rust dev-lang/rust-bin
optfeature "CMake" dev-build/cmake
optfeature "Java Maven build system" dev-java/maven-bin
optfeature "Meson Build system" dev-build/meson
diff --git a/dev-util/maturin/maturin-1.7.4.ebuild b/dev-util/maturin/maturin-1.7.4-r1.ebuild
index df02c5f7c88d..6a734528a1e6 100644
--- a/dev-util/maturin/maturin-1.7.4.ebuild
+++ b/dev-util/maturin/maturin-1.7.4-r1.ebuild
@@ -436,6 +436,8 @@ CRATES_TEST="
"
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3 python3_{10..13} )
+RUST_MIN_VER="1.74.0"
+
inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs
DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings"
@@ -462,7 +464,6 @@ RDEPEND="$(python_gen_cond_dep 'dev-python/tomli[${PYTHON_USEDEP}]' 3.10)"
DEPEND="ssl? ( dev-libs/openssl:= )"
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.74
doc? ( app-text/mdbook )
test? (
${RDEPEND}
diff --git a/dev-util/pkgcruft/pkgcruft-0.0.2.ebuild b/dev-util/pkgcruft/pkgcruft-0.0.1-r1.ebuild
index a14a39afdc5c..c4eb2eda15b1 100644
--- a/dev-util/pkgcruft/pkgcruft-0.0.2.ebuild
+++ b/dev-util/pkgcruft/pkgcruft-0.0.1-r1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
CRATES=" "
+
inherit cargo edo toolchain-funcs
DESCRIPTION="QA library and tools based on pkgcraft"
@@ -32,7 +33,6 @@ RESTRICT="!test? ( test )"
# clang needed for bindgen
BDEPEND+="
sys-devel/clang
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
@@ -55,5 +55,5 @@ src_compile() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --all-features --tests
}
diff --git a/dev-util/pkgcruft/pkgcruft-0.0.3.ebuild b/dev-util/pkgcruft/pkgcruft-0.0.2-r1.ebuild
index a14a39afdc5c..7863fdc15c04 100644
--- a/dev-util/pkgcruft/pkgcruft-0.0.3.ebuild
+++ b/dev-util/pkgcruft/pkgcruft-0.0.2-r1.ebuild
@@ -4,6 +4,8 @@
EAPI=8
CRATES=" "
+RUST_MIN_VER="1.76.0"
+
inherit cargo edo toolchain-funcs
DESCRIPTION="QA library and tools based on pkgcraft"
@@ -32,7 +34,6 @@ RESTRICT="!test? ( test )"
# clang needed for bindgen
BDEPEND+="
sys-devel/clang
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
@@ -55,5 +56,5 @@ src_compile() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --all-features --tests
}
diff --git a/dev-util/pkgcruft/pkgcruft-0.0.1.ebuild b/dev-util/pkgcruft/pkgcruft-0.0.3-r1.ebuild
index c2c6182cc283..79a063178dbe 100644
--- a/dev-util/pkgcruft/pkgcruft-0.0.1.ebuild
+++ b/dev-util/pkgcruft/pkgcruft-0.0.3-r1.ebuild
@@ -4,6 +4,8 @@
EAPI=8
CRATES=" "
+RUST_MIN_VER="1.76.0"
+
inherit cargo edo toolchain-funcs
DESCRIPTION="QA library and tools based on pkgcraft"
@@ -32,7 +34,6 @@ RESTRICT="!test? ( test )"
# clang needed for bindgen
BDEPEND+="
sys-devel/clang
- >=virtual/rust-1.71
test? ( dev-util/cargo-nextest )
"
diff --git a/dev-util/pkgcruft/pkgcruft-9999.ebuild b/dev-util/pkgcruft/pkgcruft-9999.ebuild
index a14a39afdc5c..79a063178dbe 100644
--- a/dev-util/pkgcruft/pkgcruft-9999.ebuild
+++ b/dev-util/pkgcruft/pkgcruft-9999.ebuild
@@ -4,6 +4,8 @@
EAPI=8
CRATES=" "
+RUST_MIN_VER="1.76.0"
+
inherit cargo edo toolchain-funcs
DESCRIPTION="QA library and tools based on pkgcraft"
@@ -32,7 +34,6 @@ RESTRICT="!test? ( test )"
# clang needed for bindgen
BDEPEND+="
sys-devel/clang
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
diff --git a/dev-util/py-spy/Manifest b/dev-util/py-spy/Manifest
index 8c3da92a5695..5607d7030ff5 100644
--- a/dev-util/py-spy/Manifest
+++ b/dev-util/py-spy/Manifest
@@ -1,141 +1,196 @@
-DIST addr2line-0.18.0.crate 33075 BLAKE2B b5d8b05b6b0487d9bb6b10be3ec67844a701d311b909a8c23e9fbce38b5502dda463b1350ecb6d8d5a855b22655fbb8dd4b6d0bb22d09c4edb3a2a7b60228456 SHA512 6948d768e86151c436e49b42485c0cda6ae2e1b832b14bf4327b2839758c5c592b432dc08bebd97591d744a419ae7da132cfa1e2becf8a98778534ed05d73b3c
-DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
-DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
-DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
-DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
-DIST anyhow-1.0.58.crate 43137 BLAKE2B 8e797dfab555d7076128851203ec1c6cb3c448bad52fe28c82b10518549971e6daaaca52d4a0dbb126549fd819706d6788e5322c6433ed71836c7f6051230b7a SHA512 78b21c51efd37e2be8f5672dc57f23ecd222d910604276da094754e06b86eb5a899d7ca7fb9f92566a13f70c116b05fed93d68a06320894d76a14a31e6c557b7
-DIST arrayvec-0.4.12.crate 26551 BLAKE2B 45514f09f0fd1fae7afb7dc812142ac8d88d1f4b81901db405c79dbeba2d29fea13ec22cb08a43433321931295a9f14456a300e814431b8fb14037d2f47529e9 SHA512 c03972056ab8fa30fc53fdc2bfc5e501f7644223998eccb73fdc2e737f7e25f4bb0e531f3eec38f7f3514760fb385fafd06c3d38531d13d92faf841820d4ed2b
+DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-0.6.15.crate 29231 BLAKE2B cc4cf0f381c210fecc20b5796fe872b533419e5f957021b0c3be3cdc23fb84ce029fbef6f9b6f174a76ad713c07f0811145a70572de7c24cfab060fdd990f49a SHA512 1cb01a0293b4c9bcc010909707e71c464416d3ec6fc9789060b7aa9fe4cc04424fefa8013cc8765ccdae6dfd9a1c50a11f7b30b39a32c4aeaf525f28167ddb92
+DIST anstyle-1.0.8.crate 15771 BLAKE2B c039613e7de27cc990e5764810f9351754b160928a8954dc19041354cf9fef1422ed964237a5d39d16e4e9f8592ed52c523ccf36b0b5506f464d4f818f3332ff SHA512 3b867f73df0b2f69a0c7d5d6e62c7515045e053656afaa303e5aade8012e838cdf5d15d2c3d7c297db9e297d08ea69a9c8eed04b97922a83f56c58962c1c0b69
+DIST anstyle-parse-0.2.5.crate 22680 BLAKE2B 7473651b1eee08857a6ed1419d3d62ba4b9a9aa0d6657965ad9c67bddd793d825737d3804961716a89bdebed9879ac43b42c897cd229c6e7bd780859e1e3c247 SHA512 cd94ad0e88ad4547a660da1473bf4e6dfed805a066782124204143c7f754c12db719bd3a1774c299f1a035740bfc4830919da191bd14e0acede410f6dbd1e2ef
+DIST anstyle-query-1.1.1.crate 9891 BLAKE2B c298114c1864a5233fb39c365e079a7f1f4ef23499dc330e5deb06f83f27bc727015befef79075c7e39952547f799b4135d7db287cf72dfc914191df784a4989 SHA512 1b2e888f025142a0d9b01314cf083831a2a45d8da737c1be3a6a9aa177e73e0d2ae7999fe7610dd450b7096115e8cf38c5da23723cebf1deaa7d3501d3dbd5ce
+DIST anstyle-wincon-3.0.4.crate 12234 BLAKE2B 23294d6ed7715c55c8f796eb7b860450c57b22b57e32a5c75847f2e2bd68a52b33c24797db662aa5fd7e799b9644075c8c939d93b0cf8598b16ee80fc817b77f SHA512 24b3a9a44382609ad449425a657d4b42a792d4703c36e0953f09a03817759c266a2f0ff4ecc9e8b93ea8403df2badef1f1af6a6e50af56205176c41b13501ae6
+DIST anyhow-1.0.89.crate 47078 BLAKE2B fc824e72891bff0cc7aa3b538adfb9af7dc843ab6ed12b8b04eb70e62d32aae1decb9090621d3245dbe89841e73080d2d86973b4aee50873e798956da9b3faa6 SHA512 3c09317089ed78601a56c626700d12c0b49396e25fed9a9f05a2dbfbd6f91ad426c430633006a4043decd1f70a85c161c4f8dd7de0e4c00b82a169b89dda8da0
+DIST arrayvec-0.7.6.crate 31237 BLAKE2B b9d1df7e3ec47d434a2606fe9540e37e02351873b376a4e113b54461288e9ab20e02285eed5c4bc0f052ec4d6b3c804044413490ea706c31a852624b03bde7bb SHA512 b1f320746018a7f32340a833420089446ec5cefb7f299b4506eab7423d5db49f00b72d8aa8c6600f9159b9480d5eb3ce69407d93f5c9934147860c83e4d6eca8
DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
-DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
-DIST bindgen-0.59.2.crate 206267 BLAKE2B de66347fcf2d538879e49c85d2db80e86a70e27d3c84464b52a840476a31edae0cfa3e1afaba33ef0b7abadcb1e23a2fe1420e3254e0de1f6848b575a9c96620 SHA512 14c49879c7443191b877957a4fd405c7f10a1e8b70016d91bf5fe33861fc5d71982a1c685c190e4f7922cedb6c8aefadac3b0b68cbe5578da791a8da6bfedf44
+DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST bindgen-0.70.1.crate 226363 BLAKE2B 4c5b9d70d0aa95ec3dc4cc956b3b101043132054ef47017f1e7b51072dec1ad87885caaaa91ce5353f88332a6412c0377cf9490822357e78b5124ae9b3e9a6e5 SHA512 cf1c87ea7ab9ed4df953795f1aa77e6ae6d72e768de3b517300074501ce49db6a3def1f58b9d824b5727974cab84a48461e7d98086fc440dc73ad9cf173ad5ed
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
-DIST bytemuck-1.11.0.crate 37041 BLAKE2B 6b73ecde5bf10b1ac81ea97904285197dc550cbcac4649804c5c50cc32308a28064fd6f28bbcac44f2dd97d0719b7da4e15e981253612d54790802febf4bd732 SHA512 cb11396b35a3d783a1f44278b1372d51268089561e4e16c662dfb17cffb6645be4fd66e5532683bcc964451a65f4a9deeb72537d3d84da45491d4545f2c8435c
-DIST cc-1.0.73.crate 57880 BLAKE2B be8d7a25a54afdd759844e76aec61526fc2bd5ca09480e6cdd3bdcf27e5f9d3a88dc16cbcbf54cd021470a7cc521e1ad468116c112bbd30752bac0d5486939ac SHA512 980f012b90c6410144f6de4995048337e09214f19603076db6d4edb88e9ef9ac9e8c6e25569f66c2be3a47e99298f5886dafc102e1a9122316179aa26bc1c985
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST bytemuck-1.19.0.crate 50363 BLAKE2B e3dc5d5285367a0e79976f4b96a5d1204c35ac33d822bc5d2e8bbb2d06d3e2c59ef63f1c1eefe12277cdce6c1730fafc0ba4583be193bf68f9a84d541ea7f55e SHA512 7f150a5b63a8aa2f59d1fae7cfc70d08a78a19ce4171352aeb3f252a5cae90f76b75d6517d6d6872d9b05254b16629b7fcffccc825d7813b40d95b4fcfb20174
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST cc-1.1.30.crate 84509 BLAKE2B 59d2fcc0d6bb9d7c97e4f27b49e88b3260f6b166804ac25f3b49eb368e6442193a36869d305554494357f206e3d1f70454a3b740e6b6a5b043c5cc0c82c0c57c SHA512 0a74e4753afd84883bec7a402fa6c3e80bee18f496fa0168fec96e1e468d2e873c54f2f536a013c83eceaf75b9fb6896810ffd0a738d9f94358fc5165d6f4394
DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
-DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980
-DIST clang-sys-1.3.3.crate 37943 BLAKE2B 92ecba81573fc27de689752e7009514d0e51c4d09407d0345eee7a94f4713cfd01304b98370aa89d56a3b028912370f4967f8fda28ae9e3620fbb4af991da117 SHA512 fd922627ff66f9265aae30bf585bccab1efdea7f66b9fb95f45af0f316727bff7b791f36ef42010df5d8b3b474f36457fec03fdbb25c50cc8922c3b157387dc9
-DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
-DIST clap-3.2.15.crate 213317 BLAKE2B 382e7effda5fad6d1edd4d6afc04cd35bb791e7fad0f2b24660073dfb2d2ddafc105b4a4d16265bcd21986a463e65170e12baac407cfee467839341f8fcb5f10 SHA512 0811a833f5ecc6ab1f29edfe2cdc42dd47a31f768bf04f6b51cf360122881a5eabf3886491f9ee6ef35492abad88d444e7ed75c08d6d360dd5ea4aea8312b62e
-DIST clap_complete-3.2.3.crate 31481 BLAKE2B 1668b7b4d8a368b17d6fb2254a6db4228d1957ce5824a649b09bea1a9e303945ec3a4984541d494b32ecdd7037d6ad371866d531f600f3cab76e88db82d01c09 SHA512 52ac37202b088094414f8148d87cbb37de931c7514d43aef8fe8ce82406884bb8d2a287f03a6e4fda1db28a62e98decc46f6a8d007e5399317e7f2da07a45de1
-DIST clap_derive-3.2.15.crate 28218 BLAKE2B fab12b77b78edf58e3779c986d2c0b9f5e22a2c7d39ca5cfaf5210100a005a430157b4df19c726b68e3d55fd8ea825e4079fc01add760e43ba5903bf31e6cccc SHA512 75572a3215df81f6256fa520fdec95c2242a3ba17119e5b39292c8470195204322bb58b2b7b770622865e2345c1a4ebadf19bedf09f47b9958033d5506466d74
+DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c
+DIST chrono-0.4.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
+DIST clang-sys-1.8.1.crate 44009 BLAKE2B 9173de6dfbd3ef9d5d1fdc559700cd3a52f95cd77302063a97e8cf311a35825825e030b47f252c857853663ae8a16709e1f7bd0c608d67c2a74eb36ed588e778 SHA512 a68c426c20110fddb8bba07d6631517b0528fad45802e5a34a22561d7e6dad82dc5001387019a03f275e9a671b09ee0a06b6e86793c4fb4ec655700bb0f5e125
+DIST clap-3.2.25.crate 219403 BLAKE2B 75a8ee36c52e64cf0ac7ed5604d8a575c41c756a588bd418e6c1edccfb358350cdd831b4176f01b987fe7fa5901ca2bccee6b0f68ccba7dbe40baf85a5f3bdb4 SHA512 557c8932175d7ecd077b32b68904924e52dd46d04fd04ba36b3a9dfd7ab1dbe8c2128fecfd75d0388b21fca4aee55a941794181cc2910a4d4eb3c54e9c7e73ea
+DIST clap-4.5.20.crate 56376 BLAKE2B 8efa9c3e171ef38c98a25c526f528629e7e72850c6ec27e7e89a212403ee90d7d005b00750769e4335423ecec1d86abb35c19b0bf7f2c063bc7c6a8bd59d6804 SHA512 e432a118a2ec15b273a404c3cb75bbe579b11034ba55def1823d4670c6553e3d8611074a24f50a0f4adc8bda184213b06106c44c68a19d267342c53e345351d4
+DIST clap_builder-4.5.20.crate 163812 BLAKE2B 689110f2e4f46e8c4c779b6c39cb5f5758c3a32ea5bbfa1faaa6642da7d650cac0827a3e5b503c5054a85e0e7dbf04e7c53d65991a45f3be90c75070cc9c200a SHA512 e914c8b6592f9d230b4f4290cf4b4d73d0160c12a1fa3976c74bad21ff16da532d6af792f0a33fa472166f1cd551291b5d1d71fe8b359040040418694ec52000
+DIST clap_complete-3.2.5.crate 31625 BLAKE2B c76baef63d773b81eb4d8d953da4a94769b618da45fb0f13fb9d6c6738b67ccdbd58ad2b5361bae99705fd2b7aadb520d6e7f4d258d872971e0e308a36900965 SHA512 c26d6c15a0ab44720cd7a5979dd4c66a9171082b99c04cda10fe4f6dd9a1405f8ca9022c344d03d7d2af7788bc28be033c9e2311f6879993901773176783f61e
+DIST clap_derive-3.2.25.crate 28212 BLAKE2B 8782f6425ed46197c5e5293e2f06fd82b2d17ea3e89206580ef3c6853bed2e8c99ef2528a30276a8287215d7f5505a992dd43c59f26b2915757c8e2f20510843 SHA512 c98098bfedb8b681d72eaedb946d9867fd068d9be31137fe1fb5d821cd68afec48e7d2963adb2099aa760c702d5b75fb0ed45fc62b83d7f26edc8cecc03ea5d3
+DIST clap_derive-4.5.18.crate 30131 BLAKE2B ff962e52d8d8afcc9639365e27753c6c6943fd809ef89d9e555e8be5b2f13efa650bf1f9ae451f4c127c1529a0af1d892c3b02153b46deb912029b45983e01cb SHA512 035bb918bc7e9badd59341560f23e3a8a2e7cf945b6d8183f74052c4edfcbecf07c9ea6fce0ceef0b84c89a99d62b11760af39398897e4ee7dad0170a96cfefa
DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c05b65bc5a78c422b2a4bf488f9ef1e0bed4e335450f2c08b80148eb5f7efed678039b5a94b5bd666385939f SHA512 6c05e5fd850befd45be9005af7252385f2304aa28a107413bbe329d97aea835f7acfd0bd169c99f69f466ab93d6e1c35d73a4e48343457a06fe2d6be5bedde0f
-DIST console-0.15.1.crate 31674 BLAKE2B 4dedaa4c2bf5b533e4f1fb007d7fd1a2b7e37e901f09e1d8d43d0ca79c95eaecb1d238597b338a8da9a1de78efc4ed830a0e55e7e59f4066ff7494ecbb0d6eb6 SHA512 af00a4c8c7ffdd4e6f6c638b52dd4e829b90235b63256215ce04ffc9e3fec8384a032ca664fc4f00a912ce6b5db04990cdf7f60873fe657bf99e811525acc8c2
-DIST cpp_demangle-0.3.5.crate 75313 BLAKE2B efabaeafdd730bcd85d7e22fec3ec014c0f15f0ab7d7eb939c9abaad5edc51696d4cdf6551dc933e76596eb792cb214644bbc4fbc4ff373fcd37af8b18bd6a0b SHA512 ef59cba0cb54cd12232fcd96dc5734b5997ad6ecaf4e86d7f6cccf56c4c18a6cffaa1f6eca46a8889f5a0fb3ea1774495364b698cfd27caccf99fbbaa08d3378
-DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357
-DIST crossbeam-channel-0.5.6.crate 90292 BLAKE2B 7da87ab15c384754d2493dd1a30e83550cd4b2b749b7f0c24de131f054e3a2e521e1bb4ba10094378c8f4c7bdf19218e35b10562c50b4ad1d2871bf6f821e488 SHA512 de6a42ffede95750a13e3b9af6ab26cbc498125860cd8e4d227c7361bd831e558254a48bdef5cf901585a915003071b0efa321f2011f282218c364780f62f44a
-DIST crossbeam-utils-0.8.11.crate 40887 BLAKE2B 6cf3c4e28243515f06193ef746b18129f62832abde8153503571052f4965b38ce510b09d18e51e0f563bfc14818af13463d1e2d63716b98a91b55461f5186b25 SHA512 eeb19480ca1860953507606f6649756974f65a05883c695fa371ff6d80a9fd0b94872aad5168955b4771b38f50314364236cb39363bcafe9750b687ff92a5ed5
-DIST ctrlc-3.2.2.crate 12699 BLAKE2B 39d2e05a943280f3a62f3464bd77cad5f606ebf912c6430f4b49ec07a3cf2b1fb19ef5be5d589e931b9d79c5af882d51782b580d1a89a48bee221585c1212b1c SHA512 9536489c3b871685f20eabe7b8fa4a1a4db8e362e8e83b4b2fe244d98eb4da8f84737d26854505cbb53a311e6aab6327b0644689206a19dc5f7d3b88bac580d9
-DIST dashmap-5.3.4.crate 22826 BLAKE2B 65932f6ff7a60ae1eb309b8e75f31c4ec8beba09ccd2345b0c133237e3504833efa66d9f811aee123681034360112686c04dd47766537ffe300c0dd8ab86263b SHA512 95310bc2b9e4ab46acc056ed0be8e75bb6e27e6bdb2bf2e0917482cdc86e64e5fb9159307016895f25282771fe3a367731d0e2c68c6aa5435154945cda52b6df
-DIST either-1.7.0.crate 15492 BLAKE2B 3ed1c5c27e7bd9453f83b82d3f57a4a73f965b1943a7a17d3de45ee35f62db53976ba9f2055ba28c555500cda528ff3a2d7ad6cd957540c91f512bd3adf9c5e6 SHA512 894bf3980def07848a2911734c02eb0c5c5d2ff3ab7656413d2acfd164d120a7c075e0a5f3fb95243b8bda0257a5f457117d5c6eafc146f3f6aaf6c6fbc4cf33
+DIST clap_lex-0.7.2.crate 12805 BLAKE2B 952bf3f3885ae7bedd0e8add236590da5fce72a7ccd88ebda063410aef337ce7ccdb5e5e929cb870bc993891610edc0197150a3aa82a62fadc4bbfd96324fcdf SHA512 a8726397e5372fca3389748efdfdbd016b6baedad5b4bd95f33e4e820d4f40e0b94c88b1918ded3678aecf23911028e2261837e73d58ba7fd6f091eb47267380
+DIST colorchoice-1.0.2.crate 7924 BLAKE2B a4027d5f870b4d9a718ac3f9d89ce04e2ed38406658c4a55ffaf39ed0cb1ce7e1c691eb56c66596b519ca82309e8ec7eebac65e69394cdd277f44f9b6280d560 SHA512 f34d5f66f84e90f473b6b9a62a61a59575e712d3e9b140324683f80af42d40c1d079701aa2ed651d0dd95a5ac8838e1f6f6c034e2adef79509d32357b8093117
+DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST cpp_demangle-0.4.4.crate 79650 BLAKE2B b89175d834739b981be91fd480a8b4eab45a2d4a7264b60c73c0b114111a37d67acb5cb625bcaa46a4cc1bd9e17cb385426ceaba0fd4998446664e7a6b3888b4 SHA512 e51fe860f766e4413d51a8973e169d2d74f0a470b32f5494eb76a04ebe7f10b07dddff8d5251f96da39e897e89d9bfa5edcb392b578ee19ac1c06a748c228b19
+DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266
+DIST crossbeam-channel-0.5.13.crate 91174 BLAKE2B 7a9aed6f4922c1d10e4ae12508a03dc7daca773adad6a317c4ea38e544d7c28c56a06623d958aec540fcaa86fa9051a1aaa2c859dadff72873f18f2f3a951449 SHA512 0f31223a7099f84e39e6b76b19cf26736e0c3907fffc2ed3eb0012c7984b1993570bf6d155eba5bfb82897ef0e4fc93b89096071410bbac256ca6be9a9568ff8
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST ctrlc-3.4.5.crate 14592 BLAKE2B 189b026f4061b68848851dc694c71c6ecf87d6c6cdb4518a3aa215ac3d77739db43aa68e3c628e51dad99d7ad089ae6c66a6d03bd912ab9748a0793d09c2333b SHA512 3fca36deead46f3ca586f0a07ace804251d3c3e49a9a63e8c34546e2305d08158770304ebd0c9ad6ed499f811cbbee0b76ffee1858aae60852a61a19024db3e6
+DIST dashmap-6.1.0.crate 24828 BLAKE2B de8632e7e22132fb2464653cbf6d928d7f2abd8e7352a50e6fcbf6b522aaec67ab2a7618cdd34f0d48d0bdfbef026a1515d5ada98ac5b123fc7856246e392968 SHA512 03a727e41505e5e7068df8fb27fad6d348fc14f6b1609d7f606fba765fb92fec7fb42c6427bc11d057ad2ad52d1b44bcf5a802651765148941ba41fa75968cb0
+DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322
DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
-DIST env_logger-0.9.0.crate 33573 BLAKE2B b9c22205ee60ba97da0d338e1d40dda989f0d766d9ebc60e610b53db882a803769fb3c093348c031183856e16a5a948342e09551953f0b98cd73437bec658bee SHA512 d7db85d2f7d16f7f97b6714e01e342ab6b784c799ef26ee322ec85fcee28a549b6e49a49200ff78eceacd0c682e941f8538a497e2a2a196040769c2365feb566
-DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1
-DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
-DIST fallible-iterator-0.2.0.crate 18509 BLAKE2B 9630fcadb2f30fbd8a2a057eb992bf33c0aa2d163e6fbd43de9c8c350e3e932ebca79a6576b215e17a0566898f6e37aef806a643d20c16a6aa73ca515fcf30c0 SHA512 c558fea3fcf3a7756acc0b63d38f76dfe7eeed4dd9c12c46b7a7e8b8bea64d00e0cc115492e8b3a1a19e86e6083477dcf7d2d72ef960b44f24d61819a3077e79
-DIST fastrand-1.8.0.crate 11369 BLAKE2B 93e911ffcec559e30b2fefa44c4d74d1ffa9b8ef1904ace608b8576210bcd41a2b4c7adffc00cd3bb40996110d07316cf8068f4754a879c6cb47e3d41304d406 SHA512 82cbc2b29b97fa3fa2c9372d3e8c390586a7b39f6c7d8c45f9b779bdfdaa2e8a3b44bc7bfcb3367c18120726facc753c9827cf63a8fb4ddc2667509b16333cb1
-DIST flate2-1.0.24.crate 70191 BLAKE2B f5ff04557dd0a57151b4c704cce60622157be4c847fb0a42eeb5a9d531ba28d34b41632bc1b34d2f935ab576f152479f72877dc4e6b296edf125becc6e6d52b2 SHA512 8faf97c28dcc4553f4880295677b1269b4acbc6518d006913d32d7e319990c6631e10f1baf7199b96e03f6de95b9e2de04502522bb1eb45bc301a0fbb0bfc0c5
-DIST getrandom-0.2.7.crate 28854 BLAKE2B 30c054361c9b1d9f95bc505e27e98d8cbb685f37c91437948d9d26f22028e0797a7c704d88912c1648b3704bfe10623a8c5e130e81746c8f85848b831771db80 SHA512 01803e609848662ad8650cf451dfc2c37580da0b7b5e0d4cc764da6ded253cf49ae42a433b1c53e89773bde00c1ccc136394e58ed4548e7b5c0ca7e202e857e1
-DIST gimli-0.26.2.crate 717340 BLAKE2B 6460346625fad7ed202f387d45900867e785026e08efbf6542bb5c7b6ec2bc8ddfdaf825e872d2c339c3b72f8ddaba546efa94243a602bd8c9470c6e808a8f30 SHA512 10baa5fb5fe13eeab2ed9ac8e02ae7607b42df80b9f39b14027d052ac7f6f11e4dec451bd73c3640ff8ef174e280c1640110720b2bc4220229d27bbb31079029
-DIST glob-0.3.0.crate 18724 BLAKE2B 1f1dd380e7d668a0c2cff9134279ebda958b4bccdd4a65ff01f9665b45ec4cce8ffbd47eb46e52cf516c5fd5803561e6bcb60cdee21ddfbb8601a95d45500620 SHA512 87098ffdbc518442995c422120cef71f83069c8f88a1970ecec5105b0f284ddd92bcee929f5c230d5b90ae1ead7e1214c3eea26f4a8b26715a00c1ab8b09bc46
-DIST goblin-0.5.3.crate 158162 BLAKE2B 5138b382e5cbf2a56d6725e00a7e2dd8b34675a6766923775267348c4a2bd6edbaece964b19e69335417f16e16eeca5b438da2854e1b6c723d4e6add3852d972 SHA512 07ddd9344c2d521a05068b2d1af85b79c6d47f86f71306c3e31dcbf2f72592f8a70ff29b423910ed5211bdc54fabfd9a751582ef594a6dc794d7a3b4e3720c50
+DIST env_filter-0.1.2.crate 13327 BLAKE2B 96f888b30ec8b40032e588f8ac73e9fe23340af71d5ec69cd8b4dc2bcc272ecd64d1d3ab54bc57e7a71a44cbac497ee7ad3df52930dfe3c7ba7dd129df290b73 SHA512 b1f21a5d4aadfd940bde3e53935c04da48e48cd4f825cedaa83968a08244722aa4e92afb9fd2fdd228412754f040f7bb68f24e05c0bf9bf57783aec042808606
+DIST env_logger-0.10.2.crate 36402 BLAKE2B 34ef02d0f53fea474e7284fd7021ed3b44b11be2c0d0c9a66ace8792bac74d1a6b43997e0e7d043ef89e14903f6ab6d42c169bbb164f05cfe4e1688611639edb SHA512 c44131efb703eed984d8f4edcf18c77ef14036edf013e8bf445703c74a4386e4c3f4b55a272490da1ccb47a692ccde4670772c74d35c5723601c870416144b69
+DIST env_logger-0.11.5.crate 30683 BLAKE2B 9dd2b461be5c5cb3411ebba8bcdb53a78fff28c54fafd21a0f8c3fe578ebc3882ed5df63a5ef9adf62bce00fb6360de895457baf75fd2ed1a6730429478c32cc SHA512 e2ab1f117227ebf8840daaff971c2533830c0e481797cdcaa055a4506ffef78fc0830bfa13295275c604273d494278d43440b987132f97ed6bc1cf705e05cd8a
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a
+DIST fallible-iterator-0.3.0.crate 19639 BLAKE2B 58b8fe842fd6514fa4327eacc81b157a4a9bec4ad9b8e69248c0f0aa5610dbddb9c8a72e6e6ef9fb8216e8f79e6aab439e90d4d527e35634ab222347cbe39974 SHA512 c655918fcda5deb8ce792708509e4959139f113c1006dd41b94d7073ffc204512a22cdeeee05c87534db9c414da3f4eb716e1a26970646fcb1c139a14eb8a2fa
+DIST fastrand-2.1.1.crate 14983 BLAKE2B a4535b1612b103376fe64d71a393f7bfc37668c574d9122ca90a631aeb91cf0895bb030e597b79a80a4a37ea4d514c4c0836332030bb10a60bd971573a6d6ee0 SHA512 9a51185132c1c89fc31af463c664e996f431e607ce96676b8301f28ff11a99661d18025dd460e3332e373af68d20017d96481719746fc3c5de742d08d63aba3e
+DIST flate2-1.0.34.crate 109174 BLAKE2B 70fb087904e1e29243facbb9a01f05770581d91d49935290943797cf84c3d2b416a8f78b2c4f9277d86053f1bb79e858ab1d5bac427bacea9771fe1998ea498b SHA512 0526f2c7c061d57f5a39fec9726c547848f6bb36dfc977497c15fd42da6c300bcd332278c31e3acc0a72e897a7161f03deef61e95e072bf3cfe5b0302b5f98f9
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949
+DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
+DIST goblin-0.9.2.crate 191510 BLAKE2B a12c0aefbcd941688e895d093a85de35ec9533fca295c5139934d0ccbe5786f05380d057701c1c58d2b37c7fe9bd57a8209bf45bd856c2f350be02c89ed51588 SHA512 1802626a679bd2bf6be1fd69c179cbc837bfc307c2cfc2576ef91e1010ef172f1e72cd732efe0914bf345657e7da510664393133b40084017a2af99657ee3276
DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
-DIST heck-0.4.0.crate 11161 BLAKE2B 13b8bc39cf3ab90e71433e3c7b3e5f1c19404bec58dc4298dca05d94d5c14c2fc97350de737cb78aa45196b1241aa8f1ccf3a11ca309da5fe0f6a657673412b3 SHA512 33bdbf4ff9ecc4f4d74cf06590e056f4d96bf0d990d5381b9da5b65682b2495ed74e27b45419c2afa986c1f6200909d5175b137ae73ced5cc8ac869e4e1bce8f
+DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70
+DIST hashbrown-0.14.5.crate 141498 BLAKE2B 7d7f31b6377c901de12f78f0004a347e3e3b948b1336a54b6abd8dd2210db0ac415efcdded421a00723f16563a7b833b5d1db3cad5c12cac916e273bf3e588b3 SHA512 215ea860bd3de80e2dd2d4647c9dd31c0ac895ea7c08b87256dc11d36407e412ffefaebc6cdbec024057dd4f24b3762b4fe427be307e15d1e68ccfde89a99742
+DIST hashbrown-0.15.0.crate 136460 BLAKE2B a2bc34b9d2eb7ca52dad7bc59e9bbb38ff9f79925495e1645eda7c0587e86e0a3d0675f8c7f159c5a83dfb2832fee9788a7ba6914168b51c26f762e140bd05b2 SHA512 497310e0f8e256e931ae0e752f66eb3811d5d3b9254dacfe2a1227e8532dc23eac8cce7a3f0758fbe0e0fd8f08b7bb18b5f118dbbf4fdf575a31666283583111
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hermit-abi-0.4.0.crate 16310 BLAKE2B efcd1dee7bcd6d185cbe0051c7bc7e2776857ffcfd2adc3fb101febd7c1bd75994b7e4a4a0a59c5b4628cc2521b4c1f043e98a0c44935d0180e7499667690ab8 SHA512 b1a21f6d54598185a8e8c29565ffc2e1bc5da57cf1c9d87ba643d23d7c23d53e8ad36ee2f5c1ec8a504334b6f98b0f17a832ff37877c7b7f9238b196f4034e6f
DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
-DIST indexmap-1.9.1.crate 54114 BLAKE2B 71e4968c85d5b3fac550590658f9fed72c754a9443221fc804efb97bd39b5fca7f894ee67f8d2c330bf212eb8a6b5c85879cd813ed56e3fc43a54f0bb689af5a SHA512 7eac99056123332ad38ef32eb65235c810e8b4d051d9b0ddd5582348c9cd3b162d36defe8e46a532e2066562f224e37fae94b52b4649ee9cfac7673b76a2513e
-DIST indicatif-0.16.2.crate 35057 BLAKE2B c2f3beb7ac4450c5aace863f33de7a4b474e93c5d34fa55acacf971c5e0918b4b72c1a970f15395a8256fdf8bbb78edc8f2a6fb85be4aa7dbcd13d1fc30ff55a SHA512 5f60358f1fe3ffc0ec97d1d8922a7a2645d7dc0affed1d49a9205becdb36756d6a03482ef00fc918231770f967f7fc523f7b8c3bf4c06f71a0a93549c46fdacd
-DIST inferno-0.11.7.crate 93532 BLAKE2B e5af1be2f0c0de3314bdcfe35ff5c366a615ce6c31b40d0146613294c0c7128cfb018532c6450704bfb2a78ab1eef477518ded5ed88330f88b556999510ab048 SHA512 102def82a4f7c3cc5d61d8f07580199735c4b2f86f2744bb3bb08a911198393771d50363526bc5b583cc4b39d4aa45f9471effe62dd09d9cc7c75df7b14507a9
-DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
-DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e
-DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593
-DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
-DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d
-DIST libc-0.2.126.crate 590481 BLAKE2B 1000de6b9fa2b3ff025b961e504d6d20b401f37cdeda6710187d18ad2dfe8ec89142bba65486d7853f1796897b58f343c5a34dd6381a0d0794b615635ac31175 SHA512 9bbb17f64a7503819616a71076ebe8ee317daf07b17b9fff783a4459da0439aecee535c09e7185bf148b1993e6fc958d182a490fc9c9a7b9fb635429c491ca44
-DIST libloading-0.7.3.crate 27378 BLAKE2B da36353819cbbc85dbb3196585970b431eb5570140978fed8a6b5e46bec2560b373e20fc108b9520589bfd1f804eea57a524a0cb497620d4a8fd11030e9c4818 SHA512 58da6e73f86aa05132949939507a128188ec2e26e2245e23b1534d90673c9909c7d5220aa4aeab2c16249f7433b4d0f98f20c94b8b1f7434c7abadc8b8039ae9
-DIST libm-0.2.2.crate 113226 BLAKE2B 126ff68b4ccc7c4e3043095c84ef010bffdc1f76d3c0c871441d1ecaaa044534506844fd6accf145f94cfdbb611fbb1fb13ce976521911dcfe77d57c3c81463a SHA512 5aed180dec326ed9ee2fb90dfd94127ee5f75804f7ce7fa0ed5c7e1f0533215690553551da44c055f9ad47170ca32971467fb378f7328a3c22930832388eed75
-DIST libproc-0.10.0.crate 23128 BLAKE2B 1e0f2150289c81151efd7b6adf2e28d0d37bcd0123f31140fc1f60f3555a2abbc3b2243c23d15663e2336766f1ea273e15d73e90b3980e7de9a99a11396c7629 SHA512 c7931cf0a187b40f7669511ac18bb7fe8a7f20c67055a1ec6031e587ca9d3a25484234314fcfc7cba8d60aa98f9eefec5bae3ecf0e014a03e9814c8a33dd4315
-DIST libproc-0.12.0.crate 22816 BLAKE2B f12822fda5867bf2f3df732fd67faca0fed5beffceb284f8c6cb95ea14f3f3b672d1271dfffd1f3c2690c08b1cb24ae24cbbb82e64441fc51767ca2661c7cd0e SHA512 8694734c36728d4dbdf4666a3a8445e493b92dd32ceb4e41e131b89fe39e1ed96fc8b4e478585c2250f8a71c9d1c4ce45ba3bd74af3efca66c618ddc2440580d
-DIST lock_api-0.4.7.crate 25371 BLAKE2B 9ed08433ffa70af60193dcf307287991a3154f0ef16b485f32a6c83e64962661a6e08ef83a6b217d6cbf5bd964c0638d8ed86b290087677c1fb3218321c4bbf8 SHA512 b1a5227fd131edaa70e017f7ddb43af8b4efa58488007b898ca1dfc818a3a441b732b7adbf1270e72a68ee5d2a99a5d48f33b2bca8e2cf78694953d20d27636d
-DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
-DIST lru-0.7.8.crate 12623 BLAKE2B d831330a8529a3f4272ffdb5234c9ed7804c11e70a0a94ea592a29c8c2ec39b66d4c5f62d55a0053f6b687c4d3dc4eb31219caa376e5330b4945fcdf7f646fe6 SHA512 75188a6118398870ccb39da113a41e9f791180c22eb3655f3a3dbbad444bc6873406e96f3fead814c154ee97e4a4da14f9848919ec9daeacb7dd2ce808e23ceb
+DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST indexmap-2.6.0.crate 85204 BLAKE2B 420a3cceedab93e5023b476f9b6b93e57057238425d4095de59eb9490c2a088193873e643dcad2f739e34e5798baa9a18939424cac1afc5fc7b93ae496ba188c SHA512 c870348691f5acf97e7bff25c805e60f2e9db9e3ee7b3b939b7be45b6bcfaadee9880e6ad27adbbe2545865193655b5fa9de18487b7a1d030017b2fca48616ca
+DIST indicatif-0.17.8.crate 64869 BLAKE2B c534020b2c7b25bb07cdd0fd4414fc817506647cf5b8e2081c22be58857d5adb170082a3756004c69187619fc5625f8b9a1904566dc51c621838e09ecda5b43e SHA512 487e73445c5c7d3c16d6f93a3d9767f41b37d2832e56851154f8b69e678ab7d9ab04eba225a6bcf8b48842ae0db0249b060e998e29a252dedf8afacdc88b1aaf
+DIST inferno-0.11.21.crate 102615 BLAKE2B dfd841e838ae7e4bec2c9346a8c755f1d0964d7d494b6af0629a4426ca3ad7ff39d19fe68c9739a6884bb6470ce8ee7a499f6f794c73a8aa5741e005a2f34d26 SHA512 5d4821ea21cdc8d2bb8298d982a461ed3927b456714738dc459d762e60f5178281b6d1a9eaf8da2f925df0b6be4885912eb48e21c8a27ac3486d9706f71ff941
+DIST instant-0.1.13.crate 6305 BLAKE2B 83a2c479e21e789ca9795f66116ebc55481a42afb21f4c0ec0551edf07781901a28978667e92b01355b43e0e1a7ffcd3cc37b5501a7521da78f4f352e586c9fd SHA512 b7839431e8920c4c0841d0974eede75fc50f2bb7a9475664bd2c4ff6c558a10084e1c025e5be977c3364ae9112c365c0a6f480cb9b35ee4130ca2beebcf650a9
+DIST io-lifetimes-1.0.11.crate 37346 BLAKE2B 7f278b7378a8569d3552c9b6d4be06d7908e05d77cdb964267f0b621ec4975a42fb6e48fc030a75ad5865681adf32ff747943ac559ab4ad73331a6611a1b10c6 SHA512 30c6e5ce6f5beabe0d7bee4f4522884d1316cf7d9b8d093ba0f952995997be3d0f10e1e77b9c20b7fe2b65429de0d2ec89bb35e939455795205206a3154ed544
+DIST is-terminal-0.4.13.crate 7665 BLAKE2B 47a024e135ca4931a04a8dc8151f999f816ab50c924f17321af4295dd84fd51bf98ff057de967e646a461c1cc9ffbfd7ae245a9021b3a77f3812f43707b44aa2 SHA512 ea5b18dbfc965b96a27086eabc070747fdc557a6a9acd06203164e846c2f390c4bebedb29211ec008e060dc80b10f53de6d6cdc822d4f51a543057736fe33448
+DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1
+DIST itertools-0.13.0.crate 146261 BLAKE2B b23d59a87f80d24925bc868c0ac7abb6b9d05aad5ca08833634ef760ce228a1b753062ec4bd22237d0e74727edecd7ba3df9789cee896345b69780d7de66866c SHA512 c6cb8f93a93b6ac1a2cbb3033e66fc81a39f83be773b734bea3311332b96bc71bbb518aae3e6b40cb537590c23de1ca4964361c336795c3985bde63232d410c4
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST js-sys-0.3.72.crate 54096 BLAKE2B 76c1044b7684ccfbc06c6d43541fc39552c058fda5ccdcb7154c930d03f5260706ed42b36b305e56c5a0eb0dcee27180d3df3fbde92f3b7ba5104b0709f5714e SHA512 5a83d711a02bead2d9c05aaf8a7e3f351307b3219f4f6697bf190d9a9b36bcc10fd33ce0a334e4f3e251d52fc7411020a3631d0874097e9b519e839b713e1c42
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST libc-0.2.159.crate 755366 BLAKE2B 70f46eb6228b4a8958dfbee00cdfa3c7d218f30d66c8591f4ccc9c5d8eda411d83ce9450552384ac4bc29deb2869561a2111dd157c9f228f617baf8f6b537bc4 SHA512 c803939ceea5ad9bdfdd122726c7a5f12ffd8b0cb66cf0bc62c9670e1e5904a504def388c1e043c520f4ece484addf6dac465aebd58578aa6b79995077bbdf9f
+DIST libloading-0.8.5.crate 28902 BLAKE2B a0fca8f8876092e874964b3dcbaacd417451704fc1d687669a95a0b9df22ccda73a754118ac0bd706a7c7d86e4eceb2ad012e20e341d71548b34ea8d629bbfdf SHA512 f332884fa75cf210460f4678d45091345b23469c09301614c476e95bc54163afd6d4f098a34f9e0d529fa1ec63892395b50957598070ff327743e4c3b0871074
+DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5
+DIST libproc-0.14.10.crate 75452 BLAKE2B 3abd30e7c41c292f47ad76985e98dc72eeb0065673b88f36d22550b108fee58f1232835e23d413488516df99d1ec8d9105e029c34e5366b66de62dbe71b69a12 SHA512 ca0bfd7b6ea838c8ea268e0da84ecfaaede40e4fbc4b15174c0cce2fd8e80a4c72b487ab0f6b11948a959822c475e67532560b21a52d34af3ed15c2f594ebf0a
+DIST linux-raw-sys-0.3.8.crate 1013776 BLAKE2B 375b29d2cc700e95d94ea8dc304cb711562952742f65c9664e33560a3da862aba74f2ad2ee66b1dface8cd5371ea9cbbc452ea953a6b6c656ade7d938b7d2ff2 SHA512 cb0e5c54870dacfa513ad05f7a84e9e90dc1a42f55685fe3e252fd25cffa4b875f1b65eaf4ad132ef0a19e6677c7763b360d71ff0060fe6ce5198f38b9956375
+DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
+DIST lru-0.10.1.crate 14160 BLAKE2B d3b5dce69a158c070fcee2f8f539c48ef697afb1202611ea22cdefffc519e96890b1c0030f7535a097110031b4ea34937b9956acb002cdf44699cb1be827214a SHA512 f863ce63065c220d5260a1c9c00d9286562df52408ed92e035ffb490f67482b7e7ac020c8c514eada19cc69f282a2ecbc241a8fd3f96603c3328cf39a6af6708
DIST mach-0.3.2.crate 19611 BLAKE2B 683aba7d140a3697933835efe4e2e5a6a107f0a6122ce4533bd9079c0de4346dd1a817abeca4372a44a85406a424af9deff87496e79359df4c8d9ff89daab7e9 SHA512 73622b37915f3445a57cbac5eb378bfee61f5a2383c0dd8bd7c29b5e46447405ebaeb706f3a3274e5afe37b0506afaf1511836cb8897d9d480a3abd41f18fa26
-DIST mach2-0.4.1.crate 19723 BLAKE2B 8212c6e85c0ab8a6dde8f1a3776e8250bcce79cd525eb4ae00db926afdedeff6d84ff687156bf481460d56aec62c818feb7e3940c7ccf428bdcc7d216f6914d9 SHA512 eacdaa1f04602c9c0b6107a8c0493b597a81802c52a14ac66a0a46db172b3da40733af8637e8221608f62e160ced0e877906d9a79e56c586d5e0dc47f60a8c51
+DIST mach2-0.4.2.crate 21889 BLAKE2B 137db92691ea6647ca19257abf90402344cc3a8508fe6f8760a02fbe6f56d5341a025fd9e5ef92ea355feff9f36ed6926bf70c79edc17977b65e935ad5f36959 SHA512 5338254f5b9833d41957715898ab4bc52585f99bc8f8fef3ebe526ea36d8a5cbd191aa07a218ebb6f71b7487418223e4279977294b4a6494aee8d01f34cf447b
DIST mach_o_sys-0.1.1.crate 80279 BLAKE2B ed379132f648b01c1608268ea329e48910ef43d5d50838068df6fa21f3f83c66a25e7031b50caacf3485c507d919e5eb7a6d162b77db55fe160f496fbb496a18 SHA512 52b097bc4e0d7dbd21e9450de9e7074df3356039cce4382be60510073087f3e18666d4a8f026972a8fd8137daac34d170687a714983b8b6bdf24daadf3ff9d5e
-DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
-DIST memmap-0.7.0.crate 15214 BLAKE2B 44a5bde9b85b2c378fd4c6ebfaa322ef8d0076472d6c7322f7aa95b8aba3514fd5212b4429eb369d30d0327377e36c626de474ea5e1f764bd4fae595680a04f8 SHA512 3a7c7f963111c2afeaa0381aaa6a57f0f57600392693ee1807d54771bc058ea0f86ac6e8afbe858e45f9f17b685430bf256dba1126b8074ace3aafc07bc14bfa
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST memmap2-0.9.4.crate 32752 BLAKE2B 1b21af908061e6fe09484ce5f84d31ed1751301dffb6439512b38c53f9f090cef7541b591b968d0207c6d8351ee4d5949007caef7832ce130ffda1b3716b5454 SHA512 8bba078dba73253e8ee88f0bd2202dcd2afd0b7b800d08af8af593b882cb4acff7e297a3f299e253f5adf103893fc390dcd73e882a2e7d93ca96099fc2eace4a
DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
-DIST miniz_oxide-0.5.3.crate 53452 BLAKE2B ae99baa01c493b5eb779595be0d77a064c4624397676d3a023cc2a54941b0b3e7c80492ac47c8a28d78ec36e2f04aebe5af79f0e714380061c5e0139b9dfd9fb SHA512 cc2971ee2a2e891cdb05c1942f533b11a557199421910266ec2e4848a16dfe6882f1c08843035443935d695882720402356b4df4a50ed131a8f5fcc0591a72c5
-DIST nix-0.24.2.crate 264176 BLAKE2B 2da44a51beba8549a558730567f6ea36ab0da81053dac10db637beb3901ce7c32b6efebba519af37068fa32270186d733ef55661b58621eb7e946fb16690cd6c SHA512 9502f899868466165d898b1dee676188e9761cbf7ad7be21e231d6d5c993f109b48edf06b659f547712ccec2d648dcdb689626845ecce22965aad2dfd7ed75ff
-DIST nodrop-0.1.14.crate 7667 BLAKE2B 83aa728540908d2d2d9f82c18282d9a9d74ea01b5b836d83cd3f03d225ddbef9fd3fd13460895d744158af74fccf13b7edcd5bb1bc127c696e613de673e25863 SHA512 f583ef6104aa087e13c66a183d451d4cf350560476ca959ce4e0e8308db26ac9f31166c25aca3d50ccd972266d7595d89767655504566a4131a54607e8ed9376
-DIST nom-7.1.1.crate 115818 BLAKE2B 1ec3df3d9a7527f26618a9b6b976ca8ad5176d711dc7e6163dafb1ec214a55345e952439b4c98b2ac371c9a67c7ffdc3213d1081b62b699b36af68207fa8b320 SHA512 1456efdbda4f5b3da6c8580721acf101ed7d779619ee0190c1df103244e405a8ffa0c3889901a2d8beeab0ab84074ed4c7cec5330c7cc2a5a3c30e36a2530be8
-DIST num-format-0.4.0.crate 59791 BLAKE2B bf3a1016876fa2459fddf4c0d9270b22ab9e1de8997f8db562e79de386b0284a06c54afb0334b6603e7533f3dba9e9d46588fb386ab17df84e459f1f138e2846 SHA512 20f6a02dff0759f5e4cf7aea7e877a6ccb088b81f4c30dcee2b565ee91f8f2d25d9c1c65f5e823f5c7f2d9a36851396865ee1a6ec9264352b8ab3481783dbd4c
-DIST num-integer-0.1.45.crate 22529 BLAKE2B 4da3e801f71ba8f92c692497e200bfc8d32183c94eaad91260683b09f4697c03175fec7cff5a9ff3782d5db5d514d74f22f7a61a102c0f0d2e67a7a4b4f29222 SHA512 731bdc09c3af7f9d8b171041f2957aa60facef93b06886000d8ba60d410aabbbee358d700bf31b2588b2e077464f290f24a0b712df7bb7f12972675b6c9bd735
-DIST num-traits-0.2.15.crate 49262 BLAKE2B 942ab170b2acce1cb40e6847f766bf810a79edd293d34f3a27864f464c16fe2b99fb13171ba429cc6d584248de879434beaadf1b231a4001b0e8389ed6c1be04 SHA512 5228498af0f15daeac3c9210f3e6e71cfaaeb30beea81dd37f8eb06b9592c8bf3226a47597cd8592ad4c513964a9a40f1ab2c33102ef3dfe3800d22c8d4528e8
-DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9
+DIST miniz_oxide-0.8.0.crate 56343 BLAKE2B e4abcacab4c8698d0489faca8556faa7bff53d272ea0c80e2e7843dc0f6f9229b7d5b0a17ae210344722a379853e7f14212505ee05da4e60549081cf77717c1b SHA512 044b641ce6d98d1968c1ee0906f91963f9f524d6f3fdf3059708177a759e1d498c63e595d3a3f0f9f3210c45c828b9b70274134ba078b899d7fefc2bbddbeee6
+DIST nix-0.26.4.crate 279099 BLAKE2B 41debf1f21427ad6c25c6cd26b7867feb8ba46366028c4b74073307e902e526543f536fc0a66db2cdc5a52fbbf9166a6a4843aba57e5e5caada3d914286ddd60 SHA512 cc68ff8e3e8ea8635c6fd4c0a866cf42121aa3e25165666ef3b97b5b2c1d9273cba6f689e80eb812b55b5ee513390924a926d95fce45de0a74b98764dd1fa27d
+DIST nix-0.29.0.crate 318248 BLAKE2B 3a13a88375a359cf77b28d7f77f47f178bd31ef74b7627b6701bc6fc601024706be4e9ac1a076c7cba26b64d3bac4de17aab45fe3c045aa7a36e2d9232e872ca SHA512 86c05084aa0e6238f8d48df0f5ce6e6d7661b589f4f3fbdad43387c59c0d6afafea4badf25d31db1611615de19a0b9ef18ce614846b79a47cad4e2c9367dbe7f
+DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
+DIST num-format-0.4.4.crate 61509 BLAKE2B 6d00df67a83adfb39a1068ed49e03daa9dd9cee6adab714ca0971c520f90a31ea8ebc736c0123b3bec9a84857454ab6f2b281f9da773a40068c252f224e65212 SHA512 4bfffce4b0b24a49cf3b8617bba0213769c9bbbdf111801915c2c6b524a8c54ae728b2e8f0901d367ec1d5a4129e9d76597f5df1c3bfd65459a02b0dcc84eedc
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
DIST number_prefix-0.4.0.crate 6922 BLAKE2B 81bd3b588c788e6865104e5ce87119b5e0c5a526042963d52cd582ff23c2f8c9f32b4c445ef0397fc402b6d047e031d8e2c67ac97e191bde22e17662eec3a554 SHA512 a43b668d7314218b86ca7451daa9dfef71f6c9f6616bc34c12d94ae6030f182bcca9da83905cb46f3d49d0aa81385a787e92e4f3ae239658067adc249f8174df
-DIST object-0.29.0.crate 237723 BLAKE2B fd579be961df0d3185682348f1d9cc0fb4dde3daf9a3c5d89b16a5f03f3084f1755d1b077f8a7bd14b2bb296b3bb95e9fd85f58380bd52fe9aa885e19c1b176f SHA512 fb69ed164b9d766b2eb268b3492134ba9ca6b4358eb61712773c44c5c0676ce04e3e0c749f947658ee1423dce5e11237f6b6c0320f2d32bd6979cae141273dc2
-DIST once_cell-1.13.0.crate 31726 BLAKE2B 76519b97e04fbfd555c2ae034bd8a95525bbfdecffb7a3fc0fa7081a721b8243faa1269bd409d01a16a62186bddcba341ba13c167e8165b7b011f57aa393c715 SHA512 20a72f8741e6edc2b7f54eee822fdbea1b1c0120d3621059f61eca2d5adbcf044a474b5142871d37a3c0f90495224ec8fbb3b90e62660b66fde3a4d3a5add303
-DIST os_str_bytes-6.2.0.crate 21037 BLAKE2B 0ba546e68579a9221a84a66a6be0ddb5a27d78b70ca307bd514648e2a39a60265f85082f47c07ad64801c865ef613cce5f3b65e828bd594ac45fc6b00e0828d3 SHA512 aecfd7ad0433ffe532d72c6c269eefb7e7097cc1acdfe91511ecdaa7ad4db5d97026268bd216c70bf4fe17f23bc02b1fbbe95a28b8fedda3f812b3ce78723c75
-DIST parking_lot_core-0.9.3.crate 32256 BLAKE2B 79a1924a983b948a5c2b0c074452a7b2b61abda973d3bc8040d9153d34b378f0ee330e36aa813f49544319c479665d6328be71481f2e1e41bc94abb9bfbd12a0 SHA512 fa30db0fc73b268ab8395adb8bda35d12dc15363b247a95b7c4bb848ff9b8dbfb971a20f320b4feff3317d5b533c59b62152e4c652c1809a422c5671310b30df
-DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721
+DIST object-0.36.5.crate 327435 BLAKE2B 1ffbb8ba57024a7273217edb1db76eff03e0689f81ba27b0aef0a622972e7f6acdbdc480384b50d603dee6c38c960fd25125a313264187aa0e429aa839198dd4 SHA512 b85375ab3660a8a0c57833c28c4dc665dc0664857e1eb3cd472a61b9ec8c16c470b16475545c2c311fc23cb3c43755967f93feac12c7bfad013cfed5f879e355
+DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8
+DIST os_str_bytes-6.6.1.crate 27643 BLAKE2B 8440a196a3d3d9c3a584562b6c2a1033f5606998e8851f8ccaeababe58022a42e65510e12ebdbcc7b24d0fcdcf111d68bf00d89b8665ad5cee49180db853789d SHA512 977c0fe9891c021914153d6a081c3789018fcd1830224f5c6768d0c75ac8ac4919638bb0a41949710fd5e699b162d9290a5379cc6251535a127e212f5b86932d
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
DIST plain-0.2.3.crate 10664 BLAKE2B b0ea38fcf6d4f4e3ff91d572b5639f01eac4f19b2c451d27bca49d994a07c6f46118cd58a1b86b3d2a61b7ac9e17e8236f1cc98414738d8c86086d37e0fe4d35 SHA512 6909e4b4b4a0a49e6a226d7393b121ec04beb8a13b1652c23337eb09b3c2e5f202b53a7663dfe7828dcb32c3d18135b514e9a982967c188e127a63b6cbeda252
-DIST ppv-lite86-0.2.16.crate 22245 BLAKE2B 03cba61af42dc3a78ab8f6b03d833c028b7ed737e101b1952467a1e19706bdce6c758eca4ec7d575b2f61daa47cb25fa1d74039b2adb0dbf949b66b7aff3f10a SHA512 264b916f7d1bb6f1c0c0d3cc45f40b72b638abc7174416b49241c3663fe500409509ef6c8241a24515a21a20288c2ba508035b6b37972e4ae7ad02ad19118b74
+DIST portable-atomic-1.9.0.crate 166365 BLAKE2B 9abc31364770923847dac16f532452bc8783a5068c0f757f79122bc5b68863b58c0acfa12d28836188413c2f0b61d494cb53fa07a57e199ecd4910a2534c5bb3 SHA512 1431a4c092f6a0cb50bcc78488d603c8ba8f4ee697f77fdcfcce7002fcb371f52a321089422c76564fbf3277c48e30f889565747951c60360d95a6917bb6adeb
+DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1
+DIST prettyplease-0.2.22.crate 58169 BLAKE2B 74b78f69b167d253643780b007726afde3a272c68b334b2b610d14bca1a2b02ece1b92f793341990a401b71357a858c4c9bf6c0bf965c61bc22a0a2cce84903e SHA512 bd3a3ed1395fb1e2eaff6231a9c54ce68ddd4be2cc30a6a871e32c943f7201b5c0956b16b3c478872daa521b92424060012d90be9bb45199e19e0b65860e7c18
DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db
DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
-DIST proc-macro2-1.0.42.crate 41464 BLAKE2B 8734bf01e8490cf208e873710a19d06631ec326aeacc244be568c689eb7e214fa298ffded01643c1e92ebd04fca866e383d0ad254e04f2e8d961c2e449aaa41a SHA512 fbf005ed4e94d6cbcd7467ccc3f0a1a59982d8bacfd379112bba6bf411905c95213666b061c1d38315962f79b640244d5a1f81ae92ceb0d77fe128610227798c
-DIST proc-maps-0.2.1.crate 31276 BLAKE2B 763517492daa8995bb61d6f47289b45e7c1cdad88fd2401e4b448b2456fe5f089c1061ad008bcc1ae775681c1a847ddc5416a6b9b76a824825b6dd361498af19 SHA512 b2d942062f96726fa5f6995bdca15f10ae7bca5ad03184d47d0664fa8e25314e4178121cc45630e555f590d08a82c64bc64c5ea66b8e7f40c3bc1a7a15468cbd
-DIST py-spy-0.3.14.gh.tar.gz 974513 BLAKE2B 6457a066ccced920f23d6494db4b2093c316d3eb769e92f00a443341d8f337c4088f61d577f72234f2713a4e7be297e0a072f3759f13d533d1a1f9cb3aa7e4e2 SHA512 f079b002248a033eac3b93723fd267e6cbdb415ac3172ace0d14eb9cd87a1e4adf471eeec641f9644abe8a4fab43b48db7440b4b1242ea18e02bcc574104d303
-DIST quick-xml-0.23.0.crate 160655 BLAKE2B 0968988e58f0d6d37fdf73c9684ced8abf6a3aaf2f0941eacc96876237575358567c51b4ccb8a0d4864c6af02d59ea87c2e70b4ed201a537d3d634783c6b1f18 SHA512 9f2cea83e81e7f5de8a5ccd883c9d83cebf9169ffeba5a7355aca9925c7d2bb2216f0803203b91709dea292f89111bfe1e9ae6d34e84741473df5b00a3b21340
-DIST quote-1.0.20.crate 28160 BLAKE2B db257025f64817b1b58eecb8e64e63f1782d8a7fcb42ed6c3364254ec5a26705e49ce0637c880b0355b99a77473ce3083caae2cfabbd1a1a7e4fc826bae2cb7c SHA512 d12f4a425273b99ae655da11fcf5dad2609e20ad3e7d85cde08c7d09f444a5c7a3505470bad2d48b1ba8ea59ebf38ab87aa1052e47ec414acfc05dcb07d438be
+DIST proc-macro2-1.0.88.crate 49219 BLAKE2B 793001e2fb15fc6572060ec05276b185b94894f597fbea90663c77f28a67427f93e655fb40d9e52e028ce3e78ec5fec67f0ce12b09dc308a028a7350c7b4699f SHA512 6aea3482742a2a59aacc3efa4a48f6cef0dbd7ca6aee6aadaadf9fa15ef353430a3a2ae21d15319c1464a48cc70f30e5f9f6d5da5597a380cdfb27d533388d37
+DIST proc-maps-0.4.0.crate 32888 BLAKE2B 331afc2ce82bbb0429ca04ee2f8f29ec3018a79b4ae74acd66bde05085a50a32a6190240e94b6a40288fc20a777a8da780bd52f93f3ce2616387c2bccbf7fa8b SHA512 08ce29fe72a28ca92ede86145dab23ee45e896d4ad141e97abe1f700369ad2ecd0f90a8e815159fc3c6d883cbdf1e66ec5827b91bf001381724b741069185301
+DIST py-spy-0.4.0.gh.tar.gz 1054901 BLAKE2B ad411974cc1cb7e48ce7ef562315945c950e41cfb72bdddd501a67a181214e884b1be84aba126cb54093707f67ad68cec9da98d129d92453794c4410b329308c SHA512 2ad691fb6c9e98ef3807830f2936dcd484253b275e336efebd6191326d4803d7d3f9db62934604ae01fcfcfef97c667ea47c092d03cd232c85d6d2d0295a2b2f
+DIST py-spy-testdata-0.1.0.crate 1153917 BLAKE2B c28ec4fcc3046a175d0cc14d0f2229f40a3bc4dd8f6f7bdbd3022f946118f4aca08203356bccbcdffe80100e492e7324dea7fe676c49e194188277eb8ea04bf5 SHA512 994b98d05e90100fdbab7224154a0ad8fd9cdaca4c1fe0ce146916c21260e31d91d3ef1838deaac140a510c1ef0e29e3abbda33d61036014b92bfbdd49be22ce
+DIST quick-xml-0.26.0.crate 116260 BLAKE2B 791eacda72e95b7a16009e6ffe0d4ca6a9ad64ac6be5e3a44f793b16d3bd752b5c58795af559617f55c9f516cb439ec2127f255ff9c99f98825cd646cf66835b SHA512 357bf6a70fd822accdaa1a9d86402234da1725c7e9392c64b9dfe92f1f26f39a5b1302462b7ba14bd39a54f7c8e6baa65bbe30aa147e240f8e82997b97a2ce56
+DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
-DIST rand_core-0.6.3.crate 21938 BLAKE2B 7c73e2da6d423c68dbbca31f6528bdb3f42fa39b30d0951ca7058e05ce16ef09ef5e047697b33ec17720314f934512c0907aeb892df93d63abd8b63eda2b50a7 SHA512 0fc31f96ca8ebba8c179367de01458e909265e1d627ec0c5620be7c8e83d2f9570471d6ec2cb2bc4bc531505b02fc31f1165708cc1357906791c87123b06ee87
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
DIST rand_distr-0.4.3.crate 58255 BLAKE2B c93a4db62e1c27bde51c77423e15674c4bafd04a63424ee8b8863e4eb27e56f774136949edc8b05ff4189dfab1f0dffc92855706f4a612be897523e7712ee830 SHA512 e5209a78b8ca1af97ac6c6add858ee6d91e67c1edd124bb297f787d37218a5f1afd570252da2eb25738b8d77482df4e93aa1eb3c4a8165f90219410dba495cda
-DIST read-process-memory-0.1.4.crate 8880 BLAKE2B 8ea5accbbf2260e4c30664a0e48b85a48f20f09ff59d8c9dfa7cff1b94df24526357bcc54839ad272a0b49760e3492decdc9eb1d2d60f136789de05f6c106357 SHA512 7f7d9a3b6480d3463e5d6da93ffbb4de2c0788f58186d277078a967cb6002255b4978e651606de8e72a4b9ed9d434d4717c0bd5353a581c67bb9a29abe7f605e
-DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27
-DIST regex-1.6.0.crate 239329 BLAKE2B 646405e681ce572ebe2dc51a3339f0f8204143f9b2b8f8e74a4c80379c43c3581363ad347610a384d5ee831cf1425f74ddd944a658b1da2461e8068c5521af69 SHA512 b4861c9cc13d6fb224f67057fd3522f04576591b3d7ae0d3581dce42ca2b2bff96860cf2a7f4dfab00e46a1d29e6473f6723c4aeb02e34ed6d5f205b66f07876
-DIST regex-syntax-0.6.27.crate 297300 BLAKE2B 4ca1a2e23d04e29c5925085ea4ab7ebcc398dfe135eacaab1e686aa8be43a110a28e8bec05a6910183f9a6bb1fd0d635fcb1a60b5a6a03fed4d2cf937a542a5a SHA512 5cc705a5dda08cbdb4dbcf3fa98763cadcda13d9c3ba407b35f3e88d77935efc2704bb40b3fb5aad7dfbad0df43bcb4c4cad9732defb954e2228a0739f7c37c6
-DIST remoteprocess-0.4.10.crate 48457 BLAKE2B ee3effbcd9e9ab85703b1042839b28eada9b4e9712b9c94301d37ce8eaec122fb7d32d7ed4a74b861202efa1eb5e24c37d35fb52e8413dc9496249a6876b4ecd SHA512 ac8a1733525ea8dab3df21d6c0767ab39b6d3aab2725467603a0e9a5389ece4c9b41ccb332995c5a923cc352d5ae71a8af04a16dadf1e0f2a9ea42e38f078f81
-DIST remove_dir_all-0.5.3.crate 9184 BLAKE2B ab7ef94e0230ddc9b363f038254a180881bbc20eb04a254f97e6f71ed491c99ba1c88f5e85632d450243882a4a0df63f3b8b183bc1fbca9caf30ec23d577b1d7 SHA512 50417d6d8a33912193a1ed37eb72b47431b12ae65d2780cdb7080c3d141e63819da13751c3fb737685cea322f70b36d413389c3dc01aa12b4dce615aefed0e2c
-DIST rgb-0.8.33.crate 16261 BLAKE2B 208e85e812051fec9a12a6c37edf1c4e2442fb283f49858dcf2c154272bf274eee2492e8349cdd64d0cb2cd9d13bd2e8513f447b1e95f193c1e861b43c316438 SHA512 e9f8ac0eb598e1b917604d2fd9ea14bbef65345397d88296583f7ae0e5b3e231cf8fcc592ad1d7a402d96b8e478c0e9e872ab36cb8ab4e2239469d227dd05fbf
-DIST rustc-demangle-0.1.21.crate 27920 BLAKE2B 73ada923b9b293c5a9893f86fda0586139afbb7d56894cabbd70612d1fb0330a9e491d5143fe3498a0c8d3e1a3f8e63c14b20865926e4c831915592486ae32d0 SHA512 4031b26863a726cc6d3398b48682e0f0f9e5665abf20a5d35343a904ebd7c0d3752dcdd3a049b2bfa3e2a303214dc39a2980700bcc64464f7029be3c7f34727c
+DIST read-process-memory-0.1.6.crate 9093 BLAKE2B ed75e6a1af3da2da84f394818953b7192c2bb4e059958b06589ff9d67c57485753f2f266cbf3118622379f8b77604d7343d34698c790fcff34e9fddb45766daa SHA512 b98b2628794d2a363f85fb690f6f8ade7be4944308b287fb1fac6a3363df93fad5436489d35ef818f27c9066a82ba4089b6d6ea3ada6c2d7d25b1cfac09f9c9a
+DIST redox_syscall-0.5.7.crate 26249 BLAKE2B 97f848b130403686404dc193415e5060c32585aa3638b825b4775e54d9a058695b86457ae9e3cc0240bcac27ab4c05dd6b488bdc1c797faecd236c6e477fbc3f SHA512 e9f2d254279a4063089436b699ecca766a997a72718d132a9b35f7c8c8fc82c4b5e25fd8f3e6cbd17920fec484140db520c262376ed1c74f847929b7f43fb97e
+DIST regex-1.11.0.crate 254059 BLAKE2B 9450e54b522c3f12e4f1d814025c3037f8373b9e1feaf2028756b573335cb7f22400b0925e3ceb0716d72aeb19b02b4bcf70b0b435a0252d0d52a7028d95308c SHA512 16c066664ae87497f9880a52222301fb0d44053ae2d6861ea21dc59cab82bd1ab8ac407f9e77228a21a586ee745b02f9eb10e7b9b30df2f3aad73633270bf73d
+DIST regex-automata-0.4.8.crate 617784 BLAKE2B 7535c79f6ddf1b1225e21171921594dcf32fc3afd47519d2067b2047b19070cb7e6fdfd1563b884fec6f91dd568522fc95d85bf095c11f8c02daeac128c45020 SHA512 278e3e2ab230ed5fa7d4837e8ea879fae68ebf35c2da5cc3a67f46b7d593abbcf71e6326a0cf34e38edc0f3f2166ff42a4fcc17a400d9604429aa5b4be075a3f
+DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
+DIST remoteprocess-0.5.0.crate 55339 BLAKE2B 97bea2181b37284d9ff34077c671532337e4b0f77c9856b8ac22385abbe31eb5ba8413a28d98525e87ac8229d0641b95fb76d2267074218dc15146b40c84cef0 SHA512 e12ee374b91dcc1c320700ded44bb466a05df953fb2c68b74741f2403ef0fcc265cfd3925b088e23871e2f45e68fd26b67c020c656294532df204de7082d0d68
+DIST rgb-0.8.50.crate 21980 BLAKE2B 9a1b50f41e335e558d7404b342c81b5d9862a256456ade25bbe46dc18592170a9c7e8ce388901a5453e4d14ef24231ea2bf2d684f62c3051d79fd0bb85a87359 SHA512 cfbbaea59d5ba440c2c7e781771885a23e7f86c0c255e060010e04b55b8228242a5d566f2247753fbd4e339249add996d607271fa3dd90025324d413c6506550
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544
-DIST ryu-1.0.10.crate 48485 BLAKE2B cbc0ab4e0b2031f4ca3a34914bd61395d14706d42e2414757aa23a67530d549382d61b630159c92a169d1dd3315951b0071ff18349d2b090ae262de536aa29e2 SHA512 1bd0af71a20715251dd42596df6e7677e44f712bbb40b0d9544109c1b2478a7bd2c9393535f0d4f3bfe2d1b75b3a2b899044051715a7da7d165d6d586e0775f2
-DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
-DIST scroll-0.11.0.crate 27354 BLAKE2B 21c885468642a77d6871ccf2bb748972f33c8abd504b2c0232bad9ec21228c3ecc9bc267b44898fc1dc5ab3ec494a8c6e01dfc5bee0dbe93117231de9f056b37 SHA512 84a9b1eb8a10c2bb14b718984ebdbac4a02620a65d6ced24f5346a762d92cc22a69fd204de1ed97044076d098a5ff9b7e20f7f00deca2b1302eb0910934265af
-DIST scroll_derive-0.11.0.crate 5615 BLAKE2B 83b8b5d68b7496cf49f16b7a1450ff5927b9b9afa887fca80d2763e88f1be3fc4650e18a74944521867f4d920ec040bd91e7133132d97692cee4b93b9900fb1c SHA512 71cea55a78cceaea15147eb71f463c4a3cc6137a499a7712b61e1c3a340e72f5dd438e49433ba9e73e5a3e9d23515a0e81b2abd2ce1f426aabf1930f7d251ff4
-DIST serde-1.0.140.crate 76408 BLAKE2B cd89def1aef2c850c62e8efd8ed03da9e725a0e80c78de1a8b053d8a9c7d089509b9e5855b2c8b7f383cd58167125b91b9d243a6e11bb2e9fd6cb68403187311 SHA512 cdccc3ce607b327785821d8a4bf088b78380a622aa32efe7b1cf6f7554a03f7a407f500fae733bfeb170093e08ced50e81d7009ed502d1e5b4f021609fcb750b
-DIST serde_derive-1.0.140.crate 54851 BLAKE2B a4a104c6a143e4f5951bb94d3ed8cd4c882a4508d786ad802db4de4c84fe932bdcd45d7882f75e5e4c4ff8cafca4188e39d62d71b65ff6ac0bb14ced9f73781e SHA512 209d66ad4cd11d899aba6554cebd517fcf1a8621c9bc0103cef51558f954d1995bd16fe6fc09ca5a242820ae4764ca774fbcfd99b07ecaf609d680fab66e2aeb
-DIST serde_json-1.0.82.crate 144514 BLAKE2B dd4b5ee1b93f04be09b1c204f8484091d608acc3966ed4c8252a1d46003dd154666e2731e761828dda4123da5c45bda653f453454c5c7c11977aef05bd0e9e9a SHA512 39e4cb0d8b22c9beae6decb87b9692581698c6309b2e9fd78e5e199a200da563e7459d34435b7890e274e13357195392cab69d73d3ee2ff537c1667de32f92c3
-DIST shlex-1.1.0.crate 5199 BLAKE2B 325536bab9c9707566a099a161e7bc8448c7369cd9d7b2f144ed71543d551038ef1fd764376491e8076ccdcc928b5c4e177764a68584267a91386b8d542264c3 SHA512 e51892298dd79dc7cf04d7e6f0a03e4850a57b15cd75e6e3b56e2a0b15d4cb85ee8afcc14e3727d193c8b91baec8c2864a9c800834ee4d18a1be584f17591752
-DIST smallvec-1.9.0.crate 28396 BLAKE2B b04100f0a8db9e7c34a425e665242772c9857c5a4c5f34468a3f1b14f669d5cd21de2d54dc5295a22f52032370e8e989fc61cea3f4e6574ccca5be639c645e74 SHA512 e7158393d4257564eeb8fa53a630fdfc13edb33f3c555e41606edcfdbe9189e5c59c25d255dd21d02d4abad1ab2931e21744ec6c2f91ad4db66f87e748a45e56
+DIST rustix-0.37.27.crate 324534 BLAKE2B 65fc8317c5aa86236b2099104b6841a7d35d4567977218f5e59a85d199aee7d6b9f0278083d93f575b31d77ef8685576b7cba06ce8da6e96a164af30c854ace3 SHA512 e1c648cf11379509b732b9e9ed88ebd36006d8e73755528a09aed4f46df08e23a705696c5e6ff7ea0e4382513edb487f9859a8f1673150d60d70c698216fec3e
+DIST rustix-0.38.37.crate 371243 BLAKE2B bceaa4861747208f1f2b68f8924c7247648d88deb200e97d8ed17c5cbf9c934488065f0ee7e4406bc96e8709b292ee1fe15beb346bff57b5f05af36174420a0c SHA512 6c0ad1be1fcf1b74f670b2c7599ba68c2ce834c760ff7486674d190ae0d552165b0c2abdc35b13eee8c0333a904c67f5dd1efa742c20fd3735c7ccdf2a439619
+DIST ruzstd-0.7.2.crate 65802 BLAKE2B 874b89fda07ed4513e308abe4548278ce5005e0775804bcbabdcfc91ba41dafa41eca946575cd2c56508ad7930cacd40587909d33171514bac10e18f6d24122a SHA512 a129deb9496cafe7429edef3d22d90510a67a0ab8e89011c4c9e38b7ffa76dd3f885cf70ad40179cf2165cc7f1f97234f1795e37f4c6aceb438fe5bbe3aeee8c
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST scroll-0.12.0.crate 24145 BLAKE2B 93f070ad4d0656b6cbbbca78d27269e8fd5895c515bcfd51152bf5ce2756d43ff0bf13dd63201f4f1207feb993bfa853c9567a298a040369dc6be91324570deb SHA512 475a9b3f09d4164a7192c9d2fbc209354b9442e669c3cb318bd3f31d1a407aa328543bfe315c12ddd962bf8518ac378476d6b5677ecea170e6d507c70c4ca935
+DIST scroll_derive-0.12.0.crate 4693 BLAKE2B 957aa96820cf40ea49562dbc12a419c7b8b06bd94a759aa5494f4ea4fa08a5f154a7dba8acc3d8bd41c1a2f259bfdd2d3f4b4dfd3dabfc30fffa021b4aee4930 SHA512 db2ede0f6d16783915f5f155174fc0cb700cd054a0ec54fddeb899f74da4dc2ad5acd6f0784701f93a95a42cb04c82e7a7de9680ba0fdaf4dbc51a2358610bc2
+DIST serde-1.0.210.crate 78338 BLAKE2B b3621d1313312177a346313e6e384fe9660f74eefb18e6cffa39fc2aadc0ab73be84b9037c59b716e5feafcd73f4f054f83e6d17d82746984b3064bf8d3ed338 SHA512 0d853ca51543ae8b4a0c70204ff4e559a4eec77af3d3bdcfc75c5905c80d4ffd1bd9eb8258ea4f6ecfbdd26477ecac7dd698d84d86759fa32e03a9cce02fa4ae
+DIST serde_derive-1.0.210.crate 56020 BLAKE2B b346e574c99b6a8b12dfc29b20a4fd2daf8abfabd3714ccfde059a3a1f14a5628d4acf6a03f8076174fd28adfdb7cb9bbdb8ac0d4403aa2f43e917eed4b08028 SHA512 1c54d70a55007c00d3ff3d8c2096f4f9966431ba7bfd9195bcf41932de71b71c4ab934f9a8c5067cb56a042742cf0efab07377dbabf12feb1af6d20399de00b5
+DIST serde_json-1.0.128.crate 149520 BLAKE2B 246eb865f64a0f161b79f3d4f783dbadbc930c4a19edb6c0fe8f0c6145c7c47be4b692d3e084b1b500820ece8e94214820978cf898926dd805bd431fb411bbc9 SHA512 9e6290d3a6a971b3c37bbc97097b8179e64c655779b43c7b75303a35ef7030f5401b3a5f62cbc95a7bd5f42ecbefb0b469234d78a76c8c1597726d8e08908a7d
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
DIST str_stack-0.1.0.crate 7977 BLAKE2B 14cd6049e5e0601b0b63a1c0838c1fd0e67ec78920bc76608d4e0e0e28581c7670f9de23fe1340b7450fc6debc26322c6c173d51f1cff605165412053563c42a SHA512 8d910f07cfc699262a8204888a62f01c991bc1fed01b35b34359b62a5f1f8ec21781b623ee246679fa5d726b23bd5381cb697408fa4fd37d3e25e1ac8a7f4c07
DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
-DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
-DIST syn-1.0.98.crate 235451 BLAKE2B 0667c24d7f6b9bf4c0a5f45fb51c903303a87c72d445ad824e05ab98a158f9beda0d00721144c486335b6a830db47fe57a34831cff6995f478c969c4d0a039dc SHA512 fe5dda742e085e14b6aea5617d3f9dd19ffd46009f34b119c0d74ec693042f641e594f75ff027dbfa38f3d5149a94eb6187248ee9d09d41dab9cc2cfc18fab18
-DIST tempfile-3.3.0.crate 27578 BLAKE2B e98c5ed4c59b6ff411e89ad4eb529bbe15264d6744edca8675c89bfb4397fbbb8da60bbc582da24bf9953afd9bb17cdb22654d933468697e9fa9e9903e6a7c77 SHA512 ba6faafb2dd56d694efe424752099a2efb50316afc0a4db9fdb7620ae3f1a31dfbb2a7b41724878cb977fa11f7568a406bd3b6a4f7cfc0b88b86b2cc616b953e
-DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a
-DIST terminal_size-0.1.17.crate 9141 BLAKE2B 048d8e8e9dad08aecde12323681d428b9182afb737136cd6699e13d231f7882091c9167cb10a08e5151df912421a6f89132645627e42ccc73d07553cadb1c8cd SHA512 96ec1bc8abd597f01ae59da567036d5d40b422764a4da662e2030c3ef4ce80a983c8b6a4ef1f34d88e649e0b1ea27b206d56a31924bcd2d31ff7e5a2e96d4201
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.79.crate 268981 BLAKE2B 2bf4bde1890ce4ee91fbacca81bd298d15f0111fedb27b9cf8d675dc2489f46026c1804f9e4e24afbd0718539820096cd5c4ed2c2da02e598370dbfd2b18c293 SHA512 1ee073fa3428c031e53bff8ff305bcd6b37ac142bee3955dcdb44fec1c77c733eb78760c8bfb30b83fc3dacdad8a384e2b6f9f31a89c4cc300359e33457fd433
+DIST tempfile-3.13.0.crate 34910 BLAKE2B 736378935088ccd8b540997c0554444c3752a74c9a4bd82cfcb700a9b22f572d0f2b3e61252064d4a631b57783199cfb42309e518826346a83fb5adb44843c49 SHA512 68701bee80309cd8dfa96c237b2344f26bd03702d2fc2e1a253820c98654c85d802aee1e0fc856f6372159a92ecbf624f78c8146f34a0cf924f5b56284915f85
+DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST terminal_size-0.2.6.crate 10585 BLAKE2B 8696b9046c717eec8bf7246346af84a5d0cb740ac6e1335a4d8c20476628f4c0dd7c6106cde33513681466e9701d4b05d73f22a3bd2dfabc4d22045a69d31345 SHA512 95f38bc00f8c5e1a6913bb2a0a7c46d96e02a4f3234af1623ad3d7be41eae677e77f1b5d5d005d1e9d778fcc6c87196f67a51ab37caab5b4d299da79c85d06ed
DIST termios-0.3.3.crate 17103 BLAKE2B 855b1115d02dcb275ea772dec3db383f9a6f84c14876ac037a5e3bbd1e71e26d3adc64e41521145093256acbea56c28b6c14f7e3e2bc9fda37e7cea113abe214 SHA512 3d4cacdaa8bbbd9083a050e723c93510829210f5ca8eb806e661a3a1e3c8aee33565142c5df34fca74aad0d26319525ee70ca6faf3f55a29427423d37fda43ff
-DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
-DIST textwrap-0.15.0.crate 52998 BLAKE2B f6c3057ea6ffde88dd9824cd3159d398316d9d21f327d2af59239ff84d79f893a9d0e96dfbd883aab6c64b631dc99457018e38baf14d40789f02d633425ded86 SHA512 f44271c542c22f17a4e3a459255f95e6c02d999f7d6bc8414d3973fd4ac9353aa4ef436932a45340738126905463d776902715feaa9329371f8a14f14b5a7bfd
-DIST time-0.1.44.crate 28885 BLAKE2B 5e2ca11af9da0847239a086330d0cd00fcb5b63862f9dfec46f72a065bb35ec2236a21ee1c56bf65e3117105e7815cafe67e3725b8575373e875dfcea401d967 SHA512 736a38637be0193a06fa35d42b4873b04a0a35d84cd2af85b7f653a1b67b95078577134bb187b777730e73cce67f437b45ff5c72b8e3f1f8e2ed3420ea0324cf
-DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c
-DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4
-DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
-DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
-DIST wasi-0.10.0+wasi-snapshot-preview1.crate 26964 BLAKE2B 525db01649a5981ee82ad80a1a4bab9baffd235262452675619f36a1b454017a74593c53c129f8c30b865994bbe30ef19cebaad9d245ccf54b9b07ef70d5d8ec SHA512 88e2da617f50d9ebfb1e0c5857321fb86b5ee88ae8a8d199d3cc092e0f39688a2cb68503f7c6bb09dd6bc50a9a03597a1eb2e032150fbd0d0b8afa02ad771c88
+DIST textwrap-0.16.1.crate 56012 BLAKE2B 9b5a7c76eca64d089f4fab7095f2d35624527ca223e53b03cc807c6bfe913a99b55197b973a3102e3e5c4055bcd6ab580a0c9d67657180b61435bd6eb7631211 SHA512 3a8d2036c8e4b88866d68b8066a2991756f6bd4ac5c726e63fdffbc894fbdc03bf8b6e0ece4b96684c8e1facb6413190768d51a8539094efe47977c120d31f1b
+DIST twox-hash-1.6.3.crate 21842 BLAKE2B 67c261b2b0a93293717a4e2e07dc11df2abde09da6fe713b9d04917ace73de1b59b8d4fd9449ab46cb7cf496fad1e440effdfa1fae6f5cae4ca78af8cd019c42 SHA512 f7ce63e6e5ca79ce9330caf40b32578a5d2088c5d8ed371604268760d6e212d447d9e3a95378378a283024155bccdaea47597902c488a94c5d5f79770baec8fc
+DIST typed-arena-2.0.2.crate 11848 BLAKE2B 1d2821519c959b8e5f32942fb106f836a9aa753a43058cad6898588f8e0d9abcbe7a94a91ec8d30c62e59833563df48229c6aeec8bf7a396de20895e39571d11 SHA512 33f43488ff63ab763e4330d124e3290ece41e50ab78b6f12dae3a2be4d7f5bdf6ec876ab3b1f8cd81874e335fc41f3a2254994f250d3d6aba682fce557a6a399
+DIST unicode-ident-1.0.13.crate 43279 BLAKE2B b5e935020d1c9f3aa24f7d382f6b73d6510d654a61ce1c9c024e2e365bb817182e076139f370e822573531356fb78ff7499049b1f29aa1e2f4a2cc74a955b47b SHA512 5ba884f39debe9c8eb0b1d251ca713f7e2bc191d211707ed10cd81465487dbdca53914c19e131edfa1da15af132dc2c346260c3969c61e3747b63399ccb1cc51
+DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
-DIST which-4.2.5.crate 9326 BLAKE2B 8aea79157007f2326d21083e1eba387611233a19f39368904cf2b0e9b6f09b4fdf6dc469cff83373912bec6e2aeec191d217b0b1e720ee0db1848b6f64d37054 SHA512 2b2b44773b568946799035e5b90c1f0c304b399f4d330c1e063323f631f56ddc6c5d8a9d026d987cb39c801ccbfb614450064030fc19e1de34ab6a495f053395
+DIST wasm-bindgen-0.2.95.crate 43894 BLAKE2B f14fa63110c62d3bd51c947f31ee96b11812fa60d6adb9cf1907f99c011bd43ab8e14b437fe8b6357cde37124769080b3bd20a2a947fafe3bfd6cccdb875b5a2 SHA512 5a303a6e9bc71030371d6a60a04064b148423d89b6d5de4232b24ff5205175c5236812209eccfc60d8f82a876d3b745ae76ebcb30811eaa6f39701c9a84e1251
+DIST wasm-bindgen-backend-0.2.95.crate 30487 BLAKE2B f199e3392e964c4b0e6a7b2e3ccbbdc458973b4aae4193ce36ee0ac18d595230be9ea6708caa439d70aa92a7b924f51928059984f560e5dad20d41eaf06616dd SHA512 1bea648ca248cf13383b297917a5c315da9e4830a8c49cd3ba23392566725cceae818b4e7e60ad85360c9073c2e557fa36452a2cbc8e05b60318feda7404026e
+DIST wasm-bindgen-macro-0.2.95.crate 6938 BLAKE2B 672509ff595fae86492dad98a4480f28d74a51fc8156ce7f96928b148f3af7f0f45ca9560b72148c6ad2d45ddfbbf3dbe39e2c94603ef92a925ac5503d939d2f SHA512 1f52188932e20145cb23d527a733fb5fe211813826c6b5ec04277e376127b700aea181efa5f60e34d120f10652066fbdf001952024017cccc7af728a3c8e41d9
+DIST wasm-bindgen-macro-support-0.2.95.crate 21331 BLAKE2B a1f71b727736b7166af5a9ad739da33f07ac3d7a190a27621f8a9821530f9bed78a6c437d194f9609bef91ebea0ed9ce1738eea0a9800344b8af9ce7df868da0 SHA512 f45d78831c37401a417c837281d1705b84eae5db430630a9caf544ce5d92f1ddd945baa3bccf26f4c58170e3cbea035174d8b60f906d2757b152e1d090baea58
+DIST wasm-bindgen-shared-0.2.95.crate 7649 BLAKE2B c18f531c6094b49af3b2beea93914d16b0054a707011890f9054f4cb313ed6b433e3f73c7b42accbd1fa59d1f14c2db5ab0f0a82cde107b9cf437fad8b4cd7bd SHA512 3ce689a4c845765bd6e1f84b94948df3ef84560d98d830a15c1932a2ab1942ec91465db65cbf14a045526cf003218aa5c3209dd06e8ee8a39815757f56356099
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
-DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
-DIST windows-sys-0.36.1.crate 3347053 BLAKE2B 818f7812bd9a55a4e95b3d461fa5fcc14569a159882f950d20fd5a6b7d2a2841f082c0bccaab657f5830549e6286a37d9f8fdf825a42403f543b51e35b2d20d4 SHA512 80973e461bef3be0d0d0c13d02b2129aeb0d0700768d637544315654126f101b39f980738035fe325bd96f549493a2245bd7b82511f833efa7bbcb2f62266001
-DIST windows_aarch64_msvc-0.36.1.crate 661960 BLAKE2B d503150a05c4aa6ec376d1094ad24a7a4b3579d8f60cae65f4a98adfe830dd776c8996d5c3acfbfca1a69598475b918b5de2a162e3253b0b28cd6aa17de2dc13 SHA512 d0c352c78caec9c71bbaa1a688baab8f39a33c903c0492b19398c76e08194183e254ecd3a8b24af3e7e5e1d9d97373dcbab54499236829898a4fd153cfde2ccf
-DIST windows_i686_gnu-0.36.1.crate 818115 BLAKE2B fdb78cf88e1049d1ed6c474f870dfd1ff37b48bc24726d754cfec5b3e77075162f291f93aa709c07c9fa38ccb21a6c31cb5149dabc2cc8ad8a85c03408384a0b SHA512 e2c60e6639beb879472a06ed4462667eb4a78385df6bcde1ca579af759cf2b4ac70e84f7dd7b736e7fbd1b129061555671fed4b83bcd81a6083cc013963194a5
-DIST windows_i686_msvc-0.36.1.crate 724575 BLAKE2B cf964bec007d8432e2009644cf7f89ea7d910ccf9512c067b7bf5c6c825208ce4a36e9864c0cbca137f523983eb46e58e4bd01054cecd7ac7126d2ba9f67ac0c SHA512 02bb1507981229422498ce29f6c777d5e412358040128f84b09d948ccddf0461b078a0a20cc7f6ab7da8595121bb369453ae9ea1f0506aab715662e8c631e737
-DIST windows_x86_64_gnu-0.36.1.crate 790934 BLAKE2B 9dec5d966bdc89efbc81989acca242d519f51676ec37487df2bfacd6bfbc5a8de2871be72c5b96a073a899c666e3a39aa60d493e7df39fa90efe869fb744a332 SHA512 598b69e4f2cd3d68f910d526a66dadb465ff30a8c261c9a4455aa1c5b952d23c04f8edaa063cd16fb43564c116a13f06d607f3a0a9c7495054b8bfe1c04d1865
-DIST windows_x86_64_msvc-0.36.1.crate 661999 BLAKE2B 4cf967f10d4ce148bac967598168752d1996b4ddf5278a8fca53360566c37c1a014bfb4dfdc0ae2d96e01196c42eb4906ea80d8e9dd23b9e9f3163631c9e253e SHA512 89c22ed51a74f531662d80ae0fa5e0215728db1e6caf3c13eaeba95a93548b43c00b8474f52553ac866ac83c203b6c22dc44fbc870e882a4c9c97ba54b87c631
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
diff --git a/dev-util/py-spy/py-spy-0.3.14.ebuild b/dev-util/py-spy/py-spy-0.3.14.ebuild
deleted file mode 100644
index 65e358cfa93e..000000000000
--- a/dev-util/py-spy/py-spy-0.3.14.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Autogenerated by pycargoebuild 0.6.2
-
-EAPI=8
-
-CRATES="
- addr2line-0.18.0
- adler-1.0.2
- ahash-0.7.6
- aho-corasick-0.7.18
- ansi_term-0.12.1
- anyhow-1.0.58
- arrayvec-0.4.12
- atty-0.2.14
- autocfg-1.1.0
- bindgen-0.59.2
- bitflags-1.3.2
- bytemuck-1.11.0
- cc-1.0.73
- cexpr-0.6.0
- cfg-if-1.0.0
- chrono-0.4.19
- clang-sys-1.3.3
- clap-2.34.0
- clap-3.2.15
- clap_complete-3.2.3
- clap_derive-3.2.15
- clap_lex-0.2.4
- console-0.15.1
- cpp_demangle-0.3.5
- crc32fast-1.3.2
- crossbeam-channel-0.5.6
- crossbeam-utils-0.8.11
- ctrlc-3.2.2
- dashmap-5.3.4
- either-1.7.0
- encode_unicode-0.3.6
- env_logger-0.9.0
- errno-0.2.8
- errno-dragonfly-0.1.2
- fallible-iterator-0.2.0
- fastrand-1.8.0
- flate2-1.0.24
- getrandom-0.2.7
- gimli-0.26.2
- glob-0.3.0
- goblin-0.5.3
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- humantime-2.1.0
- indexmap-1.9.1
- indicatif-0.16.2
- inferno-0.11.7
- instant-0.1.12
- itoa-0.4.8
- itoa-1.0.2
- lazy_static-1.4.0
- lazycell-1.3.0
- libc-0.2.126
- libloading-0.7.3
- libm-0.2.2
- libproc-0.10.0
- libproc-0.12.0
- lock_api-0.4.7
- log-0.4.17
- lru-0.7.8
- mach-0.3.2
- mach2-0.4.1
- mach_o_sys-0.1.1
- memchr-2.5.0
- memmap-0.7.0
- minimal-lexical-0.2.1
- miniz_oxide-0.5.3
- nix-0.24.2
- nodrop-0.1.14
- nom-7.1.1
- num-format-0.4.0
- num-integer-0.1.45
- num-traits-0.2.15
- num_cpus-1.13.1
- number_prefix-0.4.0
- object-0.29.0
- once_cell-1.13.0
- os_str_bytes-6.2.0
- parking_lot_core-0.9.3
- peeking_take_while-0.1.2
- plain-0.2.3
- ppv-lite86-0.2.16
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.42
- proc-maps-0.2.1
- quick-xml-0.23.0
- quote-1.0.20
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.3
- rand_distr-0.4.3
- read-process-memory-0.1.4
- redox_syscall-0.2.16
- regex-1.6.0
- regex-syntax-0.6.27
- remoteprocess-0.4.10
- remove_dir_all-0.5.3
- rgb-0.8.33
- rustc-demangle-0.1.21
- rustc-hash-1.1.0
- ryu-1.0.10
- scopeguard-1.1.0
- scroll-0.11.0
- scroll_derive-0.11.0
- serde-1.0.140
- serde_derive-1.0.140
- serde_json-1.0.82
- shlex-1.1.0
- smallvec-1.9.0
- stable_deref_trait-1.2.0
- str_stack-0.1.0
- strsim-0.10.0
- strsim-0.8.0
- syn-1.0.98
- tempfile-3.3.0
- termcolor-1.1.3
- terminal_size-0.1.17
- termios-0.3.3
- textwrap-0.11.0
- textwrap-0.15.0
- time-0.1.44
- unicode-ident-1.0.2
- unicode-width-0.1.9
- vec_map-0.8.2
- version_check-0.9.4
- wasi-0.10.0+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- which-4.2.5
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.36.1
- windows_i686_gnu-0.36.1
- windows_i686_msvc-0.36.1
- windows_x86_64_gnu-0.36.1
- windows_x86_64_msvc-0.36.1
-"
-
-inherit cargo
-
-DESCRIPTION="Sampling profiler for Python programs"
-HOMEPAGE="https://github.com/benfred/py-spy"
-SRC_URI="
- https://github.com/benfred/py-spy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
- $(cargo_crate_uris)
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0 BSD-2 BSD CDDL ISC MIT Unicode-DFS-2016"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-# python_data_access::tests::test_copy_string fails
-RESTRICT="test"
-
-# Really does need libunwind, not llvm-libunwind, as needs e.g. -ptrace.
-DEPEND="sys-libs/libunwind:="
-RDEPEND="${DEPEND}"
-
-QA_FLAGS_IGNORED="usr/bin/py-spy"
diff --git a/dev-util/py-spy/py-spy-0.4.0.ebuild b/dev-util/py-spy/py-spy-0.4.0.ebuild
new file mode 100644
index 000000000000..52842f0a7779
--- /dev/null
+++ b/dev-util/py-spy/py-spy-0.4.0.ebuild
@@ -0,0 +1,227 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.6.2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.24.2
+ adler2@2.0.0
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.15
+ anstyle-parse@0.2.5
+ anstyle-query@1.1.1
+ anstyle-wincon@3.0.4
+ anstyle@1.0.8
+ anyhow@1.0.89
+ arrayvec@0.7.6
+ atty@0.2.14
+ autocfg@1.4.0
+ bindgen@0.70.1
+ bitflags@1.3.2
+ bitflags@2.6.0
+ bumpalo@3.16.0
+ bytemuck@1.19.0
+ byteorder@1.5.0
+ cc@1.1.30
+ cexpr@0.6.0
+ cfg-if@1.0.0
+ cfg_aliases@0.2.1
+ chrono@0.4.38
+ clang-sys@1.8.1
+ clap@3.2.25
+ clap@4.5.20
+ clap_builder@4.5.20
+ clap_complete@3.2.5
+ clap_derive@3.2.25
+ clap_derive@4.5.18
+ clap_lex@0.2.4
+ clap_lex@0.7.2
+ colorchoice@1.0.2
+ console@0.15.8
+ core-foundation-sys@0.8.7
+ cpp_demangle@0.4.4
+ crc32fast@1.4.2
+ crossbeam-channel@0.5.13
+ crossbeam-utils@0.8.20
+ ctrlc@3.4.5
+ dashmap@6.1.0
+ either@1.13.0
+ encode_unicode@0.3.6
+ env_filter@0.1.2
+ env_logger@0.10.2
+ env_logger@0.11.5
+ equivalent@1.0.1
+ errno@0.3.9
+ fallible-iterator@0.3.0
+ fastrand@2.1.1
+ flate2@1.0.34
+ getrandom@0.2.15
+ gimli@0.31.1
+ glob@0.3.1
+ goblin@0.9.2
+ hashbrown@0.12.3
+ hashbrown@0.13.2
+ hashbrown@0.14.5
+ hashbrown@0.15.0
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.1.19
+ hermit-abi@0.3.9
+ hermit-abi@0.4.0
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.61
+ indexmap@1.9.3
+ indexmap@2.6.0
+ indicatif@0.17.8
+ inferno@0.11.21
+ instant@0.1.13
+ io-lifetimes@1.0.11
+ is-terminal@0.4.13
+ is_terminal_polyfill@1.70.1
+ itertools@0.13.0
+ itoa@1.0.11
+ js-sys@0.3.72
+ lazy_static@1.5.0
+ libc@0.2.159
+ libloading@0.8.5
+ libm@0.2.8
+ libproc@0.14.10
+ linux-raw-sys@0.3.8
+ linux-raw-sys@0.4.14
+ lock_api@0.4.12
+ log@0.4.22
+ lru@0.10.1
+ mach2@0.4.2
+ mach@0.3.2
+ mach_o_sys@0.1.1
+ memchr@2.7.4
+ memmap2@0.9.4
+ minimal-lexical@0.2.1
+ miniz_oxide@0.8.0
+ nix@0.26.4
+ nix@0.29.0
+ nom@7.1.3
+ num-format@0.4.4
+ num-traits@0.2.19
+ number_prefix@0.4.0
+ object@0.36.5
+ once_cell@1.20.2
+ os_str_bytes@6.6.1
+ parking_lot_core@0.9.10
+ plain@0.2.3
+ portable-atomic@1.9.0
+ ppv-lite86@0.2.20
+ prettyplease@0.2.22
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro2@1.0.88
+ proc-maps@0.4.0
+ py-spy-testdata@0.1.0
+ quick-xml@0.26.0
+ quote@1.0.37
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rand_distr@0.4.3
+ read-process-memory@0.1.6
+ redox_syscall@0.5.7
+ regex-automata@0.4.8
+ regex-syntax@0.8.5
+ regex@1.11.0
+ remoteprocess@0.5.0
+ rgb@0.8.50
+ rustc-demangle@0.1.24
+ rustc-hash@1.1.0
+ rustix@0.37.27
+ rustix@0.38.37
+ ruzstd@0.7.2
+ ryu@1.0.18
+ scopeguard@1.2.0
+ scroll@0.12.0
+ scroll_derive@0.12.0
+ serde@1.0.210
+ serde_derive@1.0.210
+ serde_json@1.0.128
+ shlex@1.3.0
+ smallvec@1.13.2
+ stable_deref_trait@1.2.0
+ static_assertions@1.1.0
+ str_stack@0.1.0
+ strsim@0.10.0
+ strsim@0.11.1
+ syn@1.0.109
+ syn@2.0.79
+ tempfile@3.13.0
+ termcolor@1.4.1
+ terminal_size@0.2.6
+ termios@0.3.3
+ textwrap@0.16.1
+ twox-hash@1.6.3
+ typed-arena@2.0.2
+ unicode-ident@1.0.13
+ unicode-width@0.1.14
+ utf8parse@0.2.2
+ version_check@0.9.5
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.95
+ wasm-bindgen-macro-support@0.2.95
+ wasm-bindgen-macro@0.2.95
+ wasm-bindgen-shared@0.2.95
+ wasm-bindgen@0.2.95
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+"
+
+inherit cargo
+
+DESCRIPTION="Sampling profiler for Python programs"
+HOMEPAGE="https://github.com/benfred/py-spy"
+SRC_URI="
+ https://github.com/benfred/py-spy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD-2 BSD CDDL ISC MIT Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+# python_data_access::tests::test_copy_string fails
+RESTRICT="test"
+
+# Really does need libunwind, not llvm-libunwind, as needs e.g. -ptrace.
+DEPEND="sys-libs/libunwind:="
+RDEPEND="${DEPEND}"
+
+QA_FLAGS_IGNORED="usr/bin/py-spy"
diff --git a/dev-util/rinstall/rinstall-0.2.0-r1.ebuild b/dev-util/rinstall/rinstall-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..972f4681ac1e
--- /dev/null
+++ b/dev-util/rinstall/rinstall-0.2.0-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.17.0
+ adler@1.0.2
+ arrayref@0.3.6
+ arrayvec@0.7.2
+ atty@0.2.14
+ autocfg@1.1.0
+ backtrace@0.3.65
+ bitflags@1.3.2
+ blake3@1.3.1
+ block-buffer@0.10.2
+ camino@1.0.8
+ cc@1.0.73
+ cfg-if@1.0.0
+ clap@3.1.18
+ clap_complete@3.1.4
+ clap_derive@3.1.18
+ clap_lex@0.2.0
+ clap_mangen@0.1.6
+ color-eyre@0.6.1
+ colored@2.0.0
+ constant_time_eq@0.1.5
+ crypto-common@0.1.3
+ digest@0.10.3
+ dirs@4.0.0
+ dirs-sys@0.3.7
+ eyre@0.6.8
+ generic-array@0.14.5
+ getrandom@0.2.6
+ gimli@0.26.1
+ hashbrown@0.11.2
+ heck@0.4.0
+ hermit-abi@0.1.19
+ indenter@0.3.3
+ indexmap@1.8.1
+ json@0.12.4
+ lazy_static@1.4.0
+ libc@0.2.125
+ linked-hash-map@0.5.4
+ log@0.4.17
+ memchr@2.5.0
+ miniz_oxide@0.5.1
+ object@0.28.4
+ once_cell@1.10.0
+ os_str_bytes@6.0.0
+ owo-colors@3.4.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.38
+ quote@1.0.18
+ redox_syscall@0.2.13
+ redox_users@0.4.3
+ roff@0.2.1
+ rustc-demangle@0.1.21
+ ryu@1.0.9
+ same-file@1.0.6
+ semver@1.0.9
+ serde@1.0.137
+ serde_derive@1.0.137
+ serde_yaml@0.8.24
+ strsim@0.10.0
+ subtle@2.4.1
+ syn@1.0.94
+ termcolor@1.1.3
+ terminal_size@0.1.17
+ textwrap@0.15.0
+ thiserror@1.0.31
+ thiserror-impl@1.0.31
+ typenum@1.15.0
+ unicode-xid@0.2.3
+ version_check@0.9.4
+ void@1.0.2
+ walkdir@2.3.2
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ xdg@2.4.1
+ yaml-rust@0.4.5
+"
+
+inherit cargo
+
+DESCRIPTION="Utility for declarative installation of programs"
+HOMEPAGE="https://github.com/DanySpin97/rinstall"
+SRC_URI="
+ https://github.com/DanySpin97/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+RESTRICT="mirror"
+
+QA_FLAGS_IGNORED="usr/bin/rinstall"
+
+src_install() {
+ cargo_src_install
+
+ einstalldocs
+}
diff --git a/dev-util/rinstall/rinstall-0.2.0.ebuild b/dev-util/rinstall/rinstall-0.2.0.ebuild
deleted file mode 100644
index 355b1ca102b9..000000000000
--- a/dev-util/rinstall/rinstall-0.2.0.ebuild
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-addr2line@0.17.0
-adler@1.0.2
-arrayref@0.3.6
-arrayvec@0.7.2
-atty@0.2.14
-autocfg@1.1.0
-backtrace@0.3.65
-bitflags@1.3.2
-blake3@1.3.1
-block-buffer@0.10.2
-camino@1.0.8
-cc@1.0.73
-cfg-if@1.0.0
-clap@3.1.18
-clap_complete@3.1.4
-clap_derive@3.1.18
-clap_lex@0.2.0
-clap_mangen@0.1.6
-color-eyre@0.6.1
-colored@2.0.0
-constant_time_eq@0.1.5
-crypto-common@0.1.3
-digest@0.10.3
-dirs@4.0.0
-dirs-sys@0.3.7
-eyre@0.6.8
-generic-array@0.14.5
-getrandom@0.2.6
-gimli@0.26.1
-hashbrown@0.11.2
-heck@0.4.0
-hermit-abi@0.1.19
-indenter@0.3.3
-indexmap@1.8.1
-json@0.12.4
-lazy_static@1.4.0
-libc@0.2.125
-linked-hash-map@0.5.4
-log@0.4.17
-memchr@2.5.0
-miniz_oxide@0.5.1
-object@0.28.4
-once_cell@1.10.0
-os_str_bytes@6.0.0
-owo-colors@3.4.0
-proc-macro-error@1.0.4
-proc-macro-error-attr@1.0.4
-proc-macro2@1.0.38
-quote@1.0.18
-redox_syscall@0.2.13
-redox_users@0.4.3
-roff@0.2.1
-rustc-demangle@0.1.21
-ryu@1.0.9
-same-file@1.0.6
-semver@1.0.9
-serde@1.0.137
-serde_derive@1.0.137
-serde_yaml@0.8.24
-strsim@0.10.0
-subtle@2.4.1
-syn@1.0.94
-termcolor@1.1.3
-terminal_size@0.1.17
-textwrap@0.15.0
-thiserror@1.0.31
-thiserror-impl@1.0.31
-typenum@1.15.0
-unicode-xid@0.2.3
-version_check@0.9.4
-void@1.0.2
-walkdir@2.3.2
-wasi@0.10.2+wasi-snapshot-preview1
-winapi@0.3.9
-winapi-i686-pc-windows-gnu@0.4.0
-winapi-util@0.1.5
-winapi-x86_64-pc-windows-gnu@0.4.0
-xdg@2.4.1
-yaml-rust@0.4.5
-"
-
-inherit cargo
-
-DESCRIPTION="Utility for declarative installation of programs"
-HOMEPAGE="https://github.com/DanySpin97/rinstall"
-SRC_URI="
- https://github.com/DanySpin97/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64"
-RESTRICT="mirror"
-
-QA_FLAGS_IGNORED="usr/bin/rinstall"
-
-src_install() {
- cargo_src_install
-
- einstalldocs
-}
diff --git a/dev-util/ruff/ruff-0.7.0.ebuild b/dev-util/ruff/ruff-0.7.0-r1.ebuild
index 4be849fad74b..8b26a5b54473 100644
--- a/dev-util/ruff/ruff-0.7.0.ebuild
+++ b/dev-util/ruff/ruff-0.7.0-r1.ebuild
@@ -393,6 +393,8 @@ declare -A GIT_CRATES=(
[salsa]='https://github.com/salsa-rs/salsa;b14be5c0392f4c55eca60b92e457a35549372382;salsa-%commit%'
)
+RUST_MIN_VER="1.76.0"
+
inherit shell-completion cargo
DESCRIPTION="An extremely fast Python linter, written in Rust"
@@ -427,9 +429,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64 ~loong ~riscv"
-BDEPEND="
- >=virtual/rust-1.76
-"
RDEPEND="
!elibc_musl? ( !elibc_Darwin? ( !elibc_bionic? ( dev-libs/jemalloc:= ) ) )
app-arch/zstd
diff --git a/dev-util/ruff/ruff-0.7.1.ebuild b/dev-util/ruff/ruff-0.7.1-r1.ebuild
index 2aa4d4baf989..62627c321b9e 100644
--- a/dev-util/ruff/ruff-0.7.1.ebuild
+++ b/dev-util/ruff/ruff-0.7.1-r1.ebuild
@@ -392,6 +392,8 @@ declare -A GIT_CRATES=(
[salsa]='https://github.com/salsa-rs/salsa;254c749b02cde2fd29852a7463a33e800b771758;salsa-%commit%'
)
+RUST_MIN_VER="1.76.0"
+
inherit shell-completion cargo
DESCRIPTION="An extremely fast Python linter, written in Rust"
@@ -422,9 +424,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~loong ~riscv"
-BDEPEND="
- >=virtual/rust-1.76
-"
RDEPEND="
!elibc_musl? ( !elibc_Darwin? ( !elibc_bionic? ( dev-libs/jemalloc:= ) ) )
app-arch/zstd
diff --git a/dev-util/ruff/ruff-0.7.2.ebuild b/dev-util/ruff/ruff-0.7.2-r1.ebuild
index cd6b3ea4c24a..0a5129c2757f 100644
--- a/dev-util/ruff/ruff-0.7.2.ebuild
+++ b/dev-util/ruff/ruff-0.7.2-r1.ebuild
@@ -392,6 +392,8 @@ declare -A GIT_CRATES=(
[salsa]='https://github.com/salsa-rs/salsa;254c749b02cde2fd29852a7463a33e800b771758;salsa-%commit%'
)
+RUST_MIN_VER="1.76.0"
+
inherit shell-completion cargo
DESCRIPTION="An extremely fast Python linter, written in Rust"
@@ -422,9 +424,6 @@ LICENSE+="
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~loong ~riscv"
-BDEPEND="
- >=virtual/rust-1.76
-"
RDEPEND="
!elibc_musl? ( !elibc_Darwin? ( !elibc_bionic? ( dev-libs/jemalloc:= ) ) )
app-arch/zstd
diff --git a/dev-util/rustup/rustup-1.27.0.ebuild b/dev-util/rustup/rustup-1.27.0-r1.ebuild
index 7a13cc3a534b..955f561e70f4 100644
--- a/dev-util/rustup/rustup-1.27.0.ebuild
+++ b/dev-util/rustup/rustup-1.27.0-r1.ebuild
@@ -35,7 +35,6 @@ DEPEND="
dev-libs/openssl:0=
"
RDEPEND="${DEPEND}"
-BDEPEND="virtual/rust"
# rust does not use *FLAGS from make.conf, silence portage warning
QA_FLAGS_IGNORED="usr/bin/rustup-init"
diff --git a/dev-util/rustup/rustup-1.27.1.ebuild b/dev-util/rustup/rustup-1.27.1-r1.ebuild
index b7b6c9366d6b..b7b6c9366d6b 100644
--- a/dev-util/rustup/rustup-1.27.1.ebuild
+++ b/dev-util/rustup/rustup-1.27.1-r1.ebuild
diff --git a/dev-util/rustup/rustup-9999.ebuild b/dev-util/rustup/rustup-9999.ebuild
index d521a1122823..e44aa837b280 100644
--- a/dev-util/rustup/rustup-9999.ebuild
+++ b/dev-util/rustup/rustup-9999.ebuild
@@ -33,7 +33,6 @@ DEPEND="
dev-libs/openssl:0=
"
RDEPEND="${DEPEND}"
-BDEPEND="virtual/rust"
# rust does not use *FLAGS from make.conf, silence portage warning
QA_FLAGS_IGNORED="usr/bin/rustup-init"
diff --git a/dev-util/sccache/sccache-0.5.4-r1.ebuild b/dev-util/sccache/sccache-0.5.4-r2.ebuild
index 97207cbb5aeb..cb475537b793 100644
--- a/dev-util/sccache/sccache-0.5.4-r1.ebuild
+++ b/dev-util/sccache/sccache-0.5.4-r2.ebuild
@@ -387,6 +387,9 @@ CRATES="
zstd@0.12.3+zstd.1.5.2
"
+# https://github.com/rust-lang/rust/issues/113152#issuecomment-1612578376
+RUST_MAX_VER="1.71.1"
+
inherit cargo optfeature systemd
DESCRIPTION="ccache/distcc like tool with support for rust and cloud storage"
@@ -416,7 +419,6 @@ REQUIRED_USE="s3? ( simple-s3 )"
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.65
"
DEPEND="
app-arch/zstd
@@ -431,6 +433,12 @@ RDEPEND="
QA_FLAGS_IGNORED="usr/bin/sccache*"
+pkg_setup() {
+ rust_pkg_setup
+ # proc_macro_span_shrink is unstable
+ export RUSTC_BOOTSTRAP=1
+}
+
src_unpack() {
if [[ "${PV}" == *9999* ]]; then
git-r3_src_unpack
diff --git a/dev-util/sccache/sccache-9999.ebuild b/dev-util/sccache/sccache-9999.ebuild
index ebb46ec79d8d..575eaa6011e4 100644
--- a/dev-util/sccache/sccache-9999.ebuild
+++ b/dev-util/sccache/sccache-9999.ebuild
@@ -37,7 +37,6 @@ REQUIRED_USE="s3? ( simple-s3 )"
BDEPEND="
virtual/pkgconfig
- >=virtual/rust-1.65
"
DEPEND="
app-arch/zstd
diff --git a/dev-util/selenium-manager/selenium-manager-4.25.0.ebuild b/dev-util/selenium-manager/selenium-manager-4.25.0-r1.ebuild
index 1e46fdad2294..1e46fdad2294 100644
--- a/dev-util/selenium-manager/selenium-manager-4.25.0.ebuild
+++ b/dev-util/selenium-manager/selenium-manager-4.25.0-r1.ebuild
diff --git a/dev-util/selenium-manager/selenium-manager-4.26.0.ebuild b/dev-util/selenium-manager/selenium-manager-4.26.0-r1.ebuild
index 0a35cc52101b..0a35cc52101b 100644
--- a/dev-util/selenium-manager/selenium-manager-4.26.0.ebuild
+++ b/dev-util/selenium-manager/selenium-manager-4.26.0-r1.ebuild
diff --git a/dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6.ebuild b/dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6-r1.ebuild
index bd4053e831df..bd4053e831df 100644
--- a/dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6.ebuild
+++ b/dev-util/tree-sitter-cli/tree-sitter-cli-0.22.6-r1.ebuild
diff --git a/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0.ebuild b/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0-r1.ebuild
index b2788d6bac28..b2788d6bac28 100644
--- a/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0.ebuild
+++ b/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.0-r1.ebuild
diff --git a/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2.ebuild b/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2-r1.ebuild
index 1fe76acc30bb..1fe76acc30bb 100644
--- a/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2.ebuild
+++ b/dev-util/tree-sitter-cli/tree-sitter-cli-0.23.2-r1.ebuild
diff --git a/dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3.ebuild b/dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3-r1.ebuild
index bca1cd9e7bcc..bca1cd9e7bcc 100644
--- a/dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3.ebuild
+++ b/dev-util/tree-sitter-cli/tree-sitter-cli-0.24.3-r1.ebuild
diff --git a/dev-util/wachy/wachy-0.1.0_alpha6-r1.ebuild b/dev-util/wachy/wachy-0.1.0_alpha6-r2.ebuild
index fba545be9ca7..fba545be9ca7 100644
--- a/dev-util/wachy/wachy-0.1.0_alpha6-r1.ebuild
+++ b/dev-util/wachy/wachy-0.1.0_alpha6-r2.ebuild
diff --git a/dev-util/wasmer/wasmer-0.11.0.ebuild b/dev-util/wasmer/wasmer-0.11.0.ebuild
index 1f3d09da84f3..39cd6a7aee90 100644
--- a/dev-util/wasmer/wasmer-0.11.0.ebuild
+++ b/dev-util/wasmer/wasmer-0.11.0.ebuild
@@ -181,7 +181,6 @@ KEYWORDS="~amd64"
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.37.0
"
src_prepare() {
diff --git a/dev-util/watchman/watchman-2023.06.19.00.ebuild b/dev-util/watchman/watchman-2023.06.19.00-r1.ebuild
index 9b399e090d42..21cf39c9d5d0 100644
--- a/dev-util/watchman/watchman-2023.06.19.00.ebuild
+++ b/dev-util/watchman/watchman-2023.06.19.00-r1.ebuild
@@ -126,6 +126,9 @@ DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
+# stdsimd
+RUST_MAX_VER="1.77.1"
+
inherit cargo cmake distutils-r1 tmpfiles
DESCRIPTION="A file watching service"
diff --git a/dev-vcs/breezy/breezy-3.3.5.ebuild b/dev-vcs/breezy/breezy-3.3.5-r1.ebuild
index 215f1f5ffa2c..215f1f5ffa2c 100644
--- a/dev-vcs/breezy/breezy-3.3.5.ebuild
+++ b/dev-vcs/breezy/breezy-3.3.5-r1.ebuild
diff --git a/dev-vcs/breezy/breezy-3.3.7-r1.ebuild b/dev-vcs/breezy/breezy-3.3.7-r2.ebuild
index 695dc3e7e9a0..695dc3e7e9a0 100644
--- a/dev-vcs/breezy/breezy-3.3.7-r1.ebuild
+++ b/dev-vcs/breezy/breezy-3.3.7-r2.ebuild
diff --git a/dev-vcs/git-absorb/git-absorb-0.6.15.ebuild b/dev-vcs/git-absorb/git-absorb-0.6.15-r1.ebuild
index c3b68e62d3d7..c3b68e62d3d7 100644
--- a/dev-vcs/git-absorb/git-absorb-0.6.15.ebuild
+++ b/dev-vcs/git-absorb/git-absorb-0.6.15-r1.ebuild
diff --git a/dev-vcs/mercurial/mercurial-6.5.3-r1.ebuild b/dev-vcs/mercurial/mercurial-6.5.3-r2.ebuild
index ef5aaf4ea840..969e0594fd27 100644
--- a/dev-vcs/mercurial/mercurial-6.5.3-r1.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.5.3-r2.ebuild
@@ -161,12 +161,15 @@ CRATES="
zstd-sys-2.0.7+zstd.1.5.4
"
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit bash-completion-r1 cargo elisp-common distutils-r1 flag-o-matic multiprocessing
DESCRIPTION="Scalable distributed SCM"
HOMEPAGE="https://www.mercurial-scm.org/"
SRC_URI="https://www.mercurial-scm.org/release/${P}.tar.gz
- rust? ( $(cargo_crate_uris ${CRATES}) )"
+ rust? ( ${CARGO_CRATE_URIS} )"
LICENSE="GPL-2+
rust? ( 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT MPL-2.0 PSF-2 Unicode-DFS-2016 Unlicense ZLIB )"
diff --git a/dev-vcs/mercurial/mercurial-6.6.2-r1.ebuild b/dev-vcs/mercurial/mercurial-6.6.2-r2.ebuild
index 08e2955bc986..9ee1dc0cfb34 100644
--- a/dev-vcs/mercurial/mercurial-6.6.2-r1.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.6.2-r2.ebuild
@@ -170,6 +170,9 @@ CRATES="
zstd-sys@2.0.7+zstd.1.5.4
"
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit bash-completion-r1 cargo elisp-common distutils-r1 flag-o-matic multiprocessing
DESCRIPTION="Scalable distributed SCM"
diff --git a/dev-vcs/mercurial/mercurial-6.7.4-r1.ebuild b/dev-vcs/mercurial/mercurial-6.7.4-r2.ebuild
index 564e460089e9..f68c7388f014 100644
--- a/dev-vcs/mercurial/mercurial-6.7.4-r1.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.7.4-r2.ebuild
@@ -181,6 +181,9 @@ CRATES="
zstd-sys@2.0.7+zstd.1.5.4
"
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit bash-completion-r1 cargo elisp-common distutils-r1 flag-o-matic multiprocessing
DESCRIPTION="Scalable distributed SCM"
diff --git a/dev-vcs/mercurial/mercurial-6.8.1.ebuild b/dev-vcs/mercurial/mercurial-6.8.1-r1.ebuild
index f0b887149ad7..2e09a308c5df 100644
--- a/dev-vcs/mercurial/mercurial-6.8.1.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.8.1-r1.ebuild
@@ -201,6 +201,9 @@ CRATES="
zstd-sys@2.0.7+zstd.1.5.4
"
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit bash-completion-r1 cargo elisp-common distutils-r1 flag-o-matic multiprocessing
DESCRIPTION="Scalable distributed SCM"
diff --git a/dev-vcs/mercurial/mercurial-9999.ebuild b/dev-vcs/mercurial/mercurial-9999.ebuild
index 45093fbe0880..3d26e755559c 100644
--- a/dev-vcs/mercurial/mercurial-9999.ebuild
+++ b/dev-vcs/mercurial/mercurial-9999.ebuild
@@ -9,6 +9,9 @@ DISTUTILS_EXT=1
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="threads(+)"
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit bash-completion-r1 cargo elisp-common distutils-r1 mercurial flag-o-matic multiprocessing
DESCRIPTION="Scalable distributed SCM"
diff --git a/dev-vcs/stgit/stgit-2.4.11.ebuild b/dev-vcs/stgit/stgit-2.4.11-r1.ebuild
index 4ad2d8e33b6a..4ad2d8e33b6a 100644
--- a/dev-vcs/stgit/stgit-2.4.11.ebuild
+++ b/dev-vcs/stgit/stgit-2.4.11-r1.ebuild
diff --git a/dev-vcs/stgit/stgit-2.4.12.ebuild b/dev-vcs/stgit/stgit-2.4.12-r1.ebuild
index 84fa72cec8d1..84fa72cec8d1 100644
--- a/dev-vcs/stgit/stgit-2.4.12.ebuild
+++ b/dev-vcs/stgit/stgit-2.4.12-r1.ebuild
diff --git a/dev-vcs/stgit/stgit-2.4.6.ebuild b/dev-vcs/stgit/stgit-2.4.6-r1.ebuild
index e815ddb4c129..e815ddb4c129 100644
--- a/dev-vcs/stgit/stgit-2.4.6.ebuild
+++ b/dev-vcs/stgit/stgit-2.4.6-r1.ebuild
diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 499fe5498c96..855692b72ec7 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -8,6 +8,7 @@
# Doug Goldstein <cardoe@gentoo.org>
# Georgy Yakovlev <gyakovlev@gentoo.org>
# @SUPPORTED_EAPIS: 8
+# @PROVIDES: rust
# @BLURB: common functions and variables for cargo builds
case ${EAPI} in
@@ -18,25 +19,36 @@ esac
if [[ -z ${_CARGO_ECLASS} ]]; then
_CARGO_ECLASS=1
-# check and document RUST_DEPEND and options we need below in case conditions.
+if [[ -n ${RUST_NEEDS_LLVM} ]]; then
+ if [[ -z ${_LLVM_R1_ECLASS} ]]; then
+ die "Please inherit llvm-r1.eclass before cargo.eclass when using RUST_NEEDS_LLVM"
+ fi
+fi
+
+if [[ -n ${CARGO_OPTIONAL} ]]; then
+ RUST_OPTIONAL=1
+fi
+
+# Either the lowest slot supported by rust.eclass _or_
+# reference the changelog for a particular feature requirement
# https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md
-RUST_DEPEND="virtual/rust"
+_CARGO_ECLASS_RUST_MIN_VER="1.71.1"
case ${EAPI} in
8)
- # 1.39 added --workspace
- # 1.46 added --target dir
- # 1.48 added term.progress config option
- # 1.51 added split-debuginfo profile option
- # 1.52 may need setting RUSTC_BOOTSTRAP envvar for some crates
- # 1.53 added cargo update --offline, can be used to update vulnerable crates from pre-fetched registry without editing toml
- RUST_DEPEND=">=virtual/rust-1.53"
+ if [[ -n ${RUST_MIN_VER} ]]; then
+ # This is _very_ unlikely given that we leverage the rust eclass but just in case cargo requires a newer version
+ # than the oldest in-tree in future.
+ if ver_test "${RUST_MIN_VER}" -lt "${_CARGO_ECLASS_RUST_MIN_VER}"; then
+ die "RUST_MIN_VERSION must be at least ${_CARGO_ECLASS_RUST_MIN_VER}"
+ fi
+ else
+ RUST_MIN_VER="${_CARGO_ECLASS_RUST_MIN_VER}"
+ fi
;;
esac
-inherit flag-o-matic multiprocessing rust-toolchain toolchain-funcs
-
-[[ ! ${CARGO_OPTIONAL} ]] && BDEPEND="${RUST_DEPEND}"
+inherit flag-o-matic multiprocessing rust rust-toolchain toolchain-funcs
IUSE="${IUSE} debug"
@@ -107,9 +119,8 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# be considered optional. No dependencies will be added and no phase
# functions will be exported.
#
-# If you enable CARGO_OPTIONAL, you have to set BDEPEND on virtual/rust
-# for your package and call at least cargo_gen_config manually before using
-# other src_functions or cargo_env of this eclass.
+# If you enable CARGO_OPTIONAL call at least cargo_gen_config manually
+# before using other src_functions or cargo_env of this eclass.
# Note that cargo_gen_config is automatically called by cargo_src_unpack.
# @ECLASS_VARIABLE: myfeatures
@@ -129,6 +140,11 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# }
# @CODE
+# @ECLASS_VARIABLE: ECARGO_HOME
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Location of the cargo home directory.
+
# @ECLASS_VARIABLE: ECARGO_REGISTRY_DIR
# @USER_VARIABLE
# @DEFAULT_UNSET
@@ -148,6 +164,11 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# cargo_live_src_unpack.
# Inherits value of EVCS_OFFLINE if not set explicitly.
+# @ECLASS_VARIABLE: ECARGO_VENDOR
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Location of the cargo vendor directory.
+
# @ECLASS_VARIABLE: EVCS_UMASK
# @USER_VARIABLE
# @DEFAULT_UNSET
@@ -531,6 +552,8 @@ cargo_src_configure() {
# take affect due to Cargo limitations, so add these to your ebuild's RUSTFLAGS
# if they seem important.
cargo_env() {
+ debug-print-function ${FUNCNAME} "$@"
+
[[ ${_CARGO_GEN_CONFIG_HAS_RUN} ]] || \
die "FATAL: please call cargo_gen_config before using ${FUNCNAME}"
@@ -604,7 +627,7 @@ cargo_env() {
cargo_src_compile() {
debug-print-function ${FUNCNAME} "$@"
- set -- cargo build $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
+ set -- ${CARGO} build $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
einfo "${@}"
cargo_env "${@}" || die "cargo build failed"
}
@@ -618,7 +641,7 @@ cargo_src_compile() {
cargo_src_install() {
debug-print-function ${FUNCNAME} "$@"
- set -- cargo install $(has --path ${@} || echo --path ./) \
+ set -- ${CARGO} install $(has --path ${@} || echo --path ./) \
--root "${ED}/usr" \
${GIT_CRATES[@]:+--frozen} \
$(usex debug --debug "") \
@@ -636,7 +659,7 @@ cargo_src_install() {
cargo_src_test() {
debug-print-function ${FUNCNAME} "$@"
- set -- cargo test $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
+ set -- ${CARGO} test $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
einfo "${@}"
cargo_env "${@}" || die "cargo test failed"
}
diff --git a/eclass/rust.eclass b/eclass/rust.eclass
new file mode 100644
index 000000000000..12ef4b90a7ac
--- /dev/null
+++ b/eclass/rust.eclass
@@ -0,0 +1,464 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: rust.eclass
+# @MAINTAINER:
+# Matt Jolly <kangie@gentoo.org>
+# @AUTHOR:
+# Matt Jolly <kangie@gentoo.org>
+# @SUPPORTED_EAPIS: 8
+# @BLURB: Utility functions to build against slotted Rust
+# @DESCRIPTION:
+# An eclass to reliably depend on a Rust or Rust/LLVM combination for
+# a given Rust slot. To use the eclass:
+#
+# 1. If required, set RUST_{MAX,MIN}_SLOT to the range of supported slots.
+# 2. If rust is optional, set RUST_OPTIONAL to a non-empty value then
+# appropriately gate ${RUST_DEPEND}
+# 3. Use rust_pkg_setup, get_rust_prefix or RUST_SLOT.
+
+# Example use for a package supporting Rust 1.72.0 to 1.82.0:
+# @CODE
+#
+# RUST_MAX_VER="1.82.0"
+# RUST_MIN_VER="1.72.0"
+#
+# inherit meson rust
+#
+# # only if you need to define one explicitly
+# pkg_setup() {
+# rust_pkg_setup
+# do-something-else
+# }
+# @CODE
+#
+# Example for a package needing Rust w/ a specific target:
+# @CODE
+# RUST_USEDEP='clippy,${MULTILIB_USEDEP}'
+#
+# inherit multilib-minimal meson rust
+#
+# @CODE
+
+case ${EAPI} in
+ 8) ;;
+ *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ -z ${_RUST_ECLASS} ]]; then
+_RUST_ECLASS=1
+
+if [[ -n ${RUST_NEEDS_LLVM} ]]; then
+ if [[ -z ${_LLVM_R1_ECLASS} ]]; then
+ die "Please inherit llvm-r1.eclass before rust.eclass when using RUST_NEEDS_LLVM"
+ fi
+fi
+
+# == internal control knobs ==
+
+# @ECLASS_VARIABLE: _RUST_LLVM_MAP
+# @INTERNAL
+# @DESCRIPTION:
+# Definitive list of Rust slots and the associated LLVM slot, newest first.
+declare -A -g -r _RUST_LLVM_MAP=(
+ ["1.82.0"]=19
+ ["1.81.0"]=18
+ ["1.80.1"]=18
+ ["1.79.0"]=18
+ ["1.77.1"]=17
+ ["1.75.0"]=17
+ ["1.74.1"]=17
+ ["1.71.1"]=16
+)
+
+# @ECLASS_VARIABLE: _RUST_SLOTS_ORDERED
+# @INTERNAL
+# @DESCRIPTION:
+# Array of Rust slots, newest first.
+# While _RUST_LLVM_MAP stores useful info about the relationship between Rust and LLVM slots,
+# this array is used to store the Rust slots in a more convenient order for iteration.
+declare -a -g -r _RUST_SLOTS_ORDERED=(
+ "1.82.0"
+ "1.81.0"
+ "1.80.1"
+ "1.79.0"
+ "1.77.1"
+ "1.75.0"
+ "1.74.1"
+ "1.71.1"
+)
+
+# == control variables ==
+
+# @ECLASS_VARIABLE: RUST_MAX_VER
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Highest Rust slot supported by the package. Needs to be set before
+# rust_pkg_setup is called. If unset, no upper bound is assumed.
+
+# @ECLASS_VARIABLE: RUST_MIN_VER
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Lowest Rust slot supported by the package. Needs to be set before
+# rust_pkg_setup is called. If unset, no lower bound is assumed.
+
+# @eclass-variable: RUST_NEEDS_LLVM
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# If set to a non-empty value generate a llvm_slot_${llvm_slot}? gated
+# dependency block for rust slots in LLVM_COMPAT. This is useful for
+# packages that need a tight coupling between Rust and LLVM but don't
+# really care _which_ version of Rust is selected. Combine with
+# RUST_MAX_VER and RUST_MIN_VER to limit the range of Rust versions
+# that are acceptable. Will `die` if llvm-r1 is not inherited or
+# an invalid combination of RUST and LLVM slots is detected; this probably
+# means that a LLVM slot in LLVM_COMPAT has had all of its Rust slots filtered.
+
+# @ECLASS_VARIABLE: RUST_DEPEND
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# This is an eclass-generated Rust dependency string, filtered by
+# RUST_MAX_VER and RUST_MIN_VER. If RUST_NEEDS_LLVM is set, this
+# is gropeda and gated by an appropriate `llvm_slot_x` USE for all
+# implementations listed in LLVM_COMPAT.
+
+# @ECLASS_VARIABLE: RUST_OPTIONAL
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# If set to a non-empty value, the Rust dependency will not be added
+# to BDEPEND. This is useful for where packages need to gate rust behind
+# certain USE themselves.
+
+# @ECLASS_VARIABLE: RUST_USEDEP
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Additional USE-dependencies to be added to the Rust dependency.
+# This is useful for packages that need to depend on specific Rust
+# features, like clippy or rustfmt. The variable is expanded before
+# being used in the Rust dependency.
+
+# == global metadata ==
+
+_rust_set_globals() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ # If RUST_MIN_VER is older than our oldest slot we'll just set it to that
+ # internally so we don't have to worry about it later.
+ if ! ver_test "${_RUST_SLOTS_ORDERED[-1]}" -gt "${RUST_MIN_VER:-0}"; then
+ RUST_MIN_VER="${_RUST_SLOTS_ORDERED[-1]}"
+ fi
+
+ # and if it falls between slots we'll set it to the next highest slot
+ # We can skip this we match a slot exactly.
+ if ! [[ "${_RUST_SLOTS_ORDERED[@]}" == *"${RUST_MIN_VER}"* ]]; then
+ local i
+ for (( i=${#_RUST_SLOTS_ORDERED[@]}-1 ; i>=0 ; i-- )); do
+ if ver_test "${_RUST_SLOTS_ORDERED[$i]}" -gt "${RUST_MIN_VER}"; then
+ RUST_MIN_VER="${_RUST_SLOTS_ORDERED[$i]}"
+ break
+ fi
+ done
+ fi
+
+ if [[ -n "${RUST_MAX_VER}" && -n "${RUST_MIN_VER}" ]]; then
+ if ! ver_test "${RUST_MAX_VER}" -ge "${RUST_MIN_VER}"; then
+ die "RUST_MAX_VER must not be older than RUST_MIN_VER"
+ fi
+ fi
+
+ local slot
+ # Try to keep this in order of newest to oldest
+ for slot in "${_RUST_SLOTS_ORDERED[@]}"; do
+ if ver_test "${slot}" -le "${RUST_MAX_VER:-9999}" && \
+ ver_test "${slot}" -ge "${RUST_MIN_VER:-0}"; then
+ _RUST_SLOTS+=( "${slot}" )
+ fi
+ done
+
+ _RUST_SLOTS=( "${_RUST_SLOTS[@]}" )
+
+ # We may have been passed a variable like ${MULTILIB_USEDEP}; expand it.
+ if [[ -n "${RUST_USEDEP}" ]]; then
+ eval $(echo RUST_USEDEP="${RUST_USEDEP}")
+ [[ -z "${RUST_USEDEP}" ]] && die "When evaluated, RUST_USEDEP is empty"
+ fi
+
+ readonly _RUST_SLOTS
+
+ local rust_dep=()
+ local llvm_slot
+ local rust_slot
+ local usedep
+
+ # If we're not using LLVM, we can just generate a simple Rust dependency
+ if [[ -z "${RUST_NEEDS_LLVM}" ]]; then
+ rust_dep=( "|| (" )
+ for slot in "${_RUST_SLOTS[@]}"; do
+ usedep="${RUST_USEDEP+[${RUST_USEDEP}]}"
+ rust_dep+=(
+ "dev-lang/rust:${slot}${usedep}"
+ "dev-lang/rust-bin:${slot}${usedep}"
+ )
+ done
+ rust_dep+=( ")" )
+ RUST_DEPEND="${rust_dep[*]}"
+ else
+ for llvm_slot in "${LLVM_COMPAT[@]}"; do
+ # Quick sanity check to make sure that the llvm slot is valid for Rust.
+ if [[ "${_RUST_LLVM_MAP[@]}" == *"${llvm_slot}"* ]]; then
+ # We're working a bit backwards here; iterate over _RUST_LLVM_MAP, check the
+ # LLVM slot, and if it matches add this to a new array because it may (and likely will)
+ # match multiple Rust slots. We already filtered Rust max/min slots.
+ # We always have a usedep for the LLVM slot, append `,RUST_USEDEP` if it's set
+ usedep="[llvm_slot_${llvm_slot}${RUST_USEDEP+,${RUST_USEDEP}}]"
+ local slot_dep_content=()
+ for rust_slot in "${_RUST_SLOTS[@]}"; do
+ if [[ "${_RUST_LLVM_MAP[${rust_slot}]}" == "${llvm_slot}" ]]; then
+ slot_dep_content+=(
+ "dev-lang/rust:${rust_slot}${usedep}"
+ "dev-lang/rust-bin:${rust_slot}${usedep}"
+ )
+ fi
+ done
+ if [ ${#slot_dep_content[@]} -ne 0 ]; then
+ rust_dep+=( "llvm_slot_${llvm_slot}? ( || ( ${slot_dep_content[*]} ) )" )
+ else
+ die "${FUNCNAME}: no Rust slots found for LLVM slot ${llvm_slot}"
+ fi
+ fi
+ done
+ RUST_DEPEND="${rust_dep[*]}"
+ fi
+
+ readonly RUST_DEPEND
+ if [[ -z ${RUST_OPTIONAL} ]]; then
+ BDEPEND="${RUST_DEPEND}"
+ fi
+}
+_rust_set_globals
+unset -f _rust_set_globals
+
+# == ebuild helpers ==
+
+# @FUNCTION: get_rust_slot
+# @USAGE: [-b|-d]
+# @DESCRIPTION:
+# Find the newest Rust install that is acceptable for the package,
+# and print its version number (i.e. SLOT) and type (source or bin[ary]).
+#
+# If -b is specified, the checks are performed relative to BROOT,
+# and BROOT-path is returned.
+#
+# If -d is specified, the checks are performed relative to ESYSROOT,
+# and ESYSROOT-path is returned. -d is the default.
+#
+# If RUST_M{AX,IN}_SLOT is non-zero, then only Rust versions that
+# are not newer or older than the specified slot(s) will be considered.
+# Otherwise, all Rust versions are be considered acceptable.
+#
+# If the `rust_check_deps()` function is defined within the ebuild, it
+# will be called to verify whether a particular slot is accepable.
+# Within the function scope, RUST_SLOT and LLVM_SLOT will be defined.
+#
+# The function should return a true status if the slot is acceptable,
+# false otherwise. If rust_check_deps() is not defined, the function
+# defaults to checking whether a suitable Rust package is installed.
+get_rust_slot() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local hv_switch=-d
+ while [[ ${1} == -* ]]; do
+ case ${1} in
+ -b|-d) hv_switch="${1}";;
+ *) break;;
+ esac
+ shift
+ done
+
+ local max_slot
+ if [[ -z "${RUST_MAX_VER}" ]]; then
+ max_slot=
+ else
+ max_slot="${RUST_MAX_VER}"
+ fi
+ local slot
+ local llvm_slot
+
+ if [[ -n "${RUST_NEEDS_LLVM}" ]]; then
+ local unique_slots=()
+ local llvm_r1_slot
+ # Associative array keys are unique, so let's use that to our advantage
+ for llvm_slot in "${_RUST_LLVM_MAP[@]}"; do
+ unique_slots["${llvm_slot}"]="1"
+ done
+ for llvm_slot in "${!unique_slots[@]}"; do
+ if [[ "${LLVM_COMPAT[@]}" == *"${llvm_slot}"* ]]; then
+ # We can check for the USE
+ use "llvm_slot_${llvm_slot}" && llvm_r1_slot="${llvm_slot}"
+ else
+ continue
+ fi
+ done
+ if [[ -z "${llvm_r1_slot}" ]]; then
+ die "${FUNCNAME}: no LLVM slot found"
+ fi
+ fi
+
+ # iterate over known slots, newest first
+ for slot in "${_RUST_SLOTS_ORDERED[@]}"; do
+ llvm_slot="${_RUST_LLVM_MAP[${slot}]}"
+ # skip higher slots
+ if [[ -n "${max_slot}" ]]; then
+ if ver_test "${slot}" -eq "${max_slot}"; then
+ max_slot=
+ elif ver_test "${slot}" -gt "${max_slot}"; then
+ continue
+ fi
+ fi
+
+ # If we're in LLVM mode we can skip any slots that don't match the selected USE
+ if [[ -n "${RUST_NEEDS_LLVM}" ]]; then
+ if [[ "${llvm_slot}" != "${llvm_r1_slot}" ]]; then
+ continue
+ fi
+ fi
+
+ if declare -f rust_check_deps >/dev/null; then
+ local RUST_SLOT="${slot}"
+ local LLVM_SLOT="${_RUST_LLVM_MAP[${slot}]}"
+ rust_check_deps && return
+ else
+ local rust_usedep="${RUST_USEDEP+[${RUST_USEDEP}]}"
+ # When checking for installed packages prefer the non `-bin` package
+ # if effort was put into building it we should use it.
+ local rust_pkgs=(
+ "dev-lang/rust:${slot}${rust_usedep}"
+ "dev-lang/rust-bin:${slot}${rust_usedep}"
+ )
+ local _pkg
+ for _pkg in "${rust_pkgs[@]}"
+ do
+ if has_version "${hv_switch}" "${_pkg}"; then
+ echo "${slot}"
+ if [[ "${_pkg}" == "dev-lang/rust:${slot}${rust_usedep}" ]]; then
+ echo source
+ else
+ echo binary
+ fi
+ return
+ fi
+ done
+ fi
+
+ # We want to process the slot before escaping the loop if we've hit the minimum slot
+ if ver_test "${slot}" -eq "${RUST_MIN_VER}"; then
+ break
+ fi
+
+ done
+
+ # max_slot should have been unset in the iteration
+ if [[ -n "${max_slot}" ]]; then
+ die "${FUNCNAME}: invalid max_slot=${max_slot}"
+ fi
+
+ die "No Rust slot${1:+ <= ${1}} satisfying the package's dependencies found installed!"
+}
+
+# @FUNCTION: get_rust_path
+# @USAGE: prefix slot rust_type
+# @DESCRIPTION:
+# Given argument of slot and rust_type, return an appropriate path
+# for the Rust install. The rust_type should be either "source"
+# or "binary". If the rust_type is not one of these, the function
+# will die.
+get_rust_path() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local prefix="${1}"
+ local slot="${2}"
+ local rust_type="${3}"
+
+ if [[ ${#} -ne 3 ]]; then
+ die "${FUNCNAME}: invalid number of arguments"
+ fi
+
+ if [[ "${rust_type}" != "source" && "${rust_type}" != "binary" ]]; then
+ die "${FUNCNAME}: invalid rust_type=${rust_type}"
+ fi
+
+ if [[ "${rust_type}" == "source" ]]; then
+ echo "${prefix}/usr/lib/rust/${slot}/"
+ else
+ echo "${prefix}opt/rust-bin-${slot}/"
+ fi
+}
+
+# @FUNCTION: get_rust_prefix
+# @USAGE: [-b|-d]
+# @DESCRIPTION:
+# Find the newest Rust install that is acceptable for the package,
+# and print an absolute path to it. If both -bin and regular Rust
+# are installed, the regular Rust is preferred.
+#
+# The options and behavior are the same as get_rust_slot.
+get_rust_prefix() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local prefix=${BROOT}
+ [[ ${1} == -d ]] && prefix=${ESYSROOT}
+
+ local slot rust_type
+ { read -r slot; read -r rust_type; } <<< $(get_rust_slot)
+ echo $(get_rust_path "${prefix}" "${slot}" "${rust_type}")
+}
+
+# @FUNCTION: rust_prepend_path
+# @USAGE: <slot> <type>
+# @DESCRIPTION:
+# Prepend the path to the specified Rust to PATH and re-export it.
+rust_prepend_path() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ ${#} -ne 2 ]] && die "Usage: ${FUNCNAME} <slot> <type>"
+ local slot="${1}"
+ local type="${2}"
+ export PATH="$(get_rust_path "${BROOT}" "${slot}" "${type}")/bin:${PATH}"
+}
+
+# @FUNCTION: rust_pkg_setup
+# @DESCRIPTION:
+# Prepend the appropriate executable directory for the newest
+# acceptable Rust slot to the PATH. If used with LLVM, an appropriate
+# `llvm_pkg_setup` call should be made in addition to this function.
+# For path determination logic, please see the get_rust_prefix documentation.
+#
+# The highest acceptable Rust slot can be set in RUST_MAX_VER variable.
+# If it is unset or empty, any slot is acceptable.
+#
+# The lowest acceptable Rust slot can be set in RUST_MIN_VER variable.
+# If it is unset or empty, any slot is acceptable.
+#
+# `CARGO` and `RUSTC` variables are set for the selected slot and exported.
+#
+# The PATH manipulation is only done for source builds. The function
+# is a no-op when installing a binary package.
+#
+# If any other behavior is desired, the contents of the function
+# should be inlined into the ebuild and modified as necessary.
+rust_pkg_setup() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ { read -r RUST_SLOT; read -r RUST_TYPE; } <<< $(get_rust_slot)
+ rust_prepend_path "${RUST_SLOT}" "${RUST_TYPE}"
+ CARGO="$(get_rust_prefix)bin/cargo"
+ RUSTC="$(get_rust_prefix)bin/rustc"
+ export CARGO RUSTC
+ einfo "Using Rust ${RUST_SLOT} (${RUST_TYPE})"
+ fi
+}
+
+fi
+
+EXPORT_FUNCTIONS pkg_setup
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index b25c5dcf0929..6e3a974f373e 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -14,6 +14,8 @@
if [[ -z ${_TOOLCHAIN_ECLASS} ]]; then
_TOOLCHAIN_ECLASS=1
+RUST_OPTIONAL="1"
+
case ${EAPI} in
7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
@@ -22,7 +24,7 @@ esac
DESCRIPTION="The GNU Compiler Collection"
HOMEPAGE="https://gcc.gnu.org/"
-inherit edo flag-o-matic gnuconfig libtool multilib pax-utils toolchain-funcs prefix
+inherit edo flag-o-matic gnuconfig libtool multilib pax-utils rust toolchain-funcs prefix
[[ -n ${TOOLCHAIN_HAS_TESTS} ]] && inherit python-any-r1
@@ -427,7 +429,7 @@ fi
if tc_has_feature rust && tc_version_is_at_least 14.0.0_pre20230421 ; then
# This was added upstream in r14-9968-g3e1e73fc995844 as a temporary measure.
# See https://inbox.sourceware.org/gcc/34fec7ea-8762-4cac-a1c8-ff54e20e31ed@embecosm.com/
- BDEPEND+=" rust? ( virtual/rust )"
+ BDEPEND+=" rust? ( ${RUST_DEPEND} )"
fi
PDEPEND=">=sys-devel/gcc-config-2.11"
diff --git a/games-board/jja/jja-0.9.1.ebuild b/games-board/jja/jja-0.9.1-r1.ebuild
index c5d106105a70..9eb7556c9e84 100644
--- a/games-board/jja/jja-0.9.1.ebuild
+++ b/games-board/jja/jja-0.9.1-r1.ebuild
@@ -246,7 +246,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
-inherit cargo llvm-r1
+inherit llvm-r1 cargo
DESCRIPTION="swiss army knife for chess file formats"
HOMEPAGE="https://git.sr.ht/~alip/jja"
diff --git a/games-emulation/rmg/rmg-0.6.6.ebuild b/games-emulation/rmg/rmg-0.6.5-r1.ebuild
index 6ca37bec7198..48350becfcc2 100644
--- a/games-emulation/rmg/rmg-0.6.6.ebuild
+++ b/games-emulation/rmg/rmg-0.6.5-r1.ebuild
@@ -71,7 +71,7 @@ RDEPEND="${DEPEND}"
BDEPEND="
virtual/pkgconfig
dynarec? ( dev-lang/nasm )
- rust-plugin? ( virtual/rust )
+ rust-plugin? ( ${RUST_DEPEND} )
"
PATCHES=(
@@ -80,6 +80,7 @@ PATCHES=(
pkg_setup() {
QA_FLAGS_IGNORED="/usr/$(get_libdir)/RMG/Plugin/Input/libmupen64plus_input_gca.so"
+ rust_pkg_setup
}
src_unpack() {
diff --git a/games-emulation/rmg/rmg-0.6.5.ebuild b/games-emulation/rmg/rmg-0.6.6-r1.ebuild
index 6ca37bec7198..eed49326ebd4 100644
--- a/games-emulation/rmg/rmg-0.6.5.ebuild
+++ b/games-emulation/rmg/rmg-0.6.6-r1.ebuild
@@ -71,7 +71,7 @@ RDEPEND="${DEPEND}"
BDEPEND="
virtual/pkgconfig
dynarec? ( dev-lang/nasm )
- rust-plugin? ( virtual/rust )
+ rust-plugin? ( ${RUST_DEPEND} )
"
PATCHES=(
@@ -80,6 +80,7 @@ PATCHES=(
pkg_setup() {
QA_FLAGS_IGNORED="/usr/$(get_libdir)/RMG/Plugin/Input/libmupen64plus_input_gca.so"
+ use rust-plugin && rust_pkg_setup
}
src_unpack() {
diff --git a/games-emulation/rmg/rmg-9999.ebuild b/games-emulation/rmg/rmg-9999.ebuild
index 6ca37bec7198..48350becfcc2 100644
--- a/games-emulation/rmg/rmg-9999.ebuild
+++ b/games-emulation/rmg/rmg-9999.ebuild
@@ -71,7 +71,7 @@ RDEPEND="${DEPEND}"
BDEPEND="
virtual/pkgconfig
dynarec? ( dev-lang/nasm )
- rust-plugin? ( virtual/rust )
+ rust-plugin? ( ${RUST_DEPEND} )
"
PATCHES=(
@@ -80,6 +80,7 @@ PATCHES=(
pkg_setup() {
QA_FLAGS_IGNORED="/usr/$(get_libdir)/RMG/Plugin/Input/libmupen64plus_input_gca.so"
+ rust_pkg_setup
}
src_unpack() {
diff --git a/games-puzzle/syzygy/syzygy-1.0.2.ebuild b/games-puzzle/syzygy/syzygy-1.0.2-r1.ebuild
index c4b802feffd0..e40eb73ed926 100644
--- a/games-puzzle/syzygy/syzygy-1.0.2.ebuild
+++ b/games-puzzle/syzygy/syzygy-1.0.2-r1.ebuild
@@ -59,7 +59,6 @@ KEYWORDS="~amd64"
RDEPEND="media-libs/libsdl2[sound,video]"
DEPEND="${RDEPEND}"
-BDEPEND=">=virtual/rust-1.60"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/games-rpg/rpg-cli/rpg-cli-1.2.0.ebuild b/games-rpg/rpg-cli/rpg-cli-1.2.0-r1.ebuild
index c648c2412b5e..c648c2412b5e 100644
--- a/games-rpg/rpg-cli/rpg-cli-1.2.0.ebuild
+++ b/games-rpg/rpg-cli/rpg-cli-1.2.0-r1.ebuild
diff --git a/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild b/games-strategy/0ad/0ad-0.0.26_alpha-r2.ebuild
index e910f14e5bd2..3f85989916d2 100644
--- a/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild
+++ b/games-strategy/0ad/0ad-0.0.26_alpha-r2.ebuild
@@ -6,7 +6,9 @@ EAPI=8
WX_GTK_VER="3.0-gtk3"
# In alpha26 bundled spidermonkey-78.6.0 does not build with python 3.11.
PYTHON_COMPAT=( python3_10 )
-inherit desktop flag-o-matic toolchain-funcs multiprocessing python-any-r1 wxwidgets xdg
+
+# rust is for bundled SpiderMonkey.
+inherit desktop flag-o-matic toolchain-funcs multiprocessing python-any-r1 rust wxwidgets xdg
DESCRIPTION="A free, real-time strategy game"
HOMEPAGE="https://play0ad.com/"
@@ -53,13 +55,11 @@ CHECKREQS_DISK_USR="3500M" # 3555340 KiB (3.3 GiB)
# build and/or startup issues.
QA_PRESTRIPPED="/usr/lib64/0ad/libCollada.so /usr/bin/0ad"
-# virtual/rust is for bundled SpiderMonkey.
# Build-time Python dependency is for SM, too.
BDEPEND="
${PYTHON_DEPS}
>=dev-util/premake-5.0.0_alpha12:5
virtual/pkgconfig
- virtual/rust
test? ( dev-lang/perl )
"
@@ -110,6 +110,7 @@ pkg_setup() {
use editor && setup-wxwidgets
python-any-r1_pkg_setup
+ rust_pkg_setup
}
src_unpack() {
diff --git a/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0-r1.ebuild b/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0-r1.ebuild
new file mode 100644
index 000000000000..f296653e14c9
--- /dev/null
+++ b/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0-r1.ebuild
@@ -0,0 +1,278 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.17.0
+ adler@1.0.2
+ ahash@0.7.6
+ aho-corasick@0.7.18
+ ansi_term@0.11.0
+ anyhow@1.0.69
+ ascii@0.9.3
+ atty@0.2.14
+ autocfg@1.1.0
+ backtrace@0.3.65
+ base64@0.13.1
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ bitflags@1.3.2
+ block-buffer@0.10.3
+ bytecount@0.6.3
+ byteorder@1.4.3
+ bytes@1.4.0
+ caseless@0.2.1
+ cbindgen@0.20.0
+ cc@1.0.73
+ cesu8@1.1.0
+ cfg-if@1.0.0
+ clap@2.33.4
+ combine@3.8.1
+ combine@4.6.4
+ crossbeam-channel@0.5.4
+ crossbeam-deque@0.8.1
+ crossbeam-epoch@0.9.8
+ crossbeam-utils@0.8.8
+ crypto-common@0.1.6
+ cty@0.2.2
+ deunicode@0.4.3
+ digest@0.10.6
+ dirs@4.0.0
+ dirs-sys@0.3.7
+ dunce@1.0.2
+ either@1.6.1
+ error-chain@0.12.4
+ fancy-regex@0.8.0
+ fastrand@1.7.0
+ form_urlencoded@1.1.0
+ fraction@0.10.0
+ generic-array@0.14.5
+ getopts@0.2.21
+ getrandom@0.2.6
+ gimli@0.26.1
+ hashbrown@0.12.3
+ heck@0.3.3
+ hermit-abi@0.1.19
+ hex@0.4.3
+ idna@0.3.0
+ indexmap@1.9.2
+ instant@0.1.12
+ iso8601@0.4.2
+ itoa@1.0.1
+ jni@0.14.0
+ jni@0.19.0
+ jni-sys@0.3.0
+ json_comments@0.2.1
+ jsonschema@0.16.0
+ lazy_static@1.4.0
+ libc@0.2.124
+ lock_api@0.4.9
+ log@0.4.16
+ lru@0.8.1
+ md-5@0.10.5
+ memchr@2.4.1
+ memoffset@0.6.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.5.1
+ ndk@0.7.0
+ ndk-sys@0.4.1+23.1.7779620
+ nom@7.1.3
+ num@0.2.1
+ num-bigint@0.2.6
+ num-cmp@0.1.0
+ num-complex@0.2.4
+ num-integer@0.1.45
+ num-iter@0.1.43
+ num-rational@0.2.4
+ num-traits@0.2.15
+ num_cpus@1.13.1
+ num_enum@0.5.7
+ num_enum_derive@0.5.7
+ num_threads@0.1.6
+ object@0.28.3
+ once_cell@1.10.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.7
+ percent-encoding@2.2.0
+ proc-macro-crate@1.1.3
+ proc-macro2@1.0.51
+ quote@1.0.18
+ raw-window-handle@0.5.0
+ rayon@1.6.1
+ rayon-core@1.10.2
+ redox_syscall@0.2.13
+ redox_users@0.4.3
+ regex@1.7.1
+ regex-syntax@0.6.28
+ remove_dir_all@0.5.3
+ rustc-demangle@0.1.21
+ ryu@1.0.9
+ same-file@1.0.6
+ scopeguard@1.1.0
+ send_wrapper@0.6.0
+ serde@1.0.152
+ serde_derive@1.0.152
+ serde_json@1.0.93
+ serde_yaml@0.9.17
+ simplelog@0.12.0
+ slug@0.1.4
+ smallvec@1.10.0
+ strsim@0.8.0
+ syn@1.0.107
+ tempfile@3.3.0
+ termcolor@1.1.3
+ textwrap@0.11.0
+ thiserror@1.0.30
+ thiserror-impl@1.0.30
+ time@0.3.15
+ time-macros@0.2.4
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ toml@0.5.9
+ typenum@1.15.0
+ unicode-bidi@0.3.10
+ unicode-ident@1.0.6
+ unicode-normalization@0.1.19
+ unicode-segmentation@1.10.1
+ unicode-width@0.1.9
+ unreachable@1.0.0
+ unsafe-libyaml@0.2.5
+ url@2.3.1
+ uuid@0.8.2
+ vec_map@0.8.2
+ version_check@0.9.4
+ void@1.0.2
+ walkdir@2.3.2
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.45.0
+ windows-targets@0.42.1
+ windows_aarch64_gnullvm@0.42.1
+ windows_aarch64_msvc@0.42.1
+ windows_i686_gnu@0.42.1
+ windows_i686_msvc@0.42.1
+ windows_x86_64_gnu@0.42.1
+ windows_x86_64_gnullvm@0.42.1
+ windows_x86_64_msvc@0.42.1
+"
+
+# See dependencies/lib-lua/CMakeLists.txt
+LUA_COMPAT=( lua5-3 )
+
+# proc_macro-span_shrink; update proc-macro2 crate
+RUST_MAX_VER="1.71.1"
+
+inherit cargo cmake flag-o-matic lua-single xdg
+
+DESCRIPTION="An improved, cross-platform, stable Jagged Alliance 2 runtime"
+HOMEPAGE="https://github.com/ja2-stracciatella/"
+SRC_URI="
+ https://github.com/ja2-stracciatella/ja2-stracciatella/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ editor? ( https://github.com/ja2-stracciatella/free-ja2-resources/releases/download/v1/editor.slf -> ${P}-editor.slf )
+"
+SRC_URI+=" $(cargo_crate_uris ${CARGO_CRATES_URIS})"
+
+LICENSE="public-domain SFI-SCLA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="cdinstall editor ru-gold test"
+# ./ja2 -unittest can't find save files
+RESTRICT="!test? ( test ) test"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+DEPEND="
+ ${LUA_DEPS}
+ >=dev-cpp/magic_enum-0.9.5
+ >=dev-cpp/sol2-3.3.0
+ >=dev-cpp/string-theory-3.1
+ >=dev-games/libsmacker-1.1.1
+ >=dev-libs/miniaudio-0.11.11
+ >=dev-libs/rapidjson-1.1.0
+ media-libs/libsdl2[X,sound,video]
+ >=x11-libs/fltk-1.3.5[opengl]
+"
+RDEPEND="
+ ${DEPEND}
+ cdinstall? ( games-strategy/ja2-stracciatella-data )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.20.0-lua-cmake.patch
+)
+
+pkg_setup() {
+ lua-single_pkg_setup
+ rust_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+}
+
+src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/916965
+ # https://github.com/ja2-stracciatella/ja2-stracciatella/issues/1963
+ filter-lto
+
+ local mycmakeargs=(
+ -DUSE_SCCACHE=OFF
+
+ -DLOCAL_GTEST_LIB=OFF
+ -DLOCAL_FLTK_LIB=OFF
+
+ -DLOCAL_LUA_LIB=OFF
+ -DLUA_VERSION="${ELUA#lua}"
+
+ -DLOCAL_MAGICENUM_LIB=OFF
+ -DLOCAL_MINIAUDIO_LIB=OFF
+ -DLOCAL_RAPIDJSON_LIB=OFF
+ -DLOCAL_SDL_LIB=OFF
+ -DLOCAL_SOL_LIB=OFF
+ -DLOCAL_STRING_THEORY_LIB=OFF
+
+ -DWITH_MAGICENUM=OFF
+ -DWITH_RUST_BINARIES=OFF
+ -DWITH_UNITTESTS=$(usex test)
+
+ -DBUILD_LAUNCHER=OFF
+
+ -DINSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)"
+ -DEXTRA_DATA_DIR="${EPREFIX}/usr/share/ja2"
+ -DMINIAUDIO_INCLUDE_DIR="${EPREFIX}/usr/include/miniaudio"
+ -DMAGICENUM_INCLUDE_DIR="${EPREFIX}/usr/include"
+ )
+
+ cargo_gen_config
+ cmake_src_configure
+}
+
+src_install() {
+ if use editor; then
+ insinto /usr/share/ja2
+ doins "${DISTDIR}/${P}-editor.slf"
+ dosym "${P}-editor.slf" "/usr/share/ja2/editor.slf"
+ fi
+
+ cmake_src_install
+}
+
+src_test() {
+ "${BUILD_DIR}"/ja2 -unittests || die
+}
+
+pkg_postinst() {
+ if ! use cdinstall ; then
+ elog "You need to copy all files from the Data directory of"
+ elog "Jagged Alliance 2 installation to"
+ elog "e.g. /opt/ja2/data and set game_dir in .ja2/ja2.json"
+ elog "accordingly."
+ elog "Make sure the filenames are lowercase."
+ fi
+
+ xdg_pkg_postinst
+}
diff --git a/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0.ebuild b/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0.ebuild
deleted file mode 100644
index 52c5e077966c..000000000000
--- a/games-strategy/ja2-stracciatella/ja2-stracciatella-0.21.0.ebuild
+++ /dev/null
@@ -1,271 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-addr2line@0.17.0
-adler@1.0.2
-ahash@0.7.6
-aho-corasick@0.7.18
-ansi_term@0.11.0
-anyhow@1.0.69
-ascii@0.9.3
-atty@0.2.14
-autocfg@1.1.0
-backtrace@0.3.65
-base64@0.13.1
-bit-set@0.5.3
-bit-vec@0.6.3
-bitflags@1.3.2
-block-buffer@0.10.3
-bytecount@0.6.3
-byteorder@1.4.3
-bytes@1.4.0
-caseless@0.2.1
-cbindgen@0.20.0
-cc@1.0.73
-cesu8@1.1.0
-cfg-if@1.0.0
-clap@2.33.4
-combine@3.8.1
-combine@4.6.4
-crossbeam-channel@0.5.4
-crossbeam-deque@0.8.1
-crossbeam-epoch@0.9.8
-crossbeam-utils@0.8.8
-crypto-common@0.1.6
-cty@0.2.2
-deunicode@0.4.3
-digest@0.10.6
-dirs@4.0.0
-dirs-sys@0.3.7
-dunce@1.0.2
-either@1.6.1
-error-chain@0.12.4
-fancy-regex@0.8.0
-fastrand@1.7.0
-form_urlencoded@1.1.0
-fraction@0.10.0
-generic-array@0.14.5
-getopts@0.2.21
-getrandom@0.2.6
-gimli@0.26.1
-hashbrown@0.12.3
-heck@0.3.3
-hermit-abi@0.1.19
-hex@0.4.3
-idna@0.3.0
-indexmap@1.9.2
-instant@0.1.12
-iso8601@0.4.2
-itoa@1.0.1
-jni@0.14.0
-jni@0.19.0
-jni-sys@0.3.0
-json_comments@0.2.1
-jsonschema@0.16.0
-lazy_static@1.4.0
-libc@0.2.124
-lock_api@0.4.9
-log@0.4.16
-lru@0.8.1
-md-5@0.10.5
-memchr@2.4.1
-memoffset@0.6.5
-minimal-lexical@0.2.1
-miniz_oxide@0.5.1
-ndk@0.7.0
-ndk-sys@0.4.1+23.1.7779620
-nom@7.1.3
-num@0.2.1
-num-bigint@0.2.6
-num-cmp@0.1.0
-num-complex@0.2.4
-num-integer@0.1.45
-num-iter@0.1.43
-num-rational@0.2.4
-num-traits@0.2.15
-num_cpus@1.13.1
-num_enum@0.5.7
-num_enum_derive@0.5.7
-num_threads@0.1.6
-object@0.28.3
-once_cell@1.10.0
-parking_lot@0.12.1
-parking_lot_core@0.9.7
-percent-encoding@2.2.0
-proc-macro-crate@1.1.3
-proc-macro2@1.0.51
-quote@1.0.18
-raw-window-handle@0.5.0
-rayon@1.6.1
-rayon-core@1.10.2
-redox_syscall@0.2.13
-redox_users@0.4.3
-regex@1.7.1
-regex-syntax@0.6.28
-remove_dir_all@0.5.3
-rustc-demangle@0.1.21
-ryu@1.0.9
-same-file@1.0.6
-scopeguard@1.1.0
-send_wrapper@0.6.0
-serde@1.0.152
-serde_derive@1.0.152
-serde_json@1.0.93
-serde_yaml@0.9.17
-simplelog@0.12.0
-slug@0.1.4
-smallvec@1.10.0
-strsim@0.8.0
-syn@1.0.107
-tempfile@3.3.0
-termcolor@1.1.3
-textwrap@0.11.0
-thiserror@1.0.30
-thiserror-impl@1.0.30
-time@0.3.15
-time-macros@0.2.4
-tinyvec@1.6.0
-tinyvec_macros@0.1.1
-toml@0.5.9
-typenum@1.15.0
-unicode-bidi@0.3.10
-unicode-ident@1.0.6
-unicode-normalization@0.1.19
-unicode-segmentation@1.10.1
-unicode-width@0.1.9
-unreachable@1.0.0
-unsafe-libyaml@0.2.5
-url@2.3.1
-uuid@0.8.2
-vec_map@0.8.2
-version_check@0.9.4
-void@1.0.2
-walkdir@2.3.2
-wasi@0.10.2+wasi-snapshot-preview1
-winapi@0.3.9
-winapi-i686-pc-windows-gnu@0.4.0
-winapi-util@0.1.5
-winapi-x86_64-pc-windows-gnu@0.4.0
-windows-sys@0.45.0
-windows-targets@0.42.1
-windows_aarch64_gnullvm@0.42.1
-windows_aarch64_msvc@0.42.1
-windows_i686_gnu@0.42.1
-windows_i686_msvc@0.42.1
-windows_x86_64_gnu@0.42.1
-windows_x86_64_gnullvm@0.42.1
-windows_x86_64_msvc@0.42.1
-"
-
-# See dependencies/lib-lua/CMakeLists.txt
-LUA_COMPAT=( lua5-3 )
-
-inherit cargo cmake flag-o-matic lua-single xdg
-
-DESCRIPTION="An improved, cross-platform, stable Jagged Alliance 2 runtime"
-HOMEPAGE="https://github.com/ja2-stracciatella/"
-SRC_URI="
- https://github.com/ja2-stracciatella/ja2-stracciatella/archive/v${PV}.tar.gz -> ${P}.tar.gz
- editor? ( https://github.com/ja2-stracciatella/free-ja2-resources/releases/download/v1/editor.slf -> ${P}-editor.slf )
-"
-SRC_URI+=" $(cargo_crate_uris ${CARGO_CRATES_URIS})"
-
-LICENSE="public-domain SFI-SCLA"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-IUSE="cdinstall editor ru-gold test"
-# ./ja2 -unittest can't find save files
-RESTRICT="!test? ( test ) test"
-REQUIRED_USE="${LUA_REQUIRED_USE}"
-
-DEPEND="
- ${LUA_DEPS}
- >=dev-cpp/magic_enum-0.9.5
- >=dev-cpp/sol2-3.3.0
- >=dev-cpp/string-theory-3.1
- >=dev-games/libsmacker-1.1.1
- >=dev-libs/miniaudio-0.11.11
- >=dev-libs/rapidjson-1.1.0
- media-libs/libsdl2[X,sound,video]
- >=x11-libs/fltk-1.3.5[opengl]
- >=virtual/rust-1.40.0
-"
-RDEPEND="
- ${DEPEND}
- cdinstall? ( games-strategy/ja2-stracciatella-data )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.20.0-lua-cmake.patch
-)
-
-src_prepare() {
- cmake_src_prepare
-}
-
-src_configure() {
- # -Werror=odr
- # https://bugs.gentoo.org/916965
- # https://github.com/ja2-stracciatella/ja2-stracciatella/issues/1963
- filter-lto
-
- local mycmakeargs=(
- -DUSE_SCCACHE=OFF
-
- -DLOCAL_GTEST_LIB=OFF
- -DLOCAL_FLTK_LIB=OFF
-
- -DLOCAL_LUA_LIB=OFF
- -DLUA_VERSION="${ELUA#lua}"
-
- -DLOCAL_MAGICENUM_LIB=OFF
- -DLOCAL_MINIAUDIO_LIB=OFF
- -DLOCAL_RAPIDJSON_LIB=OFF
- -DLOCAL_SDL_LIB=OFF
- -DLOCAL_SOL_LIB=OFF
- -DLOCAL_STRING_THEORY_LIB=OFF
-
- -DWITH_MAGICENUM=OFF
- -DWITH_RUST_BINARIES=OFF
- -DWITH_UNITTESTS=$(usex test)
-
- -DBUILD_LAUNCHER=OFF
-
- -DINSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)"
- -DEXTRA_DATA_DIR="${EPREFIX}/usr/share/ja2"
- -DMINIAUDIO_INCLUDE_DIR="${EPREFIX}/usr/include/miniaudio"
- -DMAGICENUM_INCLUDE_DIR="${EPREFIX}/usr/include"
- )
-
- cargo_gen_config
- cmake_src_configure
-}
-
-src_install() {
- if use editor; then
- insinto /usr/share/ja2
- doins "${DISTDIR}/${P}-editor.slf"
- dosym "${P}-editor.slf" "/usr/share/ja2/editor.slf"
- fi
-
- cmake_src_install
-}
-
-src_test() {
- "${BUILD_DIR}"/ja2 -unittests || die
-}
-
-pkg_postinst() {
- if ! use cdinstall ; then
- elog "You need to copy all files from the Data directory of"
- elog "Jagged Alliance 2 installation to"
- elog "e.g. /opt/ja2/data and set game_dir in .ja2/ja2.json"
- elog "accordingly."
- elog "Make sure the filenames are lowercase."
- fi
-
- xdg_pkg_postinst
-}
diff --git a/gnome-base/librsvg/librsvg-2.57.3.ebuild b/gnome-base/librsvg/librsvg-2.57.3-r1.ebuild
index f58cadb63b5c..f6643f2a0d2d 100644
--- a/gnome-base/librsvg/librsvg-2.57.3.ebuild
+++ b/gnome-base/librsvg/librsvg-2.57.3-r1.ebuild
@@ -277,7 +277,10 @@ CRATES="
yeslogic-fontconfig-sys@4.0.1
"
-inherit cargo gnome2 multilib-minimal python-any-r1 rust-toolchain vala
+RUST_MAX_VER="1.79.0"
+RUST_USEDEP='${MULTILIB_USEDEP}'
+
+inherit multilib-minimal cargo gnome2 python-any-r1 rust-toolchain vala
DESCRIPTION="Scalable Vector Graphics (SVG) rendering library"
HOMEPAGE="https://wiki.gnome.org/Projects/LibRsvg https://gitlab.gnome.org/GNOME/librsvg"
@@ -312,7 +315,6 @@ RDEPEND="
"
DEPEND="${RDEPEND}"
BDEPEND="
- >=virtual/rust-1.70.0[${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
diff --git a/gnome-base/librsvg/librsvg-2.58.2.ebuild b/gnome-base/librsvg/librsvg-2.58.2-r1.ebuild
index fadc212ccc81..68c84dd678aa 100644
--- a/gnome-base/librsvg/librsvg-2.58.2.ebuild
+++ b/gnome-base/librsvg/librsvg-2.58.2-r1.ebuild
@@ -288,7 +288,11 @@ CRATES="
zune-inflate@0.2.54
"
-inherit cargo gnome2 multilib-minimal python-any-r1 rust-toolchain vala
+RUST_MAX_VER="1.79.0"
+RUST_MIN_VER="1.71.1"
+RUST_USEDEP='${MULTILIB_USEDEP}'
+
+inherit multilib-minimal cargo gnome2 python-any-r1 rust-toolchain vala
DESCRIPTION="Scalable Vector Graphics (SVG) rendering library"
HOMEPAGE="https://wiki.gnome.org/Projects/LibRsvg https://gitlab.gnome.org/GNOME/librsvg"
@@ -323,7 +327,6 @@ RDEPEND="
"
DEPEND="${RDEPEND}"
BDEPEND="
- >=virtual/rust-1.70.0[${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
@@ -341,6 +344,11 @@ QA_FLAGS_IGNORED="
usr/lib.*/librsvg.*
"
+pkg_setup() {
+ rust_pkg_setup
+ python-any-r1_pkg_setup
+}
+
src_prepare() {
use vala && vala_setup
gnome2_src_prepare
diff --git a/gui-apps/railway/railway-2.7.0.ebuild b/gui-apps/railway/railway-2.7.0-r1.ebuild
index 7f1010dba14b..601860ec2028 100644
--- a/gui-apps/railway/railway-2.7.0.ebuild
+++ b/gui-apps/railway/railway-2.7.0-r1.ebuild
@@ -3,8 +3,6 @@
EAPI=8
-inherit gnome2-utils xdg-utils
-
CRATES="
addr2line@0.22.0
adler@1.0.2
@@ -216,7 +214,7 @@ CRATES="
winnow@0.6.14
"
-inherit cargo meson
+inherit cargo gnome2-utils meson xdg-utils
DESCRIPTION="Travel with all your train information in one place"
HOMEPAGE="
diff --git a/gui-apps/tuigreet/tuigreet-0.8.0-r1.ebuild b/gui-apps/tuigreet/tuigreet-0.8.0-r1.ebuild
deleted file mode 100644
index 9e4917b0483e..000000000000
--- a/gui-apps/tuigreet/tuigreet-0.8.0-r1.ebuild
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- ahash-0.7.6
- aho-corasick-0.7.18
- async-trait-0.1.53
- autocfg-1.1.0
- bitflags-1.3.2
- block-0.1.6
- block-buffer-0.9.0
- bytes-1.1.0
- cassowary-0.3.0
- cfg-if-1.0.0
- chrono-0.4.19
- cpufeatures-0.2.2
- crossterm-0.23.2
- crossterm_winapi-0.9.0
- dashmap-5.3.3
- digest-0.9.0
- dlv-list-0.3.0
- find-crate-0.6.3
- fluent-0.16.0
- fluent-bundle-0.15.2
- fluent-langneg-0.13.0
- fluent-syntax-0.11.0
- futures-0.3.21
- futures-channel-0.3.21
- futures-core-0.3.21
- futures-executor-0.3.21
- futures-io-0.3.21
- futures-macro-0.3.21
- futures-sink-0.3.21
- futures-task-0.3.21
- futures-util-0.3.21
- generic-array-0.14.5
- getopts-0.2.21
- getrandom-0.2.6
- greetd_ipc-0.8.0
- hashbrown-0.12.1
- hermit-abi-0.1.19
- i18n-config-0.4.2
- i18n-embed-0.13.4
- i18n-embed-fl-0.6.4
- i18n-embed-impl-0.8.0
- intl-memoizer-0.5.1
- intl_pluralrules-7.0.1
- itoa-1.0.1
- lazy_static-1.4.0
- libc-0.2.125
- locale_config-0.3.0
- lock_api-0.4.7
- log-0.4.17
- malloc_buf-0.0.6
- memchr-2.5.0
- memoffset-0.6.5
- mio-0.8.3
- nix-0.24.1
- num-integer-0.1.45
- num-traits-0.2.15
- num_cpus-1.13.1
- objc-0.2.7
- objc-foundation-0.1.1
- objc_id-0.1.1
- once_cell-1.10.0
- opaque-debug-0.3.0
- ordered-multimap-0.4.3
- parking_lot-0.12.0
- parking_lot_core-0.9.3
- pin-project-lite-0.2.9
- pin-utils-0.1.0
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.38
- pure-rust-locales-0.5.6
- quote-1.0.18
- redox_syscall-0.2.13
- regex-1.5.5
- regex-syntax-0.6.25
- rust-embed-6.4.0
- rust-embed-impl-6.2.0
- rust-embed-utils-7.2.0
- rust-ini-0.18.0
- rustc-hash-1.1.0
- ryu-1.0.9
- same-file-1.0.6
- scopeguard-1.1.0
- self_cell-0.10.2
- serde-1.0.137
- serde_derive-1.0.137
- serde_json-1.0.81
- sha2-0.9.9
- signal-hook-0.3.13
- signal-hook-mio-0.2.3
- signal-hook-registry-1.4.0
- slab-0.4.6
- smallvec-1.8.0
- smart-default-0.6.0
- smawk-0.3.1
- socket2-0.4.5
- strsim-0.10.0
- syn-1.0.92
- textwrap-0.15.0
- thiserror-1.0.31
- thiserror-impl-1.0.31
- time-0.1.43
- tinystr-0.3.4
- tokio-1.18.2
- tokio-macros-1.7.0
- toml-0.5.9
- tui-0.18.0
- type-map-0.4.0
- typenum-1.15.0
- unic-langid-0.9.0
- unic-langid-impl-0.9.0
- unicode-linebreak-0.1.2
- unicode-segmentation-1.9.0
- unicode-width-0.1.9
- unicode-xid-0.2.3
- version_check-0.9.4
- walkdir-2.3.2
- wasi-0.10.2+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.36.1
- windows_i686_gnu-0.36.1
- windows_i686_msvc-0.36.1
- windows_x86_64_gnu-0.36.1
- windows_x86_64_msvc-0.36.1
- zeroize-1.5.5
-"
-
-inherit cargo
-
-DESCRIPTION="TUI greeter for greetd login manager"
-HOMEPAGE="https://github.com/apognu/tuigreet"
-
-SRC_URI="https://github.com/apognu/tuigreet/archive/${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
-
-QA_FLAGS_IGNORED="usr/bin/tuigreet"
-
-LICENSE="Apache-2.0 Boost-1.0 GPL-3 MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
-
-RDEPEND="acct-group/greetd
- acct-user/greetd
- gui-libs/greetd"
-DEPEND="${RDEPEND}"
-
-src_install() {
- dodir /var/cache/${PN}
- fowners greetd:greetd /var/cache/${PN}
- keepdir /var/cache/${PN}
-
- cargo_src_install
-}
diff --git a/gui-apps/tuigreet/tuigreet-0.8.0-r2.ebuild b/gui-apps/tuigreet/tuigreet-0.8.0-r2.ebuild
new file mode 100644
index 000000000000..ef7c6cdeb8d3
--- /dev/null
+++ b/gui-apps/tuigreet/tuigreet-0.8.0-r2.ebuild
@@ -0,0 +1,164 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ahash@0.7.6
+ aho-corasick@0.7.18
+ async-trait@0.1.53
+ autocfg@1.1.0
+ bitflags@1.3.2
+ block@0.1.6
+ block-buffer@0.9.0
+ bytes@1.1.0
+ cassowary@0.3.0
+ cfg-if@1.0.0
+ chrono@0.4.19
+ cpufeatures@0.2.2
+ crossterm@0.23.2
+ crossterm_winapi@0.9.0
+ dashmap@5.3.3
+ digest@0.9.0
+ dlv-list@0.3.0
+ find-crate@0.6.3
+ fluent@0.16.0
+ fluent-bundle@0.15.2
+ fluent-langneg@0.13.0
+ fluent-syntax@0.11.0
+ futures@0.3.21
+ futures-channel@0.3.21
+ futures-core@0.3.21
+ futures-executor@0.3.21
+ futures-io@0.3.21
+ futures-macro@0.3.21
+ futures-sink@0.3.21
+ futures-task@0.3.21
+ futures-util@0.3.21
+ generic-array@0.14.5
+ getopts@0.2.21
+ getrandom@0.2.6
+ greetd_ipc@0.8.0
+ hashbrown@0.12.1
+ hermit-abi@0.1.19
+ i18n-config@0.4.2
+ i18n-embed@0.13.4
+ i18n-embed-fl@0.6.4
+ i18n-embed-impl@0.8.0
+ intl-memoizer@0.5.1
+ intl_pluralrules@7.0.1
+ itoa@1.0.1
+ lazy_static@1.4.0
+ libc@0.2.125
+ locale_config@0.3.0
+ lock_api@0.4.7
+ log@0.4.17
+ malloc_buf@0.0.6
+ memchr@2.5.0
+ memoffset@0.6.5
+ mio@0.8.3
+ nix@0.24.1
+ num-integer@0.1.45
+ num-traits@0.2.15
+ num_cpus@1.13.1
+ objc@0.2.7
+ objc-foundation@0.1.1
+ objc_id@0.1.1
+ once_cell@1.10.0
+ opaque-debug@0.3.0
+ ordered-multimap@0.4.3
+ parking_lot@0.12.0
+ parking_lot_core@0.9.3
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.38
+ pure-rust-locales@0.5.6
+ quote@1.0.18
+ redox_syscall@0.2.13
+ regex@1.5.5
+ regex-syntax@0.6.25
+ rust-embed@6.4.0
+ rust-embed-impl@6.2.0
+ rust-embed-utils@7.2.0
+ rust-ini@0.18.0
+ rustc-hash@1.1.0
+ ryu@1.0.9
+ same-file@1.0.6
+ scopeguard@1.1.0
+ self_cell@0.10.2
+ serde@1.0.137
+ serde_derive@1.0.137
+ serde_json@1.0.81
+ sha2@0.9.9
+ signal-hook@0.3.13
+ signal-hook-mio@0.2.3
+ signal-hook-registry@1.4.0
+ slab@0.4.6
+ smallvec@1.8.0
+ smart-default@0.6.0
+ smawk@0.3.1
+ socket2@0.4.5
+ strsim@0.10.0
+ syn@1.0.92
+ textwrap@0.15.0
+ thiserror@1.0.31
+ thiserror-impl@1.0.31
+ time@0.1.43
+ tinystr@0.3.4
+ tokio@1.18.2
+ tokio-macros@1.7.0
+ toml@0.5.9
+ tui@0.18.0
+ type-map@0.4.0
+ typenum@1.15.0
+ unic-langid@0.9.0
+ unic-langid-impl@0.9.0
+ unicode-linebreak@0.1.2
+ unicode-segmentation@1.9.0
+ unicode-width@0.1.9
+ unicode-xid@0.2.3
+ version_check@0.9.4
+ walkdir@2.3.2
+ wasi@0.10.2+wasi-snapshot-preview1
+ wasi@0.11.0+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.36.1
+ windows_aarch64_msvc@0.36.1
+ windows_i686_gnu@0.36.1
+ windows_i686_msvc@0.36.1
+ windows_x86_64_gnu@0.36.1
+ windows_x86_64_msvc@0.36.1
+ zeroize@1.5.5
+"
+
+inherit cargo
+
+DESCRIPTION="TUI greeter for greetd login manager"
+HOMEPAGE="https://github.com/apognu/tuigreet"
+
+SRC_URI="https://github.com/apognu/tuigreet/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+
+QA_FLAGS_IGNORED="usr/bin/tuigreet"
+
+LICENSE="Apache-2.0 Boost-1.0 GPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+RDEPEND="acct-group/greetd
+ acct-user/greetd
+ gui-libs/greetd"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ dodir /var/cache/${PN}
+ fowners greetd:greetd /var/cache/${PN}
+ keepdir /var/cache/${PN}
+
+ cargo_src_install
+}
diff --git a/gui-apps/tuigreet/tuigreet-0.9.1.ebuild b/gui-apps/tuigreet/tuigreet-0.9.1-r1.ebuild
index 2cbd0920f10e..2cbd0920f10e 100644
--- a/gui-apps/tuigreet/tuigreet-0.9.1.ebuild
+++ b/gui-apps/tuigreet/tuigreet-0.9.1-r1.ebuild
diff --git a/gui-libs/greetd/greetd-0.10.0.ebuild b/gui-libs/greetd/greetd-0.10.0-r1.ebuild
index 8a47ffe77707..8a47ffe77707 100644
--- a/gui-libs/greetd/greetd-0.10.0.ebuild
+++ b/gui-libs/greetd/greetd-0.10.0-r1.ebuild
diff --git a/gui-libs/greetd/greetd-0.10.3.ebuild b/gui-libs/greetd/greetd-0.10.3-r1.ebuild
index 30f9a98e47b8..30f9a98e47b8 100644
--- a/gui-libs/greetd/greetd-0.10.3.ebuild
+++ b/gui-libs/greetd/greetd-0.10.3-r1.ebuild
diff --git a/mail-client/thunderbird/thunderbird-128.3.1.ebuild b/mail-client/thunderbird/thunderbird-128.3.1-r1.ebuild
index 898f5c3f9182..ab065c036d7e 100644
--- a/mail-client/thunderbird/thunderbird-128.3.1.ebuild
+++ b/mail-client/thunderbird/thunderbird-128.3.1-r1.ebuild
@@ -10,6 +10,9 @@ LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -39,7 +42,10 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -53,14 +59,11 @@ PATCH_URIS=(
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
-DESCRIPTION="Thunderbird Mail Client"
-HOMEPAGE="https://www.thunderbird.net/"
-
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-
-SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy lto pgo pulseaudio sndio selinux"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
@@ -85,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
)
')
@@ -95,7 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
!elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
@@ -190,8 +191,6 @@ DEPEND="${COMMON_DEPEND}
x11-libs/libSM
)"
-S="${WORKDIR}/${PN}-${PV%_*}"
-
llvm_check_deps() {
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -204,11 +203,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -420,6 +414,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/mail-client/thunderbird/thunderbird-128.3.3.ebuild b/mail-client/thunderbird/thunderbird-128.3.3-r1.ebuild
index 2bfc08ccbbce..bfe021469cbd 100644
--- a/mail-client/thunderbird/thunderbird-128.3.3.ebuild
+++ b/mail-client/thunderbird/thunderbird-128.3.3-r1.ebuild
@@ -10,6 +10,9 @@ LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -39,7 +42,10 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -53,14 +59,11 @@ PATCH_URIS=(
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
-DESCRIPTION="Thunderbird Mail Client"
-HOMEPAGE="https://www.thunderbird.net/"
-
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-
-SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
IUSE="+clang +dbus debug eme-free hardened hwaccel jack libproxy lto pgo pulseaudio sndio selinux"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
@@ -85,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
)
')
@@ -95,7 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
!elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
@@ -190,8 +191,6 @@ DEPEND="${COMMON_DEPEND}
x11-libs/libSM
)"
-S="${WORKDIR}/${PN}-${PV%_*}"
-
llvm_check_deps() {
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -204,11 +203,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -420,6 +414,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/mail-client/thunderbird/thunderbird-128.4.0.ebuild b/mail-client/thunderbird/thunderbird-128.4.0-r1.ebuild
index ad9e924d2f96..e1d9aa0ef03a 100644
--- a/mail-client/thunderbird/thunderbird-128.4.0.ebuild
+++ b/mail-client/thunderbird/thunderbird-128.4.0-r1.ebuild
@@ -10,6 +10,9 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -39,7 +42,10 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -53,14 +59,11 @@ PATCH_URIS=(
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
-DESCRIPTION="Thunderbird Mail Client"
-HOMEPAGE="https://www.thunderbird.net/"
-
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-
-SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
IUSE="clang +dbus debug eme-free hardened hwaccel jack libproxy lto pgo pulseaudio sndio selinux"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
@@ -85,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
)
')
@@ -95,7 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
!elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
@@ -190,8 +191,6 @@ DEPEND="${COMMON_DEPEND}
x11-libs/libSM
)"
-S="${WORKDIR}/${PN}-${PV%_*}"
-
llvm_check_deps() {
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -204,11 +203,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -420,6 +414,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/mail-client/thunderbird/thunderbird-128.4.2.ebuild b/mail-client/thunderbird/thunderbird-128.4.2-r1.ebuild
index bb3afcf18575..89b4020b4939 100644
--- a/mail-client/thunderbird/thunderbird-128.4.2.ebuild
+++ b/mail-client/thunderbird/thunderbird-128.4.2-r1.ebuild
@@ -10,6 +10,9 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_MIN_VER="1.77.1"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -39,7 +42,10 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust toolchain-funcs virtualx xdg
+
+DESCRIPTION="Thunderbird Mail Client"
+HOMEPAGE="https://www.thunderbird.net/"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -53,14 +59,11 @@ PATCH_URIS=(
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
-DESCRIPTION="Thunderbird Mail Client"
-HOMEPAGE="https://www.thunderbird.net/"
-
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-
-SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
IUSE="clang +dbus debug eme-free hardened hwaccel jack libproxy lto pgo pulseaudio sndio selinux"
IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx"
@@ -85,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
)
')
@@ -95,8 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -190,8 +190,6 @@ DEPEND="${COMMON_DEPEND}
x11-libs/libSM
)"
-S="${WORKDIR}/${PN}-${PV%_*}"
-
llvm_check_deps() {
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
@@ -204,11 +202,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -420,6 +413,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/media-gfx/darktable/darktable-4.6.0.ebuild b/media-gfx/darktable/darktable-4.6.0.ebuild
index 860bbe9e07a7..1271ff136222 100644
--- a/media-gfx/darktable/darktable-4.6.0.ebuild
+++ b/media-gfx/darktable/darktable-4.6.0.ebuild
@@ -47,7 +47,7 @@ RESTRICT="!test? ( test )"
# in BDEPEND. This has not been done *on purpose*, for the following reason:
# - darktable can also be built with sys-devel/clang so we'd have to have that, as an alternative,
# in BDEPEND too
-# - there are at least two darktable dependencies (media-libs/mesa and virtual/rust) which
+# - there are at least two darktable dependencies (media-libs/mesa and dev-lang/rust) which
# by default pull in sys-devel/clang
# - as a result of the above, for most gcc users adding the above to BDEPEND is a no-op
# (and curiously enough, empirical observations suggest current versions of Portage are
diff --git a/media-gfx/darktable/darktable-4.6.1.ebuild b/media-gfx/darktable/darktable-4.6.1.ebuild
index 43f3c82865fb..9bbb75a3f2c2 100644
--- a/media-gfx/darktable/darktable-4.6.1.ebuild
+++ b/media-gfx/darktable/darktable-4.6.1.ebuild
@@ -47,7 +47,7 @@ RESTRICT="!test? ( test )"
# in BDEPEND. This has not been done *on purpose*, for the following reason:
# - darktable can also be built with sys-devel/clang so we'd have to have that, as an alternative,
# in BDEPEND too
-# - there are at least two darktable dependencies (media-libs/mesa and virtual/rust) which
+# - there are at least two darktable dependencies (media-libs/mesa and dev-lang/rust) which
# by default pull in sys-devel/clang
# - as a result of the above, for most gcc users adding the above to BDEPEND is a no-op
# (and curiously enough, empirical observations suggest current versions of Portage are
diff --git a/media-gfx/darktable/darktable-4.8.0.ebuild b/media-gfx/darktable/darktable-4.8.0.ebuild
index b3eeef397175..0fe2792ac25b 100644
--- a/media-gfx/darktable/darktable-4.8.0.ebuild
+++ b/media-gfx/darktable/darktable-4.8.0.ebuild
@@ -47,7 +47,7 @@ RESTRICT="!test? ( test )"
# in BDEPEND. This has not been done *on purpose*, for the following reason:
# - darktable can also be built with sys-devel/clang so we'd have to have that, as an alternative,
# in BDEPEND too
-# - there are at least two darktable dependencies (media-libs/mesa and virtual/rust) which
+# - there are at least two darktable dependencies (media-libs/mesa and dev-lang/rust) which
# by default pull in sys-devel/clang
# - as a result of the above, for most gcc users adding the above to BDEPEND is a no-op
# (and curiously enough, empirical observations suggest current versions of Portage are
diff --git a/media-gfx/fotema/fotema-1.14.2-r1.ebuild b/media-gfx/fotema/fotema-1.14.2-r2.ebuild
index 34219ad68ea2..34219ad68ea2 100644
--- a/media-gfx/fotema/fotema-1.14.2-r1.ebuild
+++ b/media-gfx/fotema/fotema-1.14.2-r2.ebuild
diff --git a/media-gfx/fotema/fotema-1.14.3.ebuild b/media-gfx/fotema/fotema-1.14.3-r1.ebuild
index 34219ad68ea2..34219ad68ea2 100644
--- a/media-gfx/fotema/fotema-1.14.3.ebuild
+++ b/media-gfx/fotema/fotema-1.14.3-r1.ebuild
diff --git a/media-gfx/fotema/fotema-1.14.4.ebuild b/media-gfx/fotema/fotema-1.14.4-r1.ebuild
index 34219ad68ea2..34219ad68ea2 100644
--- a/media-gfx/fotema/fotema-1.14.4.ebuild
+++ b/media-gfx/fotema/fotema-1.14.4-r1.ebuild
diff --git a/media-gfx/libimagequant/libimagequant-4.2.2.ebuild b/media-gfx/libimagequant/libimagequant-4.2.2-r1.ebuild
index 5a96622a9881..33b4d2ef906f 100644
--- a/media-gfx/libimagequant/libimagequant-4.2.2.ebuild
+++ b/media-gfx/libimagequant/libimagequant-4.2.2-r1.ebuild
@@ -57,7 +57,6 @@ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~s390 sparc"
BDEPEND="
>=dev-util/cargo-c-0.9.11
- >=virtual/rust-1.60
"
QA_FLAGS_IGNORED="usr/lib.*/libimagequant.so.*"
diff --git a/media-gfx/libimagequant/libimagequant-4.3.0.ebuild b/media-gfx/libimagequant/libimagequant-4.3.0-r1.ebuild
index 55609484950f..710c7dc0634f 100644
--- a/media-gfx/libimagequant/libimagequant-4.3.0.ebuild
+++ b/media-gfx/libimagequant/libimagequant-4.3.0-r1.ebuild
@@ -23,7 +23,6 @@ KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~s390 sparc"
BDEPEND="
>=dev-util/cargo-c-0.9.14
- >=virtual/rust-1.64
"
QA_FLAGS_IGNORED="usr/lib.*/libimagequant.so.*"
diff --git a/media-gfx/oxipng/oxipng-8.0.0-r1.ebuild b/media-gfx/oxipng/oxipng-8.0.0-r1.ebuild
new file mode 100644
index 000000000000..40831163d730
--- /dev/null
+++ b/media-gfx/oxipng/oxipng-8.0.0-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.5.3-dev
+
+EAPI=8
+
+CRATES="
+ adler@1.0.2
+ adler32@1.2.0
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitvec@1.0.1
+ bytemuck@1.12.3
+ byteorder@1.4.3
+ cc@1.0.78
+ cfg-if@1.0.0
+ clap@3.2.23
+ clap_lex@0.2.4
+ color_quant@1.1.0
+ crc@3.0.0
+ crc-catalog@2.1.0
+ crc32fast@1.3.2
+ crossbeam-channel@0.5.6
+ crossbeam-deque@0.8.2
+ crossbeam-epoch@0.9.13
+ crossbeam-utils@0.8.14
+ either@1.8.0
+ filetime@0.2.19
+ flate2@1.0.25
+ funty@2.0.0
+ glob@0.3.0
+ hashbrown@0.12.3
+ hermit-abi@0.1.19
+ hermit-abi@0.2.6
+ image@0.24.5
+ indexmap@1.9.2
+ iter-read@0.3.1
+ itertools@0.10.5
+ libc@0.2.139
+ libdeflate-sys@0.11.0
+ libdeflater@0.11.0
+ log@0.4.17
+ memoffset@0.7.1
+ miniz_oxide@0.6.2
+ num-integer@0.1.45
+ num-rational@0.4.1
+ num-traits@0.2.15
+ num_cpus@1.15.0
+ once_cell@1.16.0
+ os_str_bytes@6.4.1
+ png@0.17.7
+ radium@0.7.0
+ rayon@1.6.1
+ rayon-core@1.10.1
+ redox_syscall@0.2.16
+ rgb@0.8.34
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ scopeguard@1.1.0
+ semver@1.0.16
+ stderrlog@0.5.4
+ strsim@0.10.0
+ tap@1.0.1
+ termcolor@1.1.3
+ textwrap@0.16.0
+ thread_local@1.1.4
+ typed-arena@2.0.1
+ wild@2.1.0
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.42.0
+ windows_aarch64_gnullvm@0.42.0
+ windows_aarch64_msvc@0.42.0
+ windows_i686_gnu@0.42.0
+ windows_i686_msvc@0.42.0
+ windows_x86_64_gnu@0.42.0
+ windows_x86_64_gnullvm@0.42.0
+ windows_x86_64_msvc@0.42.0
+ wyz@0.5.1
+ zopfli@0.7.1
+"
+
+inherit cargo flag-o-matic
+
+DESCRIPTION="Multithreaded lossless PNG compression optimizer written in Rust"
+HOMEPAGE="https://github.com/shssoichiro/oxipng"
+SRC_URI="https://github.com/shssoichiro/oxipng/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="
+ || ( 0BSD Apache-2.0 MIT )
+ Apache-2.0
+ || ( Apache-2.0 MIT )
+ || ( Apache-2.0 MIT ZLIB )
+ MIT
+ || ( MIT Unlicense )
+ ZLIB
+"
+SLOT="0"
+KEYWORDS="amd64 arm64 ~riscv ~x86"
+
+QA_FLAGS_IGNORED="usr/bin/oxipng"
+
+src_configure() {
+ filter-lto # 860063 file format not recognized with cloudflare-zlib-sys
+}
+
+src_install() {
+ cargo_src_install
+
+ dodoc CHANGELOG.md README.md
+}
diff --git a/media-gfx/oxipng/oxipng-8.0.0.ebuild b/media-gfx/oxipng/oxipng-8.0.0.ebuild
deleted file mode 100644
index c94033fde23f..000000000000
--- a/media-gfx/oxipng/oxipng-8.0.0.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Auto-Generated by cargo-ebuild 0.5.3-dev
-
-EAPI=8
-
-CRATES="
- adler-1.0.2
- adler32-1.2.0
- atty-0.2.14
- autocfg-1.1.0
- bitflags-1.3.2
- bitvec-1.0.1
- bytemuck-1.12.3
- byteorder-1.4.3
- cc-1.0.78
- cfg-if-1.0.0
- clap-3.2.23
- clap_lex-0.2.4
- color_quant-1.1.0
- crc-3.0.0
- crc-catalog-2.1.0
- crc32fast-1.3.2
- crossbeam-channel-0.5.6
- crossbeam-deque-0.8.2
- crossbeam-epoch-0.9.13
- crossbeam-utils-0.8.14
- either-1.8.0
- filetime-0.2.19
- flate2-1.0.25
- funty-2.0.0
- glob-0.3.0
- hashbrown-0.12.3
- hermit-abi-0.1.19
- hermit-abi-0.2.6
- image-0.24.5
- indexmap-1.9.2
- iter-read-0.3.1
- itertools-0.10.5
- libc-0.2.139
- libdeflate-sys-0.11.0
- libdeflater-0.11.0
- log-0.4.17
- memoffset-0.7.1
- miniz_oxide-0.6.2
- num-integer-0.1.45
- num-rational-0.4.1
- num-traits-0.2.15
- num_cpus-1.15.0
- once_cell-1.16.0
- os_str_bytes-6.4.1
- png-0.17.7
- radium-0.7.0
- rayon-1.6.1
- rayon-core-1.10.1
- redox_syscall-0.2.16
- rgb-0.8.34
- rustc-hash-1.1.0
- rustc_version-0.4.0
- scopeguard-1.1.0
- semver-1.0.16
- stderrlog-0.5.4
- strsim-0.10.0
- tap-1.0.1
- termcolor-1.1.3
- textwrap-0.16.0
- thread_local-1.1.4
- typed-arena-2.0.1
- wild-2.1.0
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.42.0
- windows_aarch64_gnullvm-0.42.0
- windows_aarch64_msvc-0.42.0
- windows_i686_gnu-0.42.0
- windows_i686_msvc-0.42.0
- windows_x86_64_gnu-0.42.0
- windows_x86_64_gnullvm-0.42.0
- windows_x86_64_msvc-0.42.0
- wyz-0.5.1
- zopfli-0.7.1
-"
-
-inherit cargo flag-o-matic
-
-DESCRIPTION="Multithreaded lossless PNG compression optimizer written in Rust"
-HOMEPAGE="https://github.com/shssoichiro/oxipng"
-SRC_URI="https://github.com/shssoichiro/oxipng/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-SRC_URI+=" $(cargo_crate_uris ${CRATES})"
-
-LICENSE="
- || ( 0BSD Apache-2.0 MIT )
- Apache-2.0
- || ( Apache-2.0 MIT )
- || ( Apache-2.0 MIT ZLIB )
- MIT
- || ( MIT Unlicense )
- ZLIB
-"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
-
-BDEPEND=">=virtual/rust-1.61.0"
-
-QA_FLAGS_IGNORED="usr/bin/oxipng"
-
-src_configure() {
- filter-lto # 860063 file format not recognized with cloudflare-zlib-sys
-}
-
-src_install() {
- cargo_src_install
-
- dodoc CHANGELOG.md README.md
-}
diff --git a/media-gfx/oxipng/oxipng-9.0.0.ebuild b/media-gfx/oxipng/oxipng-9.0.0-r1.ebuild
index dc57177ddd22..f94d2b560cd1 100644
--- a/media-gfx/oxipng/oxipng-9.0.0.ebuild
+++ b/media-gfx/oxipng/oxipng-9.0.0-r1.ebuild
@@ -109,8 +109,6 @@ LICENSE="
SLOT="0"
KEYWORDS="amd64 ~arm64 ~riscv ~x86"
-BDEPEND=">=virtual/rust-1.66.0"
-
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_install() {
diff --git a/media-gfx/oxipng/oxipng-9.1.2.ebuild b/media-gfx/oxipng/oxipng-9.1.2-r1.ebuild
index 8504fd85f18f..3b199b4f6e39 100644
--- a/media-gfx/oxipng/oxipng-9.1.2.ebuild
+++ b/media-gfx/oxipng/oxipng-9.1.2-r1.ebuild
@@ -90,6 +90,8 @@ CRATES="
zopfli@0.8.0
"
+RUST_MIN_VER="1.74.0"
+
inherit cargo
DESCRIPTION="Multithreaded lossless PNG compression optimizer written in Rust"
@@ -106,8 +108,6 @@ LICENSE="
SLOT="0"
KEYWORDS="amd64 ~arm64 ~riscv ~x86"
-BDEPEND=">=virtual/rust-1.74.0"
-
# rust does not use *FLAGS from make.conf, silence portage warning
# update with proper path to binaries this crate installs, omit leading /
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/media-libs/glycin-loaders/glycin-loaders-1.1.0.ebuild b/media-libs/glycin-loaders/glycin-loaders-1.1.0-r1.ebuild
index 0775282f7108..0775282f7108 100644
--- a/media-libs/glycin-loaders/glycin-loaders-1.1.0.ebuild
+++ b/media-libs/glycin-loaders/glycin-loaders-1.1.0-r1.ebuild
diff --git a/media-libs/glycin-loaders/glycin-loaders-1.1.1.ebuild b/media-libs/glycin-loaders/glycin-loaders-1.1.1-r1.ebuild
index 0775282f7108..0775282f7108 100644
--- a/media-libs/glycin-loaders/glycin-loaders-1.1.1.ebuild
+++ b/media-libs/glycin-loaders/glycin-loaders-1.1.1-r1.ebuild
diff --git a/media-libs/libdovi/libdovi-3.3.1.ebuild b/media-libs/libdovi/libdovi-3.3.1-r1.ebuild
index c8d73ea5f7ba..ec94f2d7d11b 100644
--- a/media-libs/libdovi/libdovi-3.3.1.ebuild
+++ b/media-libs/libdovi/libdovi-3.3.1-r1.ebuild
@@ -89,7 +89,10 @@ CRATES="
windows_x86_64_msvc@0.52.6
wyz@0.5.1
"
-inherit cargo edo multilib-minimal rust-toolchain
+
+RUST_USEDEP='${MULTILIB_USEDEP}'
+
+inherit multilib-minimal cargo edo rust-toolchain
DESCRIPTION="Dolby Vision metadata parsing and writing"
HOMEPAGE="https://github.com/quietvoid/dovi_tool/"
diff --git a/media-libs/libopenraw/libopenraw-0.3.7.ebuild b/media-libs/libopenraw/libopenraw-0.3.7-r1.ebuild
index cbe9f9abf592..4825810f5604 100644
--- a/media-libs/libopenraw/libopenraw-0.3.7.ebuild
+++ b/media-libs/libopenraw/libopenraw-0.3.7-r1.ebuild
@@ -4,6 +4,9 @@
EAPI=8
CRATES=" "
+# for stdsimd
+RUST_MAX_VER=1.77.1
+
inherit autotools cargo gnome2-utils
DESCRIPTION="RAW image formats decoding library"
diff --git a/media-libs/mesa/mesa-24.1.7.ebuild b/media-libs/mesa/mesa-24.1.7-r1.ebuild
index af5ee095a972..5d4171f71288 100644
--- a/media-libs/mesa/mesa-24.1.7.ebuild
+++ b/media-libs/mesa/mesa-24.1.7-r1.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -154,7 +157,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -175,7 +178,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -291,6 +294,10 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-libs/mesa/mesa-24.2.3.ebuild b/media-libs/mesa/mesa-24.2.3-r1.ebuild
index a58a2652340e..d45bd4b23536 100644
--- a/media-libs/mesa/mesa-24.2.3.ebuild
+++ b/media-libs/mesa/mesa-24.2.3-r1.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -156,7 +159,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -178,7 +181,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -295,6 +298,10 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-libs/mesa/mesa-24.2.4.ebuild b/media-libs/mesa/mesa-24.2.4-r1.ebuild
index a58a2652340e..d45bd4b23536 100644
--- a/media-libs/mesa/mesa-24.2.4.ebuild
+++ b/media-libs/mesa/mesa-24.2.4-r1.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -156,7 +159,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -178,7 +181,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -295,6 +298,10 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-libs/mesa/mesa-24.2.5.ebuild b/media-libs/mesa/mesa-24.2.5-r1.ebuild
index a58a2652340e..d45bd4b23536 100644
--- a/media-libs/mesa/mesa-24.2.5.ebuild
+++ b/media-libs/mesa/mesa-24.2.5-r1.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -156,7 +159,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -178,7 +181,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -295,6 +298,10 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-libs/mesa/mesa-24.2.6.ebuild b/media-libs/mesa/mesa-24.2.6-r1.ebuild
index a58a2652340e..d45bd4b23536 100644
--- a/media-libs/mesa/mesa-24.2.6.ebuild
+++ b/media-libs/mesa/mesa-24.2.6-r1.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -156,7 +159,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -178,7 +181,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -295,6 +298,10 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index e6207cf1ea28..f78c0c4a32e4 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -20,6 +20,9 @@ CRATES="
paste@1.0.14
"
+RUST_MIN_VER="1.74.1"
+RUST_OPTIONAL=1
+
inherit cargo
DESCRIPTION="OpenGL-like graphic library for Linux"
@@ -155,7 +158,7 @@ DEPEND="${RDEPEND}
BDEPEND="
${PYTHON_DEPS}
opencl? (
- >=virtual/rust-1.62.0
+ ${RUST_DEPEND}
>=dev-util/bindgen-0.58.0
)
>=dev-build/meson-1.4.1
@@ -177,7 +180,7 @@ BDEPEND="
video_cards_nvk? (
>=dev-util/bindgen-0.68.1
>=dev-util/cbindgen-0.26.0
- >=virtual/rust-1.74.1
+ ${RUST_DEPEND}
)
)
wayland? ( dev-util/wayland-scanner )
@@ -294,6 +297,13 @@ pkg_setup() {
use llvm && llvm-r1_pkg_setup
python-any-r1_pkg_setup
+
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
+ if use opencl || use vulkan; then
+ rust_pkg_setup
+ fi
}
src_prepare() {
diff --git a/media-sound/helvum/helvum-0.4.1-r1.ebuild b/media-sound/helvum/helvum-0.4.1-r1.ebuild
index 62afda3e4583..4105dfcddf13 100644
--- a/media-sound/helvum/helvum-0.4.1-r1.ebuild
+++ b/media-sound/helvum/helvum-0.4.1-r1.ebuild
@@ -108,7 +108,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
-inherit cargo desktop llvm-r1 xdg
+inherit llvm-r1 cargo desktop xdg
DESCRIPTION="A GTK patchbay for pipewire"
HOMEPAGE="https://gitlab.freedesktop.org/pipewire/helvum"
@@ -131,7 +131,6 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=
sys-devel/llvm:${LLVM_SLOT}=
- virtual/rust:0/llvm-${LLVM_SLOT}
')
virtual/pkgconfig
"
@@ -148,6 +147,11 @@ RDEPEND="${DEPEND}"
QA_FLAGS_IGNORED="usr/bin/${PN}"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_install() {
cargo_src_install
diff --git a/media-sound/helvum/helvum-0.5.1-r3.ebuild b/media-sound/helvum/helvum-0.5.1-r3.ebuild
index d43c13272c0f..c82f7a102563 100644
--- a/media-sound/helvum/helvum-0.5.1-r3.ebuild
+++ b/media-sound/helvum/helvum-0.5.1-r3.ebuild
@@ -111,7 +111,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
-inherit cargo desktop llvm-r1 xdg
+inherit llvm-r1 cargo desktop xdg
DESCRIPTION="A GTK patchbay for pipewire"
HOMEPAGE="https://gitlab.freedesktop.org/pipewire/helvum"
@@ -135,7 +135,6 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=
sys-devel/llvm:${LLVM_SLOT}=
- virtual/rust:0/llvm-${LLVM_SLOT}
')
virtual/pkgconfig
"
@@ -153,6 +152,11 @@ RDEPEND="${DEPEND}"
QA_FLAGS_IGNORED="usr/bin/${PN}"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_install() {
cargo_src_install
diff --git a/media-sound/ncspot/ncspot-1.1.2.ebuild b/media-sound/ncspot/ncspot-1.1.2-r1.ebuild
index a860b34aca6b..35a515a6839f 100644
--- a/media-sound/ncspot/ncspot-1.1.2.ebuild
+++ b/media-sound/ncspot/ncspot-1.1.2-r1.ebuild
@@ -533,6 +533,11 @@ BDEPEND="${PYTHON_DEPS}
QA_FLAGS_IGNORED="/usr/bin/ncspot"
+pkg_setup() {
+ python-any-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_configure() {
local myfeaturesdef=""
diff --git a/media-sound/ncspot/ncspot-1.2.0.ebuild b/media-sound/ncspot/ncspot-1.2.0-r1.ebuild
index f461b2a76eb4..f461b2a76eb4 100644
--- a/media-sound/ncspot/ncspot-1.2.0.ebuild
+++ b/media-sound/ncspot/ncspot-1.2.0-r1.ebuild
diff --git a/media-sound/ncspot/ncspot-1.2.1.ebuild b/media-sound/ncspot/ncspot-1.2.1-r1.ebuild
index ce56d901f746..ce56d901f746 100644
--- a/media-sound/ncspot/ncspot-1.2.1.ebuild
+++ b/media-sound/ncspot/ncspot-1.2.1-r1.ebuild
diff --git a/media-sound/rescrobbled/rescrobbled-0.7.1.ebuild b/media-sound/rescrobbled/rescrobbled-0.7.1-r1.ebuild
index 690a968b2706..2330b9732ea7 100644
--- a/media-sound/rescrobbled/rescrobbled-0.7.1.ebuild
+++ b/media-sound/rescrobbled/rescrobbled-0.7.1-r1.ebuild
@@ -128,7 +128,7 @@ inherit cargo systemd
DESCRIPTION="MPRIS music scrobbler daemon"
HOMEPAGE="https://github.com/InputUsername/rescrobbled"
SRC_URI="https://github.com/InputUsername/rescrobbled/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
+ ${CARGO_CRATE_URIS}"
LICENSE="GPL-3"
# Dependent crate licenses
diff --git a/media-video/rav1e/rav1e-0.6.6-r1.ebuild b/media-video/rav1e/rav1e-0.6.6-r1.ebuild
new file mode 100644
index 000000000000..47b94206729a
--- /dev/null
+++ b/media-video/rav1e/rav1e-0.6.6-r1.ebuild
@@ -0,0 +1,306 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.6.2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.19.0
+ adler@1.0.2
+ aho-corasick@1.0.1
+ anes@0.1.6
+ anyhow@1.0.71
+ aom-sys@0.3.2
+ arbitrary@0.4.7
+ arg_enum_proc_macro@0.3.2
+ arrayvec@0.7.2
+ assert_cmd@2.0.8
+ atty@0.2.14
+ autocfg@1.1.0
+ av-metrics@0.9.0
+ av1-grain@0.2.2
+ backtrace@0.3.67
+ bindgen@0.61.0
+ bitflags@1.3.2
+ bitstream-io@1.6.0
+ bstr@1.4.0
+ built@0.5.2
+ bumpalo@3.12.2
+ bytemuck@1.13.1
+ byteorder@1.4.3
+ cargo-lock@8.0.3
+ cast@0.3.0
+ cc@1.0.79
+ cexpr@0.6.0
+ cfg-expr@0.15.1
+ cfg-if@1.0.0
+ ciborium@0.2.1
+ ciborium-io@0.2.1
+ ciborium-ll@0.2.1
+ clang-sys@1.6.1
+ clap@3.2.25
+ clap@4.0.32
+ clap_complete@4.0.7
+ clap_derive@4.0.21
+ clap_lex@0.2.4
+ clap_lex@0.3.0
+ cmake@0.1.50
+ color_quant@1.1.0
+ console@0.15.5
+ crc32fast@1.3.2
+ criterion@0.4.0
+ criterion-plot@0.5.0
+ crossbeam@0.8.2
+ crossbeam-channel@0.5.8
+ crossbeam-deque@0.8.3
+ crossbeam-epoch@0.9.14
+ crossbeam-queue@0.3.8
+ crossbeam-utils@0.8.15
+ ctor@0.1.26
+ dav1d-sys@0.7.1
+ diff@0.1.13
+ difflib@0.4.0
+ doc-comment@0.3.3
+ either@1.8.1
+ encode_unicode@0.3.6
+ env_logger@0.8.4
+ errno@0.3.1
+ errno-dragonfly@0.1.2
+ fdeflate@0.3.0
+ fern@0.6.2
+ flate2@1.0.26
+ float-cmp@0.9.0
+ form_urlencoded@1.1.0
+ getrandom@0.2.9
+ gimli@0.27.2
+ git2@0.15.0
+ glob@0.3.1
+ half@1.8.2
+ hashbrown@0.12.3
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.2.6
+ hermit-abi@0.3.1
+ idna@0.3.0
+ image@0.24.6
+ indexmap@1.9.3
+ interpolate_name@0.2.3
+ io-lifetimes@1.0.10
+ is-terminal@0.4.7
+ itertools@0.10.5
+ itertools@0.8.2
+ itoa@1.0.6
+ jobserver@0.1.26
+ js-sys@0.3.63
+ lab@0.11.0
+ lazy_static@1.4.0
+ lazycell@1.3.0
+ libc@0.2.144
+ libfuzzer-sys@0.3.5
+ libgit2-sys@0.14.2+1.5.1
+ libloading@0.7.4
+ libz-sys@1.1.9
+ linux-raw-sys@0.3.7
+ log@0.4.17
+ maybe-rayon@0.1.1
+ memchr@2.5.0
+ memoffset@0.8.0
+ minimal-lexical@0.2.1
+ miniz_oxide@0.6.2
+ miniz_oxide@0.7.1
+ nasm-rs@0.2.5
+ new_debug_unreachable@1.0.4
+ nom@7.1.3
+ noop_proc_macro@0.3.0
+ normalize-line-endings@0.3.0
+ num-bigint@0.4.3
+ num-derive@0.3.3
+ num-integer@0.1.45
+ num-rational@0.4.1
+ num-traits@0.2.15
+ num_cpus@1.15.0
+ object@0.30.3
+ once_cell@1.17.1
+ oorandom@11.1.3
+ os_str_bytes@6.5.0
+ output_vt100@0.1.3
+ paste@1.0.12
+ peeking_take_while@0.1.2
+ percent-encoding@2.2.0
+ pkg-config@0.3.27
+ plotters@0.3.4
+ plotters-backend@0.3.4
+ plotters-svg@0.3.3
+ png@0.17.8
+ ppv-lite86@0.2.17
+ predicates@2.1.5
+ predicates-core@1.0.5
+ predicates-tree@1.0.7
+ pretty_assertions@1.3.0
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.57
+ quickcheck@1.0.3
+ quickcheck_macros@1.0.0
+ quote@1.0.27
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rayon@1.7.0
+ rayon-core@1.11.0
+ regex@1.8.1
+ regex-automata@0.1.10
+ regex-syntax@0.7.1
+ rust_hawktracer@0.7.0
+ rust_hawktracer_normal_macro@0.4.1
+ rust_hawktracer_proc_macro@0.4.1
+ rust_hawktracer_sys@0.4.2
+ rustc-demangle@0.1.23
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustix@0.37.19
+ ryu@1.0.13
+ same-file@1.0.6
+ scan_fmt@0.2.6
+ scopeguard@1.1.0
+ semver@1.0.17
+ serde@1.0.163
+ serde-big-array@0.4.1
+ serde_derive@1.0.163
+ serde_json@1.0.96
+ serde_spanned@0.6.1
+ shlex@1.1.0
+ signal-hook@0.3.15
+ signal-hook-registry@1.4.1
+ simd-adler32@0.3.5
+ simd_helpers@0.1.0
+ smallvec@1.10.0
+ syn@1.0.109
+ syn@2.0.16
+ system-deps@6.1.0
+ target-lexicon@0.12.7
+ termcolor@1.2.0
+ terminal_size@0.2.6
+ termtree@0.4.1
+ textwrap@0.16.0
+ thiserror@1.0.40
+ thiserror-impl@1.0.40
+ tinytemplate@1.2.1
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ toml@0.5.11
+ toml@0.7.3
+ toml_datetime@0.6.1
+ toml_edit@0.19.8
+ unicode-bidi@0.3.13
+ unicode-ident@1.0.8
+ unicode-normalization@0.1.22
+ unicode-width@0.1.10
+ url@2.3.1
+ v_frame@0.3.3
+ vcpkg@0.2.15
+ version-compare@0.1.1
+ version_check@0.9.4
+ wait-timeout@0.2.0
+ walkdir@2.3.3
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen@0.2.86
+ wasm-bindgen-backend@0.2.86
+ wasm-bindgen-macro@0.2.86
+ wasm-bindgen-macro-support@0.2.86
+ wasm-bindgen-shared@0.2.86
+ web-sys@0.3.63
+ which@4.4.0
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.42.0
+ windows-sys@0.48.0
+ windows-targets@0.48.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.0
+ winnow@0.4.1
+ y4m@0.8.0
+ yansi@0.5.1
+"
+
+inherit cargo
+
+DESCRIPTION="The fastest and safest AV1 encoder"
+HOMEPAGE="https://github.com/xiph/rav1e/"
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/xiph/rav1e.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/xiph/rav1e/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+ KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
+fi
+
+LICENSE="BSD-2"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ Unicode-DFS-2016
+"
+SLOT="0"
+IUSE="+capi"
+
+ASM_DEP=">=dev-lang/nasm-2.15"
+BDEPEND="
+ amd64? ( ${ASM_DEP} )
+ capi? ( >=dev-util/cargo-c-0.6.3 )
+"
+
+# Rust
+QA_FLAGS_IGNORED="usr/lib.*/librav1e.* usr/bin/rav1e"
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ default
+ cargo_src_unpack
+ fi
+}
+
+src_compile() {
+ cargo_src_compile
+
+ if use capi; then
+ local args=$(usev !debug --release)
+ cargo cbuild ${args} --target-dir="capi" \
+ --prefix="/usr" --libdir="/usr/$(get_libdir)" \
+ --library-type=cdylib \
+ || die "cargo cbuild failed"
+ fi
+}
+
+src_install() {
+ export CARGO_HOME="${ECARGO_HOME}"
+ local args=$(usev debug --debug)
+
+ if use capi; then
+ cargo cinstall ${args} --target-dir="capi" \
+ --prefix="/usr" --libdir="/usr/$(get_libdir)" --destdir="${ED}" \
+ --library-type=cdylib \
+ || die "cargo cinstall failed"
+ fi
+
+ cargo_src_install
+}
diff --git a/media-video/rav1e/rav1e-0.6.6.ebuild b/media-video/rav1e/rav1e-0.6.6.ebuild
deleted file mode 100644
index 7de235fa58a7..000000000000
--- a/media-video/rav1e/rav1e-0.6.6.ebuild
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 2023-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Autogenerated by pycargoebuild 0.6.2
-
-EAPI=8
-
-CRATES="
- addr2line-0.19.0
- adler-1.0.2
- aho-corasick-1.0.1
- anes-0.1.6
- anyhow-1.0.71
- aom-sys-0.3.2
- arbitrary-0.4.7
- arg_enum_proc_macro-0.3.2
- arrayvec-0.7.2
- assert_cmd-2.0.8
- atty-0.2.14
- autocfg-1.1.0
- av-metrics-0.9.0
- av1-grain-0.2.2
- backtrace-0.3.67
- bindgen-0.61.0
- bitflags-1.3.2
- bitstream-io-1.6.0
- bstr-1.4.0
- built-0.5.2
- bumpalo-3.12.2
- bytemuck-1.13.1
- byteorder-1.4.3
- cargo-lock-8.0.3
- cast-0.3.0
- cc-1.0.79
- cexpr-0.6.0
- cfg-expr-0.15.1
- cfg-if-1.0.0
- ciborium-0.2.1
- ciborium-io-0.2.1
- ciborium-ll-0.2.1
- clang-sys-1.6.1
- clap-3.2.25
- clap-4.0.32
- clap_complete-4.0.7
- clap_derive-4.0.21
- clap_lex-0.2.4
- clap_lex-0.3.0
- cmake-0.1.50
- color_quant-1.1.0
- console-0.15.5
- crc32fast-1.3.2
- criterion-0.4.0
- criterion-plot-0.5.0
- crossbeam-0.8.2
- crossbeam-channel-0.5.8
- crossbeam-deque-0.8.3
- crossbeam-epoch-0.9.14
- crossbeam-queue-0.3.8
- crossbeam-utils-0.8.15
- ctor-0.1.26
- dav1d-sys-0.7.1
- diff-0.1.13
- difflib-0.4.0
- doc-comment-0.3.3
- either-1.8.1
- encode_unicode-0.3.6
- env_logger-0.8.4
- errno-0.3.1
- errno-dragonfly-0.1.2
- fdeflate-0.3.0
- fern-0.6.2
- flate2-1.0.26
- float-cmp-0.9.0
- form_urlencoded-1.1.0
- getrandom-0.2.9
- gimli-0.27.2
- git2-0.15.0
- glob-0.3.1
- half-1.8.2
- hashbrown-0.12.3
- heck-0.4.1
- hermit-abi-0.1.19
- hermit-abi-0.2.6
- hermit-abi-0.3.1
- idna-0.3.0
- image-0.24.6
- indexmap-1.9.3
- interpolate_name-0.2.3
- io-lifetimes-1.0.10
- is-terminal-0.4.7
- itertools-0.10.5
- itertools-0.8.2
- itoa-1.0.6
- jobserver-0.1.26
- js-sys-0.3.63
- lab-0.11.0
- lazy_static-1.4.0
- lazycell-1.3.0
- libc-0.2.144
- libfuzzer-sys-0.3.5
- libgit2-sys-0.14.2+1.5.1
- libloading-0.7.4
- libz-sys-1.1.9
- linux-raw-sys-0.3.7
- log-0.4.17
- maybe-rayon-0.1.1
- memchr-2.5.0
- memoffset-0.8.0
- minimal-lexical-0.2.1
- miniz_oxide-0.6.2
- miniz_oxide-0.7.1
- nasm-rs-0.2.5
- new_debug_unreachable-1.0.4
- nom-7.1.3
- noop_proc_macro-0.3.0
- normalize-line-endings-0.3.0
- num-bigint-0.4.3
- num-derive-0.3.3
- num-integer-0.1.45
- num-rational-0.4.1
- num-traits-0.2.15
- num_cpus-1.15.0
- object-0.30.3
- once_cell-1.17.1
- oorandom-11.1.3
- os_str_bytes-6.5.0
- output_vt100-0.1.3
- paste-1.0.12
- peeking_take_while-0.1.2
- percent-encoding-2.2.0
- pkg-config-0.3.27
- plotters-0.3.4
- plotters-backend-0.3.4
- plotters-svg-0.3.3
- png-0.17.8
- ppv-lite86-0.2.17
- predicates-2.1.5
- predicates-core-1.0.5
- predicates-tree-1.0.7
- pretty_assertions-1.3.0
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.57
- quickcheck-1.0.3
- quickcheck_macros-1.0.0
- quote-1.0.27
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.4
- rayon-1.7.0
- rayon-core-1.11.0
- regex-1.8.1
- regex-automata-0.1.10
- regex-syntax-0.7.1
- rust_hawktracer-0.7.0
- rust_hawktracer_normal_macro-0.4.1
- rust_hawktracer_proc_macro-0.4.1
- rust_hawktracer_sys-0.4.2
- rustc-demangle-0.1.23
- rustc-hash-1.1.0
- rustc_version-0.4.0
- rustix-0.37.19
- ryu-1.0.13
- same-file-1.0.6
- scan_fmt-0.2.6
- scopeguard-1.1.0
- semver-1.0.17
- serde-1.0.163
- serde-big-array-0.4.1
- serde_derive-1.0.163
- serde_json-1.0.96
- serde_spanned-0.6.1
- shlex-1.1.0
- signal-hook-0.3.15
- signal-hook-registry-1.4.1
- simd-adler32-0.3.5
- simd_helpers-0.1.0
- smallvec-1.10.0
- syn-1.0.109
- syn-2.0.16
- system-deps-6.1.0
- target-lexicon-0.12.7
- termcolor-1.2.0
- terminal_size-0.2.6
- termtree-0.4.1
- textwrap-0.16.0
- thiserror-1.0.40
- thiserror-impl-1.0.40
- tinytemplate-1.2.1
- tinyvec-1.6.0
- tinyvec_macros-0.1.1
- toml-0.5.11
- toml-0.7.3
- toml_datetime-0.6.1
- toml_edit-0.19.8
- unicode-bidi-0.3.13
- unicode-ident-1.0.8
- unicode-normalization-0.1.22
- unicode-width-0.1.10
- url-2.3.1
- v_frame-0.3.3
- vcpkg-0.2.15
- version-compare-0.1.1
- version_check-0.9.4
- wait-timeout-0.2.0
- walkdir-2.3.3
- wasi-0.11.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.86
- wasm-bindgen-backend-0.2.86
- wasm-bindgen-macro-0.2.86
- wasm-bindgen-macro-support-0.2.86
- wasm-bindgen-shared-0.2.86
- web-sys-0.3.63
- which-4.4.0
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.42.0
- windows-sys-0.48.0
- windows-targets-0.48.0
- windows_aarch64_gnullvm-0.42.2
- windows_aarch64_gnullvm-0.48.0
- windows_aarch64_msvc-0.42.2
- windows_aarch64_msvc-0.48.0
- windows_i686_gnu-0.42.2
- windows_i686_gnu-0.48.0
- windows_i686_msvc-0.42.2
- windows_i686_msvc-0.48.0
- windows_x86_64_gnu-0.42.2
- windows_x86_64_gnu-0.48.0
- windows_x86_64_gnullvm-0.42.2
- windows_x86_64_gnullvm-0.48.0
- windows_x86_64_msvc-0.42.2
- windows_x86_64_msvc-0.48.0
- winnow-0.4.1
- y4m-0.8.0
- yansi-0.5.1
-"
-
-inherit cargo
-
-DESCRIPTION="The fastest and safest AV1 encoder"
-HOMEPAGE="https://github.com/xiph/rav1e/"
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://github.com/xiph/rav1e.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/xiph/rav1e/archive/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris ${CRATES})"
- KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
-fi
-
-LICENSE="BSD-2"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- Unicode-DFS-2016
-"
-SLOT="0"
-IUSE="+capi"
-
-ASM_DEP=">=dev-lang/nasm-2.15"
-BDEPEND="
- >=virtual/rust-1.65.0
- amd64? ( ${ASM_DEP} )
- capi? ( >=dev-util/cargo-c-0.6.3 )
-"
-
-# Rust
-QA_FLAGS_IGNORED="usr/lib.*/librav1e.* usr/bin/rav1e"
-
-src_unpack() {
- if [[ ${PV} == *9999* ]]; then
- git-r3_src_unpack
- cargo_live_src_unpack
- else
- default
- cargo_src_unpack
- fi
-}
-
-src_compile() {
- cargo_src_compile
-
- if use capi; then
- local args=$(usev !debug --release)
- cargo cbuild ${args} --target-dir="capi" \
- --prefix="/usr" --libdir="/usr/$(get_libdir)" \
- --library-type=cdylib \
- || die "cargo cbuild failed"
- fi
-}
-
-src_install() {
- export CARGO_HOME="${ECARGO_HOME}"
- local args=$(usev debug --debug)
-
- if use capi; then
- cargo cinstall ${args} --target-dir="capi" \
- --prefix="/usr" --libdir="/usr/$(get_libdir)" --destdir="${ED}" \
- --library-type=cdylib \
- || die "cargo cinstall failed"
- fi
-
- cargo_src_install
-}
diff --git a/media-video/rav1e/rav1e-0.7.1.ebuild b/media-video/rav1e/rav1e-0.7.1-r1.ebuild
index 23fc76363178..e6606d8a4078 100644
--- a/media-video/rav1e/rav1e-0.7.1.ebuild
+++ b/media-video/rav1e/rav1e-0.7.1-r1.ebuild
@@ -261,7 +261,6 @@ IUSE="+capi"
ASM_DEP=">=dev-lang/nasm-2.15"
BDEPEND="
- >=virtual/rust-1.70.0
amd64? ( ${ASM_DEP} )
capi? ( >=dev-util/cargo-c-0.6.3 )
"
diff --git a/media-video/rav1e/rav1e-9999.ebuild b/media-video/rav1e/rav1e-9999.ebuild
index 6e51df483cb6..3cd6190b455f 100644
--- a/media-video/rav1e/rav1e-9999.ebuild
+++ b/media-video/rav1e/rav1e-9999.ebuild
@@ -261,7 +261,6 @@ IUSE="+capi"
ASM_DEP=">=dev-lang/nasm-2.15"
BDEPEND="
- >=virtual/rust-1.70.0
amd64? ( ${ASM_DEP} )
capi? ( >=dev-util/cargo-c-0.6.3 )
"
diff --git a/net-analyzer/suricata/suricata-7.0.5.ebuild b/net-analyzer/suricata/suricata-7.0.5-r1.ebuild
index d6d60eada0b0..8fc26ccd0baf 100644
--- a/net-analyzer/suricata/suricata-7.0.5.ebuild
+++ b/net-analyzer/suricata/suricata-7.0.5-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=8
LUA_COMPAT=( lua5-1 luajit )
PYTHON_COMPAT=( python3_{10..12} )
-inherit autotools flag-o-matic linux-info lua-single python-single-r1 systemd tmpfiles verify-sig
+inherit autotools flag-o-matic linux-info lua-single python-single-r1 rust systemd tmpfiles verify-sig
DESCRIPTION="High performance Network IDS, IPS and Network Security Monitoring engine"
HOMEPAGE="https://suricata.io/"
@@ -55,7 +55,7 @@ RDEPEND="${PYTHON_DEPS}
redis? ( dev-libs/hiredis:= )"
DEPEND="${RDEPEND}
>=dev-build/autoconf-2.69-r5
- virtual/rust"
+"
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-oisf-20200807 )"
PATCHES=(
@@ -85,6 +85,11 @@ pkg_pretend() {
fi
}
+pkg_setup() {
+ python_single-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_prepare() {
default
sed -ie 's/docdir =.*/docdir = ${datarootdir}\/doc\/'${PF}'\//' "${S}/doc/Makefile.am" || die
diff --git a/net-analyzer/trippy/trippy-0.10.0.ebuild b/net-analyzer/trippy/trippy-0.10.0-r1.ebuild
index bfddd7c17757..bfddd7c17757 100644
--- a/net-analyzer/trippy/trippy-0.10.0.ebuild
+++ b/net-analyzer/trippy/trippy-0.10.0-r1.ebuild
diff --git a/net-analyzer/trippy/trippy-0.11.0.ebuild b/net-analyzer/trippy/trippy-0.11.0-r1.ebuild
index 14437cb268f3..14437cb268f3 100644
--- a/net-analyzer/trippy/trippy-0.11.0.ebuild
+++ b/net-analyzer/trippy/trippy-0.11.0-r1.ebuild
diff --git a/net-analyzer/trippy/trippy-0.9.0.ebuild b/net-analyzer/trippy/trippy-0.9.0-r1.ebuild
index e1dfbdbbc957..e1dfbdbbc957 100644
--- a/net-analyzer/trippy/trippy-0.9.0.ebuild
+++ b/net-analyzer/trippy/trippy-0.9.0-r1.ebuild
diff --git a/net-dns/pdns-recursor/pdns-recursor-5.0.9.ebuild b/net-dns/pdns-recursor/pdns-recursor-5.0.9-r1.ebuild
index e244974c1501..d4ade41512cd 100644
--- a/net-dns/pdns-recursor/pdns-recursor-5.0.9.ebuild
+++ b/net-dns/pdns-recursor/pdns-recursor-5.0.9-r1.ebuild
@@ -77,6 +77,7 @@ pkg_setup() {
filter-flags -ftree-vectorize
append-lfs-flags
append-cppflags -D_TIME_BITS=64
+ rust_pkg_setup
}
src_configure() {
diff --git a/net-dns/pdns-recursor/pdns-recursor-5.1.3.ebuild b/net-dns/pdns-recursor/pdns-recursor-5.1.2-r1.ebuild
index b6e990955b2c..e02040bf9ecb 100644
--- a/net-dns/pdns-recursor/pdns-recursor-5.1.3.ebuild
+++ b/net-dns/pdns-recursor/pdns-recursor-5.1.2-r1.ebuild
@@ -85,6 +85,7 @@ pkg_setup() {
filter-flags -ftree-vectorize
append-lfs-flags
append-cppflags -D_TIME_BITS=64
+ rust_pkg_setup
}
src_configure() {
diff --git a/net-dns/pdns-recursor/pdns-recursor-5.1.2.ebuild b/net-dns/pdns-recursor/pdns-recursor-5.1.3-r1.ebuild
index b6e990955b2c..e02040bf9ecb 100644
--- a/net-dns/pdns-recursor/pdns-recursor-5.1.2.ebuild
+++ b/net-dns/pdns-recursor/pdns-recursor-5.1.3-r1.ebuild
@@ -85,6 +85,7 @@ pkg_setup() {
filter-flags -ftree-vectorize
append-lfs-flags
append-cppflags -D_TIME_BITS=64
+ rust_pkg_setup
}
src_configure() {
diff --git a/net-im/fractal/fractal-8.ebuild b/net-im/fractal/fractal-8-r1.ebuild
index cba92e4c81d5..9b7c1e94bbdf 100644
--- a/net-im/fractal/fractal-8.ebuild
+++ b/net-im/fractal/fractal-8-r1.ebuild
@@ -27,6 +27,10 @@ declare -A GIT_CRATES=(
[ruma]='https://github.com/matrix-org/ruma;4d3d8b46fd519012e4585ccf00dbea1eb602c028;ruma-%commit%/crates/ruma'
)
+# https://github.com/rust-lang/rust/issues/131944
+RUST_MAX_VER="1.81.1"
+RUST_MIN_VER="1.79.0"
+
inherit cargo gnome2-utils meson
MY_P=${P/_/.}
@@ -80,7 +84,6 @@ RDEPEND="
# clang needed by bindgen
BDEPEND="
sys-devel/clang
- >=virtual/rust-1.79.0
"
# Rust
diff --git a/net-im/synapse/synapse-1.114.0-r2.ebuild b/net-im/synapse/synapse-1.114.0-r3.ebuild
index b310112b701f..b310112b701f 100644
--- a/net-im/synapse/synapse-1.114.0-r2.ebuild
+++ b/net-im/synapse/synapse-1.114.0-r3.ebuild
diff --git a/net-im/synapse/synapse-1.116.0-r3.ebuild b/net-im/synapse/synapse-1.116.0-r5.ebuild
index 0ef0a5485af9..0ef0a5485af9 100644
--- a/net-im/synapse/synapse-1.116.0-r3.ebuild
+++ b/net-im/synapse/synapse-1.116.0-r5.ebuild
diff --git a/net-im/synapse/synapse-1.117.0.ebuild b/net-im/synapse/synapse-1.117.0-r1.ebuild
index 978cf20a6966..978cf20a6966 100644
--- a/net-im/synapse/synapse-1.117.0.ebuild
+++ b/net-im/synapse/synapse-1.117.0-r1.ebuild
diff --git a/net-im/synapse/synapse-1.118.0.ebuild b/net-im/synapse/synapse-1.118.0-r1.ebuild
index 978cf20a6966..978cf20a6966 100644
--- a/net-im/synapse/synapse-1.118.0.ebuild
+++ b/net-im/synapse/synapse-1.118.0-r1.ebuild
diff --git a/net-libs/quiche/quiche-0.22.0.ebuild b/net-libs/quiche/quiche-0.22.0-r1.ebuild
index 7a39592d3b3c..e0713e1e6bf9 100644
--- a/net-libs/quiche/quiche-0.22.0.ebuild
+++ b/net-libs/quiche/quiche-0.22.0-r1.ebuild
@@ -195,7 +195,9 @@ windows-targets@0.52.5
ws2_32-sys@0.2.1
"
-inherit cargo cmake flag-o-matic rust-toolchain multilib-minimal
+RUST_USEDEP='${MULTILIB_USEDEP}'
+
+inherit multilib-minimal cargo cmake flag-o-matic rust-toolchain
DESCRIPTION="Implementation of the QUIC transport protocol and HTTP/3"
HOMEPAGE="https://github.com/cloudflare/quiche"
@@ -225,7 +227,6 @@ IUSE=""
DOCS=( COPYING README.md )
BDEPEND="
- >=virtual/rust-1.66.0[${MULTILIB_USEDEP}]
dev-build/cmake
"
DEPEND=""
diff --git a/net-libs/quiche/quiche-9999.ebuild b/net-libs/quiche/quiche-9999.ebuild
index 85a385a6452c..675f686c72be 100644
--- a/net-libs/quiche/quiche-9999.ebuild
+++ b/net-libs/quiche/quiche-9999.ebuild
@@ -195,6 +195,10 @@ windows-targets@0.52.5
ws2_32-sys@0.2.1
"
+RUST_USEDEP='${MULTILIB_USEDEP}'
+
+inherit multilib-minimal cargo cmake flag-o-matic rust-toolchain
+
inherit cargo cmake flag-o-matic rust-toolchain multilib-minimal
DESCRIPTION="Implementation of the QUIC transport protocol and HTTP/3"
@@ -225,7 +229,6 @@ IUSE=""
DOCS=( COPYING README.md )
BDEPEND="
- >=virtual/rust-1.66.0[${MULTILIB_USEDEP}]
dev-build/cmake
"
DEPEND=""
diff --git a/net-libs/rustls-ffi/rustls-ffi-0.10.0-r1.ebuild b/net-libs/rustls-ffi/rustls-ffi-0.10.0-r2.ebuild
index db915dbc209b..18f86b56864e 100644
--- a/net-libs/rustls-ffi/rustls-ffi-0.10.0-r1.ebuild
+++ b/net-libs/rustls-ffi/rustls-ffi-0.10.0-r2.ebuild
@@ -4,46 +4,46 @@
EAPI=8
CRATES="
- autocfg-1.1.0
- base64-0.13.1
- bumpalo-3.12.0
- cc-1.0.79
- cfg-if-1.0.0
- hashbrown-0.12.3
- indexmap-1.9.3
- js-sys-0.3.61
- libc-0.2.140
- log-0.4.17
- memchr-2.5.0
- num_enum-0.5.11
- num_enum_derive-0.5.11
- once_cell-1.17.1
- proc-macro-crate-1.3.1
- proc-macro2-1.0.55
- quote-1.0.26
- ring-0.16.20
- rustls-0.21.0
- rustls-pemfile-0.2.1
- rustls-webpki-0.100.1
- rustversion-1.0.12
- sct-0.7.0
- spin-0.5.2
- syn-1.0.109
- toml_datetime-0.6.1
- toml_edit-0.19.8
- unicode-ident-1.0.8
- untrusted-0.7.1
- wasm-bindgen-0.2.84
- wasm-bindgen-backend-0.2.84
- wasm-bindgen-macro-0.2.84
- wasm-bindgen-macro-support-0.2.84
- wasm-bindgen-shared-0.2.84
- web-sys-0.3.61
- webpki-0.22.0
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-x86_64-pc-windows-gnu-0.4.0
- winnow-0.4.1
+ autocfg@1.1.0
+ base64@0.13.1
+ bumpalo@3.12.0
+ cc@1.0.79
+ cfg-if@1.0.0
+ hashbrown@0.12.3
+ indexmap@1.9.3
+ js-sys@0.3.61
+ libc@0.2.140
+ log@0.4.17
+ memchr@2.5.0
+ num_enum@0.5.11
+ num_enum_derive@0.5.11
+ once_cell@1.17.1
+ proc-macro-crate@1.3.1
+ proc-macro2@1.0.55
+ quote@1.0.26
+ ring@0.16.20
+ rustls@0.21.0
+ rustls-pemfile@0.2.1
+ rustls-webpki@0.100.1
+ rustversion@1.0.12
+ sct@0.7.0
+ spin@0.5.2
+ syn@1.0.109
+ toml_datetime@0.6.1
+ toml_edit@0.19.8
+ unicode-ident@1.0.8
+ untrusted@0.7.1
+ wasm-bindgen@0.2.84
+ wasm-bindgen-backend@0.2.84
+ wasm-bindgen-macro@0.2.84
+ wasm-bindgen-macro-support@0.2.84
+ wasm-bindgen-shared@0.2.84
+ web-sys@0.3.61
+ webpki@0.22.0
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winnow@0.4.1
"
inherit cargo flag-o-matic multilib-minimal rust-toolchain
@@ -51,7 +51,7 @@ inherit cargo flag-o-matic multilib-minimal rust-toolchain
DESCRIPTION="C-to-rustls bindings"
HOMEPAGE="https://github.com/rustls/rustls-ffi"
SRC_URI="https://github.com/rustls/rustls-ffi/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-SRC_URI+=" $(cargo_crate_uris)"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
# From cargo-ebuild (note that webpki is also just ISC)
LICENSE="|| ( MIT Apache-2.0 ) BSD Boost-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016"
@@ -67,7 +67,7 @@ BDEPEND="dev-util/cargo-c"
QA_FLAGS_IGNORED="usr/lib.*/librustls.*"
PATCHES=(
- "${FILESDIR}"/${PN}-0.10.0-cargo-c.patch
+ "${FILESDIR}"/${PN}@0.10.0-cargo-c.patch
)
src_prepare() {
diff --git a/net-libs/rustls-ffi/rustls-ffi-0.12.1-r2.ebuild b/net-libs/rustls-ffi/rustls-ffi-0.12.1-r3.ebuild
index 962808494628..82a1a8b3fff4 100644
--- a/net-libs/rustls-ffi/rustls-ffi-0.12.1-r2.ebuild
+++ b/net-libs/rustls-ffi/rustls-ffi-0.12.1-r3.ebuild
@@ -57,7 +57,7 @@ BDEPEND="dev-util/cargo-c"
QA_FLAGS_IGNORED="usr/lib.*/librustls.*"
PATCHES=(
- "${FILESDIR}"/${PN}-0.12.1-no-rust-nightly.patch
+ "${FILESDIR}"/${PN}@0.12.1-no-rust-nightly.patch
)
src_prepare() {
diff --git a/net-libs/rustls-ffi/rustls-ffi-0.12.2.ebuild b/net-libs/rustls-ffi/rustls-ffi-0.12.2-r1.ebuild
index a09c7412e487..a09c7412e487 100644
--- a/net-libs/rustls-ffi/rustls-ffi-0.12.2.ebuild
+++ b/net-libs/rustls-ffi/rustls-ffi-0.12.2-r1.ebuild
diff --git a/net-libs/rustls-ffi/rustls-ffi-0.13.0.ebuild b/net-libs/rustls-ffi/rustls-ffi-0.13.0-r1.ebuild
index 4f144686f120..4f144686f120 100644
--- a/net-libs/rustls-ffi/rustls-ffi-0.13.0.ebuild
+++ b/net-libs/rustls-ffi/rustls-ffi-0.13.0-r1.ebuild
diff --git a/net-libs/rustls-ffi/rustls-ffi-0.9.1-r1.ebuild b/net-libs/rustls-ffi/rustls-ffi-0.9.1-r2.ebuild
index bf9f34bba51c..f2d00ea05c4a 100644
--- a/net-libs/rustls-ffi/rustls-ffi-0.9.1-r1.ebuild
+++ b/net-libs/rustls-ffi/rustls-ffi-0.9.1-r2.ebuild
@@ -4,66 +4,66 @@
EAPI=8
CRATES="
- ansi_term-0.12.1
- atty-0.2.14
- autocfg-1.1.0
- base64-0.13.1
- bitflags-1.3.2
- bumpalo-3.11.1
- cbindgen-0.19.0
- cc-1.0.77
- cfg-if-1.0.0
- clap-2.34.0
- fastrand-1.8.0
- hashbrown-0.12.3
- heck-0.3.3
- hermit-abi-0.1.19
- indexmap-1.9.2
- instant-0.1.12
- itoa-1.0.4
- js-sys-0.3.60
- libc-0.2.138
- log-0.4.17
- num_enum-0.5.7
- num_enum_derive-0.5.7
- once_cell-1.16.0
- proc-macro-crate-1.2.1
- proc-macro2-1.0.47
- quote-1.0.21
- redox_syscall-0.2.16
- remove_dir_all-0.5.3
- ring-0.16.20
- rustls-0.20.4
- rustls-pemfile-0.2.1
- rustversion-1.0.9
- ryu-1.0.11
- sct-0.7.0
- serde-1.0.149
- serde_derive-1.0.149
- serde_json-1.0.89
- spin-0.5.2
- strsim-0.8.0
- syn-1.0.105
- tempfile-3.3.0
- textwrap-0.11.0
- thiserror-1.0.37
- thiserror-impl-1.0.37
- toml-0.5.9
- unicode-ident-1.0.5
- unicode-segmentation-1.10.0
- unicode-width-0.1.10
- untrusted-0.7.1
- vec_map-0.8.2
- wasm-bindgen-0.2.83
- wasm-bindgen-backend-0.2.83
- wasm-bindgen-macro-0.2.83
- wasm-bindgen-macro-support-0.2.83
- wasm-bindgen-shared-0.2.83
- web-sys-0.3.60
- webpki-0.22.0
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-x86_64-pc-windows-gnu-0.4.0
+ ansi_term@0.12.1
+ atty@0.2.14
+ autocfg@1.1.0
+ base64@0.13.1
+ bitflags@1.3.2
+ bumpalo@3.11.1
+ cbindgen@0.19.0
+ cc@1.0.77
+ cfg-if@1.0.0
+ clap@2.34.0
+ fastrand@1.8.0
+ hashbrown@0.12.3
+ heck@0.3.3
+ hermit-abi@0.1.19
+ indexmap@1.9.2
+ instant@0.1.12
+ itoa@1.0.4
+ js-sys@0.3.60
+ libc@0.2.138
+ log@0.4.17
+ num_enum@0.5.7
+ num_enum_derive@0.5.7
+ once_cell@1.16.0
+ proc-macro-crate@1.2.1
+ proc-macro2@1.0.47
+ quote@1.0.21
+ redox_syscall@0.2.16
+ remove_dir_all@0.5.3
+ ring@0.16.20
+ rustls@0.20.4
+ rustls-pemfile@0.2.1
+ rustversion@1.0.9
+ ryu@1.0.11
+ sct@0.7.0
+ serde@1.0.149
+ serde_derive@1.0.149
+ serde_json@1.0.89
+ spin@0.5.2
+ strsim@0.8.0
+ syn@1.0.105
+ tempfile@3.3.0
+ textwrap@0.11.0
+ thiserror@1.0.37
+ thiserror-impl@1.0.37
+ toml@0.5.9
+ unicode-ident@1.0.5
+ unicode-segmentation@1.10.0
+ unicode-width@0.1.10
+ untrusted@0.7.1
+ vec_map@0.8.2
+ wasm-bindgen@0.2.83
+ wasm-bindgen-backend@0.2.83
+ wasm-bindgen-macro@0.2.83
+ wasm-bindgen-macro-support@0.2.83
+ wasm-bindgen-shared@0.2.83
+ web-sys@0.3.60
+ webpki@0.22.0
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
"
inherit cargo flag-o-matic multilib-minimal rust-toolchain
@@ -71,7 +71,7 @@ inherit cargo flag-o-matic multilib-minimal rust-toolchain
DESCRIPTION="C-to-rustls bindings"
HOMEPAGE="https://github.com/rustls/rustls-ffi"
SRC_URI="https://github.com/rustls/rustls-ffi/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-SRC_URI+=" $(cargo_crate_uris)"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
# From cargo-ebuild (note that webpki is also just ISC)
LICENSE="|| ( MIT Apache-2.0 ) BSD Boost-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016"
@@ -85,8 +85,8 @@ BDEPEND="dev-util/cargo-c"
QA_FLAGS_IGNORED="usr/lib.*/librustls.*"
PATCHES=(
- "${FILESDIR}"/${PN}-0.9.1-cargo-c.patch
- "${FILESDIR}"/${PN}-0.9.1-tests-32-bit.patch
+ "${FILESDIR}"/${PN}@0.9.1-cargo-c.patch
+ "${FILESDIR}"/${PN}@0.9.1-tests-32-bit.patch
)
src_prepare() {
diff --git a/net-misc/asahi-btsync/asahi-btsync-0.2.0.ebuild b/net-misc/asahi-btsync/asahi-btsync-0.2.0-r1.ebuild
index 38625d6d5889..e28ae111043a 100644
--- a/net-misc/asahi-btsync/asahi-btsync-0.2.0.ebuild
+++ b/net-misc/asahi-btsync/asahi-btsync-0.2.0-r1.ebuild
@@ -69,6 +69,9 @@ CRATES="
windows_x86_64_msvc@0.52.0
"
+# stdsimd
+RUST_MAX_VER=1.77.1
+
inherit cargo linux-info
# Releases are not tagged
@@ -89,10 +92,15 @@ LICENSE+=" MIT Unicode-DFS-2016 ZLIB"
SLOT="0"
KEYWORDS="~arm64"
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
pkg_pretend() {
if use kernel_linux; then
linux_config_exists || die "No suitable kernel configuration could be found"
CONFIG_EXTRA="~MTD_SPI_NOR"
check_extra_config
fi
-}
+ }
diff --git a/net-misc/asahi-wifisync/asahi-wifisync-0.2.0.ebuild b/net-misc/asahi-wifisync/asahi-wifisync-0.2.0-r1.ebuild
index 4ab24a1b1b1e..cde1356d1786 100644
--- a/net-misc/asahi-wifisync/asahi-wifisync-0.2.0.ebuild
+++ b/net-misc/asahi-wifisync/asahi-wifisync-0.2.0-r1.ebuild
@@ -69,6 +69,9 @@ CRATES="
windows_x86_64_msvc@0.52.0
"
+# stdsimd
+RUST_MAX_VER=1.77.1
+
inherit cargo linux-info
# Releases are not tagged
@@ -89,6 +92,11 @@ LICENSE+=" MIT Unicode-DFS-2016 ZLIB"
SLOT="0"
KEYWORDS="~arm64"
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
pkg_pretend() {
if use kernel_linux; then
linux_config_exists || die "No suitable kernel configuration could be found"
diff --git a/net-misc/geckodriver/geckodriver-0.35.0.ebuild b/net-misc/geckodriver/geckodriver-0.35.0-r1.ebuild
index 53a9994179ab..1f881c9a5b31 100644
--- a/net-misc/geckodriver/geckodriver-0.35.0.ebuild
+++ b/net-misc/geckodriver/geckodriver-0.35.0-r1.ebuild
@@ -240,6 +240,7 @@ RDEPEND="!www-client/firefox[geckodriver(-)]"
pkg_setup() {
QA_FLAGS_IGNORED="/usr/$(get_libdir)/firefox/geckodriver"
+ rust_pkg_setup
}
src_prepare() {
diff --git a/net-misc/hurl/hurl-4.1.0.ebuild b/net-misc/hurl/hurl-4.1.0-r1.ebuild
index 856d7cca73a5..856d7cca73a5 100644
--- a/net-misc/hurl/hurl-4.1.0.ebuild
+++ b/net-misc/hurl/hurl-4.1.0-r1.ebuild
diff --git a/net-misc/hurl/hurl-5.0.1.ebuild b/net-misc/hurl/hurl-5.0.1-r1.ebuild
index 8715ac33605a..8715ac33605a 100644
--- a/net-misc/hurl/hurl-5.0.1.ebuild
+++ b/net-misc/hurl/hurl-5.0.1-r1.ebuild
diff --git a/net-misc/websocat/websocat-1.12.0.ebuild b/net-misc/websocat/websocat-1.12.0-r1.ebuild
index 52fc47b607b2..95fa03089c59 100644
--- a/net-misc/websocat/websocat-1.12.0.ebuild
+++ b/net-misc/websocat/websocat-1.12.0-r1.ebuild
@@ -31,7 +31,6 @@ RDEPEND="
)
"
DEPEND="
- ${RUST_DEPEND}
${RDEPEND}
"
QA_FLAGS_IGNORED="/usr/bin/websocat"
diff --git a/net-misc/websocat/websocat-1.13.0.ebuild b/net-misc/websocat/websocat-1.13.0-r1.ebuild
index e42ad159e087..cb5f4a415b7e 100644
--- a/net-misc/websocat/websocat-1.13.0.ebuild
+++ b/net-misc/websocat/websocat-1.13.0-r1.ebuild
@@ -29,7 +29,6 @@ RDEPEND="
)
"
DEPEND="
- ${RUST_DEPEND}
${RDEPEND}
"
QA_FLAGS_IGNORED="/usr/bin/websocat"
diff --git a/net-misc/zerotier/zerotier-1.14.1.ebuild b/net-misc/zerotier/zerotier-1.14.1-r1.ebuild
index f6f30f150077..ce8818618cac 100644
--- a/net-misc/zerotier/zerotier-1.14.1.ebuild
+++ b/net-misc/zerotier/zerotier-1.14.1-r1.ebuild
@@ -380,6 +380,8 @@ declare -A GIT_CRATES=(
[temporal-sdk]='https://github.com/temporalio/sdk-core;a8150d5c7c3fc1bfd5a941fd315abff1556cd9dc;sdk-core-%commit%/sdk'
)
+RUST_OPTIONAL=1
+
inherit cargo systemd toolchain-funcs
DESCRIPTION="A software-based managed Ethernet switch for planet Earth"
@@ -407,7 +409,7 @@ RDEPEND="
DEPEND="${RDEPEND}"
BDEPEND="
sso? (
- virtual/rust
+ ${RUST_DEPEND}
)
"
diff --git a/net-misc/zerotier/zerotier-1.14.2.ebuild b/net-misc/zerotier/zerotier-1.14.2-r1.ebuild
index 16179d08188e..8125b3a115da 100644
--- a/net-misc/zerotier/zerotier-1.14.2.ebuild
+++ b/net-misc/zerotier/zerotier-1.14.2-r1.ebuild
@@ -381,6 +381,8 @@ declare -A GIT_CRATES=(
[temporal-sdk]='https://github.com/temporalio/sdk-core;730aadcc02767ae630e88f8f8c788a85d6bc81e6;sdk-core-%commit%/sdk'
)
+RUST_OPTIONAL=1
+
inherit cargo systemd toolchain-funcs
DESCRIPTION="A software-based managed Ethernet switch for planet Earth"
@@ -408,7 +410,7 @@ RDEPEND="
DEPEND="${RDEPEND}"
BDEPEND="
sso? (
- virtual/rust
+ ${RUST_DEPEND}
)
"
diff --git a/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild b/net-nds/389-ds-base/389-ds-base-3.0.2-r1.ebuild
index 5a5199ac853f..cb81c3d6e77f 100644
--- a/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild
+++ b/net-nds/389-ds-base/389-ds-base-3.0.2-r1.ebuild
@@ -112,6 +112,8 @@ PYTHON_COMPAT=( python3_{10..12} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
+RUST_MAX_VER="1.77.1"
+
inherit autotools cargo distutils-r1 readme.gentoo-r1 systemd tmpfiles
DESCRIPTION="389 Directory Server (core libraries and daemons)"
@@ -166,7 +168,6 @@ DEPEND="
BDEPEND=">=dev-build/autoconf-2.69-r5
virtual/pkgconfig
- >=virtual/rust-1.70
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/argparse-manpage[${PYTHON_USEDEP}]
@@ -202,10 +203,16 @@ RDEPEND="${DEPEND}
PATCHES=(
"${FILESDIR}/${PN}-db-gentoo.patch"
+ "${FILESDIR}/${PN}-3.0.2-fix-rust-in-configure.patch"
)
distutils_enable_tests pytest
+pkg_setup() {
+ python-single-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_prepare() {
# https://github.com/389ds/389-ds-base/issues/4292
if use !systemd; then
diff --git a/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch b/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch
new file mode 100644
index 000000000000..fef1496e52af
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch
@@ -0,0 +1,34 @@
+From 28d4871c5844b41d63a5cbc093b4453c98d5427e Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Thu, 7 Nov 2024 20:08:44 +1000
+Subject: [PATCH] Fix rust in configure
+
+RUSTC and CARGO are standard variables that are often used to indicate
+the desired implementation to build systems.
+
+Prefix existing usage of these variables with `HAS_` so that this
+does not just break
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,10 +95,10 @@ AS_IF([test "$enable_rust_offline" = yes],
+ [rust_vendor_sources=""])
+ AC_SUBST([rust_vendor_sources])
+ if test "$enable_rust_offline" = yes; then
+- AC_CHECK_PROG(CARGO, [cargo], [yes], [no])
+- AC_CHECK_PROG(RUSTC, [rustc], [yes], [no])
++ AC_CHECK_PROG(HAS_CARGO, [cargo], [yes], [no])
++ AC_CHECK_PROG(HAS_RUSTC, [rustc], [yes], [no])
+
+- AS_IF([test "$CARGO" != "yes" -o "$RUSTC" != "yes"], [
++ AS_IF([test "$HAS_CARGO" != "yes" -o "$HAS_RUSTC" != "yes"], [
+ AC_MSG_FAILURE("Rust based plugins cannot be built cargo=$CARGO rustc=$RUSTC")
+ ])
+ fi
+@@ -944,4 +944,3 @@ AC_CONFIG_FILES([Makefile rpm/389-ds-base.spec ])
+ AC_CONFIG_FILES([.cargo/config])
+
+ AC_OUTPUT
+-
+--
+2.47.0
+
diff --git a/net-news/newsboat/newsboat-2.30.1-r1.ebuild b/net-news/newsboat/newsboat-2.30.1-r1.ebuild
new file mode 100644
index 000000000000..bb2748631b77
--- /dev/null
+++ b/net-news/newsboat/newsboat-2.30.1-r1.ebuild
@@ -0,0 +1,174 @@
+# Copyright 2017-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.17.0
+ adler@1.0.2
+ aho-corasick@0.7.19
+ android_system_properties@0.1.5
+ autocfg@1.1.0
+ backtrace@0.3.66
+ bitflags@1.3.2
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ block@0.1.6
+ bumpalo@3.11.0
+ byteorder@1.4.3
+ cc@1.0.73
+ cfg-if@1.0.0
+ chrono@0.4.23
+ codespan-reporting@0.11.1
+ core-foundation-sys@0.8.3
+ curl-sys-0.4.59+curl@7.86.0
+ cxx@1.0.85
+ cxxbridge-flags@1.0.85
+ cxxbridge-macro@1.0.85
+ cxx-build@1.0.85
+ dirs@4.0.0
+ dirs-sys@0.3.7
+ fastrand@1.8.0
+ fnv@1.0.7
+ form_urlencoded@1.1.0
+ getrandom@0.2.7
+ gettext-rs@0.7.0
+ gettext-sys@0.21.3
+ gimli@0.26.2
+ iana-time-zone@0.1.50
+ idna@0.3.0
+ instant@0.1.12
+ js-sys@0.3.60
+ lazy_static@1.4.0
+ lexopt@0.2.1
+ libc@0.2.139
+ libz-sys@1.1.8
+ link-cplusplus@1.0.7
+ locale_config@0.3.0
+ log@0.4.17
+ malloc_buf@0.0.6
+ md5@0.7.0
+ memchr@2.5.0
+ minimal-lexical@0.2.1
+ miniz_oxide@0.5.4
+ natord@1.0.9
+ nom@7.1.1
+ num-integer@0.1.45
+ num-traits@0.2.15
+ objc@0.2.7
+ objc-foundation@0.1.1
+ objc_id@0.1.1
+ object@0.29.0
+ once_cell@1.16.0
+ percent-encoding@2.2.0
+ pkg-config@0.3.25
+ ppv-lite86@0.2.16
+ proc-macro2@1.0.44
+ proptest@1.0.0
+ quick-error@1.2.3
+ quick-error@2.0.1
+ quote@1.0.21
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rand_xorshift@0.3.0
+ redox_syscall@0.2.16
+ redox_users@0.4.3
+ regex@1.6.0
+ regex-syntax@0.6.27
+ remove_dir_all@0.5.3
+ rustc-demangle@0.1.21
+ rusty-fork@0.3.0
+ scratch@1.0.2
+ section_testing@0.0.5
+ syn@1.0.100
+ temp-dir@0.1.11
+ tempfile@3.3.0
+ termcolor@1.1.3
+ thiserror@1.0.36
+ thiserror-impl@1.0.36
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.0
+ unicode-bidi@0.3.8
+ unicode-ident@1.0.4
+ unicode-normalization@0.1.22
+ unicode-width@0.1.10
+ url@2.3.1
+ vcpkg@0.2.15
+ wait-timeout@0.2.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen@0.2.83
+ wasm-bindgen-backend@0.2.83
+ wasm-bindgen-macro@0.2.83
+ wasm-bindgen-macro-support@0.2.83
+ wasm-bindgen-shared@0.2.83
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ xdg@2.4.1
+"
+
+inherit flag-o-matic toolchain-funcs cargo
+
+DESCRIPTION="An RSS/Atom feed reader for text terminals"
+HOMEPAGE="https://newsboat.org/ https://github.com/newsboat/newsboat"
+SRC_URI="
+ https://newsboat.org/releases/${PV}/${P}.tar.xz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions Boost-1.0 BSD MIT Unlicense ZLIB"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
+
+RDEPEND="
+ >=dev-db/sqlite-3.5:3
+ >=dev-libs/json-c-0.11:=
+ >=dev-libs/stfl-0.21
+ >=net-misc/curl-7.21.6
+ dev-libs/libxml2
+ dev-libs/openssl:=
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/zlib
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+"
+BDEPEND="
+ app-alternatives/awk
+ >=dev-ruby/asciidoctor-1.5.3
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc-13.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "s/WARNFLAGS=-Werror -Wall/WARNFLAGS=-Wall/" \
+ -e "s/BARE_CXXFLAGS=-std=c++11 -O2 -ggdb/BARE_CXXFLAGS=-std=c++11/" \
+ Makefile || die
+}
+
+src_configure() {
+ filter-lto # bug #877657
+ ./config.sh || die
+}
+
+src_compile() {
+ export CARGO_HOME="${ECARGO_HOME}"
+ emake prefix="/usr" CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+}
+
+src_test() {
+ emake CC="${tc-getCC}" CXX="$(tc-getCXX)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" check || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" prefix="/usr" docdir="/usr/share/doc/${PF}" install
+ einstalldocs
+}
diff --git a/net-news/newsboat/newsboat-2.30.1.ebuild b/net-news/newsboat/newsboat-2.30.1.ebuild
deleted file mode 100644
index 894a2fb34e88..000000000000
--- a/net-news/newsboat/newsboat-2.30.1.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 2017-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-addr2line-0.17.0
-adler-1.0.2
-aho-corasick-0.7.19
-android_system_properties-0.1.5
-autocfg-1.1.0
-backtrace-0.3.66
-bitflags-1.3.2
-bit-set-0.5.3
-bit-vec-0.6.3
-block-0.1.6
-bumpalo-3.11.0
-byteorder-1.4.3
-cc-1.0.73
-cfg-if-1.0.0
-chrono-0.4.23
-codespan-reporting-0.11.1
-core-foundation-sys-0.8.3
-curl-sys-0.4.59+curl-7.86.0
-cxx-1.0.85
-cxxbridge-flags-1.0.85
-cxxbridge-macro-1.0.85
-cxx-build-1.0.85
-dirs-4.0.0
-dirs-sys-0.3.7
-fastrand-1.8.0
-fnv-1.0.7
-form_urlencoded-1.1.0
-getrandom-0.2.7
-gettext-rs-0.7.0
-gettext-sys-0.21.3
-gimli-0.26.2
-iana-time-zone-0.1.50
-idna-0.3.0
-instant-0.1.12
-js-sys-0.3.60
-lazy_static-1.4.0
-lexopt-0.2.1
-libc-0.2.139
-libz-sys-1.1.8
-link-cplusplus-1.0.7
-locale_config-0.3.0
-log-0.4.17
-malloc_buf-0.0.6
-md5-0.7.0
-memchr-2.5.0
-minimal-lexical-0.2.1
-miniz_oxide-0.5.4
-natord-1.0.9
-nom-7.1.1
-num-integer-0.1.45
-num-traits-0.2.15
-objc-0.2.7
-objc-foundation-0.1.1
-objc_id-0.1.1
-object-0.29.0
-once_cell-1.16.0
-percent-encoding-2.2.0
-pkg-config-0.3.25
-ppv-lite86-0.2.16
-proc-macro2-1.0.44
-proptest-1.0.0
-quick-error-1.2.3
-quick-error-2.0.1
-quote-1.0.21
-rand-0.8.5
-rand_chacha-0.3.1
-rand_core-0.6.4
-rand_xorshift-0.3.0
-redox_syscall-0.2.16
-redox_users-0.4.3
-regex-1.6.0
-regex-syntax-0.6.27
-remove_dir_all-0.5.3
-rustc-demangle-0.1.21
-rusty-fork-0.3.0
-scratch-1.0.2
-section_testing-0.0.5
-syn-1.0.100
-temp-dir-0.1.11
-tempfile-3.3.0
-termcolor-1.1.3
-thiserror-1.0.36
-thiserror-impl-1.0.36
-tinyvec-1.6.0
-tinyvec_macros-0.1.0
-unicode-bidi-0.3.8
-unicode-ident-1.0.4
-unicode-normalization-0.1.22
-unicode-width-0.1.10
-url-2.3.1
-vcpkg-0.2.15
-wait-timeout-0.2.0
-wasi-0.11.0+wasi-snapshot-preview1
-wasm-bindgen-0.2.83
-wasm-bindgen-backend-0.2.83
-wasm-bindgen-macro-0.2.83
-wasm-bindgen-macro-support-0.2.83
-wasm-bindgen-shared-0.2.83
-winapi-0.3.9
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-util-0.1.5
-winapi-x86_64-pc-windows-gnu-0.4.0
-xdg-2.4.1
-"
-
-inherit flag-o-matic toolchain-funcs cargo
-
-DESCRIPTION="An RSS/Atom feed reader for text terminals"
-HOMEPAGE="https://newsboat.org/ https://github.com/newsboat/newsboat"
-SRC_URI="
- https://newsboat.org/releases/${PV}/${P}.tar.xz
- $(cargo_crate_uris ${CRATES})
-"
-
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions Boost-1.0 BSD MIT Unlicense ZLIB"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
-
-RDEPEND="
- >=dev-db/sqlite-3.5:3
- >=dev-libs/json-c-0.11:=
- >=dev-libs/stfl-0.21
- >=net-misc/curl-7.21.6
- dev-libs/libxml2
- dev-libs/openssl:=
- sys-libs/ncurses:=[unicode(+)]
- sys-libs/zlib
-"
-DEPEND="${RDEPEND}
- sys-devel/gettext
-"
-BDEPEND="
- app-alternatives/awk
- >=dev-ruby/asciidoctor-1.5.3
- virtual/pkgconfig
- >=virtual/rust-1.62.0
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-gcc-13.patch
-)
-
-src_prepare() {
- default
-
- sed -i \
- -e "s/WARNFLAGS=-Werror -Wall/WARNFLAGS=-Wall/" \
- -e "s/BARE_CXXFLAGS=-std=c++11 -O2 -ggdb/BARE_CXXFLAGS=-std=c++11/" \
- Makefile || die
-}
-
-src_configure() {
- filter-lto # bug #877657
- ./config.sh || die
-}
-
-src_compile() {
- export CARGO_HOME="${ECARGO_HOME}"
- emake prefix="/usr" CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
-}
-
-src_test() {
- emake CC="${tc-getCC}" CXX="$(tc-getCXX)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" check || die
-}
-
-src_install() {
- emake DESTDIR="${D}" prefix="/usr" docdir="/usr/share/doc/${PF}" install
- einstalldocs
-}
diff --git a/net-news/newsboat/newsboat-2.34.ebuild b/net-news/newsboat/newsboat-2.34-r1.ebuild
index 00ce79f68b8e..cec9141d479a 100644
--- a/net-news/newsboat/newsboat-2.34.ebuild
+++ b/net-news/newsboat/newsboat-2.34-r1.ebuild
@@ -121,6 +121,8 @@ CRATES="
xdg@2.5.2
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo flag-o-matic toolchain-funcs xdg
DESCRIPTION="An RSS/Atom feed reader for text terminals"
@@ -163,7 +165,6 @@ BDEPEND="
app-alternatives/awk
sys-devel/gettext
virtual/pkgconfig
- >=virtual/rust-1.74.0
"
src_prepare() {
diff --git a/net-p2p/arti/arti-1.2.6.ebuild b/net-p2p/arti/arti-1.2.6-r1.ebuild
index 0504b0193b9b..0504b0193b9b 100644
--- a/net-p2p/arti/arti-1.2.6.ebuild
+++ b/net-p2p/arti/arti-1.2.6-r1.ebuild
diff --git a/net-p2p/arti/arti-1.2.7.ebuild b/net-p2p/arti/arti-1.2.7-r1.ebuild
index 8e9690f4332a..8e9690f4332a 100644
--- a/net-p2p/arti/arti-1.2.7.ebuild
+++ b/net-p2p/arti/arti-1.2.7-r1.ebuild
diff --git a/net-vpn/vpncloud/vpncloud-2.3.0-r1.ebuild b/net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild
index 63d0bc271fcb..63d0bc271fcb 100644
--- a/net-vpn/vpncloud/vpncloud-2.3.0-r1.ebuild
+++ b/net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild
diff --git a/profiles/arch/mips/package.use.mask b/profiles/arch/mips/package.use.mask
index fa77510aa188..9dffa1399424 100644
--- a/profiles/arch/mips/package.use.mask
+++ b/profiles/arch/mips/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Matt Jolly <kangie@gentoo.org> (2024-11-03)
+# Requires llvm 16 which is not keyworded
+=dev-lang/rust-1.71.1-r100 system-llvm
+
# Felix Janda <felix.janda@posteo.de> (2024-10-20)
# requires dev-libs/libcss and net-libs/libdom to be keyworded
www-client/elinks libcss
diff --git a/profiles/features/wd40/README b/profiles/features/wd40/README
index 1e90063187fc..abe7317db018 100644
--- a/profiles/features/wd40/README
+++ b/profiles/features/wd40/README
@@ -1,3 +1,3 @@
This is a common profile for architectures and subarchitectures that do not
-support Rust (do not have a working virtual/rust). It serves as a common place
+support Rust (do not have a working Rust). It serves as a common place
to mask the packages requiring Rust and the USE flags pulling them.
diff --git a/profiles/features/wd40/package.use.mask b/profiles/features/wd40/package.use.mask
index e979d08d8575..582010e4e3ef 100644
--- a/profiles/features/wd40/package.use.mask
+++ b/profiles/features/wd40/package.use.mask
@@ -239,7 +239,7 @@ x11-misc/xscreensaver gdm
>=media-libs/libheif-1.10.0 rav1e
# Cédric Krier <cedk@gentoo.org> (2020-11-10)
-# virtual/rust has no ${arch} keyword
+# Rust has no ${arch} keyword
dev-vcs/mercurial rust
# Joonas Niilola <juippis@gentoo.org> (2020-10-02)
@@ -253,7 +253,7 @@ media-libs/gd avif
net-libs/webkit-gtk avif
# Mart Raudsepp <leio@gentoo.org> (2020-08-02)
-# ${arch} has no virtual/rust support, needed by newer gnome-base/librsvg, et al
+# ${arch} has no Rust support, needed by newer gnome-base/librsvg, et al
>=media-gfx/eog-3.33.1 svg
# Thomas Deutschmann <whissi@gentoo.org> (2018-10-12)
diff --git a/profiles/package.mask b/profiles/package.mask
index 268e282ef5ba..756e586620fa 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -33,6 +33,42 @@
#--- END OF EXAMPLES ---
+# Matt Jolly <kangie@gentoo.org> (2024-11-09)
+# The legacy Rust ebuilds are no longer maintained and have been
+# replaced by the new slotted Rust. Removal in 30 days.
+=dev-lang/rust-1.71.1
+=dev-lang/rust-1.74.1
+=dev-lang/rust-1.75.0-r1
+=dev-lang/rust-1.77.1
+=dev-lang/rust-1.79.0
+=dev-lang/rust-1.80.1
+=dev-lang/rust-1.81.0
+=dev-lang/rust-1.82.0
+=dev-lang/rust-bin-1.71.1
+=dev-lang/rust-bin-1.74.1
+=dev-lang/rust-bin-1.75.0
+=dev-lang/rust-bin-1.77.1
+=dev-lang/rust-bin-1.79.0
+=dev-lang/rust-bin-1.80.1
+=dev-lang/rust-bin-1.81.0
+=dev-lang/rust-bin-1.82.0
+=virtual/rust-1.71.1-r2
+=virtual/rust-1.74.1-r1
+=virtual/rust-1.75.0-r1
+=virtual/rust-1.77.1
+=virtual/rust-1.79.0
+=virtual/rust-1.80.1
+=virtual/rust-1.81.0-r1
+=virtual/rust-1.82.0
+
+# Matt Jolly <kangie@gentoo.org> (2024-11-09)
+# Does not build with any rust version in the tree. Removal in 30 days.
+=dev-lang/starlark-rust-0.8.0
+
+# Matt Jolly <kangie@gentoo.org> (2024-11-09)
+# Does not build with any rust version in the tree. Removal in 30 days.
+=dev-util/wasmer-0.11.0
+
# Hans de Graaff <graaff@gentoo.org> (2024-11-08)
# Obsolete slot. Use a newer slot instead. Removal on 2024-12-08.
dev-ruby/faker:2
diff --git a/sci-calculators/xsv/xsv-0.13.0-r1.ebuild b/sci-calculators/xsv/xsv-0.13.0-r1.ebuild
index d5d9399c3aa6..727f733f5d23 100644
--- a/sci-calculators/xsv/xsv-0.13.0-r1.ebuild
+++ b/sci-calculators/xsv/xsv-0.13.0-r1.ebuild
@@ -62,8 +62,6 @@ LICENSE="|| ( MIT Unlicense ) Apache-2.0 Boost-1.0 MIT Unlicense"
SLOT="0"
KEYWORDS="amd64"
-BDEPEND="${RUST_DEPEND}"
-
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_prepare() {
diff --git a/sci-libs/safetensors/safetensors-0.4.3.ebuild b/sci-libs/safetensors/safetensors-0.4.3-r1.ebuild
index fd009b581914..fd009b581914 100644
--- a/sci-libs/safetensors/safetensors-0.4.3.ebuild
+++ b/sci-libs/safetensors/safetensors-0.4.3-r1.ebuild
diff --git a/sci-libs/safetensors/safetensors-0.4.5.ebuild b/sci-libs/safetensors/safetensors-0.4.5-r1.ebuild
index 637f93e00be0..637f93e00be0 100644
--- a/sci-libs/safetensors/safetensors-0.4.5.ebuild
+++ b/sci-libs/safetensors/safetensors-0.4.5-r1.ebuild
diff --git a/sci-libs/tokenizers/tokenizers-0.20.1.ebuild b/sci-libs/tokenizers/tokenizers-0.20.1-r1.ebuild
index f5e839834cd8..e5255c274cb5 100644
--- a/sci-libs/tokenizers/tokenizers-0.20.1.ebuild
+++ b/sci-libs/tokenizers/tokenizers-0.20.1-r1.ebuild
@@ -297,6 +297,11 @@ src_unpack() {
cargo_src_unpack
}
+pkg_setup() {
+ python-single-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_prepare() {
default
cd bindings/python
diff --git a/sys-apps/amdgpu_top/amdgpu_top-0.7.0.ebuild b/sys-apps/amdgpu_top/amdgpu_top-0.7.0-r1.ebuild
index 1387d046786c..a034f5667aa6 100644
--- a/sys-apps/amdgpu_top/amdgpu_top-0.7.0.ebuild
+++ b/sys-apps/amdgpu_top/amdgpu_top-0.7.0-r1.ebuild
@@ -364,6 +364,9 @@ declare -A GIT_CRATES=(
[libdrm_amdgpu_sys]='https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs;6852a973c639385988ce0454b59dddcf40ebcd2f;libdrm-amdgpu-sys-rs-%commit%'
)
+# Box Time T 1.80 stuff
+RUST_MAX_VER="1.79.0"
+
inherit desktop cargo
DESCRIPTION="Tool to displays AMDGPU usage."
diff --git a/sys-apps/amdgpu_top/amdgpu_top-0.9.1.ebuild b/sys-apps/amdgpu_top/amdgpu_top-0.9.1-r1.ebuild
index c8949104ff02..c8949104ff02 100644
--- a/sys-apps/amdgpu_top/amdgpu_top-0.9.1.ebuild
+++ b/sys-apps/amdgpu_top/amdgpu_top-0.9.1-r1.ebuild
diff --git a/sys-apps/asahi-bless/asahi-bless-0.3.0.ebuild b/sys-apps/asahi-bless/asahi-bless-0.3.0-r1.ebuild
index 7cb997d40f69..c9a4d40bfb75 100644
--- a/sys-apps/asahi-bless/asahi-bless-0.3.0.ebuild
+++ b/sys-apps/asahi-bless/asahi-bless-0.3.0-r1.ebuild
@@ -89,6 +89,11 @@ LICENSE+=" MIT Unicode-DFS-2016 ZLIB"
SLOT="0"
KEYWORDS="~arm64"
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
pkg_pretend() {
if use kernel_linux; then
linux_config_exists || die "No suitable kernel configuration could be found"
diff --git a/sys-apps/asahi-nvram/asahi-nvram-0.2.1.ebuild b/sys-apps/asahi-nvram/asahi-nvram-0.2.1-r1.ebuild
index 99e80c6bc1bd..e901a4943328 100644
--- a/sys-apps/asahi-nvram/asahi-nvram-0.2.1.ebuild
+++ b/sys-apps/asahi-nvram/asahi-nvram-0.2.1-r1.ebuild
@@ -89,6 +89,11 @@ LICENSE+=" MIT Unicode-DFS-2016 ZLIB"
SLOT="0"
KEYWORDS="~arm64"
+pkg_setup() {
+ linux-info_pkg_setup
+ rust_pkg_setup
+}
+
pkg_pretend() {
if use kernel_linux; then
linux_config_exists || die "No suitable kernel configuration could be found"
diff --git a/sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3.ebuild b/sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3-r1.ebuild
index 021770dd5ac2..021770dd5ac2 100644
--- a/sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3.ebuild
+++ b/sys-apps/asahi-startup-disk/asahi-startup-disk-0.1.3-r1.ebuild
diff --git a/sys-apps/bat/bat-0.23.0-r1.ebuild b/sys-apps/bat/bat-0.23.0-r2.ebuild
index 0a4601f4acbf..0a4601f4acbf 100644
--- a/sys-apps/bat/bat-0.23.0-r1.ebuild
+++ b/sys-apps/bat/bat-0.23.0-r2.ebuild
diff --git a/sys-apps/bat/bat-0.24.0-r1.ebuild b/sys-apps/bat/bat-0.24.0-r2.ebuild
index 19f0e337f7a3..19f0e337f7a3 100644
--- a/sys-apps/bat/bat-0.24.0-r1.ebuild
+++ b/sys-apps/bat/bat-0.24.0-r2.ebuild
diff --git a/sys-apps/cyme/cyme-2.0.0.ebuild b/sys-apps/cyme/cyme-2.0.0-r1.ebuild
index 253de8e929b4..253de8e929b4 100644
--- a/sys-apps/cyme/cyme-2.0.0.ebuild
+++ b/sys-apps/cyme/cyme-2.0.0-r1.ebuild
diff --git a/sys-apps/cyme/cyme-2.1.0.ebuild b/sys-apps/cyme/cyme-2.1.0-r1.ebuild
index 916284d52d4c..916284d52d4c 100644
--- a/sys-apps/cyme/cyme-2.1.0.ebuild
+++ b/sys-apps/cyme/cyme-2.1.0-r1.ebuild
diff --git a/sys-apps/eza/eza-0.18.16.ebuild b/sys-apps/eza/eza-0.18.16-r1.ebuild
index f8a9cd311cc1..254b0371aec5 100644
--- a/sys-apps/eza/eza-0.18.16.ebuild
+++ b/sys-apps/eza/eza-0.18.16-r1.ebuild
@@ -208,7 +208,6 @@ IUSE="+git"
DEPEND="git? ( >=dev-libs/libgit2-1.7.0:= )"
RDEPEND="${DEPEND}"
-BDEPEND=">=virtual/rust-1.70.0"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/sys-apps/eza/eza-0.19.0.ebuild b/sys-apps/eza/eza-0.19.0-r1.ebuild
index 6ad5bd48c0fa..608385c2d834 100644
--- a/sys-apps/eza/eza-0.19.0.ebuild
+++ b/sys-apps/eza/eza-0.19.0-r1.ebuild
@@ -209,7 +209,6 @@ IUSE="+git"
DEPEND="git? ( >=dev-libs/libgit2-1.8.1:= )"
RDEPEND="${DEPEND}"
-BDEPEND=">=virtual/rust-1.70.0"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/sys-apps/eza/eza-0.19.2.ebuild b/sys-apps/eza/eza-0.19.2-r1.ebuild
index 7c748f4db104..5cae0cd643de 100644
--- a/sys-apps/eza/eza-0.19.2.ebuild
+++ b/sys-apps/eza/eza-0.19.2-r1.ebuild
@@ -221,7 +221,6 @@ IUSE="+git"
DEPEND="git? ( >=dev-libs/libgit2-1.8.1:= )"
RDEPEND="${DEPEND}"
-BDEPEND=">=virtual/rust-1.70.0"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/sys-apps/eza/eza-0.20.0.ebuild b/sys-apps/eza/eza-0.20.0-r1.ebuild
index 6fcea33029cc..1d56ac890116 100644
--- a/sys-apps/eza/eza-0.20.0.ebuild
+++ b/sys-apps/eza/eza-0.20.0-r1.ebuild
@@ -229,7 +229,6 @@ IUSE="+git"
DEPEND="git? ( >=dev-libs/libgit2-1.8.1:= )"
RDEPEND="${DEPEND}"
-BDEPEND=">=virtual/rust-1.70.0"
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/sys-apps/fd/fd-10.2.0.ebuild b/sys-apps/fd/fd-10.2.0-r1.ebuild
index 7aebdb798a90..0435d37a069f 100644
--- a/sys-apps/fd/fd-10.2.0.ebuild
+++ b/sys-apps/fd/fd-10.2.0-r1.ebuild
@@ -119,6 +119,8 @@ CRATES="
windows_x86_64_msvc@0.52.6
"
+RUST_MIN_VER="1.79.0"
+
inherit bash-completion-r1 cargo
DESCRIPTION="Alternative to find that provides sensible defaults for 80% of the use cases"
@@ -141,9 +143,6 @@ DEPEND="
RDEPEND="
${DEPEND}
"
-BDEPEND="
- >=virtual/rust-1.77.2
-"
QA_FLAGS_IGNORED="/usr/bin/fd"
diff --git a/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0-r1.ebuild b/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..9a64306f99e0
--- /dev/null
+++ b/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0-r1.ebuild
@@ -0,0 +1,161 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.19
+ atty@0.2.14
+ autocfg@1.1.0
+ bindgen@0.60.1
+ bitflags@1.3.2
+ bytes@1.2.1
+ cexpr@0.6.0
+ cfg-if@1.0.0
+ clang-sys@1.3.3
+ clap@3.2.22
+ clap_derive@3.2.18
+ clap_lex@0.2.4
+ either@1.8.0
+ env_logger@0.9.1
+ futures@0.3.24
+ futures-channel@0.3.24
+ futures-core@0.3.24
+ futures-executor@0.3.24
+ futures-io@0.3.24
+ futures-macro@0.3.24
+ futures-sink@0.3.24
+ futures-task@0.3.24
+ futures-util@0.3.24
+ getrandom@0.2.7
+ glob@0.3.0
+ hashbrown@0.12.3
+ heck@0.4.0
+ hermit-abi@0.1.19
+ humantime@2.1.0
+ indexmap@1.9.1
+ itoa@1.0.3
+ lazy_static@1.4.0
+ lazycell@1.3.0
+ libc@0.2.132
+ libloading@0.7.3
+ lock_api@0.4.8
+ log@0.4.17
+ memchr@2.5.0
+ minimal-lexical@0.2.1
+ mio@0.8.4
+ nom@7.1.1
+ num_cpus@1.13.1
+ once_cell@1.14.0
+ os_str_bytes@6.3.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.3
+ peeking_take_while@0.1.2
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ pkg-config@0.3.25
+ ppv-lite86@0.2.16
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.43
+ quote@1.0.21
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.2.16
+ regex@1.6.0
+ regex-syntax@0.6.27
+ retry@2.0.0
+ rustc-hash@1.1.0
+ ryu@1.0.11
+ scopeguard@1.1.0
+ serde@1.0.144
+ serde_derive@1.0.144
+ serde_json@1.0.85
+ shlex@1.1.0
+ signal-hook-registry@1.4.0
+ slab@0.4.7
+ smallvec@1.9.0
+ socket2@0.4.7
+ strsim@0.10.0
+ syn@1.0.99
+ termcolor@1.1.3
+ textwrap@0.15.1
+ thiserror@1.0.35
+ thiserror-impl@1.0.35
+ tokio@1.21.1
+ tokio-macros@1.8.0
+ tokio-stream@0.1.10
+ toml@0.5.9
+ unicode-ident@1.0.4
+ version_check@0.9.4
+ wasi@0.11.0+wasi-snapshot-preview1
+ which@4.3.0
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.36.1
+ windows_aarch64_msvc@0.36.1
+ windows_i686_gnu@0.36.1
+ windows_i686_msvc@0.36.1
+ windows_x86_64_gnu@0.36.1
+ windows_x86_64_msvc@0.36.1
+"
+
+inherit cargo optfeature systemd
+
+DESCRIPTION="SuperMicro IPMI fan control daemon"
+HOMEPAGE="https://github.com/chenxiaolong/ipmi-fan-control"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/chenxiaolong/${PN}"
+else
+ SRC_URI="https://github.com/chenxiaolong/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+ # supported boards are x86_64 only, do not keyword elsewhere
+ # technically it could run on remote host and issue commands via ipmitool lanplus, but that's very edgy case
+ KEYWORDS="-* ~amd64"
+fi
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 GPL-3+ ISC MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+
+BDEPEND="
+ sys-devel/clang
+ virtual/pkgconfig
+"
+
+RDEPEND="sys-libs/freeipmi"
+DEPEND="${RDEPEND}"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_install() {
+ cargo_src_install
+
+ sed -i \
+ -e "s|@BINDIR@|${EPREFIX}/usr/bin|" \
+ -e "s|@SYSCONFDIR@|${EPREFIX}/etc|" \
+ dist/ipmi-fan-control.service.in || die
+
+ # TODO: add openrc service
+ systemd_newunit dist/ipmi-fan-control.service.in ipmi-fan-control.service
+
+ insinto /etc
+ newins config.sample.toml "${PN}".toml
+}
+
+pkg_postinst() {
+ optfeature "S.M.A.R.T. drive temperature support" sys-apps/smartmontools
+}
diff --git a/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0.ebuild b/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0.ebuild
deleted file mode 100644
index d5ac89808170..000000000000
--- a/sys-apps/ipmi-fan-control/ipmi-fan-control-0.4.0.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- aho-corasick-0.7.19
- atty-0.2.14
- autocfg-1.1.0
- bindgen-0.60.1
- bitflags-1.3.2
- bytes-1.2.1
- cexpr-0.6.0
- cfg-if-1.0.0
- clang-sys-1.3.3
- clap-3.2.22
- clap_derive-3.2.18
- clap_lex-0.2.4
- either-1.8.0
- env_logger-0.9.1
- futures-0.3.24
- futures-channel-0.3.24
- futures-core-0.3.24
- futures-executor-0.3.24
- futures-io-0.3.24
- futures-macro-0.3.24
- futures-sink-0.3.24
- futures-task-0.3.24
- futures-util-0.3.24
- getrandom-0.2.7
- glob-0.3.0
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- humantime-2.1.0
- indexmap-1.9.1
- itoa-1.0.3
- lazy_static-1.4.0
- lazycell-1.3.0
- libc-0.2.132
- libloading-0.7.3
- lock_api-0.4.8
- log-0.4.17
- memchr-2.5.0
- minimal-lexical-0.2.1
- mio-0.8.4
- nom-7.1.1
- num_cpus-1.13.1
- once_cell-1.14.0
- os_str_bytes-6.3.0
- parking_lot-0.12.1
- parking_lot_core-0.9.3
- peeking_take_while-0.1.2
- pin-project-lite-0.2.9
- pin-utils-0.1.0
- pkg-config-0.3.25
- ppv-lite86-0.2.16
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- quote-1.0.21
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.4
- redox_syscall-0.2.16
- regex-1.6.0
- regex-syntax-0.6.27
- retry-2.0.0
- rustc-hash-1.1.0
- ryu-1.0.11
- scopeguard-1.1.0
- serde-1.0.144
- serde_derive-1.0.144
- serde_json-1.0.85
- shlex-1.1.0
- signal-hook-registry-1.4.0
- slab-0.4.7
- smallvec-1.9.0
- socket2-0.4.7
- strsim-0.10.0
- syn-1.0.99
- termcolor-1.1.3
- textwrap-0.15.1
- thiserror-1.0.35
- thiserror-impl-1.0.35
- tokio-1.21.1
- tokio-macros-1.8.0
- tokio-stream-0.1.10
- toml-0.5.9
- unicode-ident-1.0.4
- version_check-0.9.4
- wasi-0.11.0+wasi-snapshot-preview1
- which-4.3.0
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.36.1
- windows_i686_gnu-0.36.1
- windows_i686_msvc-0.36.1
- windows_x86_64_gnu-0.36.1
- windows_x86_64_msvc-0.36.1
-"
-
-inherit cargo optfeature systemd
-
-DESCRIPTION="SuperMicro IPMI fan control daemon"
-HOMEPAGE="https://github.com/chenxiaolong/ipmi-fan-control"
-
-if [[ ${PV} == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/chenxiaolong/${PN}"
-else
- SRC_URI="https://github.com/chenxiaolong/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
- # supported boards are x86_64 only, do not keyword elsewhere
- # technically it could run on remote host and issue commands via ipmitool lanplus, but that's very edgy case
- KEYWORDS="-* ~amd64"
-fi
-
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 GPL-3+ ISC MIT Unicode-DFS-2016 Unlicense"
-SLOT="0"
-
-BDEPEND="
- sys-devel/clang
- virtual/pkgconfig
-"
-
-RDEPEND="sys-libs/freeipmi"
-DEPEND="${RDEPEND}"
-
-QA_FLAGS_IGNORED="usr/bin/${PN}"
-
-src_unpack() {
- if [[ ${PV} == 9999 ]]; then
- git-r3_src_unpack
- cargo_live_src_unpack
- else
- cargo_src_unpack
- fi
-}
-
-src_install() {
- cargo_src_install
-
- sed -i \
- -e "s|@BINDIR@|${EPREFIX}/usr/bin|" \
- -e "s|@SYSCONFDIR@|${EPREFIX}/etc|" \
- dist/ipmi-fan-control.service.in || die
-
- # TODO: add openrc service
- systemd_newunit dist/ipmi-fan-control.service.in ipmi-fan-control.service
-
- insinto /etc
- newins config.sample.toml "${PN}".toml
-}
-
-pkg_postinst() {
- optfeature "S.M.A.R.T. drive temperature support" sys-apps/smartmontools
-}
diff --git a/sys-apps/ipmi-fan-control/ipmi-fan-control-9999.ebuild b/sys-apps/ipmi-fan-control/ipmi-fan-control-9999.ebuild
index 9edc0bc051d8..b54b1009b6a3 100644
--- a/sys-apps/ipmi-fan-control/ipmi-fan-control-9999.ebuild
+++ b/sys-apps/ipmi-fan-control/ipmi-fan-control-9999.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/chenxiaolong/${PN}"
else
SRC_URI="https://github.com/chenxiaolong/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
+ ${CARGO_CRATE_URIS}"
# supported boards are x86_64 only, do not keyword elsewhere
# technically it could run on remote host and issue commands via ipmitool lanplus, but that's very edgy case
KEYWORDS="-* ~amd64"
diff --git a/sys-apps/lsd/lsd-1.1.3.ebuild b/sys-apps/lsd/lsd-1.1.3-r1.ebuild
index c152363a432b..c152363a432b 100644
--- a/sys-apps/lsd/lsd-1.1.3.ebuild
+++ b/sys-apps/lsd/lsd-1.1.3-r1.ebuild
diff --git a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15.ebuild b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14-r1.ebuild
index e12a623430f6..6ae730a05105 100644
--- a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15.ebuild
+++ b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14-r1.ebuild
@@ -4,7 +4,8 @@
EAPI=8
CRATES=" "
-LLVM_COMPAT=( {17..18} )
+LLVM_COMPAT=( 17 )
+
inherit edo cargo llvm-r1
DESCRIPTION="pkgcraft-based tools for Gentoo"
@@ -35,10 +36,14 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
@@ -49,5 +54,5 @@ src_unpack() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --all-features --tests
}
diff --git a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16.ebuild b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15-r1.ebuild
index e12a623430f6..4dd6b1e8e90e 100644
--- a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16.ebuild
+++ b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.15-r1.ebuild
@@ -5,7 +5,9 @@ EAPI=8
CRATES=" "
LLVM_COMPAT=( {17..18} )
-inherit edo cargo llvm-r1
+RUST_MIN_VER="1.77.1"
+
+inherit edo llvm-r1 cargo
DESCRIPTION="pkgcraft-based tools for Gentoo"
HOMEPAGE="https://pkgcraft.github.io/"
@@ -35,10 +37,14 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
@@ -49,5 +55,5 @@ src_unpack() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --all-features --tests
}
diff --git a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14.ebuild b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16-r1.ebuild
index fa06a1993399..4dd6b1e8e90e 100644
--- a/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.14.ebuild
+++ b/sys-apps/pkgcraft-tools/pkgcraft-tools-0.0.16-r1.ebuild
@@ -4,8 +4,10 @@
EAPI=8
CRATES=" "
-LLVM_MAX_SLOT=17
-inherit edo cargo llvm
+LLVM_COMPAT=( {17..18} )
+RUST_MIN_VER="1.77.1"
+
+inherit edo llvm-r1 cargo
DESCRIPTION="pkgcraft-based tools for Gentoo"
HOMEPAGE="https://pkgcraft.github.io/"
@@ -32,13 +34,15 @@ QA_FLAGS_IGNORED="usr/bin/pk"
# Clang needed for bindgen
BDEPEND="
- <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1))
- >=virtual/rust-1.71
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ ')
test? ( dev-util/cargo-nextest )
"
-llvm_check_deps() {
- has_version -b "sys-devel/clang:${LLVM_SLOT}"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_unpack() {
@@ -51,5 +55,5 @@ src_unpack() {
}
src_test() {
- edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
+ edo ${CARGO} nextest run $(usev !debug '--release') --color always --all-features --tests
}
diff --git a/sys-apps/pkgcraft-tools/pkgcraft-tools-9999.ebuild b/sys-apps/pkgcraft-tools/pkgcraft-tools-9999.ebuild
index e12a623430f6..3739b1a925c3 100644
--- a/sys-apps/pkgcraft-tools/pkgcraft-tools-9999.ebuild
+++ b/sys-apps/pkgcraft-tools/pkgcraft-tools-9999.ebuild
@@ -5,7 +5,9 @@ EAPI=8
CRATES=" "
LLVM_COMPAT=( {17..18} )
-inherit edo cargo llvm-r1
+RUST_MIN_VER="1.77.1"
+
+inherit edo llvm-r1 cargo
DESCRIPTION="pkgcraft-based tools for Gentoo"
HOMEPAGE="https://pkgcraft.github.io/"
@@ -35,10 +37,14 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.76
test? ( dev-util/cargo-nextest )
"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
diff --git a/sys-apps/ripgrep/ripgrep-14.1.1.ebuild b/sys-apps/ripgrep/ripgrep-14.1.1-r1.ebuild
index 85eb70fa4749..3b365db8e3c0 100644
--- a/sys-apps/ripgrep/ripgrep-14.1.1.ebuild
+++ b/sys-apps/ripgrep/ripgrep-14.1.1-r1.ebuild
@@ -57,6 +57,8 @@ CRATES="
windows_x86_64_msvc@0.52.6
"
+RUST_MIN_VER="1.74.1"
+
inherit cargo bash-completion-r1
DESCRIPTION="Search tool that combines the usability of ag with the raw speed of grep"
@@ -79,7 +81,6 @@ IUSE="+pcre"
RDEPEND="pcre? ( dev-libs/libpcre2:= )"
DEPEND="${RDEPEND}"
BDEPEND="
- >=virtual/rust-1.72
virtual/pkgconfig
"
diff --git a/sys-apps/systemctl-tui/systemctl-tui-0.3.4.ebuild b/sys-apps/systemctl-tui/systemctl-tui-0.3.4-r1.ebuild
index 5d4095fe4bfe..5d4095fe4bfe 100644
--- a/sys-apps/systemctl-tui/systemctl-tui-0.3.4.ebuild
+++ b/sys-apps/systemctl-tui/systemctl-tui-0.3.4-r1.ebuild
diff --git a/sys-apps/uutils-coreutils/uutils-coreutils-0.0.25.ebuild b/sys-apps/uutils-coreutils/uutils-coreutils-0.0.25-r1.ebuild
index 54d71a2f8c9c..48add188ba43 100644
--- a/sys-apps/uutils-coreutils/uutils-coreutils-0.0.25.ebuild
+++ b/sys-apps/uutils-coreutils/uutils-coreutils-0.0.25-r1.ebuild
@@ -320,7 +320,6 @@ DEPEND="
"
RDEPEND="${DEPEND}"
BDEPEND="
- >=virtual/rust-1.70.0
test? ( dev-util/cargo-nextest )
"
diff --git a/sys-apps/uutils-coreutils/uutils-coreutils-0.0.27.ebuild b/sys-apps/uutils-coreutils/uutils-coreutils-0.0.27-r1.ebuild
index 81d874fa698b..983444b96327 100644
--- a/sys-apps/uutils-coreutils/uutils-coreutils-0.0.27.ebuild
+++ b/sys-apps/uutils-coreutils/uutils-coreutils-0.0.27-r1.ebuild
@@ -350,7 +350,6 @@ DEPEND="
"
RDEPEND="${DEPEND}"
BDEPEND="
- >=virtual/rust-1.70.0
test? ( dev-util/cargo-nextest )
"
diff --git a/sys-apps/uutils-coreutils/uutils-coreutils-9999.ebuild b/sys-apps/uutils-coreutils/uutils-coreutils-9999.ebuild
index 81d874fa698b..983444b96327 100644
--- a/sys-apps/uutils-coreutils/uutils-coreutils-9999.ebuild
+++ b/sys-apps/uutils-coreutils/uutils-coreutils-9999.ebuild
@@ -350,7 +350,6 @@ DEPEND="
"
RDEPEND="${DEPEND}"
BDEPEND="
- >=virtual/rust-1.70.0
test? ( dev-util/cargo-nextest )
"
diff --git a/sys-apps/uutils-findutils/uutils-findutils-0.4.2-r1.ebuild b/sys-apps/uutils-findutils/uutils-findutils-0.4.2-r1.ebuild
index c31dd891b770..c4c8d32c12b0 100644
--- a/sys-apps/uutils-findutils/uutils-findutils-0.4.2-r1.ebuild
+++ b/sys-apps/uutils-findutils/uutils-findutils-0.4.2-r1.ebuild
@@ -176,8 +176,9 @@ declare -A GIT_CRATES=(
[onig_sys]="https://github.com/rust-onig/rust-onig;fa90c0e97e90a056af89f183b23cd417b59ee6a2;rust-onig-%commit%/onig_sys"
)
-LLVM_MAX_SLOT=17
-inherit cargo llvm
+LLVM_COMPAT=( 17 )
+
+inherit cargo llvm-r1
DESCRIPTION="GNU findutils rewritten in Rust"
HOMEPAGE="https://uutils.github.io/findutils/ https://github.com/uutils/findutils"
@@ -208,8 +209,9 @@ fi
RDEPEND=">=dev-libs/oniguruma-6.9.9:="
DEPEND="${RDEPEND}"
BDEPEND="
- <sys-devel/clang-$((LLVM_MAX_SLOT + 1))
- >=virtual/rust-1.56.0
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ ')
"
QA_FLAGS_IGNORED=".*"
@@ -218,6 +220,11 @@ PATCHES=(
"${WORKDIR}"/${PN}-0.4.2-update-crates.patch
)
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
diff --git a/sys-apps/uutils-findutils/uutils-findutils-0.5.0.ebuild b/sys-apps/uutils-findutils/uutils-findutils-0.5.0-r1.ebuild
index 68631a51d6bf..6c03da24e81d 100644
--- a/sys-apps/uutils-findutils/uutils-findutils-0.5.0.ebuild
+++ b/sys-apps/uutils-findutils/uutils-findutils-0.5.0-r1.ebuild
@@ -166,11 +166,15 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED=".*"
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
diff --git a/sys-apps/uutils-findutils/uutils-findutils-9999.ebuild b/sys-apps/uutils-findutils/uutils-findutils-9999.ebuild
index 68631a51d6bf..f8a83a5773bb 100644
--- a/sys-apps/uutils-findutils/uutils-findutils-9999.ebuild
+++ b/sys-apps/uutils-findutils/uutils-findutils-9999.ebuild
@@ -133,7 +133,7 @@ CRATES="
"
LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1
+inherit llvm-r1 cargo
DESCRIPTION="GNU findutils rewritten in Rust"
HOMEPAGE="https://uutils.github.io/findutils/ https://github.com/uutils/findutils"
@@ -166,7 +166,6 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}
')
- >=virtual/rust-1.70
"
QA_FLAGS_IGNORED=".*"
diff --git a/sys-apps/zram-generator/zram-generator-1.1.2.ebuild b/sys-apps/zram-generator/zram-generator-1.1.2-r1.ebuild
index e9c8dc4ca9ff..3d422cd75d43 100644
--- a/sys-apps/zram-generator/zram-generator-1.1.2.ebuild
+++ b/sys-apps/zram-generator/zram-generator-1.1.2-r1.ebuild
@@ -4,44 +4,44 @@
EAPI=8
CRATES="
- ahash-0.4.7
- anyhow-1.0.45
- autocfg-1.0.1
- bitflags-1.2.1
- cc-1.0.72
- cfg-if-1.0.0
- clap-2.33.3
- ctor-0.1.21
- dlv-list-0.2.3
- fasteval-0.2.4
- fs_extra-1.2.0
- getrandom-0.2.3
- hashbrown-0.9.1
- libc-0.2.107
- liboverdrop-0.0.2
- log-0.4.14
- memoffset-0.6.4
- nix-0.22.2
- ordered-multimap-0.3.1
- ppv-lite86-0.2.15
- proc-macro2-1.0.32
- quote-1.0.10
- rand-0.8.4
- rand_chacha-0.3.1
- rand_core-0.6.3
- rand_hc-0.3.1
- redox_syscall-0.2.10
- remove_dir_all-0.5.3
- rust-ini-0.17.0
- syn-1.0.81
- tempfile-3.2.0
- textwrap-0.11.0
- unicode-width-0.1.9
- unicode-xid-0.2.2
- wasi-0.10.2+wasi-snapshot-preview1
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-x86_64-pc-windows-gnu-0.4.0
+ ahash@0.4.7
+ anyhow@1.0.45
+ autocfg@1.0.1
+ bitflags@1.2.1
+ cc@1.0.72
+ cfg-if@1.0.0
+ clap@2.33.3
+ ctor@0.1.21
+ dlv-list@0.2.3
+ fasteval@0.2.4
+ fs_extra@1.2.0
+ getrandom@0.2.3
+ hashbrown@0.9.1
+ libc@0.2.107
+ liboverdrop@0.0.2
+ log@0.4.14
+ memoffset@0.6.4
+ nix@0.22.2
+ ordered-multimap@0.3.1
+ ppv-lite86@0.2.15
+ proc-macro2@1.0.32
+ quote@1.0.10
+ rand@0.8.4
+ rand_chacha@0.3.1
+ rand_core@0.6.3
+ rand_hc@0.3.1
+ redox_syscall@0.2.10
+ remove_dir_all@0.5.3
+ rust-ini@0.17.0
+ syn@1.0.81
+ tempfile@3.2.0
+ textwrap@0.11.0
+ unicode-width@0.1.9
+ unicode-xid@0.2.2
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
"
inherit cargo systemd toolchain-funcs
@@ -49,16 +49,17 @@ inherit cargo systemd toolchain-funcs
DESCRIPTION="Systemd unit generator for zram swap devices"
HOMEPAGE="https://github.com/systemd/zram-generator"
SRC_URI="https://github.com/systemd/zram-generator/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris ${CRATES})"
+ ${CARGO_CRATE_URIS}"
LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT"
SLOT="0"
KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv"
IUSE="+man"
-BDEPEND="virtual/rust
+BDEPEND="
virtual/pkgconfig
- man? ( app-text/ronn-ng )"
+ man? ( app-text/ronn-ng )
+"
QA_FLAGS_IGNORED="lib/systemd/system-generators/zram-generator"
diff --git a/sys-block/dust/dust-1.1.1.ebuild b/sys-block/dust/dust-1.1.1-r1.ebuild
index 4fea455abe5e..4fea455abe5e 100644
--- a/sys-block/dust/dust-1.1.1.ebuild
+++ b/sys-block/dust/dust-1.1.1-r1.ebuild
diff --git a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10.ebuild b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10-r1.ebuild
index 6907ab3f3bb5..6907ab3f3bb5 100644
--- a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10.ebuild
+++ b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.10-r1.ebuild
diff --git a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13.ebuild b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13-r1.ebuild
index a8c7690f5066..a8c7690f5066 100644
--- a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13.ebuild
+++ b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.13-r1.ebuild
diff --git a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14.ebuild b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild
index c3920bb0d0ec..b7d67783148e 100644
--- a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14.ebuild
+++ b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild
@@ -149,7 +149,7 @@ declare -A GIT_CRATES=(
LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1
+inherit llvm-r1 cargo
DESCRIPTION="A suite of tools for thin provisioning on Linux"
HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools"
diff --git a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r1.ebuild b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild
index 198b0bb7c620..226c8272ce46 100644
--- a/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r1.ebuild
+++ b/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild
@@ -150,7 +150,7 @@ declare -A GIT_CRATES=(
LLVM_COMPAT=( {17..18} )
-inherit cargo llvm-r1
+inherit llvm-r1 cargo
DESCRIPTION="A suite of tools for thin provisioning on Linux"
HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools"
diff --git a/sys-devel/gcc/gcc-8.5.0-r1.ebuild b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
index c1ae8df40177..bb2c7eb73ab8 100644
--- a/sys-devel/gcc/gcc-8.5.0-r1.ebuild
+++ b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI="8"
TOOLCHAIN_PATCH_SUFFIX="xz"
TOOLCHAIN_PATCH_DEV="sam"
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-1.11.0.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-1.11.0-r1.ebuild
index 566129b51e44..a15809aa8729 100644
--- a/sys-fs/bcachefs-tools/bcachefs-tools-1.11.0.ebuild
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-1.11.0-r1.ebuild
@@ -99,7 +99,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
PYTHON_COMPAT=( python3_{10..13} )
-inherit cargo flag-o-matic llvm-r1 python-any-r1 shell-completion toolchain-funcs unpacker
+inherit llvm-r1 cargo flag-o-matic python-any-r1 shell-completion toolchain-funcs unpacker
DESCRIPTION="Tools for bcachefs"
HOMEPAGE="https://bcachefs.org/"
@@ -145,7 +145,6 @@ BDEPEND="
')
elibc_musl? ( >=sys-libs/musl-1.2.5 )
virtual/pkgconfig
- virtual/rust
"
QA_FLAGS_IGNORED="/sbin/bcachefs"
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-1.13.0.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-1.13.0-r1.ebuild
index 004251f02079..da8e0cb0bcd2 100644
--- a/sys-fs/bcachefs-tools/bcachefs-tools-1.13.0.ebuild
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-1.13.0-r1.ebuild
@@ -90,7 +90,8 @@ CRATES="
LLVM_COMPAT=( {16..18} )
PYTHON_COMPAT=( python3_{10..13} )
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kentoverstreet.asc
-inherit cargo flag-o-matic llvm-r1 python-any-r1 shell-completion toolchain-funcs unpacker verify-sig
+
+inherit llvm-r1 cargo flag-o-matic python-any-r1 shell-completion toolchain-funcs unpacker verify-sig
DESCRIPTION="Tools for bcachefs"
HOMEPAGE="https://bcachefs.org/"
@@ -137,7 +138,6 @@ BDEPEND="
')
elibc_musl? ( >=sys-libs/musl-1.2.5 )
virtual/pkgconfig
- virtual/rust
verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 )
"
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-1.7.0.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-1.7.0-r1.ebuild
index ca3cca9c03ae..413ed976120b 100644
--- a/sys-fs/bcachefs-tools/bcachefs-tools-1.7.0.ebuild
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-1.7.0-r1.ebuild
@@ -95,7 +95,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
PYTHON_COMPAT=( python3_{10..12} )
-inherit cargo flag-o-matic llvm-r1 multiprocessing python-any-r1 shell-completion toolchain-funcs unpacker
+inherit llvm-r1 cargo flag-o-matic multiprocessing python-any-r1 shell-completion toolchain-funcs unpacker
DESCRIPTION="Tools for bcachefs"
HOMEPAGE="https://bcachefs.org/"
@@ -144,7 +144,6 @@ BDEPEND="
sys-devel/clang:${LLVM_SLOT}
')
virtual/pkgconfig
- virtual/rust
"
QA_FLAGS_IGNORED="/sbin/bcachefs"
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-1.9.4.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-1.9.4-r1.ebuild
index 7e5aa241533f..7a9612a910b2 100644
--- a/sys-fs/bcachefs-tools/bcachefs-tools-1.9.4.ebuild
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-1.9.4-r1.ebuild
@@ -102,7 +102,7 @@ CRATES="
LLVM_COMPAT=( {16..18} )
PYTHON_COMPAT=( python3_{10..13} )
-inherit cargo flag-o-matic llvm-r1 multiprocessing python-any-r1 shell-completion toolchain-funcs unpacker
+inherit llvm-r1 cargo flag-o-matic multiprocessing python-any-r1 shell-completion toolchain-funcs unpacker
DESCRIPTION="Tools for bcachefs"
HOMEPAGE="https://bcachefs.org/"
@@ -151,7 +151,6 @@ BDEPEND="
sys-devel/clang:${LLVM_SLOT}
')
virtual/pkgconfig
- virtual/rust
"
QA_FLAGS_IGNORED="/sbin/bcachefs"
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-9999.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-9999.ebuild
index 0d04e49d8739..1c31662fbd04 100644
--- a/sys-fs/bcachefs-tools/bcachefs-tools-9999.ebuild
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-9999.ebuild
@@ -137,7 +137,6 @@ BDEPEND="
')
elibc_musl? ( >=sys-libs/musl-1.2.5 )
virtual/pkgconfig
- virtual/rust
verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 )
"
diff --git a/sys-kernel/scx/scx-1.0.5-r1.ebuild b/sys-kernel/scx/scx-1.0.5-r2.ebuild
index 6956284d3b74..b2528d6fa81e 100644
--- a/sys-kernel/scx/scx-1.0.5-r1.ebuild
+++ b/sys-kernel/scx/scx-1.0.5-r2.ebuild
@@ -294,7 +294,9 @@ CRATES="
zvariant_utils@2.1.0
"
-inherit linux-info cargo rust-toolchain llvm-r1 meson
+RUST_MIN_VER="1.74.1"
+
+inherit llvm-r1 cargo linux-info meson rust-toolchain
DESCRIPTION="sched_ext schedulers and tools"
HOMEPAGE="https://github.com/sched-ext/scx"
@@ -329,7 +331,6 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=[llvm_targets_BPF(-)]
')
- >=virtual/rust-1.72
"
CONFIG_CHECK="
@@ -345,6 +346,7 @@ CONFIG_CHECK="
pkg_setup() {
linux-info_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_prepare() {
diff --git a/sys-kernel/scx/scx-1.0.6.ebuild b/sys-kernel/scx/scx-1.0.6-r1.ebuild
index 9d15161ace1f..4b40f8f109f9 100644
--- a/sys-kernel/scx/scx-1.0.6.ebuild
+++ b/sys-kernel/scx/scx-1.0.6-r1.ebuild
@@ -298,7 +298,9 @@ CRATES="
zvariant_utils@2.1.0
"
-inherit linux-info cargo rust-toolchain llvm-r1 meson
+RUST_MIN_VER="1.74.1"
+
+inherit llvm-r1 linux-info cargo rust-toolchain meson
DESCRIPTION="sched_ext schedulers and tools"
HOMEPAGE="https://github.com/sched-ext/scx"
@@ -333,7 +335,6 @@ BDEPEND="
$(llvm_gen_dep '
sys-devel/clang:${LLVM_SLOT}=[llvm_targets_BPF(-)]
')
- >=virtual/rust-1.72
"
CONFIG_CHECK="
@@ -349,6 +350,7 @@ CONFIG_CHECK="
pkg_setup() {
linux-info_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
}
src_prepare() {
diff --git a/sys-libs/pkgcraft/pkgcraft-0.0.15.ebuild b/sys-libs/pkgcraft/pkgcraft-0.0.14-r1.ebuild
index a964805ae71c..07b4580ff296 100644
--- a/sys-libs/pkgcraft/pkgcraft-0.0.15.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-0.0.14-r1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
CRATES=" "
+
inherit edo cargo toolchain-funcs
DESCRIPTION="C library for pkgcraft"
@@ -35,7 +36,6 @@ RESTRICT="!test? ( test )"
BDEPEND+="
dev-util/cargo-c
sys-devel/clang
- >=virtual/rust-1.76
"
QA_FLAGS_IGNORED="usr/lib.*/libpkgcraft.so.*"
diff --git a/sys-libs/pkgcraft/pkgcraft-0.0.14.ebuild b/sys-libs/pkgcraft/pkgcraft-0.0.15-r1.ebuild
index 5745de4a1c9f..c34dff61599f 100644
--- a/sys-libs/pkgcraft/pkgcraft-0.0.14.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-0.0.15-r1.ebuild
@@ -4,6 +4,8 @@
EAPI=8
CRATES=" "
+RUST_MIN_VER="1.77.1"
+
inherit edo cargo toolchain-funcs
DESCRIPTION="C library for pkgcraft"
@@ -35,7 +37,6 @@ RESTRICT="!test? ( test )"
BDEPEND+="
dev-util/cargo-c
sys-devel/clang
- >=virtual/rust-1.71
"
QA_FLAGS_IGNORED="usr/lib.*/libpkgcraft.so.*"
diff --git a/sys-libs/pkgcraft/pkgcraft-0.0.16.ebuild b/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild
index a964805ae71c..0fe19eb425da 100644
--- a/sys-libs/pkgcraft/pkgcraft-0.0.16.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild
@@ -4,6 +4,9 @@
EAPI=8
CRATES=" "
+
+RUST_MIN_VER="1.77.1"
+
inherit edo cargo toolchain-funcs
DESCRIPTION="C library for pkgcraft"
@@ -35,7 +38,6 @@ RESTRICT="!test? ( test )"
BDEPEND+="
dev-util/cargo-c
sys-devel/clang
- >=virtual/rust-1.76
"
QA_FLAGS_IGNORED="usr/lib.*/libpkgcraft.so.*"
diff --git a/sys-libs/pkgcraft/pkgcraft-9999.ebuild b/sys-libs/pkgcraft/pkgcraft-9999.ebuild
index a964805ae71c..024776672574 100644
--- a/sys-libs/pkgcraft/pkgcraft-9999.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-9999.ebuild
@@ -35,7 +35,6 @@ RESTRICT="!test? ( test )"
BDEPEND+="
dev-util/cargo-c
sys-devel/clang
- >=virtual/rust-1.76
"
QA_FLAGS_IGNORED="usr/lib.*/libpkgcraft.so.*"
diff --git a/sys-power/wluma/wluma-4.3.0-r2.ebuild b/sys-power/wluma/wluma-4.3.0-r3.ebuild
index 1956879e63c8..1956879e63c8 100644
--- a/sys-power/wluma/wluma-4.3.0-r2.ebuild
+++ b/sys-power/wluma/wluma-4.3.0-r3.ebuild
diff --git a/sys-power/wluma/wluma-4.4.0-r1.ebuild b/sys-power/wluma/wluma-4.4.0-r2.ebuild
index dbaaedafd98b..dbaaedafd98b 100644
--- a/sys-power/wluma/wluma-4.4.0-r1.ebuild
+++ b/sys-power/wluma/wluma-4.4.0-r2.ebuild
diff --git a/sys-process/below/below-0.8.1.ebuild b/sys-process/below/below-0.8.1-r1.ebuild
index 78c379679c21..95c1f45c601e 100644
--- a/sys-process/below/below-0.8.1.ebuild
+++ b/sys-process/below/below-0.8.1-r1.ebuild
@@ -294,6 +294,8 @@ CRATES="
zstd@0.13.0
"
+RUST_USEDEP="rustfmt"
+
inherit cargo systemd
DESCRIPTION="An interactive tool to view and record historical system data"
@@ -313,7 +315,6 @@ KEYWORDS="amd64 ~ppc64"
BDEPEND="
sys-devel/clang
virtual/pkgconfig
- >=virtual/rust-1.56[rustfmt]
"
RDEPEND="
virtual/libelf
diff --git a/sys-process/bottom/bottom-0.10.1.ebuild b/sys-process/bottom/bottom-0.10.1-r1.ebuild
index 338d07e9e117..338d07e9e117 100644
--- a/sys-process/bottom/bottom-0.10.1.ebuild
+++ b/sys-process/bottom/bottom-0.10.1-r1.ebuild
diff --git a/sys-process/bottom/bottom-0.10.2.ebuild b/sys-process/bottom/bottom-0.10.2-r1.ebuild
index abd96a27fc25..abd96a27fc25 100644
--- a/sys-process/bottom/bottom-0.10.2.ebuild
+++ b/sys-process/bottom/bottom-0.10.2-r1.ebuild
diff --git a/sys-process/procs/procs-0.14.5.ebuild b/sys-process/procs/procs-0.14.5-r1.ebuild
index 5447e7e7fc4c..8d16de417fa8 100644
--- a/sys-process/procs/procs-0.14.5.ebuild
+++ b/sys-process/procs/procs-0.14.5-r1.ebuild
@@ -286,6 +286,8 @@ CRATES="
xattr@1.2.0
"
+RUST_MIN_VER="1.74.1"
+
inherit bash-completion-r1 cargo
DESCRIPTION="Modern replacement for ps"
@@ -301,8 +303,6 @@ LICENSE+=" Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64"
-BDEPEND=">=virtual/rust-1.70"
-
QA_FLAGS_IGNORED="usr/bin/procs"
src_install() {
diff --git a/sys-process/procs/procs-0.14.6.ebuild b/sys-process/procs/procs-0.14.6-r1.ebuild
index cf8301a9d24c..b36f1a0b3945 100644
--- a/sys-process/procs/procs-0.14.6.ebuild
+++ b/sys-process/procs/procs-0.14.6-r1.ebuild
@@ -293,6 +293,8 @@ CRATES="
xattr@1.3.1
"
+RUST_MIN_VER="1.74.1"
+
inherit bash-completion-r1 cargo
DESCRIPTION="Modern replacement for ps"
@@ -308,8 +310,6 @@ LICENSE+=" Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-DFS-2016"
SLOT="0"
KEYWORDS="~amd64 ~ppc64"
-BDEPEND=">=virtual/rust-1.74"
-
QA_FLAGS_IGNORED="usr/bin/procs"
src_install() {
diff --git a/www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0.ebuild b/www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0-r1.ebuild
index d5f61873f5fb..d5f61873f5fb 100644
--- a/www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0.ebuild
+++ b/www-apps/nextcloud-notify_push/nextcloud-notify_push-0.7.0-r1.ebuild
diff --git a/www-client/chromium/chromium-129.0.6668.100.ebuild b/www-client/chromium/chromium-129.0.6668.100-r1.ebuild
index 0e199853bf36..e4fa73268149 100644
--- a/www-client/chromium/chromium-129.0.6668.100.ebuild
+++ b/www-client/chromium/chromium-129.0.6668.100-r1.ebuild
@@ -25,7 +25,6 @@ EAPI=8
# no reason not to. Todo: Re-enable USE=system-ffmpeg.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.sh
GOOGLE_CLANG_VER=llvmorg-20-init-1009-g7088a5ed-10
GOOGLE_RUST_VER=595316b4006932405a63862d8fe65f71a6356293-5
@@ -38,15 +37,15 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( {17..18} )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
+RUST_NEEDS_LLVM=1
+RUST_OPTIONAL=1
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -182,29 +181,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -217,7 +193,12 @@ BDEPEND="
qt6? ( dev-qt/qtbase:6 )
)
system-toolchain? (
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
+ ${RUST_DEPEND}
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -313,47 +294,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -361,10 +301,7 @@ pkg_setup() {
if use system-toolchain; then
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
if ! tc-is-lto && use official; then
einfo "USE=official selected and LTO not detected."
einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
@@ -378,8 +315,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing clang here; user choice is respected via llvm_slot_x USE
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -391,45 +327,8 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- local rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
fi
# Users should never hit this, it's purely a development convenience
@@ -886,23 +785,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- local rustc_ver=$(chromium_extract_rust_version)
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
fi
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
diff --git a/www-client/chromium/chromium-130.0.6723.116.ebuild b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
index b8702db794c7..1ffd8810c364 100644
--- a/www-client/chromium/chromium-130.0.6723.116.ebuild
+++ b/www-client/chromium/chromium-130.0.6723.116-r1.ebuild
@@ -9,9 +9,7 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
-TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
VIRTUALX_REQUIRED="pgo"
@@ -19,20 +17,19 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
-# Requires 18.1.8 or 19.1.1 (or newer) for ppc64
LLVM_COMPAT=( 18 19 )
+RUST_NEEDS_LLVM="yes please"
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
PATCH_V="${PV%%\.*}-2"
SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
@@ -53,6 +50,7 @@ if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64 ~ppc64"
fi
+
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
@@ -167,29 +165,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +176,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,57 +275,13 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
pre_build_checks
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
use_lto="false"
if tc-is-lto; then
use_lto="true"
@@ -374,8 +309,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing Clang here. User choice is respected via llvm_slot_# USE flags.
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,52 +321,16 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ einfo "Using Rust slot ${RUST_SLOT}, ${RUST_TYPE} to build"
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -443,7 +341,7 @@ pkg_setup() {
}
src_unpack() {
- unpack ${P}-gentoo.tar.xz
+ unpack ${P}.tar.xz
unpack chromium-patches-${PATCH_V}.tar.bz2
use pgo && unpack chromium-profiler-0.2.tar
@@ -452,11 +350,10 @@ src_unpack() {
# A new testdata tarball is available for each release; but testfonts tend to remain stable
# for the duration of a release.
# This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`.
- unpack ${P}-testdata-gentoo.tar.xz
+ unpack ${P}-testdata.tar.xz
# This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts"
- local testfonts_tar="${DISTDIR}/${PN}-testfonts-${TEST_FONT:0:10}.tar.gz"
- tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
+ tar xf "${DISTDIR}/${P%%\.*}-testfonts.tar.gz" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
fi
if use ppc64; then
@@ -928,22 +825,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
@@ -1340,35 +1230,7 @@ src_test() {
StringPieceTest.OutOfBoundsDeath
ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
ValuesUtilTest.FilePath
- # Gentoo-specific
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2
- AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2
- AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3
- CharacterEncodingTest.GetCanonicalEncodingNameByAliasName
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV
- CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress
- FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
- ICUStringConversionsTest.ConvertToUtf8AndNormalize
- NumberFormattingTest.FormatPercent
- PathServiceTest.CheckedGetFailure
- PlatformThreadTest.CanChangeThreadType
- StackCanary.ChangingStackCanaryCrashesOnReturn
- StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
- SysStrings.SysNativeMBAndWide
- SysStrings.SysNativeMBToWide
- SysStrings.SysWideToNativeMB
- TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
- ToolsSanityTest.BadVirtualCallNull
- ToolsSanityTest.BadVirtualCallWrongType
)
-
local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
# test-launcher-bot-mode enables parallelism and plain output
./out/Release/base_unittests --test-launcher-bot-mode \
diff --git a/www-client/chromium/chromium-130.0.6723.91.ebuild b/www-client/chromium/chromium-130.0.6723.91-r1.ebuild
index ed4c82004d6a..ca59fb8a697e 100644
--- a/www-client/chromium/chromium-130.0.6723.91.ebuild
+++ b/www-client/chromium/chromium-130.0.6723.91-r1.ebuild
@@ -9,9 +9,7 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
-TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
VIRTUALX_REQUIRED="pgo"
@@ -19,20 +17,19 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
-# Requires 18.1.8 or 19.1.1 (or newer) for ppc64
LLVM_COMPAT=( 18 19 )
+RUST_NEEDS_LLVM="yes please"
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6"
+TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
PATCH_V="${PV%%\.*}-2"
SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
@@ -53,6 +50,7 @@ if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64 ~ppc64"
fi
+
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine cpu_flags_ppc_vsx3"
@@ -167,29 +165,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +176,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,57 +275,13 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
pre_build_checks
# The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
# This is effectively the 'force-clang' path if GCC support is re-added.
- # TODO: check if the user has already selected a specific impl via make.conf and respect that.
use_lto="false"
if tc-is-lto; then
use_lto="true"
@@ -374,8 +309,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # We're forcing Clang here. User choice is respected via llvm_slot_# USE flags.
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,53 +321,16 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ einfo "Using Rust slot ${RUST_SLOT}, ${RUST_TYPE} to build"
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -928,23 +825,15 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
# We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
-
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
diff --git a/www-client/chromium/chromium-131.0.6753.0.ebuild b/www-client/chromium/chromium-131.0.6753.0-r1.ebuild
index b9fbbe6b9e34..082a394cd0a8 100644
--- a/www-client/chromium/chromium-131.0.6753.0.ebuild
+++ b/www-client/chromium/chromium-131.0.6753.0-r1.ebuild
@@ -39,15 +39,12 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -72,9 +69,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0/dev"
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
-if [[ ${SLOT} == "0/dev" ]]; then
- KEYWORDS=""
-else
+if [[ ${SLOT} != "0/dev" ]]; then
KEYWORDS="~amd64 ~arm64"
fi
@@ -189,29 +184,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -224,7 +196,7 @@ BDEPEND="
qt6? ( dev-qt/qtbase:6 )
)
system-toolchain? (
- $(depend_clang_llvm_versions)
+ $()
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -320,47 +292,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -396,8 +327,6 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -409,49 +338,12 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- local rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
+ llvm-r1_pkg_setup
+ rust_pkg_setup
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
-
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
fi
# Users should never hit this, it's purely a development convenience
@@ -946,23 +838,14 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
-
- # We need to provide this to GN in both the path to rust _and_ the version
- local rustc_ver=$(chromium_extract_rust_version)
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
fi
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
diff --git a/www-client/chromium/chromium-131.0.6778.24.ebuild b/www-client/chromium/chromium-131.0.6778.24-r1.ebuild
index 3a1fa9fc3807..981c37fea572 100644
--- a/www-client/chromium/chromium-131.0.6778.24.ebuild
+++ b/www-client/chromium/chromium-131.0.6778.24-r1.ebuild
@@ -9,7 +9,6 @@ EAPI=8
# Use 132 as a base for new official tarballs.
GN_MIN_VER=0.2165
-RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.py
TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35
@@ -19,15 +18,13 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
sv sw ta te th tr uk ur vi zh-CN zh-TW"
-# While prerelease llvm is actually used in the google build, until we have a
-# sane way to select 'rust built with this llvm slot' that isn't stable and testing
-# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( {17..19} )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
+RUST_MIN_VER=1.78.0
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-utils multiprocessing ninja-utils pax-utils
-inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils
+inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
+inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
@@ -167,29 +164,6 @@ DEPEND="${COMMON_DEPEND}
)
"
-depend_clang_llvm_version() {
- echo "sys-devel/clang:$1"
- echo "sys-devel/llvm:$1"
- echo "=sys-devel/lld-$1*"
- echo "virtual/rust:0/llvm-${1}[profiler(-)]"
- echo "pgo? ( sys-libs/compiler-rt-sanitizers:${1}[profile] )"
-}
-
-# Parse LLVM_COMPAT and generate a usedep for each version
-depend_clang_llvm_versions() {
- if [[ ${#LLVM_COMPAT[@]} -eq 0 ]]; then
- depend_clang_llvm_version ${#LLVM_COMPAT[0]}
- else
- echo "|| ("
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- echo "("
- depend_clang_llvm_version ${LLVM_COMPAT[i]}
- echo ")"
- done
- echo ")"
- fi
-}
-
BDEPEND="
${COMMON_SNAPSHOT_DEPEND}
${PYTHON_DEPS}
@@ -201,7 +175,11 @@ BDEPEND="
qt5? ( dev-qt/qtcore:5 )
qt6? ( dev-qt/qtbase:6 )
)
- $(depend_clang_llvm_versions)
+ $(llvm_gen_dep "
+ sys-devel/clang:\${LLVM_SLOT}
+ sys-devel/llvm:\${LLVM_SLOT}
+ sys-devel/lld:\${LLVM_SLOT}
+ ")
pgo? (
>=dev-python/selenium-3.141.0
>=dev-util/web_page_replay_go-20220314
@@ -296,47 +274,6 @@ pkg_pretend() {
fi
}
-# Chromium should build with any version of clang that we support
-# but we may need to pick the "best" one for a build (highest installed,
-# rust is built against it, etc.)
-# Check each slot in LLVM_COMPAT to see if clang/llvm/lld are available
-# and output the _highest_ slot that is actually available on a system.
-chromium_pick_llvm_slot() {
- # LLVM_COMPAT is always going to be oldest to newest (or one value)
- # let's flip it and check from newest to oldest and return the first one we find.
- local slot
- for (( i=${#LLVM_COMPAT[@]}-1 ; i>=0 ; i-- )); do
- slot=${LLVM_COMPAT[i]}
- if has_version "sys-devel/clang:${slot}" && \
- has_version "sys-devel/llvm:${slot}" && \
- has_version "sys-devel/lld:${slot}" && \
- has_version "virtual/rust:0/llvm-${slot}" && \
- ( ! use pgo || has_version "sys-libs/compiler-rt-sanitizers:${slot}" ) ; then
-
- echo "${slot}"
- return
- fi
- done
-
- die_msg="
-No suitable clang/llvm/lld slot found.
-Slots checked: ${LLVM_COMPAT[*]}.
-"
- die "${die_msg}"
-}
-
-# We need the rust version in src_configure and pkg_setup
-chromium_extract_rust_version() {
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- echo $rustc_version
-}
-
pkg_setup() {
if [[ ${MERGE_TYPE} != binary ]]; then
# The pre_build_checks are all about compilation resources, no need to run it for a binpkg
@@ -374,8 +311,7 @@ pkg_setup() {
die "Please switch to a different linker."
fi
- LLVM_SLOT=$(chromium_pick_llvm_slot)
- export LLVM_SLOT # used in src_configure for rust-y business
+ # Forcing clang; user choice respected by llvm_slot_x USE
AR=llvm-ar
CPP="${CHOST}-clang++ -E"
NM=llvm-nm
@@ -387,52 +323,13 @@ pkg_setup() {
CPP="${CBUILD}-clang++ -E"
fi
- # The llvm-r1_pkg_setup we have at home.
- # We prepend the path _first_ to explicitly use the selected slot.
- llvm_prepend_path "${LLVM_SLOT}"
-
- llvm_fix_clang_version CC CPP CXX
- llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
- llvm_fix_tool_path READELF STRINGS STRIP
-
- # Set LLVM_CONFIG to help Meson (bug #907965) but only do it
- # for empty ESYSROOT (as a proxy for "are we cross-compiling?").
- if [[ -z ${ESYSROOT} ]] ; then
- llvm_fix_tool_path LLVM_CONFIG
- fi
-
- einfo "Using LLVM/Clang slot ${LLVM_SLOT} to build"
-
- rustc_ver=$(chromium_extract_rust_version)
- if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
- eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
- eerror "The currently selected version is ${rustc_ver}"
- eerror "Please run \`eselect rust\` and select an appropriate Rust."
- die "Selected Rust version is too old"
- else
- einfo "Using Rust ${rustc_ver} to build"
- fi
-
- export rustc_ver # used in src_configure, may as well avoid calling it again
+ llvm-r1_pkg_setup
+ rust_pkg_setup
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
- # Chromium requires the Rust profiler library while setting up its build environment.
- # Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
- # we'll just do a sanity check on the selected slot.
- # The -bin always contains profiler support, so we only need to check for the non-bin version.
- if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
- local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
- local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
- if [[ -z "${profiler_lib}" ]]; then
- eerror "Rust ${rustc_ver} is missing the profiler library."
- eerror "ebuild dependency resolution should have ensured that a Rust with the profiler was installed."
- die "Please \`eselect\` a Rust slot that has the profiler."
- fi
- fi
-
# Users should never hit this, it's purely a development convenience
if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
@@ -926,22 +823,14 @@ chromium_configure() {
# rust_bindgen_root = directory with `bin/bindgen` beneath it.
myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\""
- # from get_llvm_prefix
- local prefix=${ESYSROOT}
- [[ ${1} == -b ]] && prefix=${BROOT}
- myconf_gn+=" bindgen_libclang_path=\"${prefix}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)\""
+ myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
# We don't need to set 'clang_base_bath' for anything in our build
# and it defaults to the google toolchain location. Instead provide a location
# to where system clang lives sot that bindgen can find system headers (e.g. stddef.h)
myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
- # We need to provide this to GN in both the path to rust _and_ the version
- if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\""
- else
- myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\""
- fi
- myconf_gn+=" rustc_version=\"${rustc_ver}\""
+ myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\""
+ myconf_gn+=" rustc_version=\"${RUST_SLOT}\""
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
myconf_gn+=" is_debug=false"
diff --git a/www-client/firefox/firefox-115.16.1.ebuild b/www-client/firefox/firefox-115.16.1-r1.ebuild
index 02142c4cbddb..e01a588149b5 100644
--- a/www-client/firefox/firefox-115.16.1.ebuild
+++ b/www-client/firefox/firefox-115.16.1-r1.ebuild
@@ -5,10 +5,11 @@ EAPI=8
FIREFOX_PATCHSET="firefox-115esr-patches-13.tar.xz"
-LLVM_MAX_SLOT=18
+LLVM_COMPAT=(17 18)
PYTHON_COMPAT=( python3_{10..11} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
WANT_AUTOCONF="2.1"
@@ -37,8 +38,8 @@ MOZ_P="${MOZ_PN}-${MOZ_PV}"
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -51,7 +52,7 @@ PATCH_URIS=(
)
DESCRIPTION="Firefox Web Browser"
-HOMEPAGE="https://www.mozilla.com/firefox"
+HOMEPAGE="https://www.mozilla.org/firefox"
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
S="${WORKDIR}/${PN}-${PV%_*}"
@@ -77,57 +78,20 @@ FF_ONLY_DEPEND="!www-client/firefox:0
screencast? ( media-video/pipewire:= )
selinux? ( sec-policy/selinux-mozilla )"
BDEPEND="${PYTHON_DEPS}
- || (
- (
- sys-devel/clang:18
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- virtual/rust:0/llvm-18
- pgo? ( =sys-libs/compiler-rt-sanitizers-18*[profile] )
- )
- )
- (
- sys-devel/clang:17
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- virtual/rust:0/llvm-17
- pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] )
- )
- )
- (
- sys-devel/clang:16
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- virtual/rust:0/llvm-16
- pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] )
- )
- )
- (
- sys-devel/clang:15
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- virtual/rust:0/llvm-15
- pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
- )
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
)
- )
+ pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ ')
app-alternatives/awk
app-arch/unzip
app-arch/zip
>=dev-util/cbindgen-0.24.3
net-libs/nodejs
virtual/pkgconfig
- !clang? ( virtual/rust )
- !elibc_glibc? (
- || (
- dev-lang/rust
- <dev-lang/rust-bin-1.73
- )
- )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -249,11 +213,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!"
@@ -537,7 +496,8 @@ pkg_setup() {
check-reqs_pkg_setup
- llvm_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/www-client/firefox/firefox-128.3.1.ebuild b/www-client/firefox/firefox-128.3.1-r1.ebuild
index 22d0a2570ee5..36eacf19c85a 100644
--- a/www-client/firefox/firefox-128.3.1.ebuild
+++ b/www-client/firefox/firefox-128.3.1-r1.ebuild
@@ -10,6 +10,8 @@ LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +32,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +45,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -83,7 +85,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -93,8 +94,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -220,10 +219,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
diff --git a/www-client/firefox/firefox-128.4.0.ebuild b/www-client/firefox/firefox-128.4.0-r1.ebuild
index 2bba7a648bda..1c04269f3aa9 100644
--- a/www-client/firefox/firefox-128.4.0.ebuild
+++ b/www-client/firefox/firefox-128.4.0-r1.ebuild
@@ -10,6 +10,8 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +32,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +45,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -83,7 +85,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -93,8 +94,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -220,11 +219,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -475,6 +469,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/www-client/firefox/firefox-131.0.3.ebuild b/www-client/firefox/firefox-131.0.3-r1.ebuild
index e746e07abc33..6280f02fdc49 100644
--- a/www-client/firefox/firefox-131.0.3.ebuild
+++ b/www-client/firefox/firefox-131.0.3-r1.ebuild
@@ -10,6 +10,8 @@ LLVM_COMPAT=( 17 18 19 )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
+RUST_NEEDS_LLVM=1
+
WANT_AUTOCONF="2.1"
VIRTUALX_REQUIRED="manual"
@@ -30,10 +32,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +45,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -86,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -96,8 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -224,11 +223,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -479,6 +473,7 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
+ rust_pkg_setup
if use clang && use lto && tc-ld-is-lld ; then
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
diff --git a/www-client/firefox/firefox-132.0.ebuild b/www-client/firefox/firefox-132.0-r1.ebuild
index 8cfa5b1c3a92..f99bf2798680 100644
--- a/www-client/firefox/firefox-132.0.ebuild
+++ b/www-client/firefox/firefox-132.0-r1.ebuild
@@ -6,6 +6,8 @@ EAPI=8
FIREFOX_PATCHSET="firefox-132-patches-01.tar.xz"
LLVM_COMPAT=( 17 18 19 )
+# This will also filter Rust versions in the non-llvm-r1 case, but this is fine.
+RUST_NEEDS_LLVM=1
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
@@ -30,10 +32,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +45,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust readme.gentoo-r1 toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -62,7 +64,7 @@ S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy openh264 pgo"
IUSE+=" pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg"
IUSE+=" +system-jpeg +system-libevent +system-libvpx system-png +system-webp +telemetry valgrind"
IUSE+=" wayland wifi +X"
@@ -74,9 +76,9 @@ IUSE+=" +gmp-autoupdate gnome-shell"
REQUIRED_USE="|| ( X wayland )
debug? ( !system-av1 )
!jumbo-build? ( clang )
- pgo? ( lto )
wayland? ( dbus )
- wifi? ( dbus )"
+ wifi? ( dbus )
+"
FF_ONLY_DEPEND="!www-client/firefox:0
selinux? ( sec-policy/selinux-mozilla )"
@@ -86,7 +88,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -96,8 +97,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -224,11 +223,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -451,7 +445,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -462,15 +456,33 @@ pkg_pretend() {
}
pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "yes" ]]; then
+ eerror "Building ${PN} with USE=pgo requires LTO!"
+ die "Please fix your CFLAGS/CXXFLAGS."
+ fi
if ! has userpriv ${FEATURES} ; then
eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
fi
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if [[ ${use_lto} == "yes" ]] || use pgo || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -479,25 +491,16 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ rust_pkg_setup
+
+ if [[ ${use_lto} == "yes" ]]; then
+ if use clang; then
+ if ! (tc-ld-is-lld || tc-ld-is-mold) ; then
+ eerror "Building ${PN} with lto and requires the sys-devel/lld or sys-devel/mold linker!"
+ die "Please fix your toolchain configuration."
+ fi
+ else
+ die "Building ${PN} with lto requires clang!"
fi
fi
@@ -555,6 +558,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -578,7 +583,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ ${use_lto} = "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -897,13 +902,7 @@ src_configure() {
mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
fi
- # LTO is handled via configure
- # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
- # bmo#1516758, bgo#942288
- filter-lto
- filter-flags -Werror=lto-type-mismatch -Werror=odr
-
- if use lto ; then
+ if [[ ${use_lto} = "yes" ]] ; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1086,7 +1085,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/firefox/firefox-132.0.1.ebuild b/www-client/firefox/firefox-132.0.1-r1.ebuild
index f9ec87f960b8..3c8bc526fd20 100644
--- a/www-client/firefox/firefox-132.0.1.ebuild
+++ b/www-client/firefox/firefox-132.0.1-r1.ebuild
@@ -6,6 +6,8 @@ EAPI=8
FIREFOX_PATCHSET="firefox-132-patches-02.tar.xz"
LLVM_COMPAT=( 17 18 19 )
+# This will also filter Rust versions in the non-llvm-r1 case, but this is fine.
+RUST_NEEDS_LLVM=1
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,sqlite,ssl"
@@ -30,10 +32,10 @@ fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
- HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"
SLOT="esr"
else
- HOMEPAGE="https://www.mozilla.com/firefox"
+ HOMEPAGE="https://www.mozilla.org/firefox"
SLOT="rapid"
fi
@@ -43,7 +45,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
- optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg
+ optfeature pax-utils python-any-r1 rust readme.gentoo-r1 toolchain-funcs virtualx xdg
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
@@ -62,7 +64,7 @@ S="${WORKDIR}/${PN}-${PV%_*}"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE="clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy openh264 pgo"
IUSE+=" pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg"
IUSE+=" +system-jpeg +system-libevent +system-libvpx system-png +system-webp +telemetry valgrind"
IUSE+=" wayland wifi +X"
@@ -72,9 +74,9 @@ IUSE+=" +gmp-autoupdate gnome-shell"
REQUIRED_USE="|| ( X wayland )
debug? ( !system-av1 )
- pgo? ( lto )
wayland? ( dbus )
- wifi? ( dbus )"
+ wifi? ( dbus )
+"
FF_ONLY_DEPEND="!www-client/firefox:0
selinux? ( sec-policy/selinux-mozilla )"
@@ -84,7 +86,6 @@ BDEPEND="${PYTHON_DEPS}
sys-devel/llvm:${LLVM_SLOT}
clang? (
sys-devel/lld:${LLVM_SLOT}
- virtual/rust:0/llvm-${LLVM_SLOT}
)
pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
')
@@ -94,8 +95,6 @@ BDEPEND="${PYTHON_DEPS}
>=dev-util/cbindgen-0.26.0
net-libs/nodejs
virtual/pkgconfig
- !clang? ( >=virtual/rust-1.76 )
- !elibc_glibc? ( dev-lang/rust )
amd64? ( >=dev-lang/nasm-2.14 )
x86? ( >=dev-lang/nasm-2.14 )
pgo? (
@@ -222,11 +221,6 @@ llvm_check_deps() {
return 1
fi
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
if use pgo ; then
if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
@@ -449,7 +443,7 @@ pkg_pretend() {
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if use pgo || tc-is-lto || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6600M"
@@ -460,15 +454,33 @@ pkg_pretend() {
}
pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-lto
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
if use pgo ; then
+ if [[ ${use_lto} == "yes" ]]; then
+ eerror "Building ${PN} with USE=pgo requires LTO!"
+ die "Please fix your CFLAGS/CXXFLAGS."
+ fi
if ! has userpriv ${FEATURES} ; then
eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
fi
fi
# Ensure we have enough disk space to compile
- if use pgo || use lto || use debug ; then
+ if [[ ${use_lto} == "yes" ]] || use pgo || use debug ; then
CHECKREQS_DISK_BUILD="13500M"
else
CHECKREQS_DISK_BUILD="6400M"
@@ -477,25 +489,16 @@ pkg_setup() {
check-reqs_pkg_setup
llvm-r1_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ rust_pkg_setup
+
+ if [[ ${use_lto} == "yes" ]]; then
+ if use clang; then
+ if ! (tc-ld-is-lld || tc-ld-is-mold) ; then
+ eerror "Building ${PN} with lto and requires the sys-devel/lld or sys-devel/mold linker!"
+ die "Please fix your toolchain configuration."
+ fi
+ else
+ die "Building ${PN} with lto requires clang!"
fi
fi
@@ -553,6 +556,8 @@ pkg_setup() {
export LC_ALL=C
fi
+ export use_lto
+
CONFIG_CHECK="~SECCOMP"
WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
linux-info_pkg_setup
@@ -576,7 +581,7 @@ src_unpack() {
}
src_prepare() {
- if use lto; then
+ if [[ ${use_lto} = "yes" ]]; then
rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
fi
@@ -895,13 +900,7 @@ src_configure() {
mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
fi
- # LTO is handled via configure
- # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
- # bmo#1516758, bgo#942288
- filter-lto
- filter-flags -Werror=lto-type-mismatch -Werror=odr
-
- if use lto ; then
+ if [[ ${use_lto} = "yes" ]] ; then
if use clang ; then
# Upstream only supports lld or mold when using clang.
if tc-ld-is-mold ; then
@@ -1084,7 +1083,7 @@ src_configure() {
src_compile() {
local virtx_cmd=
- if tc-ld-is-mold && use lto; then
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; then
# increase ulimit with mold+lto, bugs #892641, #907485
if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
diff --git a/www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild b/www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild
index f0d536cad6e9..4a35f691bde8 100644
--- a/www-client/seamonkey/seamonkey-2.53.18.2-r1.ebuild
+++ b/www-client/seamonkey/seamonkey-2.53.18.2-r2.ebuild
@@ -34,7 +34,7 @@ S="${WORKDIR}/${MY_MOZ_P}"
MOZ_GENERATE_LANGPACKS=1
MOZ_L10N_SOURCEDIR="${S}/${P}-l10n"
inherit autotools check-reqs desktop edos2unix flag-o-matic llvm-r1 mozcoreconf-v6 mozlinguas-v2 pax-utils \
- toolchain-funcs xdg-utils
+ rust toolchain-funcs xdg-utils
DESCRIPTION="Seamonkey Web Browser"
HOMEPAGE="https://www.seamonkey-project.org/"
@@ -61,7 +61,6 @@ BDEPEND="
sys-devel/llvm:${LLVM_SLOT}=
')
virtual/pkgconfig
- virtual/rust
amd64? ( >=dev-lang/yasm-1.1 )
lto? ( sys-devel/binutils[gold] )
x86? ( >=dev-lang/yasm-1.1 )
@@ -154,6 +153,7 @@ pkg_setup() {
llvm-r1_pkg_setup
einfo "Using LLVM slot ${LLVM_SLOT} to build." >&2
+ rust_pkg_setup
moz_pkgsetup
}
diff --git a/www-client/seamonkey/seamonkey-2.53.19.ebuild b/www-client/seamonkey/seamonkey-2.53.19-r1.ebuild
index 6e06f3bd6d4d..7c4e59bd5119 100644
--- a/www-client/seamonkey/seamonkey-2.53.19.ebuild
+++ b/www-client/seamonkey/seamonkey-2.53.19-r1.ebuild
@@ -37,7 +37,7 @@ S="${WORKDIR}/${MY_MOZ_P}"
MOZ_GENERATE_LANGPACKS=1
MOZ_L10N_SOURCEDIR="${S}/${P}-l10n"
inherit autotools check-reqs desktop edos2unix flag-o-matic llvm-r1 mozcoreconf-v6 mozlinguas-v2 pax-utils \
- toolchain-funcs xdg-utils
+ rust toolchain-funcs xdg-utils
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
SLOT="0"
@@ -61,7 +61,6 @@ BDEPEND="
sys-devel/llvm:${LLVM_SLOT}=
')
virtual/pkgconfig
- virtual/rust
amd64? ( >=dev-lang/yasm-1.1 )
lto? ( sys-devel/binutils[gold] )
x86? ( >=dev-lang/yasm-1.1 )
@@ -155,6 +154,7 @@ pkg_setup() {
llvm-r1_pkg_setup
einfo "Using LLVM slot ${LLVM_SLOT} to build." >&2
+ rust_pkg_setup
moz_pkgsetup
}
diff --git a/x11-terms/alacritty/alacritty-0.12.3-r1.ebuild b/x11-terms/alacritty/alacritty-0.12.3-r1.ebuild
new file mode 100644
index 000000000000..3a469281ea15
--- /dev/null
+++ b/x11-terms/alacritty/alacritty-0.12.3-r1.ebuild
@@ -0,0 +1,362 @@
+# Copyright 2017-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ adler@1.0.2
+ android-activity@0.4.0
+ android-properties@0.2.2
+ arrayref@0.3.6
+ arrayvec@0.7.2
+ atty@0.2.14
+ autocfg@1.1.0
+ base64@0.13.0
+ bitflags@1.3.2
+ block@0.1.6
+ block-sys@0.1.0-beta.1
+ block2@0.2.0-alpha.6
+ bumpalo@3.12.0
+ bytemuck@1.12.1
+ calloop@0.10.4
+ cc@1.0.73
+ cfg-if@0.1.10
+ cfg-if@1.0.0
+ cfg_aliases@0.1.1
+ cgl@0.3.2
+ clap@3.2.21
+ clap_complete@3.2.5
+ clap_derive@3.2.18
+ clap_lex@0.2.4
+ clipboard-win@3.1.1
+ cmake@0.1.48
+ cocoa@0.24.0
+ cocoa-foundation@0.1.0
+ copypasta@0.8.2
+ core-foundation@0.9.3
+ core-foundation-sys@0.8.3
+ core-graphics@0.22.3
+ core-graphics-types@0.1.1
+ core-text@19.2.0
+ crc32fast@1.3.2
+ crossbeam-channel@0.5.6
+ crossbeam-utils@0.8.12
+ crossfont@0.5.1
+ cty@0.2.2
+ dirs@4.0.0
+ dirs-sys@0.3.7
+ dispatch@0.2.0
+ dlib@0.5.0
+ downcast-rs@1.2.0
+ dwrote@0.11.0
+ embed-resource@1.7.3
+ expat-sys@2.1.6
+ filetime@0.2.17
+ flate2@1.0.24
+ fnv@1.0.7
+ foreign-types@0.3.2
+ foreign-types@0.5.0
+ foreign-types-macros@0.2.2
+ foreign-types-shared@0.1.1
+ foreign-types-shared@0.3.1
+ freetype-rs@0.26.0
+ freetype-sys@0.13.1
+ fsevent-sys@4.1.0
+ fuchsia-zircon@0.3.3
+ fuchsia-zircon-sys@0.3.3
+ gethostname@0.2.3
+ getrandom@0.2.7
+ gl_generator@0.14.0
+ glutin@0.30.9
+ glutin_egl_sys@0.5.0
+ glutin_glx_sys@0.4.0
+ glutin_wgl_sys@0.4.0
+ hashbrown@0.12.3
+ heck@0.4.0
+ hermit-abi@0.1.19
+ indexmap@1.9.1
+ inotify@0.9.6
+ inotify-sys@0.1.5
+ instant@0.1.12
+ iovec@0.1.4
+ itoa@1.0.3
+ jni-sys@0.3.0
+ jobserver@0.1.25
+ js-sys@0.3.60
+ kernel32-sys@0.2.2
+ khronos_api@3.1.0
+ kqueue@1.0.7
+ kqueue-sys@1.0.3
+ lazy-bytes-cast@5.0.1
+ lazy_static@1.4.0
+ lazycell@1.3.0
+ libc@0.2.132
+ libloading@0.7.3
+ linked-hash-map@0.5.6
+ lock_api@0.4.8
+ log@0.4.17
+ malloc_buf@0.0.6
+ memchr@2.5.0
+ memmap2@0.5.10
+ memoffset@0.6.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.5.4
+ mio@0.6.23
+ mio@0.8.4
+ mio-anonymous-pipes@0.2.0
+ mio-extras@2.0.6
+ mio-uds@0.6.8
+ miow@0.2.2
+ miow@0.3.7
+ ndk@0.7.0
+ ndk-context@0.1.1
+ ndk-sys@0.4.1+23.1.7779620
+ net2@0.2.37
+ nix@0.24.2
+ nix@0.25.1
+ nom@7.1.1
+ notify@5.1.0
+ num_enum@0.5.7
+ num_enum_derive@0.5.7
+ objc@0.2.7
+ objc-foundation@0.1.1
+ objc-sys@0.2.0-beta.2
+ objc2@0.3.0-beta.3.patch-leaks.2
+ objc2-encode@2.0.0-pre.2
+ objc_id@0.1.1
+ once_cell@1.14.0
+ orbclient@0.3.42
+ os_str_bytes@6.3.0
+ parking_lot@0.11.2
+ parking_lot@0.12.1
+ parking_lot_core@0.8.5
+ parking_lot_core@0.9.3
+ percent-encoding@2.2.0
+ pkg-config@0.3.25
+ png@0.17.6
+ proc-macro-crate@1.2.1
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.43
+ quote@1.0.21
+ raw-window-handle@0.5.0
+ redox_syscall@0.2.16
+ redox_syscall@0.3.4
+ redox_users@0.4.3
+ regex-automata@0.1.10
+ regex-syntax@0.6.27
+ rustc_version@0.4.0
+ ryu@1.0.11
+ same-file@1.0.6
+ scoped-tls@1.0.0
+ scopeguard@1.1.0
+ sctk-adwaita@0.5.4
+ semver@1.0.14
+ serde@1.0.144
+ serde_derive@1.0.144
+ serde_json@1.0.85
+ serde_yaml@0.8.26
+ servo-fontconfig@0.5.1
+ servo-fontconfig-sys@5.1.0
+ signal-hook@0.3.14
+ signal-hook-mio@0.2.3
+ signal-hook-registry@1.4.0
+ slab@0.4.7
+ slotmap@1.0.6
+ smallvec@1.9.0
+ smithay-client-toolkit@0.16.1
+ smithay-clipboard@0.6.6
+ spsc-buffer@0.1.1
+ strict-num@0.1.0
+ strsim@0.10.0
+ syn@1.0.99
+ termcolor@1.1.3
+ textwrap@0.15.1
+ thiserror@1.0.35
+ thiserror-impl@1.0.35
+ tiny-skia@0.8.3
+ tiny-skia-path@0.8.3
+ toml@0.5.8
+ unicode-ident@1.0.4
+ unicode-width@0.1.10
+ utf8parse@0.2.0
+ vec_map@0.8.2
+ version_check@0.9.4
+ vswhom@0.1.0
+ vswhom-sys@0.1.1
+ vte@0.10.1
+ vte_generate_state_changes@0.1.1
+ walkdir@2.3.2
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen@0.2.83
+ wasm-bindgen-backend@0.2.83
+ wasm-bindgen-macro@0.2.83
+ wasm-bindgen-macro-support@0.2.83
+ wasm-bindgen-shared@0.2.83
+ wayland-client@0.29.5
+ wayland-commons@0.29.5
+ wayland-cursor@0.29.5
+ wayland-protocols@0.29.5
+ wayland-scanner@0.29.5
+ wayland-sys@0.29.5
+ wayland-sys@0.30.0
+ web-sys@0.3.60
+ winapi@0.2.8
+ winapi@0.3.9
+ winapi-build@0.1.1
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-wsapoll@0.1.1
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.36.1
+ windows-sys@0.42.0
+ windows-sys@0.45.0
+ windows-targets@0.42.1
+ windows_aarch64_gnullvm@0.42.1
+ windows_aarch64_msvc@0.36.1
+ windows_aarch64_msvc@0.42.1
+ windows_i686_gnu@0.36.1
+ windows_i686_gnu@0.42.1
+ windows_i686_msvc@0.36.1
+ windows_i686_msvc@0.42.1
+ windows_x86_64_gnu@0.36.1
+ windows_x86_64_gnu@0.42.1
+ windows_x86_64_gnullvm@0.42.1
+ windows_x86_64_msvc@0.36.1
+ windows_x86_64_msvc@0.42.1
+ winit@0.28.7
+ winreg@0.10.1
+ wio@0.2.2
+ ws2_32-sys@0.2.1
+ x11-clipboard@0.7.1
+ x11-dl@2.20.0
+ x11rb@0.10.1
+ x11rb-protocol@0.10.0
+ xcursor@0.3.4
+ xdg@2.4.1
+ xml-rs@0.8.4
+ yaml-rust@0.4.5
+"
+
+MY_PV="${PV//_rc/-rc}"
+# https://bugs.gentoo.org/725962
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit bash-completion-r1 cargo desktop python-any-r1
+
+DESCRIPTION="GPU-accelerated terminal emulator"
+HOMEPAGE="https://alacritty.org"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/alacritty/alacritty"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}"
+ KEYWORDS="amd64 arm64 ppc64 ~riscv x86"
+fi
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+LICENSE="Apache-2.0 Artistic-2 Boost-1.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
+SLOT="0"
+IUSE="wayland +X"
+
+REQUIRED_USE="|| ( wayland X )"
+
+COMMON_DEPEND="
+ media-libs/fontconfig:=
+ media-libs/freetype:2
+ x11-libs/libxkbcommon
+ X? ( x11-libs/libxcb:= )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ ${PYTHON_DEPS}
+"
+
+RDEPEND="${COMMON_DEPEND}
+ media-libs/mesa[X?,wayland?]
+ sys-libs/zlib
+ sys-libs/ncurses:0
+ wayland? ( dev-libs/wayland )
+ X? (
+ x11-libs/libXcursor
+ x11-libs/libXi
+ x11-libs/libXrandr
+ )
+"
+
+BDEPEND="
+ dev-build/cmake
+"
+
+QA_FLAGS_IGNORED="usr/bin/alacritty"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_configure() {
+ local myfeatures=(
+ $(usex X x11 '')
+ $(usev wayland)
+ )
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd alacritty || die
+ cargo_src_compile
+}
+
+src_install() {
+ cargo_src_install --path alacritty
+
+ newman extra/alacritty.man alacritty.1
+ newman extra/alacritty-msg.man alacritty-msg.1
+
+ newbashcomp extra/completions/alacritty.bash alacritty
+
+ insinto /usr/share/fish/vendor_completions.d/
+ doins extra/completions/alacritty.fish
+
+ insinto /usr/share/zsh/site-functions
+ doins extra/completions/_alacritty
+
+ domenu extra/linux/Alacritty.desktop
+ newicon extra/logo/compat/alacritty-term.svg Alacritty.svg
+
+ insinto /usr/share/metainfo
+ doins extra/linux/org.alacritty.Alacritty.appdata.xml
+
+ insinto /usr/share/alacritty/scripts
+ doins -r scripts/*
+
+ local DOCS=(
+ alacritty.yml
+ CHANGELOG.md INSTALL.md README.md
+ docs/{ansicode.txt,escape_support.md,features.md}
+ )
+ einstalldocs
+}
+
+src_test() {
+ cd alacritty || die
+ cargo_src_test
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ einfo "Configuration files for ${CATEGORY}/${PN}"
+ einfo "in \$HOME often need to be updated after a version change"
+ einfo ""
+ einfo "An up-to-date sample configuration file always can be found at"
+ einfo "${ROOT}/usr/share/doc/${PF}/alacritty.yml.*"
+ fi
+}
diff --git a/x11-terms/alacritty/alacritty-0.12.3.ebuild b/x11-terms/alacritty/alacritty-0.12.3.ebuild
deleted file mode 100644
index a1a07a3d4499..000000000000
--- a/x11-terms/alacritty/alacritty-0.12.3.ebuild
+++ /dev/null
@@ -1,364 +0,0 @@
-# Copyright 2017-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- adler-1.0.2
- android-activity-0.4.0
- android-properties-0.2.2
- arrayref-0.3.6
- arrayvec-0.7.2
- atty-0.2.14
- autocfg-1.1.0
- base64-0.13.0
- bitflags-1.3.2
- block-0.1.6
- block-sys-0.1.0-beta.1
- block2-0.2.0-alpha.6
- bumpalo-3.12.0
- bytemuck-1.12.1
- calloop-0.10.4
- cc-1.0.73
- cfg-if-0.1.10
- cfg-if-1.0.0
- cfg_aliases-0.1.1
- cgl-0.3.2
- clap-3.2.21
- clap_complete-3.2.5
- clap_derive-3.2.18
- clap_lex-0.2.4
- clipboard-win-3.1.1
- cmake-0.1.48
- cocoa-0.24.0
- cocoa-foundation-0.1.0
- copypasta-0.8.2
- core-foundation-0.9.3
- core-foundation-sys-0.8.3
- core-graphics-0.22.3
- core-graphics-types-0.1.1
- core-text-19.2.0
- crc32fast-1.3.2
- crossbeam-channel-0.5.6
- crossbeam-utils-0.8.12
- crossfont-0.5.1
- cty-0.2.2
- dirs-4.0.0
- dirs-sys-0.3.7
- dispatch-0.2.0
- dlib-0.5.0
- downcast-rs-1.2.0
- dwrote-0.11.0
- embed-resource-1.7.3
- expat-sys-2.1.6
- filetime-0.2.17
- flate2-1.0.24
- fnv-1.0.7
- foreign-types-0.3.2
- foreign-types-0.5.0
- foreign-types-macros-0.2.2
- foreign-types-shared-0.1.1
- foreign-types-shared-0.3.1
- freetype-rs-0.26.0
- freetype-sys-0.13.1
- fsevent-sys-4.1.0
- fuchsia-zircon-0.3.3
- fuchsia-zircon-sys-0.3.3
- gethostname-0.2.3
- getrandom-0.2.7
- gl_generator-0.14.0
- glutin-0.30.9
- glutin_egl_sys-0.5.0
- glutin_glx_sys-0.4.0
- glutin_wgl_sys-0.4.0
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- indexmap-1.9.1
- inotify-0.9.6
- inotify-sys-0.1.5
- instant-0.1.12
- iovec-0.1.4
- itoa-1.0.3
- jni-sys-0.3.0
- jobserver-0.1.25
- js-sys-0.3.60
- kernel32-sys-0.2.2
- khronos_api-3.1.0
- kqueue-1.0.7
- kqueue-sys-1.0.3
- lazy-bytes-cast-5.0.1
- lazy_static-1.4.0
- lazycell-1.3.0
- libc-0.2.132
- libloading-0.7.3
- linked-hash-map-0.5.6
- lock_api-0.4.8
- log-0.4.17
- malloc_buf-0.0.6
- memchr-2.5.0
- memmap2-0.5.10
- memoffset-0.6.5
- minimal-lexical-0.2.1
- miniz_oxide-0.5.4
- mio-0.6.23
- mio-0.8.4
- mio-anonymous-pipes-0.2.0
- mio-extras-2.0.6
- mio-uds-0.6.8
- miow-0.2.2
- miow-0.3.7
- ndk-0.7.0
- ndk-context-0.1.1
- ndk-sys-0.4.1+23.1.7779620
- net2-0.2.37
- nix-0.24.2
- nix-0.25.1
- nom-7.1.1
- notify-5.1.0
- num_enum-0.5.7
- num_enum_derive-0.5.7
- objc-0.2.7
- objc-foundation-0.1.1
- objc-sys-0.2.0-beta.2
- objc2-0.3.0-beta.3.patch-leaks.2
- objc2-encode-2.0.0-pre.2
- objc_id-0.1.1
- once_cell-1.14.0
- orbclient-0.3.42
- os_str_bytes-6.3.0
- parking_lot-0.11.2
- parking_lot-0.12.1
- parking_lot_core-0.8.5
- parking_lot_core-0.9.3
- percent-encoding-2.2.0
- pkg-config-0.3.25
- png-0.17.6
- proc-macro-crate-1.2.1
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- quote-1.0.21
- raw-window-handle-0.5.0
- redox_syscall-0.2.16
- redox_syscall-0.3.4
- redox_users-0.4.3
- regex-automata-0.1.10
- regex-syntax-0.6.27
- rustc_version-0.4.0
- ryu-1.0.11
- same-file-1.0.6
- scoped-tls-1.0.0
- scopeguard-1.1.0
- sctk-adwaita-0.5.4
- semver-1.0.14
- serde-1.0.144
- serde_derive-1.0.144
- serde_json-1.0.85
- serde_yaml-0.8.26
- servo-fontconfig-0.5.1
- servo-fontconfig-sys-5.1.0
- signal-hook-0.3.14
- signal-hook-mio-0.2.3
- signal-hook-registry-1.4.0
- slab-0.4.7
- slotmap-1.0.6
- smallvec-1.9.0
- smithay-client-toolkit-0.16.1
- smithay-clipboard-0.6.6
- spsc-buffer-0.1.1
- strict-num-0.1.0
- strsim-0.10.0
- syn-1.0.99
- termcolor-1.1.3
- textwrap-0.15.1
- thiserror-1.0.35
- thiserror-impl-1.0.35
- tiny-skia-0.8.3
- tiny-skia-path-0.8.3
- toml-0.5.8
- unicode-ident-1.0.4
- unicode-width-0.1.10
- utf8parse-0.2.0
- vec_map-0.8.2
- version_check-0.9.4
- vswhom-0.1.0
- vswhom-sys-0.1.1
- vte-0.10.1
- vte_generate_state_changes-0.1.1
- walkdir-2.3.2
- wasi-0.11.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.83
- wasm-bindgen-backend-0.2.83
- wasm-bindgen-macro-0.2.83
- wasm-bindgen-macro-support-0.2.83
- wasm-bindgen-shared-0.2.83
- wayland-client-0.29.5
- wayland-commons-0.29.5
- wayland-cursor-0.29.5
- wayland-protocols-0.29.5
- wayland-scanner-0.29.5
- wayland-sys-0.29.5
- wayland-sys-0.30.0
- web-sys-0.3.60
- winapi-0.2.8
- winapi-0.3.9
- winapi-build-0.1.1
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-wsapoll-0.1.1
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.36.1
- windows-sys-0.42.0
- windows-sys-0.45.0
- windows-targets-0.42.1
- windows_aarch64_gnullvm-0.42.1
- windows_aarch64_msvc-0.36.1
- windows_aarch64_msvc-0.42.1
- windows_i686_gnu-0.36.1
- windows_i686_gnu-0.42.1
- windows_i686_msvc-0.36.1
- windows_i686_msvc-0.42.1
- windows_x86_64_gnu-0.36.1
- windows_x86_64_gnu-0.42.1
- windows_x86_64_gnullvm-0.42.1
- windows_x86_64_msvc-0.36.1
- windows_x86_64_msvc-0.42.1
- winit-0.28.7
- winreg-0.10.1
- wio-0.2.2
- ws2_32-sys-0.2.1
- x11-clipboard-0.7.1
- x11-dl-2.20.0
- x11rb-0.10.1
- x11rb-protocol-0.10.0
- xcursor-0.3.4
- xdg-2.4.1
- xml-rs-0.8.4
- yaml-rust-0.4.5
-"
-
-MY_PV="${PV//_rc/-rc}"
-# https://bugs.gentoo.org/725962
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit bash-completion-r1 cargo desktop python-any-r1
-
-DESCRIPTION="GPU-accelerated terminal emulator"
-HOMEPAGE="https://alacritty.org"
-
-if [ ${PV} == "9999" ] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/alacritty/alacritty"
-else
- SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris)"
- KEYWORDS="amd64 arm64 ppc64 ~riscv x86"
-fi
-
-LICENSE="Apache-2.0 Artistic-2 Boost-1.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
-SLOT="0"
-IUSE="wayland +X"
-
-REQUIRED_USE="|| ( wayland X )"
-
-COMMON_DEPEND="
- media-libs/fontconfig:=
- media-libs/freetype:2
- x11-libs/libxkbcommon
- X? ( x11-libs/libxcb:= )
-"
-
-DEPEND="
- ${COMMON_DEPEND}
- ${PYTHON_DEPS}
-"
-
-RDEPEND="${COMMON_DEPEND}
- media-libs/mesa[X?,wayland?]
- sys-libs/zlib
- sys-libs/ncurses:0
- wayland? ( dev-libs/wayland )
- X? (
- x11-libs/libXcursor
- x11-libs/libXi
- x11-libs/libXrandr
- )
-"
-
-BDEPEND="
- dev-build/cmake
- >=virtual/rust-1.57.0
-"
-
-QA_FLAGS_IGNORED="usr/bin/alacritty"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-src_unpack() {
- if [[ "${PV}" == *9999* ]]; then
- git-r3_src_unpack
- cargo_live_src_unpack
- else
- cargo_src_unpack
- fi
-}
-
-src_configure() {
- local myfeatures=(
- $(usex X x11 '')
- $(usev wayland)
- )
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd alacritty || die
- cargo_src_compile
-}
-
-src_install() {
- cargo_src_install --path alacritty
-
- newman extra/alacritty.man alacritty.1
- newman extra/alacritty-msg.man alacritty-msg.1
-
- newbashcomp extra/completions/alacritty.bash alacritty
-
- insinto /usr/share/fish/vendor_completions.d/
- doins extra/completions/alacritty.fish
-
- insinto /usr/share/zsh/site-functions
- doins extra/completions/_alacritty
-
- domenu extra/linux/Alacritty.desktop
- newicon extra/logo/compat/alacritty-term.svg Alacritty.svg
-
- insinto /usr/share/metainfo
- doins extra/linux/org.alacritty.Alacritty.appdata.xml
-
- insinto /usr/share/alacritty/scripts
- doins -r scripts/*
-
- local DOCS=(
- alacritty.yml
- CHANGELOG.md INSTALL.md README.md
- docs/{ansicode.txt,escape_support.md,features.md}
- )
- einstalldocs
-}
-
-src_test() {
- cd alacritty || die
- cargo_src_test
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]; then
- einfo "Configuration files for ${CATEGORY}/${PN}"
- einfo "in \$HOME often need to be updated after a version change"
- einfo ""
- einfo "An up-to-date sample configuration file always can be found at"
- einfo "${ROOT}/usr/share/doc/${PF}/alacritty.yml.*"
- fi
-}
diff --git a/x11-terms/alacritty/alacritty-0.13.2.ebuild b/x11-terms/alacritty/alacritty-0.13.2-r1.ebuild
index 5a29a07633b4..2ddcc021c043 100644
--- a/x11-terms/alacritty/alacritty-0.13.2.ebuild
+++ b/x11-terms/alacritty/alacritty-0.13.2-r1.ebuild
@@ -312,7 +312,6 @@ RDEPEND="
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.70.0
app-text/scdoc
"
diff --git a/x11-terms/alacritty/alacritty-0.14.0.ebuild b/x11-terms/alacritty/alacritty-0.14.0-r1.ebuild
index dcabfa5c5ad0..a4749f75d4d4 100644
--- a/x11-terms/alacritty/alacritty-0.14.0.ebuild
+++ b/x11-terms/alacritty/alacritty-0.14.0-r1.ebuild
@@ -284,6 +284,8 @@ CRATES="
MY_PV="${PV//_rc/-rc}"
+RUST_MIN_VER="1.74.1"
+
inherit bash-completion-r1 cargo desktop
DESCRIPTION="GPU-accelerated terminal emulator"
@@ -339,7 +341,6 @@ RDEPEND="
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.74.0
app-text/scdoc
"
diff --git a/x11-terms/alacritty/alacritty-9999.ebuild b/x11-terms/alacritty/alacritty-9999.ebuild
index 80b205f702c2..2ef2caefddb8 100644
--- a/x11-terms/alacritty/alacritty-9999.ebuild
+++ b/x11-terms/alacritty/alacritty-9999.ebuild
@@ -8,6 +8,8 @@ CRATES="
MY_PV="${PV//_rc/-rc}"
+RUST_MIN_VER="1.74.1"
+
inherit bash-completion-r1 cargo desktop
DESCRIPTION="GPU-accelerated terminal emulator"
@@ -21,6 +23,7 @@ else
${CARGO_CRATE_URIS}"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
fi
+S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="Apache-2.0"
# Dependent crate licenses
@@ -58,14 +61,11 @@ RDEPEND="${COMMON_DEPEND}
BDEPEND="
dev-build/cmake
- >=virtual/rust-1.70.0
app-text/scdoc
"
QA_FLAGS_IGNORED="usr/bin/alacritty"
-S="${WORKDIR}/${PN}-${MY_PV}"
-
src_unpack() {
if [[ "${PV}" == *9999* ]]; then
git-r3_src_unpack
diff --git a/x11-terms/wezterm/wezterm-20240203.110809-r1.ebuild b/x11-terms/wezterm/wezterm-20240203.110809-r2.ebuild
index 344b14163d58..065984499616 100644
--- a/x11-terms/wezterm/wezterm-20240203.110809-r1.ebuild
+++ b/x11-terms/wezterm/wezterm-20240203.110809-r2.ebuild
@@ -657,6 +657,9 @@ CRATES="
zvariant_utils@1.0.1
"
+# stdsimd
+RUST_MAX_VER="1.77.1"
+
inherit bash-completion-r1 desktop cargo xdg-utils
DESCRIPTION="A GPU-accelerated cross-platform terminal emulator and multiplexer"
@@ -719,7 +722,6 @@ BDEPEND="
dev-build/cmake
dev-vcs/git
virtual/pkgconfig
- virtual/rust
"
QA_FLAGS_IGNORED="