[Gpg4win-devel] Adding openssl to gpg4win (as a dep for claws-mail)

Marcus Brinkmann marcus.brinkmann at ruhr-uni-bochum.de
Sun Oct 14 14:51:24 CEST 2007


At Sun, 14 Oct 2007 14:17:04 +0200,
wwp <subscript at free.fr> wrote:
> 
> Hello Marcus!
> 
> 
> On Sat, 13 Oct 2007 20:55:55 +0200 Marcus Brinkmann <marcus.brinkmann at ruhr-uni-bochum.de> wrote:
> 
> > At Fri, 12 Oct 2007 21:03:33 +0200,
> > wwp <subscript at free.fr> wrote:
> > > And `make` fails:
> > > Making all in src
> > > make[2]: Entering directory `/home/wwp/projects/claws-mail/ports/win32/gpg4win/vanilla/trunk/src'
> > > make[2]: *** No rule to make target `stamps/stamp-final-openssl', needed by `stamps/stamp-final'.  Stop.
> > > make[2]: Leaving directory `/home/wwp/projects/claws-mail/ports/win32/gpg4win/vanilla/trunk/src'
> > > make[1]: *** [all-recursive] Error 1
> > > make[1]: Leaving directory `/home/wwp/projects/claws-mail/ports/win32/gpg4win/vanilla/trunk'
> > > make: *** [all] Error 2
> > > 
> > > 
> > > I suppose that either the integration procedure doesn't detail all the
> > > steps to create a new module, or there's something I didn't understand
> > > and missed.
> > 
> > You have to add the package to the variable gpg4win_bpkgs in Makefile.am.
> > This is mentioned in step "3" of the README.
> > 
> > You can also work from existing examples such as png.  Grep for png
> > and then you see where you need to add something.
> > 
> > > What creates the stamp files in src/stamps? Also, what unpacks
> > > packages/openssl-*.zip files to src/playground/install/pkgs and the
> > > symlinks in playground/install?
> > 
> > In gpg4win.mk.in you can find those rules in macros called
> > SPKG_template, BPKG_template, MPKG_template and IPKG_template.
> > There you also find evaluations like:
> > 
> > # Insert the template for each binary package.
> > $(foreach bpkg, $(gpg4win_bpkgs), $(eval $(call BPKG_template,$(bpkg))))
> > 
> > See the GNU make manual for documentation on macro programming if you
> > are interested in the details.  I apologize for the cleverness, but
> > it's the best I could come up with.
> 
> Great, many thanks for your help. I could compile against openssl
> headers w/ few changes in claws mail code, but I'm stuck on a linking
> problem.
> 
> First, libeay32.dll from the gnuwin32's openssl package conflicts w/
> the one shipped w/ kdesupport included in gpg4win. I could easily sort
> out this, but NOT installing the one from openssl (it's still 0.9.7
> whereas the one from kdesupport is 0.9.8). Waiting for an openssl 0.9.8 packag from gnuwin32.
> 
> But my main problem now is that libssl requires linking against
> libgw32c.a (if I'm not wrong, at least it's defined in the .pc file),
> and if I install the g32c package from gnuwin32 (including it as a
> gpg4win module), linking will show a conflicts between symbols defined
> in that gw32c lib and the mingw32 libc one.

To my knowledge, the gnuwin packages are built under Windows native.
It happens we can use libpng under mingw32, but it sounds as if
libgw32c is more low level and conflicts with the mingw runtime.

> I've noticed that libpng's .pc shows that it is linked against gw32c
> too, but I wonder how applications built with gpg4win do work with
> this, any idea?

GPA and sylpheed link against libpng, but libpng likely does not
exports its internal libc runtime from gnuwin, so there is no problem.
Well, there could be problems, like sharing of file descriptors, but
none that we know about.

Actually, its a bit of a problem that we are still using binary
packages for libpng and some other packages, over time we would like
to build our own versions from source as far as possible.  But we have
to ensure ABI compatibility as well, so it is a bit of a nuiseance.

The kdesupport package needs to be broken up eventually, if feasible.
For now, it helps us to work on the interesting things quickly.

As for openssl, there may also be licensing issues to watch out for.

Thanks,
Marcus






More information about the Gpg4win-devel mailing list