The D ecosystem in Debian with free-as-in-freedom DMD

Vladimir Panteleev via Digitalmars-d digitalmars-d at puremagic.com
Mon Apr 10 06:07:22 PDT 2017


On Monday, 10 April 2017 at 12:59:37 UTC, Matthias Klumpp wrote:
>> Who came up with those policies and decided that they apply to 
>> D? Because I really don't think they should.
>
> They are the result of years of experience in building complex 
> systems and keeping them secure.
> If you have a dependency chain "X -> Y -> Z" (-> meaning 
> "depends on"), and you find a security bug in Z, you the 
> security team will just need to fix the bug in Z to resolve it 
> in the whole distribution.
> But if the code which has this issue is compiled into all of 
> the packages that depend on them, you will need to rebuild the 
> full dependency chain to actually fix the security issue, which 
> is not only time intensive but also a huge maintenance effort.
> In this simple example it doesn't look like much, but those 
> dependency chains can grow massively large and complicated, and 
> the only way to keep the large software stack maintainable and 
> secure is by splitting pieces cleanly.
>
> Embedded code copies are allowed in rare events, but in these 
> cases the security team needs to be aware of them.
> Sometimes, the licenses also explicitly prevent embedded code 
> copies.
>
> Aside from these issues, splitting things cleanly also makes 
> general package maintenance much easier, and adds flexibility 
> for our users who can mix and match parts of the distribution 
> as they like and combine them with their own code.

No, I understand all of this. What I'm saying that in the case of 
D, these rules, though making sense, will just not work. You 
can't replace a piece of code in a template instantiation in a 
compiled program, shared libraries and stable ABI or not.

> You need to see here that D is not the center of the world and 
> we will need to make it work nicely with the rest of the system.

The opposite is also true: requiring a stable shared library API 
of every packaged D library is just as unreasonable. In fact, to 
make these rules useful and applicable to all D programs, you'd 
have to completely forbid templates in the library's public 
interface, which would immediately exclude Phobos for one.



More information about the Digitalmars-d mailing list