conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
963 stars 1.77k forks source link

[package] ninja/1.9.0: Incompatible ABI for GCC 4.9 #624

Closed uilianries closed 4 years ago

uilianries commented 4 years ago

When building installer packages (cmake, bison, ninja, meson ...) sometimes we have a problem related to the C library version which is incompatible to the present in the current Docker image. In the past, Bincrafters opted to use CentOS6 which solved 99% of cases, but now we using Ubuntu 16.04 (GCC5) which is failing when we need to build a package with GCC 4.9 because conanio/gcc49 is Ubuntu 14.04.

Suggestion, identify installer packages and use a old Linux distro when building, CentOS6 for instance

/cc @ericLemanissier

Package and Environment Details (include every applicable attribute)

Conan profile (output of conan profile show default or conan profile show <profile> if custom profile is in use)

[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++
compiler.version=4.9
os=Linux
os_build=Linux
[options]
libdrm:shared=True
[build_requires]
[env]

Steps to reproduce (Include if Applicable)

Logs (Include/Attach if Applicable)

https://github.com/bincrafters/conan-libdrm/runs/379290528

ericLemanissier commented 4 years ago

this is the continuation of https://github.com/conan-io/conan-center-index/issues/213

Croydon commented 4 years ago

I guess the core question is: How can we identify installer packages automatically?

uilianries commented 4 years ago

IIRC Conan center hook is able to do it, it checks if os_arch and build_arch are declared only

uilianries commented 4 years ago

That's it: https://github.com/conan-io/hooks/blob/master/hooks/conan-center.py#L131

ericLemanissier commented 4 years ago

Another take on this problem could that this line is the cause of the bug, but it would only solve stdlib abi issue, not glibc abi issues.

Croydon commented 4 years ago

That's it: https://github.com/conan-io/hooks/blob/master/hooks/conan-center.py#L131

The problem is that sometimes we do have more settings for the build process, which are only getting deleted in package(). So we can't know before a build for sure that it is an installer

uilianries commented 4 years ago

That's it: https://github.com/conan-io/hooks/blob/master/hooks/conan-center.py#L131

The problem is that sometimes we do have more settings for the build process, which are only getting deleted in package(). So we can't know before a build for sure that it is an installer

That's true, it's fragile, maybe we can check it based on package_id

uilianries commented 4 years ago

fixed by #2062