1 |
I recently upgraded my courier setup (imap and authlib): |
2 |
|
3 |
basement lib64 # eix -Ic courier |
4 |
[I] net-libs/courier-authlib (0.65.0-r1@11/01/2012): Courier authentication |
5 |
library. |
6 |
[I] net-mail/courier-imap (4.8.0@11/01/2012): An IMAP daemon designed |
7 |
specifically for maildirs. |
8 |
|
9 |
After I was finished, the imap server stopped accepting new connections. I |
10 |
managed to track the problem down to missing shared libraries from |
11 |
courier-authlib needed by imaplogin: |
12 |
|
13 |
basement authlib # ldd /usr/sbin/imaplogin |
14 |
linux-vdso.so.1 (0x0000029ae5055000) |
15 |
libcourierauth.so => not found |
16 |
libcourierauthsasl.so => not found |
17 |
libc.so.6 => /lib64/libc.so.6 (0x0000029ae4a8f000) |
18 |
/lib64/ld-linux-x86-64.so.2 (0x0000029ae4e36000) |
19 |
|
20 |
basement lib64 # strace imaplogin 2>&1 | grep libcourierauth.so |
21 |
open("/lib64/tls/x86_64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT |
22 |
(No such file or directory) |
23 |
open("/lib64/tls/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No |
24 |
such file or directory) |
25 |
open("/lib64/x86_64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No |
26 |
such file or directory) |
27 |
open("/lib64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such |
28 |
file or directory) |
29 |
open("/usr/lib64/tls/x86_64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 |
30 |
ENOENT (No such file or directory) |
31 |
open("/usr/lib64/tls/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No |
32 |
such file or directory) |
33 |
open("/usr/lib64/x86_64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT |
34 |
(No such file or directory) |
35 |
open("/usr/lib64/libcourierauth.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No |
36 |
such file or directory) |
37 |
writev(2, [{"imaplogin", 9}, {": ", 2}, {"error while loading shared |
38 |
libra"..., 36}, {": ", 2}, {"libcourierauth.so", 17}, {": ", 2}, {"cannot |
39 |
open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, |
40 |
{"\n", 1}], 10imaplogin: error while loading shared libraries: |
41 |
libcourierauth.so: cannot open shared object file: No such file or directory |
42 |
|
43 |
The libraries in question are actually present, but apparently not where |
44 |
imaplogin expects them to be: |
45 |
|
46 |
basement lib64 # equery files courier-authlib | grep libcourierauth |
47 |
/usr/lib64/courier-authlib/libcourierauth.so |
48 |
/usr/lib64/courier-authlib/libcourierauth.so.0 |
49 |
/usr/lib64/courier-authlib/libcourierauthcommon.so |
50 |
/usr/lib64/courier-authlib/libcourierauthcommon.so.0 |
51 |
/usr/lib64/courier-authlib/libcourierauthsasl.so |
52 |
/usr/lib64/courier-authlib/libcourierauthsasl.so.0 |
53 |
/usr/lib64/courier-authlib/libcourierauthsaslclient.so |
54 |
/usr/lib64/courier-authlib/libcourierauthsaslclient.so.0 |
55 |
|
56 |
I've rebuilt both packages and somehow, imaplogin is *building* fine with |
57 |
the shared library in the "wrong" place, but refuses to load it at run time. |
58 |
I have temporarily fixed the problem by symlinking the two missing libraries |
59 |
into /lib64 but I don't see that as a good long-term solution. I'm really |
60 |
stumped as to what changed to break things all of the sudden, or how to fix |
61 |
it. |
62 |
|
63 |
Is anyone else seeing this problem, or know how to make it go away? |
64 |
|
65 |
--Mike |