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

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

    <bug>
          <bug_id>33879</bug_id>
          
          <creation_ts>2017-09-12 10:58:22 +0300</creation_ts>
          <short_desc>Препятствует обновлению</short_desc>
          <delta_ts>2017-09-14 21:11:18 +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>llvm4.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>P3</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</assigned_to>
          <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165707</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-09-12 10:58:22 +0300</bug_when>
    <thetext>При обновлении предлагает вынести все Иксы:
Следующие пакеты будут УДАЛЕНЫ:
  antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full
  xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk
  xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra xvfb-run
Помогает персональное обновление xorg-dri-swrast:
Следующие пакеты будут ОБНОВЛЕНЫ:
  glxgears glxinfo libEGL libEGL-debuginfo libEGL-devel libGL libGL-debuginfo libGL-devel libGLES libgbm libgbm-debuginfo libgbm-devel libwayland-egl
  libwayland-egl-devel xorg-dri-swrast
Следующие пакеты будут УДАЛЕНЫ:
  clang llvm
Следующие НОВЫЕ пакеты будут установлены:
  llvm4.0-libs

Поскольку llvm всё равно теперь не уживается с llvm4.0, может быть сделать их переход один в другой более гладким?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165709</commentid>
    <comment_count>1</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2017-09-12 11:19:33 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; При обновлении предлагает вынести все Иксы:
&gt; Следующие пакеты будут УДАЛЕНЫ:
&gt;   antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel
&gt; libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full
&gt;   xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit
&gt; xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk
&gt;   xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra
&gt; xvfb-run
&gt; Помогает персональное обновление xorg-dri-swrast:
&gt; Следующие пакеты будут ОБНОВЛЕНЫ:
&gt;   glxgears glxinfo libEGL libEGL-debuginfo libEGL-devel libGL libGL-debuginfo
&gt; libGL-devel libGLES libgbm libgbm-debuginfo libgbm-devel libwayland-egl
&gt;   libwayland-egl-devel xorg-dri-swrast
&gt; Следующие пакеты будут УДАЛЕНЫ:
&gt;   clang llvm
&gt; Следующие НОВЫЕ пакеты будут установлены:
&gt;   llvm4.0-libs
&gt; 
&gt; Поскольку llvm всё равно теперь не уживается с llvm4.0, может быть сделать их
&gt; переход один в другой более гладким?

Мне кажется, это вообще не проблемы llvm, а сборки Mesa в Сизифе. Зачем ей требуется llvm, если при сборке указывается --enable-llvm-shared-libs=no и BuildRequires: llvm4.0-devel llvm4.0-devel-static?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165723</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-09-12 17:21:02 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
...
&gt; Мне кажется, это вообще не проблемы llvm, а сборки Mesa в Сизифе. Зачем ей
&gt; требуется llvm, если при сборке указывается --enable-llvm-shared-libs=no и
&gt; BuildRequires: llvm4.0-devel llvm4.0-devel-static?
Тоже верно, перевешиваю на xorg-dri-swrast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165740</commentid>
    <comment_count>3</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2017-09-13 12:10:20 +0300</bug_when>
    <thetext>--enable-llvm-shared-libs=no осталось с mesa 17.1 и с llvm 4.0 не работает

[builder@localhost .in]$ llvm-config --version
3.8.0
[builder@localhost .in]$ llvm-config --libs
-lLLVMLTO -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMTableGen -lLLVMOrcJIT -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLibDriver -lLLVMOption -lLLVMLineEditor -lLLVMPasses -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfoCodeView -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMTransformUtils -lLLVMMC -lLLVMBitWriter -lLLVMBitReader -lLLVMAnalysis -lLLVMCore -lLLVMSupport

[builder@localhost .in]$ llvm-config --version
4.0.0
[builder@localhost .in]$ llvm-config --libs
-lLLVM-4.0

