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

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

    <bug>
          <bug_id>55586</bug_id>
          
          <creation_ts>2025-08-13 10:45:28 +0300</creation_ts>
          <short_desc>Библиотеки не соотвествуют shared library policy</short_desc>
          <delta_ts>2026-04-04 02:20:54 +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>wasmtime</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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="Сергей Жидких">rx1513</reporter>
          <assigned_to>kiper</assigned_to>
          <cc>kiper</cc>
    
    <cc>lav</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270808</commentid>
    <comment_count>0</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2025-08-13 10:45:28 +0300</bug_when>
    <thetext>https://www.altlinux.org/Shared_Libs_Policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270809</commentid>
    <comment_count>1</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2025-08-13 10:47:07 +0300</bug_when>
    <thetext>Мне также непонятно отсутствие макросов для сборки растовской части.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270811</commentid>
    <comment_count>2</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2025-08-13 10:55:00 +0300</bug_when>
    <thetext>Можете объяснить как вы собирали этот пакет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270888</commentid>
    <comment_count>3</comment_count>
    <who name="">kiper</who>
    <bug_when>2025-08-14 13:43:26 +0300</bug_when>
    <thetext>(Ответ для Сергей Жидких на комментарий #2)
&gt; Можете объяснить как вы собирали этот пакет?

В соответствии с https://www.altlinux.org/RPM/Rust и подсматривая, как данный пакет собирался в других дистрибутивах.

(Ответ для Сергей Жидких на комментарий #1)
&gt; Мне также непонятно отсутствие макросов для сборки растовской части.

Прошу простить мою некомпетентность в данном вопросе как человеку, проходящему join. Будет исправлено в следующей сборке.

(Ответ для Сергей Жидких на комментарий #0)
&gt; https://www.altlinux.org/Shared_Libs_Policy

А вот тема баги чуть сложнее, чем может показаться на первый взгляд. В upstream-е wasmtime уже поднимался issue по поводу soname в 2021 году(https://github.com/bytecodealliance/wasmtime/issues/2996).
На текущий момент, насколько я знаю, проблема не решена(хоть issue и закрыт). В документации нет явного указания, что версия ABI wasmtime-c-api привязана к версии самого wasmtime.
В связи с чем можно сделать вывод, что нет явного версионирования ABI, как и определённых гарантий с версионированием основного проекта в отношение API wasmtime-c-api.

Как возможные варианты решения проблемы:
1. Пинать upstream в новой issue, объясняя плюсы soname и версионирования ABI в wasmtime-c-api во второй раз. Возможно приложив PR.
2. В случае, если issue затухнет во второй раз, взвалить версионирование ABI на человека X, которым могу выступить и я, когда руки дойдут до использования в своём личном проекте.

Но эти решения требуют определённого времени, так что сразу предложу временные варианты решения:
1. Оставить как есть. Но я чувствую, что данный вариант не устроит вас и CMake(https://gitlab.kitware.com/cmake/cmake/-/issues/22307#note_971562).
2. Использовать в качестве soname полную версию пакета. Данный вариант уже собран в тестовой задаче #392354(https://git.altlinux.org/tasks/392354).

Эти два временных варианта - две крайности, которые не решают настоящую проблему, описанную в https://www.altlinux.org/Shared_Libs_Policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270908</commentid>
    <comment_count>4</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2025-08-14 16:21:12 +0300</bug_when>
    <thetext>(Ответ для kiper на комментарий #3)
&gt; (Ответ для Сергей Жидких на комментарий #2)
&gt; &gt; Можете объяснить как вы собирали этот пакет?
&gt; 
&gt; В соответствии с https://www.altlinux.org/RPM/Rust и подсматривая, как
&gt; данный пакет собирался в других дистрибутивах.

Вы пробовали собирать без RUST_MIN_STACK? Если разработчик явно не указал требование к размеру стека при сборке, значит переполнение стека может указывать на проблемы с компилятором. Совсем недавно из-за этого некоторые пакеты периодически падали при сборке.

&gt; (Ответ для Сергей Жидких на комментарий #1)
&gt; &gt; Мне также непонятно отсутствие макросов для сборки растовской части.
&gt; 
&gt; Прошу простить мою некомпетентность в данном вопросе как человеку,
&gt; проходящему join. Будет исправлено в следующей сборке.
&gt; 
Спасибо. Обратите также внимание на используемую лицензию, она имеет дополнительный пункт &quot;LLVM Exceptions to the Apache 2.0 License&quot;. Поскольку у нас нет такой лицензии её нужно паковать вместе с пакетом как &quot;Apache-2.0 with LLVM-exception&quot; по названию используемому в cargo.toml. Можете в качестве примера взять https://packages.altlinux.org/ru/sisyphus/srpms/llvm17.0/specfiles/

&gt; (Ответ для Сергей Жидких на комментарий #0)
&gt; &gt; https://www.altlinux.org/Shared_Libs_Policy
&gt; 
&gt; А вот тема баги чуть сложнее, чем может показаться на первый взгляд. В
&gt; upstream-е wasmtime уже поднимался issue по поводу soname в 2021
&gt; году(https://github.com/bytecodealliance/wasmtime/issues/2996).
&gt; На текущий момент, насколько я знаю, проблема не решена(хоть issue и
&gt; закрыт). В документации нет явного указания, что версия ABI wasmtime-c-api
&gt; привязана к версии самого wasmtime.
&gt; В связи с чем можно сделать вывод, что нет явного версионирования ABI, как и
&gt; определённых гарантий с версионированием основного проекта в отношение API
&gt; wasmtime-c-api.
&gt; 
&gt; Как возможные варианты решения проблемы:
&gt; 1. Пинать upstream в новой issue, объясняя плюсы soname и версионирования
&gt; ABI в wasmtime-c-api во второй раз. Возможно приложив PR.
&gt; 2. В случае, если issue затухнет во второй раз, взвалить версионирование ABI
&gt; на человека X, которым могу выступить и я, когда руки дойдут до
&gt; использования в своём личном проекте.
&gt; 
&gt; Но эти решения требуют определённого времени, так что сразу предложу
&gt; временные варианты решения:
&gt; 1. Оставить как есть. Но я чувствую, что данный вариант не устроит вас и
&gt; CMake(https://gitlab.kitware.com/cmake/cmake/-/issues/22307#note_971562).
&gt; 2. Использовать в качестве soname полную версию пакета. Данный вариант уже
&gt; собран в тестовой задаче #392354(https://git.altlinux.org/tasks/392354).
&gt; 
&gt; Эти два временных варианта - две крайности, которые не решают настоящую
&gt; проблему, описанную в https://www.altlinux.org/Shared_Libs_Policy.
Спасибо за развёрнутый ответ, было очень полезно узнать про проблемы растовских C-подобных библиотек. Очень плохо что upstream не понимает назначение soname.

Оба временных решения являются плохими. Если разработчики не понимают для чего нужен soname, значит и гарантий что будет однозначное соответствие между C API и версией пакета нет. В таком случае ручное задание soname будет надёжнее.

Я считаю стоит всё-таки достучаться до upstream-а и если откажется идти на сотрудничество, то заниматься версионированием самостоятельно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270914</commentid>
    <comment_count>5</comment_count>
    <who name="">kiper</who>
    <bug_when>2025-08-14 17:31:04 +0300</bug_when>
    <thetext>(Ответ для Сергей Жидких на комментарий #4)
&gt; Вы пробовали собирать без RUST_MIN_STACK? 

Да. Насколько я помню, падала сборка на x86. В логах сборки прямым текстом была рекомендация.

&gt; Если разработчик явно не указал
&gt; требование к размеру стека при сборке, значит переполнение стека может
&gt; указывать на проблемы с компилятором. Совсем недавно из-за этого некоторые
&gt; пакеты периодически падали при сборке.

Попробую собрать без RUST_MIN_STACK. По итогу сборки отпишусь сюда. Задача #392457

&gt; Спасибо. Обратите также внимание на используемую лицензию, она имеет
&gt; дополнительный пункт &quot;LLVM Exceptions to the Apache 2.0 License&quot;. Поскольку
&gt; у нас нет такой лицензии её нужно паковать вместе с пакетом как &quot;Apache-2.0
&gt; with LLVM-exception&quot; по названию используемому в cargo.toml. Можете в
&gt; качестве примера взять
&gt; https://packages.altlinux.org/ru/sisyphus/srpms/llvm17.0/specfiles/

Благодарю. Возьму на заметку и исправлю!


&gt; Оба временных решения являются плохими. Если разработчики не понимают для
&gt; чего нужен soname, значит и гарантий что будет однозначное соответствие
&gt; между C API и версией пакета нет. В таком случае ручное задание soname будет
&gt; надёжнее.

Согласен с вами.

&gt; Я считаю стоит всё-таки достучаться до upstream-а и если откажется идти на
&gt; сотрудничество, то заниматься версионированием самостоятельно.

Так и поступлю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270915</commentid>
    <comment_count>6</comment_count>
    <who name="">kiper</who>
    <bug_when>2025-08-14 17:57:21 +0300</bug_when>
    <thetext>(Ответ для kiper на комментарий #5)
&gt; (Ответ для Сергей Жидких на комментарий #4)
&gt; &gt; Вы пробовали собирать без RUST_MIN_STACK? 
&gt; 
&gt; Да. Насколько я помню, падала сборка на x86. В логах сборки прямым текстом
&gt; была рекомендация.
&gt; 
&gt; &gt; Если разработчик явно не указал
&gt; &gt; требование к размеру стека при сборке, значит переполнение стека может
&gt; &gt; указывать на проблемы с компилятором. Совсем недавно из-за этого некоторые
&gt; &gt; пакеты периодически падали при сборке.
&gt; 
&gt; Попробую собрать без RUST_MIN_STACK. По итогу сборки отпишусь сюда. Задача
&gt; #392457

Этап сборки прошёл. Ошибки переполнения стека не произошла. 
Благодарю за информацию!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270917</commentid>
    <comment_count>7</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2025-08-14 18:02:21 +0300</bug_when>
    <thetext>﷐[U+1F44D]﷑</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285127</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2026-04-04 02:20:54 +0300</bug_when>
    <thetext>А чем закончилась сборка?
Хотелось бы увидеть более новую версию (39 хотя бы)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>