Subject: | SA.xs:5:25: openssl/bio.h: No such file or directory |
Crypt::OpenSSL::RSA version <= 0.25 on Solaris 9:
perl Makefile.PL INC=-I/opt/supervision/ssl/include
Note (probably harmless): No library found for -lssl
Note (probably harmless): No library found for -lcrypto
Writing Makefile for Crypt::OpenSSL::RSA
Writing Makefile for Crypt::OpenSSL::RSA
bash-3.1$ perl Makefile.PL INSTALL_BASE=/opt/supervision/cpan-shared/
INC=-I/opt/asnmtap/ssl/include LIBS=-L/opt/asnmtap/ssl/lib
LDFLAGS='-lssl -lcrypto'
Writing Makefile for Crypt::OpenSSL::RSA
bash-3.1$ perl Makefile.PL INSTALL_BASE=/opt/asnmtap/cpan-shared/
Note (probably harmless): No library found for -lssl
Note (probably harmless): No library found for -lcrypto
Writing Makefile for Crypt::OpenSSL::RSA
bash-3.1$ make
gcc -c -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"0.25\"
-DXS_VERSION=\"0.25\" -fPIC
"-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE" -DPERL5
-DOPENSSL_NO_KRB5 RSA.c
RSA.xs:5:25: openssl/bio.h: No such file or directory
RSA.xs:6:24: openssl/bn.h: No such file or directory
RSA.xs:7:25: openssl/err.h: No such file or directory
RSA.xs:8:25: openssl/md5.h: No such file or directory
RSA.xs:9:29: openssl/objects.h: No such file or directory
RSA.xs:10:25: openssl/pem.h: No such file or directory
RSA.xs:11:26: openssl/rand.h: No such file or directory
RSA.xs:12:28: openssl/ripemd.h: No such file or directory
RSA.xs:13:25: openssl/rsa.h: No such file or directory
RSA.xs:14:25: openssl/sha.h: No such file or directory
RSA.xs:15:25: openssl/ssl.h: No such file or directory
RSA.xs:19: error: syntax error before "RSA"
RSA.xs:19: warning: no semicolon at end of struct or union
RSA.xs:22: error: syntax error before '}' token
...
Workarround:
------------
Change Makefile.PL:
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
my $KERBEROS_INCLUDE = "/usr/kerberos/include";
my $include = -d $KERBEROS_INCLUDE ? "-I${KERBEROS_INCLUDE}" : "";
WriteMakefile(
'NAME' => 'Crypt::OpenSSL::RSA',
'DISTNAME' => 'Crypt-OpenSSL-RSA',
'VERSION_FROM' => 'RSA.pm', # finds $VERSION
'OBJECT' => 'RSA.o',
'LIBS' => ['-lssl -lcrypto'], # e.g., '-lm'
'PREREQ_PM' => { 'Crypt::OpenSSL::Random' => 0 },
'DEFINE' => '-DPERL5 -DOPENSSL_NO_KRB5',
# perl-5.8/gcc-3.2 needs -DPERL5, and redhat9 likes -DOPENSSL_NO_KRB5
'INC' => $include, # e.g., '-I/usr/include/other'
);
with:
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
my $KERBEROS_INCLUDE = "/usr/kerberos/include";
my $include = -d $KERBEROS_INCLUDE ? "-I${KERBEROS_INCLUDE}" : "";
WriteMakefile(
'NAME' => 'Crypt::OpenSSL::RSA',
'DISTNAME' => 'Crypt-OpenSSL-RSA',
'VERSION_FROM' => 'RSA.pm', # finds $VERSION
'OBJECT' => 'RSA.o',
'LIBS' => ['-L/opt/supervision/ssl/lib
-lssl','-L/opt/supervision/ssl/lib -lcrypto'], # e.g., '-lm'
'PREREQ_PM' => { 'Crypt::OpenSSL::Random' => 0 },
'DEFINE' => '-DPERL5 -DOPENSSL_NO_KRB5',
# perl-5.8/gcc-3.2 needs -DPERL5, and redhat9 likes -DOPENSSL_NO_KRB5
'INC' => $include, # e.g., '-I/usr/include/other'
);
perl Makefile.PL INC=-I/opt/supervision/ssl/include
Checking if your kit is complete...
Looks good
Writing Makefile for Crypt::OpenSSL::RSA
make
cp RSA.pm blib/lib/Crypt/OpenSSL/RSA.pm
AutoSplitting blib/lib/Crypt/OpenSSL/RSA.pm
(blib/lib/auto/Crypt/OpenSSL/RSA)
/usr/local/bin/perl
/opt/supervision/cpan-shared/lib/perl5/ExtUtils/xsubpp -typemap
/usr/local/lib/perl5/5.8.7/ExtUtils/typemap -typemap typemap RSA.xs >
RSA.xsc && mv RSA.xsc RSA.c
gcc -c -I/opt/supervision/ssl/include -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O
-DVERSION=\"0.25\" -DXS_VERSION=\"0.25\" -fPIC
"-I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE" -DPERL5
-DOPENSSL_NO_KRB5 RSA.c
Running Mkbootstrap for Crypt::OpenSSL::RSA ()
chmod 644 RSA.bs
rm -f blib/arch/auto/Crypt/OpenSSL/RSA/RSA.so
LD_RUN_PATH="/opt/supervision/ssl/lib" gcc -G -L/usr/local/lib RSA.o
-o blib/arch/auto/Crypt/OpenSSL/RSA/RSA.so \
-L/opt/supervision/ssl/lib -lssl \
chmod 755 blib/arch/auto/Crypt/OpenSSL/RSA/RSA.so
cp RSA.bs blib/arch/auto/Crypt/OpenSSL/RSA/RSA.bs
chmod 644 blib/arch/auto/Crypt/OpenSSL/RSA/RSA.bs
Manifying blib/man3/Crypt::OpenSSL::RSA.3
Wanted:
-------
FIX for solaris 9 :)