The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Net::SSLeay 1.32 Perl Module Bad Compile - Work around

Discussion in 'General Discussion' started by skelly, Sep 4, 2007.

  1. skelly

    skelly Registered

    Joined:
    Aug 1, 2006
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    I noticed after my upgrade to WHM 11 that a couple of Perl modules were stubbornly refusing to compile/install. One of the problems was the compilation of Net::SSLeay 1.32 failing to compile because of a bad path in the make command.

    Below is the original problem output:

    Code:
      CPAN.pm: Going to build F/FL/FLORA/Net-SSLeay-1.32.tar.gz
    
    Cannot determine perl version info from lib/Net/SSLeay.pm
    Cannot determine license info from lib/Net/SSLeay.pm
    *** Found OpenSSL-0.9.7a installed in /usr/local/ssl
    *** Be sure to use the same compiler and options to compile your OpenSSL, perl,
        and Net::SSLeay. Mixing and matching compilers is not supported.
    *** Enabling gcc -fPIC optimization
    Do you want to run external tests?
    These tests *will* *fail* if you do not have network connectivity. [y] 
    *** Module::AutoInstall version 1.03
    *** Checking for Perl dependencies...
    [Core Features]
    - Sub::Uplevel    ...loaded. (0.16)
    - Test::Exception ...loaded. (0.25)
    - Array::Compare  ...loaded. (1.14)
    - Tree::DAG_Node  ...loaded. (1.05)
    - Test::Warn      ...loaded. (0.10)
    - MIME::Base64    ...loaded. (3.07)
    *** Module::AutoInstall configuration finished.
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Net::SSLeay
    CPAN: YAML loaded ok (v0.65)
    cp lib/Net/SSLeay.pm blib/lib/Net/SSLeay.pm
    AutoSplitting blib/lib/Net/SSLeay.pm (blib/lib/auto/Net/SSLeay)
    blib/lib/Net/SSLeay.pm: some names are not unique when truncated to 8 characters:
     directory blib/lib/auto/Net/SSLeay:
      do_https3.al, do_https2.al, do_https4.al, do_https.al truncate to do_https
      do_httpx3.al, do_httpx2.al, do_httpx4.al truncate to do_httpx
      get_https.al, get_https3.al, get_https4.al, get_http.al, get_http3.al, get_http4.al, get_httpx.al, get_httpx3.al, get_httpx4.al truncate to get_http
      head_https.al, head_https3.al, head_https4.al, head_http.al, head_http3.al, head_http4.al, head_httpx.al, head_httpx3.al, head_httpx4.al truncate to head_htt
      post_https.al, post_https3.al, post_https4.al, post_http.al, post_http3.al, post_http4.al, post_httpx.al, post_httpx3.al, post_httpx4.al truncate to post_htt
      put_https.al, put_https3.al, put_https4.al, put_http.al, put_http3.al, put_http4.al, put_httpx.al, put_httpx3.al, put_httpx4.al truncate to put_http
      ssl_read_all.al, ssl_read_until.al, ssl_read_CRLF.al truncate to ssl_read
      ssl_write_all.al, ssl_write_CRLF.al truncate to ssl_writ
      tcp_read_all.al, tcp_read_until.al, tcp_read_CRLF.al truncate to tcp_read
      tcp_write_all.al, tcp_write_CRLF.al truncate to tcp_writ
    cp lib/Net/SSLeay/Handle.pm blib/lib/Net/SSLeay/Handle.pm
    /usr/bin/perl "-Iinc" /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap  SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSLeay.c
    cc -c  -I/usr/local/ssl/include -I/usr/local/ssl/inc32 -Iusr/kerberos/include -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib/perl5/5.8.8/i686-linux/CORE"   SSLeay.c
    In file included from /usr/include/openssl/ssl.h:179,
                     from SSLeay.xs:96:
    /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
    In file included from /usr/include/openssl/ssl.h:179,
                     from SSLeay.xs:96:
    /usr/include/openssl/kssl.h:134: syntax error before "krb5_enctype"
    /usr/include/openssl/kssl.h:136: syntax error before '*' token
    /usr/include/openssl/kssl.h:137: syntax error before '}' token
    /usr/include/openssl/kssl.h:149: syntax error before "kssl_ctx_setstring"
    /usr/include/openssl/kssl.h:149: syntax error before '*' token
    
    Notice the -Iusr/kerberos/include flag on the compile line? It's missing a slash (should be -I/usr/kerberos/include).

    I worked around this by temporarily creating symlinks to the kerberos includes from an include directory that was being correctly specified. I used "/usr/local/include" thusly:

    Code:
    root@host [/]# cd /usr/local/include/
    root@host [/usr/local/include]# ll
    total 7
    drwxr-xr-x    6 root     root         1024 Apr  4 15:00 ./
    drwxr-xr-x   22 root     root         1024 Apr  4 14:57 ../
    drwxr-xr-x    2 root     root         1024 Apr  4 17:35 neon/
    drwxr-xr-x    8 root     root         1024 Aug 27 18:45 php/
    drwxr-xr-x    2 root     root         2048 Jul  5  2006 python2.4/
    drwxr-xr-x    2 root     root         1024 Apr  4 17:35 subversion-1/
    root@host [/usr/local/include]# ln -s /usr/kerberos/include/* .
    root@host [/usr/local/include]# ll
    total 16
    drwxr-xr-x    6 root     root         1024 Sep  4 15:01 ./
    drwxr-xr-x   22 root     root         1024 Apr  4 14:57 ../
    lrwxrwxrwx    1 root     root           27 Sep  4 15:01 asn.1 -> /usr/kerberos/include/asn.1/
    lrwxrwxrwx    1 root     root           31 Sep  4 15:01 com_err.h -> /usr/kerberos/include/com_err.h
    lrwxrwxrwx    1 root     root           28 Sep  4 15:01 gssapi -> /usr/kerberos/include/gssapi/
    lrwxrwxrwx    1 root     root           32 Sep  4 15:01 kerberosIV -> /usr/kerberos/include/kerberosIV/
    lrwxrwxrwx    1 root     root           28 Sep  4 15:01 krb5.h -> /usr/kerberos/include/krb5.h
    lrwxrwxrwx    1 root     root           30 Sep  4 15:01 libpty.h -> /usr/kerberos/include/libpty.h
    lrwxrwxrwx    1 root     root           42 Sep  4 15:01 mit-sipb-copyright.h -> /usr/kerberos/include/mit-sipb-copyright.h
    drwxr-xr-x    2 root     root         1024 Apr  4 17:35 neon/
    drwxr-xr-x    8 root     root         1024 Aug 27 18:45 php/
    lrwxrwxrwx    1 root     root           36 Sep  4 15:01 port-sockets.h -> /usr/kerberos/include/port-sockets.h
    lrwxrwxrwx    1 root     root           31 Sep  4 15:01 profile.h -> /usr/kerberos/include/profile.h
    drwxr-xr-x    2 root     root         2048 Jul  5  2006 python2.4/
    drwxr-xr-x    2 root     root         1024 Apr  4 17:35 subversion-1/
    
    And then re performed "/usr/local/cpanel/bin/checkperlmodules" which then succeeded.

    I then removed the temporary symlinks.

    Maybe someone who knows more about how these updates work can fathom how to fix the distro package.

    Hope that helps someone else - I could find no specific thread to post too.
     
  2. cPanelNick

    cPanelNick Administrator
    Staff Member

    Joined:
    Mar 9, 2015
    Messages:
    3,426
    Likes Received:
    2
    Trophy Points:
    38
    cPanel Access Level:
    DataCenter Provider
    Found the root of the problem, and reported it to the module maintainer.

    http://rt.cpan.org/Public/Bug/Display.html?id=29149



    In the mean time, we added a holdback to 1.30 which doesn't have the problem.

    To install 1.30
    Code:
    rm /home/.cpcpan/modules.version /home/.cpcpan/modules.versions
    /scripts/perlinstaller --force Net::SSLeay
     
Loading...

Share This Page