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

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

    <bug>
          <bug_id>44263</bug_id>
          
          <creation_ts>2022-11-09 18:11:05 +0300</creation_ts>
          <short_desc>Лишние зависимости</short_desc>
          <delta_ts>2023-10-05 14:30:26 +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>llvm17.0</component>
          <version>unstable</version>
          <rep_platform>all</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="Valery Inozemtsev">shrek</reporter>
          <assigned_to name="Arseny Maslennikov">arseny</assigned_to>
          <cc>aen</cc>
    
    <cc>arseny</cc>
    
    <cc>grenka</cc>
    
    <cc>lakostis</cc>
    
    <cc>nenderus</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217131</commentid>
    <comment_count>0</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2022-11-09 18:11:05 +0300</bug_when>
    <thetext>$ rpmquery -pR clang13.0-libs-13.0.1-alt3.x86_64.rpm       
libc.so.6(GLIBC_2.3.2)(64bit)  
libc.so.6(GLIBC_2.9)(64bit)  
clang13.0-libs-support = 13.0.1-alt3:sisyphus+298982.600.9.1
llvm13.0-libs = 13.0.1-alt3:sisyphus+298982.600.9.1
rpmlib(PayloadIsXz)

Для libclang.so.13/libclang-cpp.so.13 действительно необходима куча заголовочных файлов и статические библиотеки в виде clang13.0-libs-support прибитых гвоздями в спеке?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217132</commentid>
    <comment_count>1</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2022-11-09 18:13:05 +0300</bug_when>
    <thetext>это относится и ко всем остальным (11, 12, 14, 15) clang-libs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217283</commentid>
    <comment_count>2</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-11-13 23:50:03 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #0)
&gt; $ rpmquery -pR clang13.0-libs-13.0.1-alt3.x86_64.rpm       
&gt; libc.so.6(GLIBC_2.3.2)(64bit)  
&gt; libc.so.6(GLIBC_2.9)(64bit)  
&gt; clang13.0-libs-support = 13.0.1-alt3:sisyphus+298982.600.9.1
&gt; llvm13.0-libs = 13.0.1-alt3:sisyphus+298982.600.9.1
&gt; rpmlib(PayloadIsXz)
&gt; 
&gt; Для libclang.so.13/libclang-cpp.so.13 действительно необходима куча
&gt; заголовочных файлов и статические библиотеки в виде clang13.0-libs-support
&gt; прибитых гвоздями в спеке?

Fun fact: эта куча файлов и в 11.0.1-alt1, например[1], шла в составе clang-libs, просто не было пакета -libs-support отдельного.
[1] https://git.altlinux.org/srpms/l/llvm11.0.git?p=llvm11.0.git;a=blob;f=llvm11.spec;h=659847bc56dab3889c89e5e779a6b5e5a9c08202;hb=8986c2acdc8311f69a43a1661a849a2e12788de8#l368</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217284</commentid>
    <comment_count>3</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-11-13 23:51:35 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #0)
&gt; $ rpmquery -pR clang13.0-libs-13.0.1-alt3.x86_64.rpm       
&gt; libc.so.6(GLIBC_2.3.2)(64bit)  
&gt; libc.so.6(GLIBC_2.9)(64bit)  
&gt; clang13.0-libs-support = 13.0.1-alt3:sisyphus+298982.600.9.1
&gt; llvm13.0-libs = 13.0.1-alt3:sisyphus+298982.600.9.1
&gt; rpmlib(PayloadIsXz)
&gt; 
&gt; Для libclang.so.13/libclang-cpp.so.13 действительно необходима куча
&gt; заголовочных файлов и статические библиотеки в виде clang13.0-libs-support
&gt; прибитых гвоздями в спеке?

Понятно, что без clang-libs-support clang работать не будет. А как же, например, clangd? Ему же не надо ни генерировать llvm-код, ни снижать его до машинного — по крайней мере, когда он жуёт си. Может быть, -libs-support нужен самому шлонгу, или rust-крейту cbindgen какому-нибудь, а ему не нужен?
Проведём эксперимент:
% EDITOR=&apos;printf %s\n&apos; gear-edit-spec
hasher-priv/hasher-priv.spec
% nvim hasher-priv/pass.c
&gt;&gt;&gt; :LspInfo
Detected filetype:   c                                 
                                                       
1 client(s) attached to this buffer:                   
                                                       
Client: clangd (id: 1, pid: nil, bufnr: [1])           
 filetypes:       c, cpp, objc, objcpp, cuda           
 autostart:       true                                 
 root directory:  /home/ar/gear/hasher-priv/hasher-priv
 cmd:             clangd                               
