There are some installer packages that need to use an older version of glibc to run in all linux distros.
The issue of the problematic is well described here: https://github.com/bincrafters/community/issues/267
Bincrafters Community have created a package for "glibc_version_header" and it is used to create the binaries of tools such as: nasm_installer, yasm_installer and ninja_installer.
Also take into account that sources for the "glibc_version_header" are coming from a forked version of the original repo as there are some issues with cross-compiling for x86: https://github.com/wheybags/glibc_version_header/pull/14
cc/ @SSE4
@SSE4 We have been discussing this issue and the glibc_version_header seems a bit limited and a dependency that we dont want to introduce in Conan Center.
Modelling this in the Conan default settings is something we haven't done historically, is hard to track in the Linux versions (for the default profile) and creates friction in Linux users.
As this is mostly affecting tools of the Bincrafters, What about building this kind of tools in a linux image version old enough to make the binaries compatible for Centos and RedHat 6?
we used to build them previously on CentOS 7, and this worked fine
we probably may try to prepare conan docker images for CentOS 6 or earlier (alternatively, RedHat or Fedora) as well and build using them
We should be able to provide something for this in conan-docker-tools. Actually conanio/gcc46 uses ubuntu 12.04 from 2012 which I think should be good enough for this purpose.
WDYT? Could we try this approach without the build requirement of glibc_version_header?
I need to check glibc versions, I'll let you know
few questions I have for you:
CentOS 6:
[root@dd784d9a2f77 /]# ldd --version
ldd (GNU libc) 2.12
Ubuntu 12.04:
root@c959e5380acd:/# ldd --version
ldd (Ubuntu EGLIBC 2.15-0ubuntu10.18) 2.15
seems like it doesn't fit, we need either older Ubuntu, or CentOS 6, I suppose
what do you mean by "seems a bit limited"? what kind of limitation do you mention?
Basically we are worried about this limitations and that the way this headers works is almost a trick. Also there are pending issues from PRs and the package is actually relying in your fork.
why don't you want to introduce dependency in Conan Centre?
All the libraries built currently in Conan Center use the same version of glibc. The case of the tools like ninja or nasm relying on a different glibc version is because you want the tools to run in older distros and would be the same problem you would find using "plain" libraries (not tools). We dont want to model the glibc version as this is something depending or your system and having different solution for the same problem is confuting for users and difficult to handle.
seems like it doesn't fit, we need either older Ubuntu, or CentOS 6, I suppose
Ok, let's find an image to use it for this case cc/ @uilianries
@danimtb I think this one now can be closed, as we have required images and installers (yasm, nasm, ninja) are in conan centre already
Thanks for the reminder @SSE4.
For the record: "Installer" packages (build tools) are built in CentOS 6 images to avoid inconsistencies with GLIBC when running in other distributions. Implementation can be found here https://github.com/conan-io/conan-docker-tools/issues/82
Most helpful comment
@danimtb I think this one now can be closed, as we have required images and installers (yasm, nasm, ninja) are in conan centre already