<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Sans Serif">
<p>On Monday 04 December 2006 22:35, Folkert van Heusden wrote:</p>
<p><span style="color:#006000">&gt; &gt; &gt; Nothing builds with this library.</span></p>
<p><span style="color:#007000">&gt; &gt;</span></p>
<p><span style="color:#007000">&gt; &gt; That's not true. The boinc-app-seti package builds with this package</span></p>
<p><span style="color:#007000">&gt; &gt; (therefore I'm downgrading the severity of this bug). Maybe you should</span></p>
<p><span style="color:#007000">&gt; &gt; have a look at boinc-app-seti's makefiles to figure out how to use BOINC</span></p>
<p><span style="color:#007000">&gt; &gt; libraries and headers.</span></p>
<p><span style="color:#008000">&gt;</span></p>
<p><span style="color:#008000">&gt; I.m.h.o. if just doing something like -lboinc (or whatever), it should</span></p>
<p><span style="color:#008000">&gt; be in the (at least Debian-) documentation of that library.</span></p>
<p><span style="color:#008000">&gt;</span></p>
<p><span style="color:#008000">&gt; If a library is only usable for 1 application, it doesn't make sense to</span></p>
<p><span style="color:#008000">&gt; have a seperate -dev library.</span></p>
<p></p>
<p>Hi, I think that Frank has a valid point here and you, Folkert, have done a good job in minimising the issue. It should not be overly difficult, but somebody should do it, that far we are in sync, to describe the dependencies independently from the Makefile.</p>
<p></p>
<p>This are the _shared_ libraries used by Debian's seti@home application:</p>
<p>pc02:/nfshome/moeller # ldd /usr/lib/boinc-app-seti/setiathome_enhanced</p>
<p>        linux-gate.so.1 =&gt;  (0xb7f93000)</p>
<p>        libssl.so.0.9.8 =&gt; /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7f3e000)</p>
<p>        libcrypto.so.0.9.8 =&gt; /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7e04000)</p>
<p>        libdl.so.2 =&gt; /lib/tls/i686/cmov/libdl.so.2 (0xb7dff000)</p>
<p>        libfftw3f.so.3 =&gt; /usr/lib/libfftw3f.so.3 (0xb7d21000)</p>
<p>        libnsl.so.1 =&gt; /lib/tls/i686/cmov/libnsl.so.1 (0xb7d0b000)</p>
<p>        librt.so.1 =&gt; /lib/tls/i686/cmov/librt.so.1 (0xb7d02000)</p>
<p>        libz.so.1 =&gt; /usr/lib/libz.so.1 (0xb7cee000)</p>
<p>        libstdc++.so.6 =&gt; /usr/lib/libstdc++.so.6 (0xb7c09000)</p>
<p>        libpthread.so.0 =&gt; /lib/tls/i686/cmov/libpthread.so.0 (0xb7bf5000)</p>
<p>        libm.so.6 =&gt; /lib/tls/i686/cmov/libm.so.6 (0xb7bd0000)</p>
<p>        libgcc_s.so.1 =&gt; /lib/libgcc_s.so.1 (0xb7bc5000)</p>
<p>        libc.so.6 =&gt; /lib/tls/i686/cmov/libc.so.6 (0xb7a91000)</p>
<p>        /lib/ld-linux.so.2 (0xb7f94000)</p>
<p></p>
<p>But no prime candidate jumps to mind, here, so I presumed something static.</p>
<p></p>
<p>moeller@pc02:~$ grep -r RPC_CLIENT /usr/include/</p>
<p>/usr/include/BOINC/lib/gui_rpc_client.h:class RPC_CLIENT {</p>
<p>/usr/include/BOINC/lib/gui_rpc_client.h:    RPC_CLIENT();</p>
<p>/usr/include/BOINC/lib/gui_rpc_client.h:    ~RPC_CLIENT();</p>
<p>/usr/include/BOINC/lib/gui_rpc_client.h:    RPC_CLIENT* rpc_client;</p>
<p>/usr/include/BOINC/lib/gui_rpc_client.h:    RPC(RPC_CLIENT*);</p>
<p></p>
<p>(Sidenote: I installed the boinc-dev package for you and your report only :o) )</p>
<p></p>
<p>Ok, we found the culprit. The remaining question is what boinc library is reponsible for the implementation of the constructor. This is investigated by a one-line script like the following:</p>
<p></p>
<p>for i in `dpkg -L boinc-dev | grep libb`; do echo $i; nm $i | grep -i RPC; done</p>
<p></p>
<p>using this information and your example code</p>
<p>moeller@pc02:~/NO_INB_BACKUP/src$ cat &gt; b.C &amp;&amp; g++ -I /usr/include/BOINC/ b.C -o b -L /usr/share/boinc-dev/lib -lboinc</p>
<p><span style="color:#008000">&gt; #include &lt;BOINC/lib/gui_rpc_client.h&gt;</span></p>
<p><span style="color:#008000">&gt; int main(int argc, char *argv[])</span></p>
<p><span style="color:#008000">&gt; {</span></p>
<p><span style="color:#008000">&gt;         RPC_CLIENT      test;</span></p>
<p><span style="color:#008000">&gt;         return 0;</span></p>
<p><span style="color:#008000">&gt; }</span></p>
<p><span style="color:#008000">&gt; moeller@pc02:~/NO_INB_BACKUP/src$ </span></p>
<p></p>
<p>compiles just happily.</p>
<p></p>
<p>Folkert, since I know Frank to be very busy with his daytime activitities and to my knowledge he is not actively programming boinc applications himself these days, please consider to write a little tutorial for Debian (and upstream) based on your experiences.</p>
<p></p>
<p>Many greetings</p>
<p></p>
<p>Steffen</p>
<p></p>
<p></p>
</body></html>