Thread overview
Fedora and library name
May 02, 2017
Russel Winder
May 02, 2017
Mike Wey
May 02, 2017
Russel Winder
May 04, 2017
Dicebot
May 03, 2017
David Nadlinger
May 02, 2017
I need some data to (hopefully) win an argument…

Some time back (the period and version number is part of the issue) on Fedora, the LDC package used to use the name libphobos-ldc.so whilst the very same version of LDC on Debian used libphobos2-ldc.so.  At that time, I put in a special exception in the ldc tool of SCons to cover this. It's ugly.

I now see that the LDC package on Fedora uses libphobos2-ldc.so the same as Debian (and I assume everyone else).

In my usual forward looking, who cares about backward compatibility, way I have proposed removing the "Fedora Exception" and made a pull request to SCons to this effect. Bill being far more careful for the users, i.e. taking a far more professional view of backward compatibility, is saying "no leave the exception in place".

Rather than just argue this in an abstract way, I think it better to gather some (at least partial) data.

If the LDC packagers are listening, or indeed anyone who has actual data, do we know:

1. Which version of LDC package on Fedora switched from libphobos- ldc.so to libphobos2-ldc.so?

2. Which version of Fedora was the last version of Fedora with libphobos-ldc.so as the library name?

3. Is this Fedora version still maintained by Red Hat?

4. What is the situation with RHEL and CentOS? Did the LDC package ever reach there, and is the libphobos-ldc.so name still used in those versions.

5. Is anyone using LDC on RHEL and CentOS?

My guess, is that no-one using LDC on Fedora is using old LDC so there is no problem there. However, Bill's caution may be justified if people are using ancient LDC and modern SCons on RHEL or CentOS. My argument is that if anyone is using an old enough LDC to see the problem they are unlikely to be using an up to date SCons.

But guessing is bad, hence this request for data.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

May 02, 2017
On 05/02/2017 08:56 AM, Russel Winder via digitalmars-d-ldc wrote:
> I need some data to (hopefully) win an argument…
> 
> Some time back (the period and version number is part of the issue) on
> Fedora, the LDC package used to use the name libphobos-ldc.so whilst
> the very same version of LDC on Debian used libphobos2-ldc.so.  At that
> time, I put in a special exception in the ldc tool of SCons to cover
> this. It's ugly.
> 
> I now see that the LDC package on Fedora uses libphobos2-ldc.so the
> same as Debian (and I assume everyone else).

I don't know when Fedora switched, but Archlinux uses liblphobos2.so ;)

-- 
Mike Wey
May 02, 2017
On Tue, 2017-05-02 at 19:13 +0200, Mike Wey via digitalmars-d-ldc wrote:
> On 05/02/2017 08:56 AM, Russel Winder via digitalmars-d-ldc wrote:
> > I need some data to (hopefully) win an argument…
> > 
> > Some time back (the period and version number is part of the issue)
> > on
> > Fedora, the LDC package used to use the name libphobos-ldc.so
> > whilst
> > the very same version of LDC on Debian used libphobos2-ldc.so.  At
> > that
> > time, I put in a special exception in the ldc tool of SCons to
> > cover
> > this. It's ugly.
> > 
> > I now see that the LDC package on Fedora uses libphobos2-ldc.so the same as Debian (and I assume everyone else).
> 
> I don't know when Fedora switched, but Archlinux uses liblphobos2.so ;)

This could be an Oh #### :-(

So when compiling for shared object usage on Arch you have to use the command line options:

-shared -defaultlib=lphobos

instead of:

-shared -defaultlib=phobos2-ldc

It seems then that no-one using Arch is using SCons working with D.

Is there any way of getting CI on Arch for a person who uses only Debian and Fedora?


-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

May 03, 2017
On 2 May 2017, at 19:24, Russel Winder via digitalmars-d-ldc wrote:
> This could be an Oh #### :-(

There shouldn't be a reason to hard-code library names just to use shared libraries anyway.

You might be interested in the following PR: https://github.com/ldc-developers/ldc/pull/2044. Initially, I was opposed to this (C/C++ libraries sometimes ship with a dynamic as well as a static version of the same name just fine), but it seems like I underestimated the amount of ways this can go wrong in the real world (i.e. distro packages, etc.).

With something like that, choosing between static and shared libraries should just be a single command line flag. (Of course, this doesn't help in the slightest with your backwards-incompatibility issues.)

> instead of:
>
> -shared -defaultlib=phobos2-ldc

Why would you want to remove druntime from the list of linked libraries?

 — David
May 04, 2017
On Tuesday, 2 May 2017 at 18:24:37 UTC, Russel Winder wrote:
> This could be an Oh #### :-(
>
> So when compiling for shared object usage on Arch you have to use the command line options:
>
> -shared -defaultlib=lphobos
>
> instead of:
>
> -shared -defaultlib=phobos2-ldc

Unless whoever maintains Arch packages has fixed it, shared standard library is default and only available option for LDC there, no need to specify anything to use it.