&gt;&gt;&gt; :lua vim.diagnostic.setloclist()
&lt;открывается пустой loclist&gt;
&gt;&gt;&gt; :qa!
Что и ожидалось.
Теперь без -libs-support. В другом терминале:
# rpm -e --nodeps clang13.0-libs-support
egrep: warning: egrep is obsolescent; using grep -E
Снова в предыдущем терминале:
% nvim hasher-priv/pass.c
&gt;&gt;&gt; :lua vim.diagnostic.setloclist()
hasher-priv/pass.c|1 col 1 error| Too many errors emitted, stopping now
hasher-priv/pass.c|13 col 10-21 error| In included file: &apos;stddef.h&apos; file not found
hasher-priv/pass.c|23 col 20-26 error| Unknown type name &apos;size_t&apos;; did you mean &apos;ssize_t&apos;? (fix available)
hasher-priv/pass.c|25 col 8-14 error| Unknown type name &apos;size_t&apos;; did you mean &apos;ssize_t&apos;? (fix available)
hasher-priv/pass.c|26 col 11-21 error| Use of undeclared identifier &apos;size_t&apos;
hasher-priv/pass.c|50 col 25-38 error| Use of undeclared identifier &apos;size_t&apos;
hasher-priv/pass.c|53 col 19-27 error| Use of undeclared identifier &apos;size_t&apos;
hasher-priv/pass.c|54 col 31-35 error| Implicit conversion changes signedness: &apos;const ssize_t&apos; (aka &apos;const long&apos;) to &apos;unsigned long&apos;
hasher-priv/pass.c|72 col 60-66 error| Unknown type name &apos;size_t&apos;; did you mean &apos;ssize_t&apos;? (fix available)
hasher-priv/pass.c|74 col 8-14 error| Unknown type name &apos;size_t&apos;; did you mean &apos;ssize_t&apos;? (fix available)
hasher-priv/pass.c|75 col 11-21 error| Use of undeclared identifier &apos;size_t&apos;
hasher-priv/pass.c|121 col 25-38 error| Use of undeclared identifier &apos;size_t&apos;
hasher-priv/pass.c|137 col 2-8 error| Unknown type name &apos;size_t&apos;; did you mean &apos;ssize_t&apos;? (fix available)
hasher-priv/pass.c|137 col 37-45 error| Use of undeclared identifier &apos;size_t&apos;
&gt;&gt;&gt; :qa!
Отлетели stdint.h, stddef.h, ... А они нужны. Как без них код на си анализировать?

В общем, либо NOTABUG, либо есть какие-то пользователи libclang конкретные, которым мешает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217285</commentid>
    <comment_count>4</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-11-14 00:18:44 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #3)
&gt; В общем, либо NOTABUG, либо есть какие-то пользователи libclang конкретные,
&gt; которым мешает.

Кроме хедеров, остаются ещё crt и санитайзеры.
Про санитайзеры, может, стоит и отдельно поговорить... Но с ними невозможно собраться, если не давать линкеру полные пути к ним явно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217290</commentid>
    <comment_count>5</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2022-11-14 08:56:43 +0300</bug_when>
    <thetext>к чему все эти выкладки? понятно же что clang-libs-support нужен для clang, а вот пользователям clang-libs он как собаке пятая нога</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217339</commentid>
    <comment_count>6</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-11-14 16:38:46 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #5)
&gt; к чему все эти выкладки? понятно же что clang-libs-support нужен для clang,
&gt; а вот пользователям clang-libs он как собаке пятая нога

А что за пользователи-то такие, которым не нужны stdint.h? rdb.altlinux.org таких не знает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217341</commentid>
    <comment_count>7</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2022-11-14 16:48:27 +0300</bug_when>
    <thetext>есть такие библиотеки, которым нужен libclang-cpp.so.13, но не нужен clang-13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217343</commentid>
    <comment_count>8</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-11-14 17:03:24 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #7)
&gt; есть такие библиотеки, которым нужен libclang-cpp.so.13, но не нужен clang-13

А, точно, rdb может не резолвить провайды.
Задал в запросе именно libclang-cpp.so.13.
% curl -X GET \                       
  &apos;https://rdb.altlinux.org/api/dependencies/packages_by_dependency?branch=sisyphus&amp;dp_name=libclang-cpp.so.13&amp;dp_type=require&apos; \
  -H &apos;accept: application/json&apos; | jq &apos;.packages[].name&apos;

Кроме того, что хочет и -libs-support, выдали:
&quot;libMesaOpenCL&quot;
&quot;qt6-tools&quot;

Окей, теперь верю. Спасибо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234133</commentid>
    <comment_count>9</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2023-10-01 23:22:24 +0300</bug_when>
    <thetext>https://git.altlinux.org/tasks/330734/
Оторвал зависимость на -libs-support, пока что от clang-cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234215</commentid>
    <comment_count>10</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-10-03 01:35:42 +0300</bug_when>
    <thetext>llvm17.0-17.0.1-alt4 -&gt; sisyphus:

 Sat Sep 30 2023 Arseny Maslennikov &lt;arseny@altlinux&gt; 17.0.1-alt4
 - Split libclang-cpp.so into its own package. (Closes: 44263)
 - Split libclang.so into its own package, making clangX-libs a compat package
   which pulls both shared libraries in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234324</commentid>
    <comment_count>11</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2023-10-04 12:30:20 +0300</bug_when>
    <thetext>(In reply to Repository Robot from comment #10)
&gt; llvm17.0-17.0.1-alt4 -&gt; sisyphus:
&gt; 
&gt;  Sat Sep 30 2023 Arseny Maslennikov &lt;arseny@altlinux&gt; 17.0.1-alt4
&gt;  - Split libclang-cpp.so into its own package. (Closes: 44263)
&gt;  - Split libclang.so into its own package, making clangX-libs a compat
&gt; package
&gt;    which pulls both shared libraries in.

Этот релиз, правда, оказался сломанным, потому что clang и clangd не вытягивали явно очевидно нужный им пакет clang-support.

В 17.0.2-alt1 зависимости у clang и clangd исправлены.
17.0.2-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234326</commentid>
    <comment_count>12</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2023-10-04 12:39:05 +0300</bug_when>
    <thetext>llvm 17.0 рано выбирать по умолчанию, libMesaOpenGL с ним не собирается</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234338</commentid>
    <comment_count>13</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2023-10-04 15:10:32 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #12)
&gt; llvm 17.0 рано выбирать по умолчанию, libMesaOpenGL с ним не собирается

https://gitlab.freedesktop.org/mesa/mesa/-/issues/8671
Апстрим llvm17.0 выкинул legacy pass manager, от которого в gallivm и clover что-то пока ещё зависит.

Может, нам будет достаточно наложить на месу следующие патчи?
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22980
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24879
Я на них набрёл по ссылкам из mesa issue 8671.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>