Можно было бы добавить --link-shared, если бы не
/usr/lib64/libLLVMSupport.a(Process.cpp.o): In function `terminalHasColors&apos;:
/usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:350: undefined reference to `setupterm&apos;
/usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:368: undefined reference to `tigetnum&apos;
/usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:372: undefined reference to `set_curterm&apos;
/usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:373: undefined reference to `del_curterm&apos;
collect2: error: ld returned 1 exit status

а теперь внимание вопрос
[builder@localhost .in]$ rpmquery -l llvm4.0-libs
/usr/lib64/LLVMgold.so
/usr/lib64/libLLVM-4.0.0.so
/usr/lib64/libLLVM-4.0.so
/usr/lib64/libLTO.so.4
/usr/lib64/libLTO.so.4.0.0
[builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs
llvm &lt;= 3.8.0

нахрена, если llvm4.0-libs и llvm по файлам не пересекаются?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165747</commentid>
    <comment_count>4</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2017-09-13 14:30:45 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; --enable-llvm-shared-libs=no осталось с mesa 17.1 и с llvm 4.0 не работает
Эта опция работает как надо (хотя зачем mesa у нас собирается со статическим llvm неизвестно):

$ llvm-config --link-static --system-libs
-lrt -ldl -ltinfo -lpthread -lz -lm

Поддержка llvm4 была добавлена в код Mesa еще в 2016 году:

commit b107169eef92e740180df468d1eae4cc61a52757
...

    configure: add support for LLVM 4.0.0svn static libs

&gt; 
&gt; [builder@localhost .in]$ llvm-config --version
&gt; 3.8.0
&gt; [builder@localhost .in]$ llvm-config --libs
&gt; -lLLVMLTO -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB
&gt; -lLLVMDebugInfoDWARF -lLLVMTableGen -lLLVMOrcJIT -lLLVMARMDisassembler
&gt; -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo
&gt; -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen
&gt; -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info
&gt; -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMCppBackendCodeGen
&gt; -lLLVMCppBackendInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo
&gt; -lLLVMNVPTXAsmPrinter -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser
&gt; -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter
&gt; -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG
&gt; -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info
&gt; -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLibDriver -lLLVMOption
&gt; -lLLVMLineEditor -lLLVMPasses -lLLVMipo -lLLVMVectorize -lLLVMLinker
&gt; -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfoCodeView -lLLVMInterpreter
&gt; -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget
&gt; -lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMProfileData
&gt; -lLLVMObject -lLLVMMCParser -lLLVMTransformUtils -lLLVMMC -lLLVMBitWriter
&gt; -lLLVMBitReader -lLLVMAnalysis -lLLVMCore -lLLVMSupport
&gt; 
&gt; [builder@localhost .in]$ llvm-config --version
&gt; 4.0.0
&gt; [builder@localhost .in]$ llvm-config --libs
&gt; -lLLVM-4.0
Потому что (сюрприз!) все эти либы находятся внутри LLVM-4.0.

&gt; 
&gt; Можно было бы добавить --link-shared, если бы не
&gt; /usr/lib64/libLLVMSupport.a(Process.cpp.o): In function `terminalHasColors&apos;:
&gt; /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:350: undefined
&gt; reference to `setupterm&apos;
&gt; /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:368: undefined
&gt; reference to `tigetnum&apos;
&gt; /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:372: undefined
&gt; reference to `set_curterm&apos;
&gt; /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:373: undefined
&gt; reference to `del_curterm&apos;
&gt; collect2: error: ld returned 1 exit status
Ничего не понятно. Приведет вывод для static а говорим о shared. К чему это?

