Bug 14686

Summary: Development against imap-devel difficult due to krb5
Product: [Retired] Red Hat Linux Reporter: Kyle VanderBeek <kylev>
Component: imapAssignee: Cristian Gafton <gafton>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-07-26 21:50:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Kyle VanderBeek 2000-07-26 21:50:48 UTC
I've encountered several situations where linking against the c-client.a 
eventually results in missing symbols.

I.e. while trying to build a working php-3.0.16 RPM, it mysteriously died 
when including the imap module.  Leaving it out let things run fine.  When 
I changed the .spec to compile php --with-imap (statically), httpd failed 
to start when failing to find the symbol gss_mech_krb5.

After rebuilding imap and imap-devel from the SRPM wihout Kerberos by 
changing this line in the imap.spec:
  %define gssapi %(echo 0)
installing these new RPMs and rebuilding my php RPM against these new IMAP 
libraries, things work fine.

I'm not sure if this is a problem with krb5-lib (I'm running 1.1.1-21), 
how ld is configured, or how the imap-devel package was compiled.

Comment 1 Nalin Dahyabhai 2000-07-31 21:49:58 UTC
The c-client library included in the imap-devel package is only built as a
static library, and static libraries by their nature cannot be linked against
other libraries in the way that shared libraries can.  In this case, it prevents
the linker from following c-client.a's dependency on the Kerberos 5 libraries. 
Unfortunately this can't be solved without including a shared version of
c-client in the imap package, which is not planned.  The only way around it is
to, as you have, manually add the Kerberos libraries to your linker invocation.