PHP 5.4 compilation error: build with IMAP works... no

Written by - 0 comments

Published on - Listed in Linux PHP


Yesterday I tried to compile the newest PHP 5.4.14 on an opensuse 12.2 system but got stuck when configure was at the IMAP check.

checking for IMAP support... yes
checking for IMAP Kerberos support... no
checking for IMAP SSL support... yes
checking for utf8_mime2text signature... new
checking for U8T_DECOMPOSE...
checking for pam_start in -lpam... no
checking for crypt in -lcrypt... yes
checking whether rfc822_output_address_list function present... no
checking whether build with IMAP works... no
configure: error: build test failed. Please check the config.log for details.

At the begin I thought, that's easy to solve, as I already had this error before. The IMAP development files have a funny name called libc-client, at least that's what it was in the past. See my post "PHP compilation fails on IMAP U8T_DECOMPOSE: The Debian solution" for more information. But the imap dev files (they're now called imap-devel on opensuse) are already installed:

rpm -qa | grep imap-dev
imap-devel-2007e_suse-12.1.2.x86_64
# rpm -qa| grep libc-client
libc-client2007e_suse-2007e_suse-12.1.2.x86_64

ll /usr/lib64/ | grep libc-client
lrwxrwxrwx  1 root root       13 May  3 18:58 c-client.a -> libc-client.a
-rw-r--r--  1 root root  4887050 Jul 16  2012 libc-client.a
lrwxrwxrwx  1 root root       25 May  3 18:58 libc-client.so -> libc-client.so.2007e_suse
-rwxr-xr-x  1 root root  1108008 Jul 16  2012 libc-client.so.2007e_suse

So I took a look at the config.log, at the relevant information:

| #define HAVE_IMAP2000 1
| #define HAVE_IMAP2004 1
| /* end confdefs.h.  */
|
| #include
| #include
|
| int
| main ()
| {
|
|         SIZEDTEXT *src, *dst;
|         utf8_mime2text(src, dst);
|
|   ;
|   return 0;
| }
configure:65718: result: new
configure:65731: checking for U8T_DECOMPOSE
configure:65761: cc -c -I/usr/include/imap  conftest.c >&5
configure:65768: $? = 0
configure:65788: result:
configure:65927: checking for pam_start in -lpam
configure:65962: cc -o conftest -I/usr/include -g -O2 -fvisibility=hidden  -L/usr/lib64  conftest.c -lpam  -lfreetype -lpng -lz -ljpeg -lcurl -lbz2 -lz -lrt -lm -ldl -lnsl  -lxml2 -lz -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lssl -lcrypto >&5
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lpam
collect2: error: ld returned 1 exit status
configure:65969: $? = 1
configure: failed program was:

This means that the IMAP check was actually successful, at the c-client header files were successfully included. But another message is very important in that output: "cannot find -lpam".
That's interesting... the information in the ./configure output is actually very misleading and makes one think there's a problem with the imap/libc-client devel files, but it actually seems to be a missing pam devel!

Install pam-devel and try again to configure:

zypper in pam-devel

[...]
checking for iconv support... yes
checking for iconv... yes
checking if iconv is glibc's... yes
checking if iconv supports errno... yes
checking if your cpp allows macro usage in include lines... yes
checking for IMAP support... yes
checking for IMAP Kerberos support... no
checking for IMAP SSL support... yes
checking for utf8_mime2text signature... new
checking for U8T_DECOMPOSE...
checking for pam_start in -lpam... yes
checking for crypt in -lcrypt... yes
checking whether rfc822_output_address_list function present... yes
checking whether build with IMAP works... yes
checking for InterBase support... no
checking whether to enable internationalization support... yes
[...]

Finally it ran through! From the beginning it actually required the pam-devel that the build with imap would work.

Side note: I also tried to compile imap from source (ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz)  to see if there was a problem in the opensuse devel files and the compilation failed with the following error:

`cat CCTYPE` -c `cat CFLAGS` `cat OSCFLAGS` -c osdep.c
osdep.c:89:31: fatal error: security/pam_appl.h: No such file or directory
compilation terminated.

That was another hint, that pam-devel was missing.


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.