Skip Menu |

This queue is for tickets about the Net-SSLeay CPAN distribution.

Report information
The Basics
Id: 76267
Status: resolved
Worked: 10 min
Priority: 0/
Queue: Net-SSLeay

People
Owner: MIKEM [...] cpan.org
Requestors: paul [...] city-fan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 1.46
  • 1.47
Fixed in: (no value)



Subject: Build fails with Perl < 5.8.8
gcc -c -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.46\" -DXS_VERSION=\"1.46\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" SSLeay.c SSLeay.xs: In function `pem_password_cb_invoke': SSLeay.xs:912: error: `n_a' undeclared (first use in this function) SSLeay.xs:912: error: (Each undeclared identifier is reported only once SSLeay.xs:912: error: for each function it appears in.) make: *** [SSLeay.o] Error 1 This is because, prior to Perl 5.8.8, the POPpx macro required an STRLEN variable n_a in scope. See: http://www.nntp.perl.org/group/perl.perl5.porters/2006/03/msg110764.html and the follow-up message from Nicholas Clark. Attached POPpx patch fixes this. Whilst trying to figure out this issue, I tried running ppport.h and it suggested a further change (see attached newRV_noinc patch), though I think that would only affect unfortunate souls trying to build with Perls older than 5.4.
Subject: Net-SSLeay-1.46-newRV_noinc.patch
--- SSLeay.xs +++ SSLeay.xs @@ -131,6 +131,7 @@ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" +#define NEED_newRV_noinc #define NEED_sv_2pv_flags #include "ppport.h" #ifdef __cplusplus
Subject: Net-SSLeay-1.46-POPpx.patch
POPpx requires a variable STRLEN n_a in scope prior to Perl 5.8.8 http://www.nntp.perl.org/group/perl.perl5.porters/2006/03/msg110764.html --- SSLeay.xs +++ SSLeay.xs @@ -886,6 +886,7 @@ char *str; int count = -1, str_len = 0; simple_cb_data_t* cb = (simple_cb_data_t*)data; + STRLEN n_a; PR1("STARTED: pem_password_cb_invoke\n"); if (cb->func && SvOK(cb->func)) {
Subject: Re: [rt.cpan.org #76267] Build fails with Perl < 5.8.8
Date: Wed, 04 Apr 2012 10:50:27 +1000
To: bug-Net-SSLeay [...] rt.cpan.org
From: Mike McCauley <mikem [...] open.com.au>
Hi Thanks for that. These patches exposed another problem with snprintf not being avaialble on MSVC and also not in early perls, so changes have been made to use the ppport.h my_snprintf() instead. Your patches are in commit 336 Expect a new release very soon. On Tuesday, April 03, 2012 06:44:45 AM you wrote: Show quoted text
> Tue Apr 03 06:44:44 2012: Request 76267 was acted upon. > Transaction: Ticket created by paul@city-fan.org > Queue: Net-SSLeay > Subject: Build fails with Perl < 5.8.8 > Broken in: 1.46 > Severity: (no value) > Owner: Nobody > Requestors: paul@city-fan.org > Status: new > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=76267 > > > > gcc -c -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS > -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g > -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.46\" > -DXS_VERSION=\"1.46\" -fPIC > "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" SSLeay.c > SSLeay.xs: In function `pem_password_cb_invoke': > SSLeay.xs:912: error: `n_a' undeclared (first use in this function) > SSLeay.xs:912: error: (Each undeclared identifier is reported only once > SSLeay.xs:912: error: for each function it appears in.) > make: *** [SSLeay.o] Error 1 > > This is because, prior to Perl 5.8.8, the POPpx macro required an STRLEN > variable n_a in scope. See: > http://www.nntp.perl.org/group/perl.perl5.porters/2006/03/msg110764.html > and the follow-up message from Nicholas Clark. Attached POPpx patch > fixes this. > > Whilst trying to figure out this issue, I tried running ppport.h and it > suggested a further change (see attached newRV_noinc patch), though I > think that would only affect unfortunate souls trying to build with > Perls older than 5.4.
-- Mike McCauley mikem@open.com.au Open System Consultants Pty. Ltd 9 Bulbul Place Currumbin Waters QLD 4223 Australia http://www.open.com.au Phone +61 7 5598-7474 Fax +61 7 5598-7070 Radiator: the most portable, flexible and configurable RADIUS server anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP, DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, NetWare etc.
The same problem exists in next_proto_select_cb_invoke(). I am attaching a patch to Net::SSLeay 1.47 which fixes this additional use of the POPpx macro. Deven On Tue Apr 03 06:44:44 2012, paul@city-fan.org wrote: Show quoted text
> gcc -c -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS > -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g > -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.46\" > -DXS_VERSION=\"1.46\" -fPIC > "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" SSLeay.c > SSLeay.xs: In function `pem_password_cb_invoke': > SSLeay.xs:912: error: `n_a' undeclared (first use in this function) > SSLeay.xs:912: error: (Each undeclared identifier is reported only
once Show quoted text
> SSLeay.xs:912: error: for each function it appears in.) > make: *** [SSLeay.o] Error 1 > > This is because, prior to Perl 5.8.8, the POPpx macro required an
STRLEN Show quoted text
> variable n_a in scope. See: >
http://www.nntp.perl.org/group/perl.perl5.porters/2006/03/msg110764.html Show quoted text
> and the follow-up message from Nicholas Clark. Attached POPpx patch > fixes this. > > Whilst trying to figure out this issue, I tried running ppport.h and
it Show quoted text
> suggested a further change (see attached newRV_noinc patch), though I > think that would only affect unfortunate souls trying to build with > Perls older than 5.4.
Subject: Net-SSLeay-1.47-POPpx.patch
--- SSLeay.xs.orig 2012-04-17 12:00:37.000000000 -0400 +++ SSLeay.xs 2012-04-17 11:55:26.000000000 -0400 @@ -766,6 +766,7 @@ unsigned char next_proto_len; int next_proto_status; SSL_CTX *ctx = SSL_get_SSL_CTX(ssl); + STRLEN n_a; PR1("STARTED: next_proto_select_cb_invoke\n"); cb_func = cb_data_advanced_get(ctx, "next_proto_select_cb!!func");
Subject: Re: [rt.cpan.org #76267] Build fails with Perl < 5.8.8
Date: Wed, 18 Apr 2012 06:34:45 +1000
To: bug-Net-SSLeay [...] rt.cpan.org
From: Mike McCauley <mikem [...] open.com.au>
Hello, Thanks. This fix is already in SVN and will appear in the next release of net-ssleay. Cheers. On Tuesday, April 17, 2012 12:15:03 PM you wrote: Show quoted text
> Queue: Net-SSLeay > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=76267 > > > The same problem exists in next_proto_select_cb_invoke(). I am > attaching a patch to Net::SSLeay 1.47 which fixes this additional use of > the POPpx macro. > > Deven > > On Tue Apr 03 06:44:44 2012, paul@city-fan.org wrote:
> > gcc -c -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS > > -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include > > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g > > -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"1.46\" > > -DXS_VERSION=\"1.46\" -fPIC > > "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" SSLeay.c > > SSLeay.xs: In function `pem_password_cb_invoke': > > SSLeay.xs:912: error: `n_a' undeclared (first use in this function) > > SSLeay.xs:912: error: (Each undeclared identifier is reported only
> > once >
> > SSLeay.xs:912: error: for each function it appears in.) > > make: *** [SSLeay.o] Error 1 > > > > This is because, prior to Perl 5.8.8, the POPpx macro required an
> > STRLEN >
> > variable n_a in scope. See:
> http://www.nntp.perl.org/group/perl.perl5.porters/2006/03/msg110764.html >
> > and the follow-up message from Nicholas Clark. Attached POPpx patch > > fixes this. > > > > Whilst trying to figure out this issue, I tried running ppport.h and
> > it >
> > suggested a further change (see attached newRV_noinc patch), though I > > think that would only affect unfortunate souls trying to build with > > Perls older than 5.4.
-- Mike McCauley mikem@open.com.au Open System Consultants Pty. Ltd 9 Bulbul Place Currumbin Waters QLD 4223 Australia http://www.open.com.au Phone +61 7 5598-7474 Fax +61 7 5598-7070 Radiator: the most portable, flexible and configurable RADIUS server anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP, DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, NetWare etc.