Skip Menu |

This queue is for tickets about the Perl-Dist-Strawberry CPAN distribution.

Report information
The Basics
Id: 48447
Status: resolved
Priority: 0/
Queue: Perl-Dist-Strawberry

People
Owner: Nobody in particular
Requestors: kmx [...] cpan.org
Cc:
AdminCc:

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



Subject: Postgres and OpenSSL support
Hi, I am sending the first "draft" of postgres and openssl libs for further testing with strawberry perl. openssl libs (0.9.8k) - build with mingw (from latest strawberry 5.10.0) - libcrypto.a + libssl.a are static libraries (no DLL erequired) - libeay32.a + libssl32.a are libraries using DLL - I create a duplicity: libssl32.a -> libssleay32.a (as e.g. Crypt::SSLeay and postgres's ./configure expects different name) postgress libs (8.4.0) - build with msys + mingw + openssl above - ./configure --with-openssl --with-ldap - no gssapi, no kerberos support - I had to use additional zlib (1.2.3 from gnuwin32) as strawberry's standard zlib cannot be linked via -lz To test: *) Extract the enclose ZIPs into c:\strawberry\ *) to install Pg::DBD cpan DBD::Pg *) to install Net::SSLeay set OPENSSL_PREFIX=c:\strawberry\c cpan Net::SSLeay *) to install Crypt::SSLeay cpan Crypt::SSLeay + answer that your openssl lives in c:/strawberry/c As mentioned at the beginning its just the first proposal that needs more testing. -- kmx
Subject: libopenssl-0.9.8k-bin_20090805.zip

Message body not shown because it is not plain text.

Subject: libpostgresql-8.4.0-bin_20090805.zip

Message body not shown because it is not plain text.

A suggestion to zlib (-lz) issue: What about to rename (or duplicate): c:\strawberry\c\lib\zlib1.a to c:\strawberry\c\lib\libz.a ? That will make linking with pure -lz option possible (the resulting binary will be using c:\strawberry\c\bin\zlib1.dll). But maybe I am just not aware on something that was a reason for naming .a file zlib1.a. -- kmx
Subject: Ext-lib: Postgres and OpenSSL support
A suggestion for handling "PATH issue": We'd better use alternative DLL names like this - libpq_.dll - libeay32_.dll - libssl32_.dll This could prevent a lot of troubles. It might be generally a good idea not to use a standard names for custom DLL builds. I you will agree with that I can rebuild both libs enclosed to this RT. -- kmx
Hi, after some effort I have managed to build a LIBPQ.DLL + gssapi/kerberos support with mingw - without dependency on MSVCR80.DLL. I have used MIT Kerberos for Windows 3.2.2 - http://web.mit.edu/kerberos/dist/#kfw-3.2 - I used the original DLL from kfw-3-2-2.zip - Then I generated corresponding *.a files - like this: pexports gssapi32.dll >gssapi32.def dlltool -D gssapi32.dll -d gssapi32.def -l libgssapi32.a - I used headers (*.h) from kfw-3-2-2-sdk.zip (a little bit tweaking was necessary) With Kerberos/GSSAPI libraries i have rebuilt the LIBPQ.DLL: - the options used: ./configure --with-gssapi --with-krb5 --with-openssl --with-ldap - The result you can find in the enclosed libpostgresql-8.4.0-bin_20090811.zip To install DBD::Pg - unzip the following ZIPs into c:\strawberry\ libopenssl-0.9.8k-bin_20090805.zip libpostgresql-8.4.0-bin_20090811.zip - run: cpan DBD::Pg - I have tested it (incl. SSL, GSSAPI) but just on one my Postgres DB. GSSAPI/Kerberos support brought new DLL dependencies of LIBPQ.DLL: - krb5_32.dll - k5sprt32.dll - gssapi32.dll - comerr32.dll - msvcr71.dll The first 4 DLLs are official DLL from MIT Kerberos for Windows 3.2.2. The last (msvcr71.dll) is MS C runtime - but I guess it can be redistributed without restrictions (it is a dependancy of the official MIT Kerberos DLLs). To sum up: *) question 1: do we want to choose an alternative name for DLLs built by me? (libpq.dll, libeay32.dll, libssl32.dll) - probably YES (they are in fact sort of unauthorised builds and I cannot guarantee 100% compatibility with the originals) *) question 2: is it OK to distribute libpq.dll together with: comerr32.dll gssapi32.dll k5sprt32.dll krb5_32.dll msvcr71.dll - I think YES (all are for example part of freely distriduted Postgres ODBC driver for Windows). *) question 3: do we want to include Pg support by putting DBD::Pg into strawberry distribution (like MySQL support) or do we want to put there all necessary dev files (from libpostgresql-8.4.0-bin_20090811.zip) and make the users to install/compile DBD::Pg from CPAN? - I do not know (there were more that 20! releases of DBD::Pg during the last 12 months; so it might be better not to fix strawberry users to one particular version). -- kmx

Message body not shown because it is not plain text.

