Menu

#29 Fix for md5.h "Present But Cannot Be Compiled"

open
nobody
None
5
2006-04-03
2006-04-03
Anonymous
No

I'm running CentOS4 (similar to FC4/RHEL4) and ran into
the same problem.

I fixed it by uninstalling several packages that I
didn't need. I wasn't scientific about the whole thing
so I'm not sure which of these packages are the
offender(s).

I removed (rpm -e {package-name})

cyrus-sals-sql cyrus-sasl-ntlm cyrus-sasl-gssapi

Then I also removed cyrus-sasl-devel which also
required me removing openldap-devel.

Then it compiled fine.

w00t. AAC

Discussion

  • James Linden

    James Linden - 2006-04-11

    Logged In: YES
    user_id=77309

    The specific package is cyrus-sasl-devel.

    NOTE: Removing this package disables MD5 usage in pam_mysql
    completely.

    So, the question is... what md5.h is pam_mysql _expecting_
    to find???

     
  • Abel Cheung

    Abel Cheung - 2006-07-27

    Logged In: YES
    user_id=207218

    AFAIK it checks for these in the following order:

    1. md5.h in openssl. And note that if --with-openssl option
    is specified, then sasl is IGNORED.
    2. md5.h in sasl, if openssl is not enabled
    3. md5.h from system include headers

    There are 2 places broken when attempting to use sasl v2:
    1. It would still try to use sasl v1 header since it is
    placed in /usr/include
    2. Since md5.h is available, HAVE_MD5_H will be defined,
    thus pam_mysql.c would include these 3 headers in following
    order:

    #include <md5.h>
    #include <md5global.h>
    #include <md5.h>

    That would cause compile to fail because md5.h is included
    BEFORE md5global.h. (md5.h used some typedef which is only
    available in md5global.h)

     
  • Nobody/Anonymous

    Logged In: NO

    I see no any reason for this packages to be offenders.
    It even says "present but cannot be compiled" if I *don't* have these packages...

     

Log in to post a comment.