[pkg-gnupg-maint] shipping libraries in debian for use when cross-building with mingw-w64-i686-dev (for win32-loader)

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon Feb 15 20:21:52 UTC 2016


Hi Stephen--

Thanks for the prompt response!

On Mon 2016-02-15 07:26:14 -0500, Stephen Kitt wrote:
> This is where header files and DLLs should go; the compiler and linker 
> look there by default (/usr/{i686,x86_64}-w64-mingw32/{include,lib}).
>
> The overrides mention "For now" because the long-term plan is to add the 
> MinGW-w64 targets as Debian (partial) architectures 
> (https://bugs.debian.org/606825). Then the appropriate directories would 
> be /usr/{include,lib}/{i686,x86_64}-w64-mingw32 as per multi-arch...

Thanks for the explanation.  I've subscribed to that bug report (though
i confess i don't understand all the details discussed there) and i'm
happy to help make the per-package transitions necessary whenever the
shift to "true multiarch" happens.  Feel free to open bug reports
against any of the packages needed to be touched when that happens.

> Option 0 for header files and libraries, option 1 for executables. It 
> should be documented but isn't yet...

Ok, works for me.  The one possible exception, i think, will be the
${FOO}-config executable POSIX shell scripts, like gpg-error-config.
These will likely need to be carried forward for as long as upstream
objects to pkg-config [0].  I'm inclined to ship them in e.g.,
/usr/i686-w64-mingw32/bin/gpg-error-config, so that rdeps can
./configure --with-libgpg-error-prefix=/usr/i686-w64-mingw32 for now.
Does this make sense?

[0] https://bugs.debian.org/643341
    http://lists.gnupg.org/pipermail/gnupg-devel/2014-May/028473.html

> Sounds good; I should really write up a Windows policy of some sort.

Please do write one up, even if only a wiki page at the moment.  I'd be
happy to read it and give feedback.

> Please use lib...-mingw-w64 and lib...-mingw-w64-dev packages if 
> possible; see libz-mingw-w64 for an example (although that particular 
> package is rather inefficient since it's a new source package rather 
> than extra binary packages produced by zlib1g).

hm, I'm not convinced i want to introduce two new arch-independent
packages in each of these dependencies; it seems excessive when most of
these are just going to be used as build-dependencies.  I'm currently
thinking of making them strictly lib...-mingw-w64-dev, and leaving the
.dlls in that package.

Is there a practical reason to split out the .dlls separately from the
.dll.a's for debian systems?

Thanks for pointing out the libz-mingw-w64, also.  My attempted builds
have thus far only targeted i686-w64-mingw32.  I note that
libz-mingw-w64 additionally targets x86_684-w64-mingw32.  I'm inclined
to keep my current work focused just on the i686-w64-mingw32, but if you
have a good argument for why you'd want them both, please let me know.

> I'm thinking that upstream might be interested in this too, since having 
> those particular DLLs available as native Debian packages would be 
> helpful for building GnuPG Windows binaries in general!

Yep, agreed.  The current upstream approach to building GnuPG for
windows is a bit scary.  Hopefully this will make it easier for future
versions, and will make it easier for other people to hack on GnuPG for
Windows too.

Regards,

    --dkg



More information about the pkg-gnupg-maint mailing list