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

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

    <bug>
          <bug_id>30001</bug_id>
          
          <creation_ts>2014-04-14 13:30:33 +0400</creation_ts>
          <short_desc>напрасно ищет статические зависимости при динамической линковке</short_desc>
          <delta_ts>2018-12-05 22:24: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>cmake</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="Vitaly Lipatov">lav</assigned_to>
          <cc>at</cc>
    
    <cc>lav</cc>
    
    <cc>ldv</cc>
    
    <cc>shrek</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146184</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-14 13:30:33 +0400</bug_when>
    <thetext>libfreetype-devel-2.5.3-alt2 не требует pkgconfig(harfbuzz), при этом:

Requires.private: zlib, libpng, harfbuzz &gt;= 0.9.19

PS: похоже, это хозяйство придётся как-то доавтоматизировать -- не переносить же всё из private руками...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146185</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2014-04-14 13:50:33 +0400</bug_when>
    <thetext>Это же Requires.private, требуется только для статики, зачем переносить?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146202</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-14 23:53:26 +0400</bug_when>
    <thetext>openbabel при сборке ругался, пока не подобавлял руками:
Package &apos;xdamage&apos;, required by &apos;egl&apos;, not found</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146221</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-16 02:19:09 +0400</bug_when>
    <thetext>Поскольку в сборочной среде требуется наличие пакетов и для компиляции, и для линковки -- видимо, всё-таки придётся прописывать содержимое Requires.private в порождаемые pkgconfig()-зависимости lib*-devel (или в эквиваленте).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146223</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-16 02:19:19 +0400</bug_when>
    <thetext>*** Bug 29997 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146225</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-16 02:19:27 +0400</bug_when>
    <thetext>*** Bug 29998 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146227</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-04-16 02:19:32 +0400</bug_when>
    <thetext>*** Bug 29999 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172504</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-07-07 14:12:51 +0300</bug_when>
    <thetext>Нужно сказать, что проблема связана с особенностями поиска в cmake. Наблюдать её можно в openbabel и scribus, они собираются cmake.

Например, от простейшего CMakeLists.txt
include(FindPkgConfig)
pkg_search_module(CAIRO REQUIRED cairo&gt;=1.14.0)

можно увидеть
-- Found PkgConfig: /usr/bin/pkg-config (found version &quot;0.29.2&quot;) 
-- Checking for one of the modules &apos;cairo&gt;=1.14.0&apos;
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc&apos;
to the PKG_CONFIG_PATH environment variable
Package &apos;pixman-1&apos;, required by &apos;cairo&apos;, not found
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc&apos;
to the PKG_CONFIG_PATH environment variable

при том, что, конечно же, pixman-1 не нужен для сборки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172505</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-07-07 15:03:05 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Нужно сказать, что проблема связана с особенностями поиска в cmake. Наблюдать
&gt; её можно в openbabel и scribus, они собираются cmake.
&gt; 
&gt; Например, от простейшего CMakeLists.txt
&gt; include(FindPkgConfig)
&gt; pkg_search_module(CAIRO REQUIRED cairo&gt;=1.14.0)
&gt; 
&gt; можно увидеть
&gt; -- Found PkgConfig: /usr/bin/pkg-config (found version &quot;0.29.2&quot;) 
&gt; -- Checking for one of the modules &apos;cairo&gt;=1.14.0&apos;
&gt; Package pixman-1 was not found in the pkg-config search path.
&gt; Perhaps you should add the directory containing `pixman-1.pc&apos;
&gt; to the PKG_CONFIG_PATH environment variable
&gt; Package &apos;pixman-1&apos;, required by &apos;cairo&apos;, not found
&gt; Package pixman-1 was not found in the pkg-config search path.
&gt; Perhaps you should add the directory containing `pixman-1.pc&apos;
&gt; to the PKG_CONFIG_PATH environment variable
&gt; 
&gt; при том, что, конечно же, pixman-1 не нужен для сборки.
Причина в том, что FindPkgConfig создаёт два набора переменных — для динамической и для статической линковки.

Вот этот код:
# Invokes pkgconfig two times; once without &apos;--static&apos; and once with
# &apos;--static&apos;
macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
  _pkgconfig_invoke(&quot;${_pkglist}&quot; ${_prefix}        ${_varname} &quot;${cleanup_regexp}&quot; ${ARGN})
  _pkgconfig_invoke(&quot;${_pkglist}&quot; ${_prefix} STATIC_${_varname} &quot;${cleanup_regexp}&quot; --static  ${ARGN})
endmacro()


Предлагаю убрать у него поиск библиотек для статической линковки.
Если и найдётся один проект, которому это потребуется, можно положить FindPkgConfigStatic, который, напротив, будет заполнять только статические переменные.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172506</commentid>
    <comment_count>9</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-07-07 15:27:54 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; openbabel при сборке ругался, пока не подобавлял руками:
&gt; Package &apos;xdamage&apos;, required by &apos;egl&apos;, not found
Но главное, что это просто выводится cmake при поиске пакета, а на сборку не влияет.

Если шум при сборке не мешает, можно ничего не делать, но я завёл issue на эту тему:
https://gitlab.kitware.com/cmake/cmake/issues/18158</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>