On Tuesday, 26 November 2013 at 19:27:07 UTC, Andrei Alexandrescu
wrote:
On 11/26/13 11:13 AM, Brad Anderson wrote:
To use 32-bit curl you need to generate an OMF import library
from the
libcurl DLL. It's not terribly hard. I did it originally for
when I
added downloading of libcurl to the Windows installer.
When is the OMF library needed?
1. While building dmd
2. While building druntime
3. While building phobos
4. While building client code that does NOT use std.net.curl
5. While building client code that DOES use std.net curl
5. std.net.curl actually existed for several releases of dmd
before I went to use it one day and got linker errors and decided
to fix it with the installer change.
It's not at all
obvious to users that they need to distribute libcurl.dll et
al when
they distribute their application but that's a documentation
issue.
Or they could kick the can down the road by requiring their
customers to have it.
The MSVCRT.dll hell of yore has shown this is a terrible option.
Windows applications almost universally ship with everything
needed to run. There is no package manager on Windows to handle
dependencies like there is on Linux. You always include the DLLs
or installers in your application (or instruct the user to
download themselves if licensing forbids redistribution but this
is avoided as much as possible).
If I remember correctly Walter didn't want to distribute in
the dmd zip
anything that wasn't boost licensed which is why curl on
Windows comes
as a separate download. zlib is a notable exception but I seem
to recall
Walter regretted including zlib.
On the other hand we've hardly heard one peep from anyone in
literally years that their zip code has trouble building.
We can ask the libcurl author if it comes down to
redistributing a libcurl binary. But we want to make sure this
is the solution of choice.
Walter actually already did that and the author of libcurl said
redistributing it was fine.
Here's an old thread discussing the licensing:
http://forum.dlang.org/post/[email protected]