2017-07-26 14:28 GMT+02:00 Gianfranco Costamagna <locutusofb...@debian.org>:
>
>
>>Adding ldc to depends would be cheap - but how to switch to shared
>>versions?  I did the package with the help of Debian D team and
>>have no idea how to do this.
>
>
> I have no idea too :)
>
> I looked at the meson stuff, and changed "static" to "shared" and the build
> is now producing an .so file.
>
> I think adding versioning to that function will result in the usual soname 
> stuff
>
> but you should probably create a libundead0 or whatever package
> in the
>
> debian/patches/01_meson-build.patch.patch file
>
> +undead_lib = shared_library('undead',

You should really use library() instead, hardcoding shared_library
makes no sense here:
http://mesonbuild.com/Reference-manual.html#library

> works
> http://mesonbuild.com/Porting-from-autotools.html
>
> I think for now binNMUing is fine, but in the future splitting the package, 
> and add that
> library shared is preferred (but please talk to D people, and try to 
> understand how much
> the ABI is stable

The ABI is not stable at all. It's not completely broken each release,
some bits have been stable for a long time, but you can never be sure
since upstream gives no ABI stability promises.
If the D software is using the D runtime and/or standard library, you
get rebuilds for free, since the dependency on the standard library
will be versioned and a rebuild will be needed to switch to a new
release.
If D a D library is not using the runtime (a rather rare event,
usually happens for very close-to-metal stuff, where having a GC and
the extra weight of the runtime is not desired), then you're on your
own at the moment, as we haven't implemented anything in Debian yet
that could detect this case and ensure transitions happen properly.

The undead library falls into the simple category though, as it
depends on both the runtime and the standard library.

Cheers,
    Matthias

Reply via email to