On Tue Aug 11 10:55:47 2009, KMX wrote: Show quoted text
> The last (msvcr71.dll) is MS C runtime - but I guess it can be > redistributed without restrictions (it is a dependancy of the official > MIT Kerberos DLLs).
It can. It's just a pain in the neck to do so, if I recall correctly [Not licensing, but technical issues...] I'd rather not, if we can avoid it.. Show quoted text
> To sum up: > > *) question 1: do we want to choose an alternative name for DLLs built > by me? (libpq.dll, libeay32.dll, libssl32.dll) - probably YES (they are > in fact sort of unauthorised builds and I cannot guarantee 100% > compatibility with the originals)
Probably a good idea. Show quoted text
> *) question 2: is it OK to distribute libpq.dll together with: > comerr32.dll gssapi32.dll k5sprt32.dll krb5_32.dll msvcr71.dll - I think > YES (all are for example part of freely distriduted Postgres ODBC driver > for Windows).
One of the reasons for the rebuild was to try and not have a dependency on the msvcrt versioned libraries... :( Show quoted text
> *) question 3: do we want to include Pg support by putting DBD::Pg into > strawberry distribution (like MySQL support) or do we want to put there > all necessary dev files (from libpostgresql-8.4.0-bin_20090811.zip) and > make the users to install/compile DBD::Pg from CPAN? - I do not know > (there were more that 20! releases of DBD::Pg during the last 12 months; > so it might be better not to fix strawberry users to one particular > version).
Since we update Strawberry every 3 months, it's not so much of an issue that they're on a fast cycle. We just build it against the newest version every time. That and once the library files are installed correctly, it's easier for them to build against the CPAN releases, too. --Curtis
Subject: Re: [rt.cpan.org #48447] Ext-lib: Postgres and OpenSSL support
Date: Tue, 11 Aug 2009 17:26:30 +0200
To: bug-Perl-Dist-Strawberry [...] rt.cpan.org
From: kmx <kmx [...] volny.cz>
Hi Curtis, Show quoted text
>> *) question 1: do we want to choose an alternative name for DLLs built >> by me? (libpq.dll, libeay32.dll, libssl32.dll) - probably YES (they are >> in fact sort of unauthorised builds and I cannot guarantee 100% >> compatibility with the originals) >>
> Probably a good idea. >
So: libpq_.dll, libeay32_.dll, libssl32_.dll or any other preference? (e.g. strawberry_libpq.dll ...) Show quoted text
>> *) question 2: is it OK to distribute libpq.dll together with: >> comerr32.dll gssapi32.dll k5sprt32.dll krb5_32.dll msvcr71.dll - I think >> YES (all are for example part of freely distriduted Postgres ODBC driver >> for Windows). >>
> One of the reasons for the rebuild was to try and not have a dependency > on the msvcrt versioned libraries... :( >
I know, I will also be happier without msvcr*; however msvcr71.dll is a dependency introduced by MIT Kerberos (I did my best to keep as far from msvcr* as possible) - then the only option is to recompile the whole MIT Kerberos - and that's gonna hurt :( Show quoted text
>> *) question 3: do we want to include Pg support by putting DBD::Pg into >> strawberry distribution (like MySQL support) or do we want to put there >> all necessary dev files (from libpostgresql-8.4.0-bin_20090811.zip) and >> make the users to install/compile DBD::Pg from CPAN? - I do not know >> (there were more that 20! releases of DBD::Pg during the last 12 months; >> so it might be better not to fix strawberry users to one particular >> version). >>
> Since we update Strawberry every 3 months, it's not so much of an issue > that they're on a fast cycle. We just build it against the newest > version every time. > > That and once the library files are installed correctly, it's easier for > them to build against the CPAN releases, too. >
So you mean to put DBD:Pg into strawberry release as well as necessary dev libraries/heades? (dev stuff is about 200-300KB of disk space) Or "mysql-approach" - just DBD::XYZ without dev libs/headers? (so user is not able to update the module via "cpan DBD::XYZ") -- kmx

Message body not shown because it is not plain text.

Hi, please find enclosed libopenssl-0.9.8k-bin_20090820.zip - it is ready to release version of openssl libs that was built as agreed on IRC - mingw built - alternative DLL names - *_.dll - just dynamic *.a libraries (libeay32.a + libssl32.a) - I create a duplicity: libssl32.a -> libssleay32.a (as e.g. Crypt::SSLeay and postgresql's ./configure expects it) - also included license file -- kmx
Hi, please find enclosed postgresql lib that was rebild as we have agreed on IRC: postgress libs (8.4.0) - build with msys + mingw + openssl (from previous post) - ./configure --with-openssl --with-ldap - no gssapi, no kerberos support - changed DLL name: libpq_.dll - just libpq frontend lib (not whole dev pack) -- kmx

Message body not shown because it is not plain text.

On Fri Aug 21 02:58:46 2009, KMX wrote: Show quoted text
> Hi, > > please find enclosed postgresql lib that was rebild as we have agreed on > IRC: > postgress libs (8.4.0) > - build with msys + mingw + openssl (from previous post) > - ./configure --with-openssl --with-ldap > - no gssapi, no kerberos support > - changed DLL name: libpq_.dll > - just libpq frontend lib (not whole dev pack) > > -- > kmx
DBD::Pg installs, and so dows {Crypt,Net}::SSLeay as of r8913. --Curtis
Resolving since October release happened.