<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><div>Answer inline.</div><div><br></div><div class="gmail_quote"><div dir="ltr">On Sun, Dec 30, 2018 at 12:59 PM James <<a href="mailto:list@xdrv.co.uk">list@xdrv.co.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 29/12/2018 13:49, Pierluigi Frullani wrote:<br>
<br>> My version is 2.2.13 ( it was the last one, at the time of the first<br>
> server setup ).<br>
<br>
2.2.13 is from around May 2014.  It worked but I can't see why you <br>
wouldn't switch to the latest 2.3.4. (You might be seeing what I can't <br>
and your question hasn't explained.)<br></blockquote><div><div><br></div><div>That's the date for installation. I was using the courier-imap and switched to dovecot. </div><div>Not changed since then. </div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> I have seen that ( it seems ) the new solaris don't honour the<br>
> LD_LIBRARY_PATH.<br>
<br>
I'm sure it does but you shouldn't need it anyway.<br></blockquote><div><br></div><div><div>Believe me, it doesn't :( </div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Did you compile this yourself or are you using someone else's package? <br>
Solaris has no files in /usr/local, you must have added those.<br></blockquote><div><br></div><div>Yes I did compile it by myself using the "configure; make " way, with the following command:</div><div>CPPFLAGS="-I/usr/local/clucene/include -I/usr/local/libtextcat/include -I/usr/local/openssl-1.0.1e/include" LDFLAGS="-L/usr/local/clucene/lib -L/usr/local/libtextcat/lib -L/usr/local/openssl-1.0.1e/lib" ./configure --prefix=/usr/local/dovecot --with-ssl=yes --with-stemmer --with-lucene --with-zlib </div><div><br></div><div>( also tried with --without-shared-libs or without it  ) </div><div><br></div><div>The problem ( as usual ) arise with the openssl libs that solaris ships, as they are always missing some parts ( basically for the export laws solaris adhere :) )</div><div>If I compile with the internal (open)ssl libs it won't even finish the compilation :( </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
1. Do not put your files in /use/local.  You will clash with someone <br>
else thinking it is the place to put personal stuff.  man filesystem: <br>
"/opt  Root of a subtree for add-on application packages."<br></blockquote><div><br></div><div> Being that I'm the only one administering this machine I'm sure it would not  ;)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
2. Do not use LD_LIBRARY_PATH in the run time environment.  Instead use <br>
the runpath in binaries as set during linking.<br></blockquote><div><br></div><div><div>That's the important point, but please read on.</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
4. When linking use -L to point to the libraries.  These need not be in <br>
the installation location and during build won't be (because you haven't <br>
installed yet because you are building new libraries).</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
5. When linking use -R to point to the installed location of the libraries.<br></blockquote><div><br></div><div> That's fine with me, ( and eventually I will try to modify all the makefiles, but I hoped it would have already been done by configure ( wich obviously has not :) </div><br class="gmail-Apple-interchange-newline"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It should work if the paths are set correctly in the binaries.  A <br>
generic package can use $ORIGIN.<br>
It's possible libtool is doing its usual trick of making a simple task <br>
difficult - I take measures to undo its wrong doing and set -L and -R <br>
between libtool and ld (cc -G).<br></blockquote><div><div><br></div><div>I will try too ( but wouldn't be nice if the configure tool would do that for us ? )</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- what is its run path?<br>
# dump -Lv /opt/XXX/sbin/dovecot | grep RUNPATH<br></blockquote><div><br></div><div>Interesting:</div><div> root@puma dump -Lv dovecot | grep RUN </div><div>[10]    RUNPATH         /usr/local/dovecot/lib/dovecot:/usr/local/lib:/usr/ccs/lib:/lib:/usr/lib:/usr/sfw/lib</div><div>so it's obviously missing the openssl libraries </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- can the runtime linker find the libraries?<br>
# ldd -r /opt/XXX/sbin/dovecot<br>
<br></blockquote><div><br></div><div><br></div><div>Yes, although not the one I want: </div><div>root@puma ldd -r imap-login | egrep "ssl|crypto"</div><div>        libssl.so.1.0.0 =>       /usr/lib/libssl.so.1.0.0</div><div>        libcrypto.so.1.0.0 =>    /usr/lib/libcrypto.so.1.0.0</div><div><br></div><div>At the moment I've applied a workaround by creating a fake script that change the library path on execution:</div><div>=========================================================================</div><div>root@puma cat imap-login</div><div>#!/bin/sh</div><div>LD_LIBRARY_PATH=/usr/local/openssl-1.0.1e/lib:$LD_LIBRARY_PATH</div><div><br></div><div>export LD_LIBRARY_PATH</div><div>exec /usr/local/dovecot/libexec/dovecot/imap-login.orig</div><div>=========================================================================</div><div>and it's working but is not something I really like.</div><div><br></div><div>Would you ( or could ) show me where to replace -R and -L on Makefile(s) to fix the runpath trouble ?<br></div><div><br></div><div>I've tried the following:</div><div><div>CPPFLAGS="-I/usr/local/clucene/include -I/usr/local/libtextcat/include -I/usr/local/openssl-1.0.1e/include" LDFLAGS="-L/usr/local/clucene/lib -L/usr/local/libtextcat/lib -L/usr/local/openssl-1.0.1e/lib<span style="background-color:rgb(255,153,0)"> -R/usr/local/openssl-1.0.1e/lib </span>" ./configure --prefix=/usr/local/dovecot --with-ssl=yes --with-stemmer --with-lucene --with-zlib </div></div><div>and it seems to work:</div><div><br></div><div><div>root@puma dump -Lv ./src/imap-login/.libs/imap-login | grep RUN</div><div>[14]    RUNPATH         /usr/local/dovecot/lib/dovecot:/usr/local/lib:/usr/local/openssl-1.0.1e/lib:/usr/ccs/lib:/lib:/usr/lib:/usr/sfw/lib</div></div><div><br></div><div>I will try this weekend to install the new binary and see if it has done the magic.</div><div><br></div><div>BTW, thanks in advance for your time</div><div><br></div><div>Pigi </div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>