&gt; 
&gt; а теперь внимание вопрос
&gt; [builder@localhost .in]$ rpmquery -l llvm4.0-libs
&gt; /usr/lib64/LLVMgold.so
&gt; /usr/lib64/libLLVM-4.0.0.so
&gt; /usr/lib64/libLLVM-4.0.so
&gt; /usr/lib64/libLTO.so.4
&gt; /usr/lib64/libLTO.so.4.0.0
&gt; [builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs
&gt; llvm &lt;= 3.8.0
&gt; 
&gt; нахрена, если llvm4.0-libs и llvm по файлам не пересекаются?
Потому что в момент сборки llvm4.0 была потребность максимально его изолировать от системного llvm. Более того, в какой-то момент libLLVM-4.0 просто назывался libLLVM.so и действительно конфликтовал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165748</commentid>
    <comment_count>5</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2017-09-13 14:58:25 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
...
&gt; хотя зачем mesa у нас собирается со статическим
&gt; llvm неизвестно

что бы вот таких вот проблем не возникало
...

&gt; Ничего не понятно. Приведет вывод для static а говорим о shared. К чему это?
--link-static имелось ввиду

&gt; 
&gt; &gt; 
&gt; &gt; а теперь внимание вопрос
&gt; &gt; [builder@localhost .in]$ rpmquery -l llvm4.0-libs
&gt; &gt; /usr/lib64/LLVMgold.so
&gt; &gt; /usr/lib64/libLLVM-4.0.0.so
&gt; &gt; /usr/lib64/libLLVM-4.0.so
&gt; &gt; /usr/lib64/libLTO.so.4
&gt; &gt; /usr/lib64/libLTO.so.4.0.0
&gt; &gt; [builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs
&gt; &gt; llvm &lt;= 3.8.0
&gt; &gt; 
&gt; &gt; нахрена, если llvm4.0-libs и llvm по файлам не пересекаются?
&gt; Потому что в момент сборки llvm4.0 была потребность максимально его изолировать
&gt; от системного llvm. Более того, в какой-то момент libLLVM-4.0 просто назывался
&gt; libLLVM.so и действительно конфликтовал.

ну так исправь уже llvm4.0-libs, иначе зачем вообще нужны эти либы</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165758</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2017-09-14 15:30:28 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; (В ответ на комментарий №4)
&gt; ...
&gt; &gt; хотя зачем mesa у нас собирается со статическим
&gt; &gt; llvm неизвестно
&gt; 
&gt; что бы вот таких вот проблем не возникало
&gt; ...
Каких проблем? Проблемы созданы на ровном месте - статическая линковка вместо динамической, из-за этого swrast таскает с собой жирный кусок функционала, который не нужен. Решение проблемы - убрать _один_ флаг из configure и _один_ пакет из BR.

&gt; 
&gt; ну так исправь уже llvm4.0-libs, иначе зачем вообще нужны эти либы
Даже если я и исправлю, это никак не отразится на сборке Mesa.

2lav: И все-таки, я не понимаю, как обновление xorg-dri-swrast решает проблему - и почему вообще clang и llvm тут каким-то боком. Либо кто-то из этого списка их требует явно или неявно:

 antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel
libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full
  xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit
xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk
  xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra
xvfb-run</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165760</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-09-14 17:32:57 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
...
&gt; 
&gt; 2lav: И все-таки, я не понимаю, как обновление xorg-dri-swrast решает проблему
&gt; - и почему вообще clang и llvm тут каким-то боком. Либо кто-то из этого списка
&gt; их требует явно или неявно:
Не знаю, я не вдавался. Ясно только, что список к удалению — это следствие удаления swrast.
Например, есть такая цепочка зависимостей:
antico -&gt; xinitrc -&gt; xorg-server -&gt; xorg-dri-swrast
 
&gt;  antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel
&gt; libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full
&gt;   xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit
&gt; xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk
&gt;   xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra
&gt; xvfb-run</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165764</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-09-14 21:11:18 +0300</bug_when>
    <thetext>llvm4.0-4.0.1-alt1.1.rel -&gt; sisyphus:

Thu Sep 14 2017 L.A. Kostis &lt;lakostis@altlinux.ru&gt; 4.0.1-alt1.1.rel
- remove conflicts: llvm from -libs pkg (closes #33879).

Sun Sep 10 2017 Evgeny Sinelnikov &lt;sin@altlinux.ru&gt; 4.0.1-alt1.rel
- Updated 4.0.0 release and build configuration:
  + Enabled AVR experimental target.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>