Bug#962710: libedit2: undocumented change to upstream's SONAME

Matt Jolly kangie at gentoo.org
Thu Oct 3 07:13:25 BST 2024


Hi Debian LLVM Team,

I've been working on Gentoo's WSL2 support recently, and spent
quite a bit of time trying to work out why I was unable to
initialise a mesa D3D12 gallium driver to make OpenGL work[1].

My investigation (through much `strace`ing) led me to identify
that the Intel WSL2 "driver" loaded by the D3D12 gallium driver
was built on an Ubuntu system, and includes a libLLVM, and that
LLVM appears to have been built with `-DLLVM_ENABLE_LIBEDIT=yes`.

This wouldn't be a problem, however due to Debian's soname change
here no non-Debian-derived distribution is able to satisfy
this dependency, resulting in a failure of the driver to load
and **breaking OpenGL support in WSL2 on all non-Debian derived
distributions**.

```
openat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/glibc-hwcaps/x86-64-v3/libedit.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/glibc-hwcaps/x86-64-v3/", 
0x7ffe9b43f450, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/glibc-hwcaps/x86-64-v2/libedit.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/glibc-hwcaps/x86-64-v2/", 
0x7ffe9b43f450, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/libedit.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, 
"/usr/lib/wsl/drivers/iigd_dch.inf_amd64_5cd1b24bd34e22d9/../lib/", 
0x7ffe9b43f450, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib64/libedit.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT 
(No such file or directory)
openat(AT_FDCWD, "/usr/lib64/libedit.so.2", O_RDONLY|O_CLOEXEC) = -1 
ENOENT (No such file or directory)
```

While it's clearly possible for end users to symlink the library to the
expected soname, it's really not appropriate for other distributions to
provide a compat symlink when Debian is the outlier - honestly, as
identified by the original bug reporter, it's inappropriate for
downstreams to change the soname of a library at all.

I'm also having trouble finding any rationale for keeping this change
past the release that it occurred within.

While it's not going to immediately fix the downstream WSL issue (there
have been tickets raised with Microsoft[2] and Intel[3] respectively),
it seems prudent at this point to bring Debian into alignment with other
distros and make software compiled on Debian actually portable.

Would you consider reverting the soname change before Trixie gets
locked in?

Cheers,

Matt

1: https://bugs.gentoo.org/937851
2: https://github.com/microsoft/wslg/issues/996
3: 
https://github.com/IGCIT/Intel-GPU-Community-Issue-Tracker-IGCIT/issues/844



More information about the Pkg-llvm-team mailing list