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

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

    <bug>
          <bug_id>61183</bug_id>
          
          <creation_ts>2026-10-22 20:04:24 +0300</creation_ts>
          <short_desc>Убрать зависимость на llvm20.1 и довериться rpm-build</short_desc>
          <delta_ts>2026-10-23 19:17:03 +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>postgresql17-llvmjit</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan">pepelyaevip</reporter>
          <assigned_to name="Alexei Takaseev">taf</assigned_to>
          <cc>grenka</cc>
    
    <cc>taf</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303179</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan">pepelyaevip</who>
    <bug_when>2026-10-22 20:04:24 +0300</bug_when>
    <thetext>Проблема
---

Requires на llvm20.1 помимо него тянет еще тулинг LLVM, библиотеки clang и python3. А поскольку llvm20.1 требует llvm по Requires: llvm &gt;= %_llvm_version, следом ставится и второй полный стек LLVM (сейчас это 21.1.0-alt1)


Где мешает
---

Хорошо заметно в контейнерах. Зависимость на JIT раздувает размер образа в два раза.

Доказательство
---

Проверяем, что нужно для запуска:
$ /lib64/ld-linux-x86-64.so.2 --list /usr/lib64/pgsql/llvmjit.so
        linux-vdso.so.1 (0x00007f7d5cb68000)
        libLLVM.so.20.1 =&gt; /lib64/libLLVM.so.20.1 (0x00007f7d54a00000)
        libstdc++.so.6 =&gt; /lib64/libstdc++.so.6 (0x00007f7d54600000)
        libgcc_s.so.1 =&gt; /lib64/libgcc_s.so.1 (0x00007f7d5cb06000)
        libc.so.6 =&gt; /lib64/libc.so.6 (0x00007f7d54404000)
        libffi.so.8 =&gt; /lib64/../lib64/libffi.so.8 (0x00007f7d5cafb000)
        libedit.so.3 =&gt; /lib64/../lib64/libedit.so.3 (0x00007f7d5cabc000)
        libm.so.6 =&gt; /lib64/../lib64/libm.so.6 (0x00007f7d548e9000)
        libz.so.1 =&gt; /lib64/../lib64/libz.so.1 (0x00007f7d5ca9e000)
        libxml2.so.16 =&gt; /lib64/../lib64/libxml2.so.16 (0x00007f7d542b7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f7d5cb6a000)
        libtinfo.so.6 =&gt; /lib64/libtinfo.so.6 (0x00007f7d5ca6c000)

Проверяем, что без llvm20.1 всё работает. Установлен только llvm20.1-libs, postgresql17-llvmjit поставлен через rpm -i --nodeps:

psql (17.11)
Type &quot;help&quot; for help.

postgres=# SELECT pg_jit_available();
 pg_jit_available 
------------------
 t
(1 row)

postgres=# SET jit_above_cost = 0;
SET
postgres=# SET jit_inline_above_cost = 0;
SET
postgres=# SET jit_optimize_above_cost = 0;
SET
postgres=# EXPLAIN (ANALYZE) SELECT sum(g) FROM generate_series(1,100000) g;
                                                             QUERY PLAN                                                     
         
 Aggregate  (cost=1250.00..1250.01 rows=1 width=8) (actual time=99.704..99.706 rows=1 loops=1)
   -&gt;  Function Scan on generate_series g  (cost=0.00..1000.00 rows=100000 width=4) (actual time=82.781..92.936 rows=100000 
loops=1)
 Planning Time: 0.165 ms
 JIT:
   Functions: 5
   Options: Inlining true, Optimization true, Expressions true, Deforming true
   Timing: Generation 0.276 ms (Deform 0.061 ms), Inlining 52.919 ms, Optimization 9.000 ms, Emission 9.254 ms, Total 71.448
 ms
 Execution Time: 104.101 ms
(8 rows)


rpm-build генерирует зависимость автоматически:

$ rpm -qR postgresql17-llvmjit
llvm20.1
libLLVM.so.20.1()(64bit) &gt;= ...
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.3.1)(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.9)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
postgresql17-server = 17.11-alt1:sisyphus+429419.500.2.1
rpmlib(PayloadIsLzma)


Вывод
---

Тулинг LLVM для работы JIT не нужнен.


Решение
---

Убрать Requires: llvm20.1 и довериться резолверу :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303283</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-10-23 19:17:03 +0300</bug_when>
    <thetext>postgresql18-1C-18.4-alt6 -&gt; sisyphus:

Fri Oct 23 2026 Alexei Takaseev &lt;taf@altlinux&gt; 18.4-alt6
- Update 1C patch (16072026)
- Drop 00003-1C-Fix-test-aggregates.patch
- Remove BR rpm-build-vm-createimage and option --rootfs
- Test only x86_64
- Make local buffers pin limit more conservative
- Use LLVM 22.1
- Delete unneeded requires to llvm in postgresqlXY-llvmjit (ALT #61183)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>