<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>49687</bug_id>
          
          <creation_ts>2024-03-13 19:53:39 +0300</creation_ts>
          <short_desc>cargo run -Zbuild-std ожидает другой путь</short_desc>
          <delta_ts>2024-05-22 14:14:50 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>rust-src</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan A. Melnikov">iv</reporter>
          <assigned_to name="Ajrat Makhmutov">ajratma</assigned_to>
          <cc>ajratma</cc>
    
    <cc>crux</cc>
    
    <cc>legion</cc>
    
    <cc>rauty</cc>
    
    <cc>rx1513</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242978</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-03-13 19:53:39 +0300</bug_when>
    <thetext>Создадим тестовый проект:

$ cargo new hello; cd hello
[...]

И там попробуем воспользоваться нестабильными фичами карго:

$ RUSTC_BOOTSTRAP=1 cargo run -Zbuild-std --target x86_64-unknown-linux-gnu
error: &quot;/usr/lib/rustlib/src/rust/Cargo.lock&quot; 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 &apos;/Cargo.lock&apos;
/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 на всех архитектурах.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242979</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-03-13 19:55:08 +0300</bug_when>
    <thetext>sudo ln -sr /usr/lib64/rustlib/ /usr/lib

и правда помогает, но хотелось бы дистрибутивного решения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245894</commentid>
    <comment_count>2</comment_count>
    <who name="Ajrat Makhmutov">rauty</who>
    <bug_when>2024-05-06 14:58:16 +0300</bug_when>
    <thetext>(Ответ для Ivan A. Melnikov на комментарий #0)
&gt; Предлагаю перенести каталог 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 -&gt; ../../../libstd-14eccbc7c394a2e1.so
    |-- libstd_detect-c4e029d40a034467.rlib
    |-- libsysroot-3fedeb8400fd85fa.rlib
    |-- libtest-8eeb6f63d646b18e.rlib
    |-- libunicode_width-e355d2f8fad82fa9.rlib
    `-- libunwind-0e4e4b2658d78f4a.rlib

Делать noarch подпакет для архитектурно-зависимого проекта не хотелось бы, может привести к проблемам.
Просто поменяю захардкоженную директорию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245896</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-05-06 15:32:04 +0300</bug_when>
    <thetext>&gt; /usr/lib это архитектурно-независимая директория

Архитектурно-независимая -- это /usr/share.

/usr/lib -- это ещё и наш %_libexecdir, и там немало архитектурно-зависимых бинарников, например весь systemd, все LLVM, а после usrmerge ещё и модули ядра.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245910</commentid>
    <comment_count>4</comment_count>
    <who name="Ajrat Makhmutov">rauty</who>
    <bug_when>2024-05-06 20:01:23 +0300</bug_when>
    <thetext>Да, был не прав. Отправлю rustlib в /usr/lib/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246001</commentid>
    <comment_count>5</comment_count>
    <who name="Ajrat Makhmutov">rauty</who>
    <bug_when>2024-05-08 20:04:42 +0300</bug_when>
    <thetext>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 уже с ним.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246595</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2024-05-22 14:14:50 +0300</bug_when>
    <thetext>rust-1:1.78.0-alt1 -&gt; sisyphus:

 Tue May 14 2024 Ajrat Makhmutov &lt;rauty@altlinux&gt; 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).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>