[Pkg-d-devel] Installing libphobos2-ldc75
Iain Buclaw
ibuclaw at gdcproject.org
Fri Nov 10 17:56:33 UTC 2017
On 10 November 2017 at 09:16, Russel Winder <russel at winder.org.uk> wrote:
> Matthias,
>
> Thank you for taking the time to do a detailed reply. This is very much
> appreciated.
>
> (For future reference: I have done a Meson build for dinotify, and am now
> doing one for unit-threaded. I wonder if these could be added to the list of
> libraries built for Debian Sid.)
>
>> This is intentional, check the LDC changelog.
>
> OK, that works for me. I will have to admit to have reacted to the "face
> value" situation without having dug deeper into things. Having read the text
> below I feel I now appreciate the problem…
>
>> While usually it is very discouraged to have library packages conflict
>> (and most of the time a sign that you are doing something wrong), in
>> this case it is justified because we want to ensure that the current
>> LDC transition does not break the user's systems or unrelated
>> packages.
>> In the past it happened often that some packages up in the dependency
>> chain (e.g. gtk-d) were compiled with newer versions of LDC, and some
>> packages lower in the chain were still on the old version (e.g. tilix)
>> which caused them to just break without notice for users who had
>> updated their system. This was made worse by LLVM and LDC bugs which
>> got packages stuck in this state for quite a long time.
>>
>> By making the new Phobos library conflict with the old one, we ensure
>> users do only update to the new LDC runtime packages when nothing on
>> their system uses the old ones anymore, effectively ensuring we don't
>> break anything for them with the transition.
>> This is far from ideal (ideally D would have a stable ABI...), but
>> IMHO it's better than the previous state.
>>
>> At the moment this is an experiment, if we find serious issue with it
>> we'll have to think of something else to fix this issue (but at the
>> moment it's working as expected).
>> Just wait for all the stuff to be rebuilt with the new LDC, and then
>> you should be able to easily update to the new version.
>
> …I guess the summary of problem here is handling the closure over the
> dependencies to ensure consistency. Given the phobos, gtkd, tilix problem, it
> is a wonder this is not a more widespread problem throughout Debian. Or maybe
> it is and there is a solution there that isn't going to work for the D stuff.
>
> In case it hasn't been said elsewhere: thank you for being a Debian maintainer
> and getting ldc2, druntime, phobos, gtkd, and tilix into Debian Sid. I am not
> in a position to be a Debian or Fedora maintainer myself, but appreciate the
> work done by them. If there are things I can do to support, feel free to ask.
>
The gdc packages allows installing multiple version of libgphobos
together (libgphobos68, libgphobos71, etc.)
---
$ gdc-7 -shared-libphobos test.d -o test7
$ ldd test7
linux-vdso.so.1 => (0x00007ffdd39cc000)
libgdruntime.so.71 => /usr/lib/x86_64-linux-gnu/libgdruntime.so.71
(0x00007f6f1dbe5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6f1d81b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6f1d511000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f6f1d2f4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6f1d0f0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f6f1ced8000)
/lib64/ld-linux-x86-64.so.2 (0x000055f36de6d000)
---
$ gdc-6 -shared-libphobos test.d -o test6
$ ldd test6
linux-vdso.so.1 => (0x00007ffe8f144000)
libgdruntime.so.68 => /usr/lib/x86_64-linux-gnu/libgdruntime.so.68
(0x00007f866bab5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f866b6eb000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f866b3e1000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f866b1c4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f866afc0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f866ada8000)
/lib64/ld-linux-x86-64.so.2 (0x000055aab1fce000)
---
Or do I misunderstand something from my quick skim?
Iain.
More information about the Pkg-d-devel
mailing list