Shared library packaging issues

GreatEmerald via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 15 03:21:47 PST 2014


I'm currently attempting to package my D project 
(https://github.com/GreatEmerald/libarcomage/) as a shared 
library for openSUSE and whatnot, but I'm running into some 
policy problems.

First, in order to build a shared library, it has to link against 
libphobos2.so. libphobos2.so is provided by the DMD package. 
Which means... The users of my library have to have DMD installed 
at runtime. Even though they don't intend to compile anything.

Ideally, this problem would be solved by splitting libphobos2.so 
into its own package. After all, even the licenses of DMD and 
Phobos2 are different. This can be done downstream, but for 
instance for openSUSE, there's not much of a downstream to begin 
with. And this is needed for each distribution.

While I'm at it, in the DMD RPM it's also set as Provides 
"libphobos2.so.0.66" instead of the expected 
"libphobos2.so.0.66()(64bit)" on openSUSE. I'm not too sure if 
this is distribution-specific or a standard practice, though.

Second, what's the suggested method of providing includes? Put 
all the source of the library into includes? Make .di files? What 
about templates? Is there a suggested directory structure?


More information about the Digitalmars-d mailing list