Skip Menu |

This queue is for tickets about the Crypt-SMIME CPAN distribution.

Report information
The Basics
Id: 110755
Status: rejected
Priority: 0/
Queue: Crypt-SMIME

People
Owner: mikage [...] ymir.co.jp
Requestors: tlhackque [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.16
Fixed in: (no value)



Subject: Build failure, compile warnings & silent failure.
Tried to update from 0.10 to 0.16 under Perl 5.8.8. Compile fails with a number of errors (and warnings). I know this is an old version of perl, but this application is hard to update. I'm not an XS person, but there only seem to be a couple of new functions referenced...can Crypt::SMIME be made to work on 5.8.8? In any case, a number of the warnings should be fixed. The missing declarations for RAND_*() are fixed if you add: #include <openssl/rand.h> at line 11 of SMIME.xs SMIME.xs:783: warning: suggest parentheses around comparison in operand of & should look like: if ((flags & PKCS7_NOVERIFY) == 0) { The remaining errors are XS-specific & I don't know how to fix them. Also, looking at _addPublicKey(), you fixed a problem when a string has two or more certificates by introducing a loop. However, I think this code will fail silently if a string has no certificates. This should be an error. [you exit the while() and assume success when you encounter PEM_R_NO_START_LINE. But this can be true if the string is null or doesn't contain a certificate.] On Fedora core 6 (linux), perl v5.8.8 built for i386-linux-thread-multi Here is the build log from cpan install: Configuring M/MI/MIKAGE/Crypt-SMIME-0.16.tar.gz with Makefile.PL Checking if your kit is complete... Looks good checking for gettimeofday... yes checking for time... yes checking for libcrypto... 1.0.1j checking for LIBCRYPTO_CFLAGS... -I/usr/local/include checking for LIBCRYPTO_LIBS... -L/usr/local/lib -lcrypto -ldl Generating a Unix-style Makefile Writing Makefile for Crypt::SMIME Writing MYMETA.yml and MYMETA.json MIKAGE/Crypt-SMIME-0.16.tar.gz /usr/bin/perl Makefile.PL -- OK Running make for M/MI/MIKAGE/Crypt-SMIME-0.16.tar.gz cp lib/SMIME/JA.pod blib/lib/Crypt/SMIME/JA.pod cp lib/SMIME.pm blib/lib/Crypt/SMIME.pm Running Mkbootstrap for Crypt::SMIME () chmod 644 SMIME.bs /usr/bin/perl /usr/lib/perl5/site_perl/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap SMIME.xs > SMIME.xsc && mv SMIME.xsc SMIME.c gcc -c -I/usr/local/include -DOPENSSL_LOAD_CONF -DHAVE_GETTIMEOFDAY -DHAVE_SYS_TIME_H -DHAVE_TIME -DHAVE_TIME_H -D_REENTRANT -D_GNU_SOURCE -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 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"0.16\" -DXS_VERSION=\"0.16\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" SMIME.c SMIME.xs: In function âseed_rngâ: SMIME.xs:393: warning: implicit declaration of function âRAND_pollâ SMIME.xs:394: warning: implicit declaration of function âRAND_statusâ SMIME.xs:400: warning: implicit declaration of function âRAND_seedâ In file included from SMIME.xs:415: const-c.inc: In function âget_missing_hashâ: const-c.inc:66: warning: value computed is not used ./const-xs.inc: In function âXS_Crypt__SMIME_AUTOLOADâ: ./const-xs.inc:84: warning: implicit declaration of function ânewSVpvn_flagsâ ./const-xs.inc:84: warning: initialization makes pointer from integer without a cast ./const-xs.inc:105: warning: implicit declaration of function âcroak_svâ SMIME.xs: In function âXS_Crypt__SMIME_setPublicKeyStoreâ: SMIME.xs:626: warning: ISO C90 forbids mixed declarations and code SMIME.xs: In function âXS_Crypt__SMIME_checkâ: SMIME.xs:783: warning: suggest parentheses around comparison in operand of & SMIME.xs: In function âXS_Crypt__SMIME_extractCertificatesâ: SMIME.xs:853: warning: ISO C90 forbids mixed declarations and code SMIME.xs: In function âXS_Crypt__SMIME_getSignersâ: SMIME.xs:941: warning: ISO C90 forbids mixed declarations and code ./const-xs.inc: In function âboot_Crypt__SMIMEâ: ./const-xs.inc:31: warning: implicit declaration of function âhv_common_key_lenâ ./const-xs.inc:34: error: âHV_FETCH_LVALUEâ undeclared (first use in this function) ./const-xs.inc:34: error: (Each undeclared identifier is reported only once ./const-xs.inc:34: error: for each function it appears in.) ./const-xs.inc:67: warning: implicit declaration of function âhv_commonâ ./const-xs.inc:68: error: âHV_FETCH_ISSTOREâ undeclared (first use in this function) make: *** [SMIME.o] Error 1 MIKAGE/Crypt-SMIME-0.16.tar.gz /usr/bin/make -- NOT OK Failed during this command: MIKAGE/Crypt-SMIME-0.16.tar.gz : make NO Thanks!
Thank you for your feedback. However, those compilation errors in const-xs.inc indicate that the version of ExtUtils::Constant you are using is incompatible with Perl 5.8.8 as it's automatically generated by the said module. Consider downgrading it and retry building.