Skip Menu |

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

Report information
The Basics
Id: 63553
Status: resolved
Priority: 0/
Queue: Crypt-SSLeay

People
Owner: nanis [...] runu.moc.invalid
Requestors: zinser [...] zinser.no-ip.info
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 0.58
Fixed in: (no value)



Subject: [PATCH] Allow non-hp OpenSSL to be used on OpenVMS
Hello, this is with Perl 5.12.2, Crypt::SSLeay 0.58 on OpenVMS 8.3-1H1 Itanium. The current setup of Crypt::SSLeay only supports building against the hp supplied version of OpenSSL (which is based on 0.9.7e), since it hardcodes the libraries in sys$share to be used for the link. If one installs a current version of OpenSSL (e.g. 1.0.0b) in a separate place, one can already specify this to Makefile.PL by using the --lib switch (e.g. --lib=/sslroot), unfortunatly the script still will force the link against the old hp libraries since it hardcodes sys$share and the hp names of the libraries. The proposed patch changes Makefile.PL so that if --lib is given (i.e. do not use the hp libs) it will link againt libraries in ssllib, which is the place the OpenSSL installation procedure puts them. The code change is restricted to a VMS specific section of the script and if no special flags are passed produces exactly the same result as before. I'd be grateful if you would consider this for inclusion in the next revision. Greetings, Martin *** Makefile.PL.orig 2010-12-02 14:42:40.710376502 -0600 --- Makefile.PL 2010-12-02 14:44:05.495310543 -0600 *************** *** 452,458 **** sub vms_lib_flags { my $pkg_config = shift; ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32 -lSSL$LIBCRYPTO_SHR32); } sub win32_lib_flags { --- 452,463 ---- sub vms_lib_flags { my $pkg_config = shift; ! if (defined $OPT_LIBPATH){ ! return qw(SSLLIB:LIBSSL.OLB SSLLIB:LIBCRYPTO.OLB); ! } ! else{ ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32 -lSSL$LIBCRYPTO_SHR32); ! } } sub win32_lib_flags {
Hello: I am being pretty slow to dealing with Crypt-SSLeay right now, but I really appreciate the input. FWIW, note that I am trying to make Makefile.PL clearer and more correct, and this is one of the things I would have overlooked given that the last time I did anything on VMS was about two decades ago. Thank you very much. -- Sinan On Thu Dec 02 16:57:03 2010, drmpjz wrote: Show quoted text
> Hello, > > this is with Perl 5.12.2, Crypt::SSLeay 0.58 on OpenVMS 8.3-1H1 Itanium. > > The current setup of Crypt::SSLeay only supports building against the hp > supplied version of OpenSSL (which is based on 0.9.7e), since it > hardcodes the libraries in sys$share to be used for the link. > > If one installs a current version of OpenSSL (e.g. 1.0.0b) in a separate > place, one can already specify this to Makefile.PL by using the --lib > switch (e.g. --lib=/sslroot), unfortunatly the script still will force > the link against the old hp libraries since it hardcodes sys$share and > the hp names of the libraries. > > The proposed patch changes Makefile.PL so that if --lib is given (i.e. > do not use the hp libs) it will link againt libraries in ssllib, which > is the place the OpenSSL installation procedure puts them. > > The code change is restricted to a VMS specific section of the script > and if no special flags are passed produces exactly the same result as > before. > > I'd be grateful if you would consider this for inclusion in the next > revision. > > Greetings, > > Martin > > *** Makefile.PL.orig 2010-12-02 14:42:40.710376502 -0600 > --- Makefile.PL 2010-12-02 14:44:05.495310543 -0600 > *************** > *** 452,458 **** > > sub vms_lib_flags { > my $pkg_config = shift; > ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32 -lSSL$LIBCRYPTO_SHR32); > } > > sub win32_lib_flags { > --- 452,463 ---- > > sub vms_lib_flags { > my $pkg_config = shift; > ! if (defined $OPT_LIBPATH){ > ! return qw(SSLLIB:LIBSSL.OLB SSLLIB:LIBCRYPTO.OLB); > ! } > ! else{ > ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32
-lSSL$LIBCRYPTO_SHR32); Show quoted text
> ! } > } > > sub win32_lib_flags {
From: zinser [...] zinser.no-ip.info
Hello Sinan, thanks a lot for your friendly feedback. The work you put into supporting Crypt-SSLeay is very much appreciated. This is not an urgent request, but really an enhancement. If you put it in the next version when you have time to work on it, this is perfectly fine. And in the meantime the patch is documented here, in case somebody is looking ;-) Have a great new year! Martin On Fri Dec 10 13:51:17 2010, NANIS wrote: Show quoted text
> Hello: > > I am being pretty slow to dealing with Crypt-SSLeay right now, but I > really appreciate the input. > > FWIW, note that I am trying to make Makefile.PL clearer and more > correct, and this is one of the things I would have overlooked given > that the last time I did anything on VMS was about two decades ago. > > Thank you very much. > > -- Sinan >
Hello Martin: Makefile.PL no longer tries to guess the correct locations of header files and libraries. I do not know how things work on VMS (and, indeed I would appreciate some further information on this so I can add it to the docs), but if those headers and libraries are in places where your build tools don't look by default, you'll need to arrange for your build tools to look in those locations. For example, using GCC on Linux, one would add the header file locations to the environment variable CPATH and library locations to the LIBRARY_PATH. The last time I was on a VMS system was in 1988, and I really don't remember how things work, but I have a feeling there must be a similar way to cajole build tools to look in non-standard places for headers and libraries. So, please try out 0.64, and let me know if it works for you. Thank you for your feedback and patience, -- Sinan On Thu Dec 02 16:57:03 2010, drmpjz wrote: Show quoted text
> Hello, > > this is with Perl 5.12.2, Crypt::SSLeay 0.58 on OpenVMS 8.3-1H1 Itanium. > > The current setup of Crypt::SSLeay only supports building against the hp > supplied version of OpenSSL (which is based on 0.9.7e), since it > hardcodes the libraries in sys$share to be used for the link. > > If one installs a current version of OpenSSL (e.g. 1.0.0b) in a separate > place, one can already specify this to Makefile.PL by using the --lib > switch (e.g. --lib=/sslroot), unfortunatly the script still will force > the link against the old hp libraries since it hardcodes sys$share and > the hp names of the libraries. > > The proposed patch changes Makefile.PL so that if --lib is given (i.e. > do not use the hp libs) it will link againt libraries in ssllib, which > is the place the OpenSSL installation procedure puts them. > > The code change is restricted to a VMS specific section of the script > and if no special flags are passed produces exactly the same result as > before. > > I'd be grateful if you would consider this for inclusion in the next > revision. > > Greetings, > > Martin > > *** Makefile.PL.orig 2010-12-02 14:42:40.710376502 -0600 > --- Makefile.PL 2010-12-02 14:44:05.495310543 -0600 > *************** > *** 452,458 **** > > sub vms_lib_flags { > my $pkg_config = shift; > ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32 -lSSL$LIBCRYPTO_SHR32); > } > > sub win32_lib_flags { > --- 452,463 ---- > > sub vms_lib_flags { > my $pkg_config = shift; > ! if (defined $OPT_LIBPATH){ > ! return qw(SSLLIB:LIBSSL.OLB SSLLIB:LIBCRYPTO.OLB); > ! } > ! else{ > ! return qw(-L/SYS$SHARE -lSSL$LIBSSL_SHR32
-lSSL$LIBCRYPTO_SHR32); Show quoted text
> ! } > } > > sub win32_lib_flags {