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

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

    <bug>
          <bug_id>21812</bug_id>
          
          <creation_ts>2009-10-02 18:03:18 +0400</creation_ts>
          <short_desc>не предоставляет libjvm.so(SUNWprivate_1.1)</short_desc>
          <delta_ts>2009-10-06 20:55:03 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>java-1.6.0-sun</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>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey V Turchin">zerg</reporter>
          <assigned_to name="viy">viy</assigned_to>
          <cc>wrar</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100667</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 18:03:18 +0400</bug_when>
    <thetext>программа, у которой в BuildRequires java-devel, собирается в hasher, получая зависимость
/usr/lib/jvm/java-1.6.0-sun-1.6.0.14/jre/lib/i386/client/libjvm.so(SUNWprivate_1.1)
, но никто такой не предоставляет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100669</commentid>
    <comment_count>1</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 18:30:03 +0400</bug_when>
    <thetext>путь 
/usr/lib/jvm/java-1.6.0-sun-1.6.0.14
очевидно будет сломан при обновлении :(
если уже и писать что-то в rpath, то советую писать
/usr/lib/jvm/java-1.6.0-sun/jre/lib/i386/client,
и такую зависимость фильтровать вручную.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100673</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 18:51:16 +0400</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; и такую зависимость фильтровать вручную.
Как?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100674</commentid>
    <comment_count>3</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 18:55:33 +0400</bug_when>
    <thetext>А есть разница, с чем линковать? client/libjvm.so или server/libjvm.so ?
А то server/libjvm.so(SUNWprivate_1.1) провайдиться, но, похоже, просто при сборке подгребается client/libjvm.so, т.к. порядок поиска библиотеки такой</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100676</commentid>
    <comment_count>4</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 18:58:30 +0400</bug_when>
    <thetext>*** Bug 21813 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100677</commentid>
    <comment_count>5</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:00:34 +0400</bug_when>
    <thetext>точнее
/usr/lib/jvm/java-1.6.0/jre/lib/i386/client
так как в openjdk она тоже есть.
а фильтровать можно так:

# HACK around find-requires
%define __find_requires    $RPM_BUILD_ROOT/.find-requires
cat &gt; $RPM_BUILD_ROOT/.find-requires &lt;&lt;EOF
#!/bin/sh
(/usr/lib/rpm/find-requires | grep -v /usr/lib/jvm/java) || :
EOF
chmod 755 $RPM_BUILD_ROOT/.find-requires
# end HACK around find-requires</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100678</commentid>
    <comment_count>6</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:01:18 +0400</bug_when>
    <thetext>разница в стратегии импльзования памяти.
для настольных приложений лучше client/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100681</commentid>
    <comment_count>7</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:03:45 +0400</bug_when>
    <thetext>*** Bug 21813 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100683</commentid>
    <comment_count>8</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:04:53 +0400</bug_when>
    <thetext>*** Bug 21814 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100684</commentid>
    <comment_count>9</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:12:52 +0400</bug_when>
    <thetext>&gt; &gt; другими словами,
&gt; &gt; автоматическая зависимость кривая,
&gt; Дык, исправляйте.
Я не Sun, исправить не могу.
рано еще libjvm.so лежать в %_libdir.

&gt; &gt; ее надо отфильтровать
&gt; Как?
см. выше пост.

&gt; и вручную написать requires: java-1.6.0
Как мне в спеке автоматом узнать, что нужно именно 1.6.0 писать?
напишите requires: java.

Если хотите, вручную писать Requires: libjvm.so(SUNWprivate_1.1)
то я добавлю 
Provides: libjvm.so(SUNWprivate_1.1)
(не во всех java она есть, напр. в java-1.5.0-gcj нет)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100686</commentid>
    <comment_count>10</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 19:19:54 +0400</bug_when>
    <thetext>&gt; Я не Sun, исправить не могу.
Почему? server/libjvm.so провайдиться, значит и client/libjvm.so может</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100687</commentid>
    <comment_count>11</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:24:15 +0400</bug_when>
    <thetext>Эти -
/usr/lib/jvm/java-1.6.0-sun-1.6.0.14/jre/lib/amd64/server/libjvm.so()(64bit)  
/usr/lib/jvm/java-1.6.0-sun-1.6.0.14/jre/lib/amd64/server/libjvm.so(SUNWprivate_1.1)(64bit)
мусор, случайно зацепило.
надо бы их отфильтровать.
они очевидно сломаются для java-1.6.0-sun-1.6.0.15.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100688</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 19:27:54 +0400</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Как мне в спеке автоматом узнать, что нужно именно 1.6.0 писать?
&gt; напишите requires: java.
т.е. при установке любой другой java программа начнет просто валиться?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100690</commentid>
    <comment_count>13</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 19:36:43 +0400</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Если хотите, вручную писать Requires: libjvm.so(SUNWprivate_1.1)
Как мне автоматом в спеке узнать, какой &quot;чтонибудь(чтото)&quot; добавить в зависимости?
Если будет какой-то макрос (его значение не важно, лишь бы привязывал правильно к нужному пакету), то можно будет
Requires: %этот_макрос</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100691</commentid>
    <comment_count>14</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:37:41 +0400</bug_when>
    <thetext>я подумал немного, и решил вам посоветовать
линковаться с java 1.6.0 openjdk.
это имеет то преимущество, что линковочный путь там определен
и не скачет от версии к версии.
java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server
на x86_64 client/*.so нет, там только server.

но если хотите на i386 линковаться с client/*.so
могу добавить provides.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100693</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 19:44:07 +0400</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; но если хотите на i386 линковаться с client/*.so
&gt; могу добавить provides.
Я везде хочу с client/livjvm.so
Это бэкенд sesame2 из soprano (сейчас не собирается)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100694</commentid>
    <comment_count>16</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-02 19:56:07 +0400</bug_when>
    <thetext>если точнее, у меня репозиторий soprano-backend-sesame2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100695</commentid>
    <comment_count>17</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-02 19:57:38 +0400</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; &gt; но если хотите на i386 линковаться с client/*.so
&gt; Я везде хочу с client/livjvm.so
&gt; Это бэкенд sesame2 из soprano (сейчас не собирается)

напомню, что на amd64 client/livjvm.so нет.
и все настольные приложения прекрасно работают с server/libjvm.so</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100814</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-05 14:05:24 +0400</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; напомню, что на amd64 client/livjvm.so нет.
&gt; и все настольные приложения прекрасно работают с server/libjvm.so
Тогда  нужно сделать так, чтоб cmake(в моем случае; /usr/share/CMake/Modules/FindJNI.cmake) не находил client/livjvm.so, раз собирать с ней нельзя</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100816</commentid>
    <comment_count>19</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2009-10-05 17:26:54 +0400</bug_when>
    <thetext>SET(JAVA_JVM_LIBRARY_DIRECTORIES)
FOREACH(dir ${JAVA_AWT_LIBRARY_DIRECTORIES})
  SET(JAVA_JVM_LIBRARY_DIRECTORIES
    ${JAVA_JVM_LIBRARY_DIRECTORIES}
    &quot;${dir}&quot;
    &quot;${dir}/client&quot;
    &quot;${dir}/server&quot;
    )
ENDFOREACH(dir)

Предлагается вычеркнуть client вообще или как?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100822</commentid>
    <comment_count>20</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-05 19:00:40 +0400</bug_when>
    <thetext>почему нельзя?
можно. вопрос был о автоматических requires.
если не хотите их отфильтровать в ручную как в #5,
тогда подождите пару дней, я соберу java-1.6.0-openjdk 
и добавлю туда явные provides чтобы погасить автоматические requires:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100851</commentid>
    <comment_count>21</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-10-05 20:35:52 +0400</bug_when>
    <thetext>(В ответ на комментарий №20)
&gt; если не хотите их отфильтровать в ручную как в #5,
Я согласен на любой кривохак(т.к. не моя ответственность), но чтоб он _работал_ и в автоматическом режиме.
Конечно, лучше, чтоб красиво было.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100867</commentid>
    <comment_count>22</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-05 23:20:08 +0400</bug_when>
    <thetext>rpmquery --provides -p java-1.6.0-openjdk-1.6.0.0-alt11_19.b14jpp6.x86_64.rpm G libjvm
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/libjvm.so()(64bit)  
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server/libjvm.so(SUNWprivate_1.1)(64bit)  
сделал, ловите в сизифе!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100941</commentid>
    <comment_count>23</comment_count>
    <who name="viy">viy</who>
    <bug_when>2009-10-06 20:55:03 +0400</bug_when>
    <thetext>java-1.6.0-openjdk-1.6.0.0-alt11_19.b14jpp6 fixed</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>