Should "std.net.curl" be moved from Phobos to Deimos?

Brad Anderson eco at gnuk.net
Tue Nov 26 11:56:00 PST 2013


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/wgnsetqkzbzgulccphvu@forum.dlang.org


More information about the Digitalmars-d mailing list