Создадим тестовый проект: $ cargo new hello; cd hello [...] И там попробуем воспользоваться нестабильными фичами карго: $ RUSTC_BOOTSTRAP=1 cargo run -Zbuild-std --target x86_64-unknown-linux-gnu error: "/usr/lib/rustlib/src/rust/Cargo.lock" does not exist, unable to build with the standard library, try: rustup component add rust-src Путь, по которому будут искаться исходники, захардкожен вот тут: https://git.altlinux.org/gears/r/rust.git?p=rust.git;a=blob;f=src/tools/cargo/src/cargo/core/compiler/standard_lib.rs;h=5272c211bd7474f1f881abdb89403e181bd088ed#l231 Однако у нас используется %_libdir: $ rpm -ql rust-src | grep -F '/Cargo.lock' /usr/lib64/rustlib/src/rust/Cargo.lock /usr/lib64/rustlib/src/rust/library/backtrace/Cargo.lock /usr/lib64/rustlib/src/rust/library/portable-simd/Cargo.lock Предлагаю перенести каталог rustlib в /usr/lib на всех архитектурах.
sudo ln -sr /usr/lib64/rustlib/ /usr/lib и правда помогает, но хотелось бы дистрибутивного решения.
(Ответ для Ivan A. Melnikov на комментарий #0) > Предлагаю перенести каталог rustlib в /usr/lib на всех архитектурах. Так делать я не буду, так как /usr/lib это архитектурно-независимая директория, а в rustlib есть скомпилированные двоичные файлы, вероятнее всего архитектурно-зависимые: x86_64-unknown-linux-gnu/ `-- lib |-- libaddr2line-bdeb55afe031b3e6.rlib |-- libadler-549853b5533490cf.rlib |-- liballoc-cc39756e9337b771.rlib |-- libcfg_if-55347f4e1650b108.rlib |-- libcompiler_builtins-fae3611e1da43b5f.rlib |-- libcore-cb3b37e38ca7215f.rlib |-- libgetopts-e83e983bbc3b6530.rlib |-- libgimli-21f57197152e14a3.rlib |-- libhashbrown-b382cdc5f4f98fc7.rlib |-- liblibc-8621cdfb8b678a20.rlib |-- libmemchr-d5d110b8400bba6f.rlib |-- libminiz_oxide-17cfdbeb4caa6393.rlib |-- libobject-133f67b4c75253cc.rlib |-- libpanic_abort-fa2ece2317c41167.rlib |-- libpanic_unwind-79dda966fd189021.rlib |-- libproc_macro-33650564d1f68605.rlib |-- libprofiler_builtins-732ed01bc6938bb5.rlib |-- librustc_demangle-59f68109070429a9.rlib |-- librustc_std_workspace_alloc-e14c4aa992180b1e.rlib |-- librustc_std_workspace_core-4670da79c7ee90e2.rlib |-- librustc_std_workspace_std-176e0b93f121636d.rlib |-- libstd-14eccbc7c394a2e1.rlib |-- libstd-14eccbc7c394a2e1.so -> ../../../libstd-14eccbc7c394a2e1.so |-- libstd_detect-c4e029d40a034467.rlib |-- libsysroot-3fedeb8400fd85fa.rlib |-- libtest-8eeb6f63d646b18e.rlib |-- libunicode_width-e355d2f8fad82fa9.rlib `-- libunwind-0e4e4b2658d78f4a.rlib Делать noarch подпакет для архитектурно-зависимого проекта не хотелось бы, может привести к проблемам. Просто поменяю захардкоженную директорию.
> /usr/lib это архитектурно-независимая директория Архитектурно-независимая -- это /usr/share. /usr/lib -- это ещё и наш %_libexecdir, и там немало архитектурно-зависимых бинарников, например весь systemd, все LLVM, а после usrmerge ещё и модули ядра.
Да, был не прав. Отправлю rustlib в /usr/lib/.
https://git.altlinux.org/tasks/347340/logs/events.4.1.log https://git.altlinux.org/tasks/347340/build/200/x86_64/log error[E0557]: feature has been removed Обновление firefox 126 будет 14-того числа, буду пробывать собрать новый rust уже с ним.
rust-1:1.78.0-alt1 -> sisyphus: Tue May 14 2024 Ajrat Makhmutov <rauty@altlinux> 1:1.78.0-alt1 - New version (1.78.0). - Move rustlib into /usr/lib/ (closes: 49687). - Remove the cargo-doc package. Now all documentation is in rust-doc. - Require gcc for rustc (closes: 49831).