conan: [bug] Conan doesn't resolve reference to latest binary package when old sqlite3 is installed
Environment details
- Operating System+version: Oracle Linux 6.10 (glibc 2.12)
- Compiler+version: gcc 8.2
- Conan version: 2.0.13
- Python version: 3.6
Steps to reproduce
Trying to build & install boost
from source on old system (glibc
2.12), b2/4.10.1
resolves to a binary package on CCI, which is built against a newer glibc
:
$ conan install --requires=boost/1.82.0 --build=missing
======== Computing necessary packages ========
Requirements
boost/1.82.0#7c9cc60d65d6942a56d4806ab85bda7c:eb34317ab81722ab55d97692af0d62754e8851dd - Build
bzip2/1.0.8#411fc05e80d47a89045edc1ee6f23c1d:75807e7575ecc0f6141344f7c4f5e86106b92ec2 - Build
libbacktrace/cci.20210118#ec1aa63bbc10145c6a299e68e711670c:897e6fde718e72637d92b0b8ed929893a1976238 - Build
zlib/1.3#06023034579559bb64357db3a53f88a4:897e6fde718e72637d92b0b8ed929893a1976238 - Build
Build requirements
b2/4.10.1#8dc3df1cc73ad65d86cbdfd31fdb011f:63fead0844576fc02943e16909f08fcdddd6f44b#a31a98f757dcf4d3f03ed629ccde26b7 - Download (conancenter)
...
-------- Downloading 1 package --------
b2/4.10.1: Retrieving package 63fead0844576fc02943e16909f08fcdddd6f44b from remote 'conancenter'
b2/4.10.1: Package installed 63fead0844576fc02943e16909f08fcdddd6f44b
b2/4.10.1: Downloaded package revision a31a98f757dcf4d3f03ed629ccde26b7
...
-------- Installing package boost/1.82.0 (5 of 5) --------
boost/1.82.0: Building from source
...
boost/1.82.0: RUN: b2 -q numa=on target-os=linux architecture=x86 [...]
b2: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by b2)
b2: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by b2)
Easy to solve – build b2
from source:
$ conan install --requires=boost/1.82.0 --build=missing --build='b2/*'
======== Computing necessary packages ========
b2/4.10.1: Forced build from source
Requirements
boost/1.82.0#7c9cc60d65d6942a56d4806ab85bda7c:eb34317ab81722ab55d97692af0d62754e8851dd - Build
bzip2/1.0.8#411fc05e80d47a89045edc1ee6f23c1d:75807e7575ecc0f6141344f7c4f5e86106b92ec2#d7a79e2c40e526c412f2db99564eadfd - Cache
libbacktrace/cci.20210118#ec1aa63bbc10145c6a299e68e711670c:897e6fde718e72637d92b0b8ed929893a1976238#a7e3c00cc7faaa29f0b441cc0abab184 - Cache
zlib/1.3#06023034579559bb64357db3a53f88a4:897e6fde718e72637d92b0b8ed929893a1976238#2e82fa1c9727666c9d482aa0d2d8abb4 - Cache
Build requirements
b2/4.10.1#8dc3df1cc73ad65d86cbdfd31fdb011f:63fead0844576fc02943e16909f08fcdddd6f44b - Build
...
-------- Installing package b2/4.10.1 (1 of 5) --------
b2/4.10.1: Building from source
...
b2/4.10.1: Created package revision 39eb34d0777dc531a81abd80f0466622
b2/4.10.1: Package '63fead0844576fc02943e16909f08fcdddd6f44b' created
b2/4.10.1: Full package reference: b2/4.10.1#8dc3df1cc73ad65d86cbdfd31fdb011f:63fead0844576fc02943e16909f08fcdddd6f44b#39eb34d0777dc531a81abd80f0466622
...
-------- Installing package boost/1.82.0 (5 of 5) --------
boost/1.82.0: Building from source
...
boost/1.82.0: Package 'eb34317ab81722ab55d97692af0d62754e8851dd' created
boost/1.82.0: Full package reference: boost/1.82.0#7c9cc60d65d6942a56d4806ab85bda7c:eb34317ab81722ab55d97692af0d62754e8851dd#e9d2b818be766aad4f94f0bd94f75e24
So now I have two package revisions of b2
:
$ conan list 'b2/4.10.1:*#*'
Local Cache
b2
b2/4.10.1
revisions
8dc3df1cc73ad65d86cbdfd31fdb011f (2023-07-22 06:10:05 UTC)
packages
63fead0844576fc02943e16909f08fcdddd6f44b
revisions
a31a98f757dcf4d3f03ed629ccde26b7 (2023-08-11 15:24:55 UTC) <<< Binary pkg from CCI, broken on my system
39eb34d0777dc531a81abd80f0466622 (2023-10-16 09:50:58 UTC) <<< My binary pkg
info
settings
arch: x86_64
os: Linux
Bui if I decide to build boost
again (e.g. with different settings), conan reproducibly picks b2
from CCI:
$ conan install --requires=boost/1.82.0 -s build_type=Debug --build=missing
======== Computing necessary packages ========
Requirements
boost/1.82.0#7c9cc60d65d6942a56d4806ab85bda7c:01e0916e01c9f024a112bfa3e77583644218b92c - Build
bzip2/1.0.8#411fc05e80d47a89045edc1ee6f23c1d:4e3d72a07bfbfcf8bcc3e2a4a24a200d8acbceec - Build
libbacktrace/cci.20210118#ec1aa63bbc10145c6a299e68e711670c:295d4ee81415d35a09959c89a57c51b82825332e - Build
zlib/1.3#06023034579559bb64357db3a53f88a4:295d4ee81415d35a09959c89a57c51b82825332e - Build
Build requirements
b2/4.10.1#8dc3df1cc73ad65d86cbdfd31fdb011f:63fead0844576fc02943e16909f08fcdddd6f44b#a31a98f757dcf4d3f03ed629ccde26b7 - Cache
...
-------- Installing package boost/1.82.0 (5 of 5) --------
boost/1.82.0: Building from source
...
boost/1.82.0: RUN: b2 -q numa=on target-os=linux architecture=x86 [...]
b2: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by b2)
b2: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by b2)
Am I missing some sort of logic here? Shouldn’t latest package revision be picked?
Currently I am working around by running conan remove -c 'b2/*'
and building the package from source on the next run so that there is only one package in cache and it’s mine, which is OK from me, but the behaviour is still weird.
About this issue
- Original URL
- State: closed
- Created 8 months ago
- Comments: 20 (20 by maintainers)
Commits related to this issue
- Reproduce without extra build_type https://github.com/conan-io/conan/issues/14945#issuecomment-1764603115 — committed to BobIsOnFire/conan-14945-repro by deleted user 8 months ago
- Remove offending package https://github.com/conan-io/conan/issues/14945#issuecomment-1764657899 — committed to BobIsOnFire/conan-14945-repro by deleted user 8 months ago
- Reproduce without extra build_type https://github.com/conan-io/conan/issues/14945#issuecomment-1764603115 — committed to BobIsOnFire/conan-14945-repro by deleted user 8 months ago
- Remove offending package https://github.com/conan-io/conan/issues/14945#issuecomment-1764657899 — committed to BobIsOnFire/conan-14945-repro by deleted user 8 months ago
- Reproduce without extra build_type https://github.com/conan-io/conan/issues/14945#issuecomment-1764603115 — committed to BobIsOnFire/conan-14945-repro by BobIsOnFire 8 months ago
- Remove offending package https://github.com/conan-io/conan/issues/14945#issuecomment-1764657899 — committed to BobIsOnFire/conan-14945-repro by BobIsOnFire 8 months ago
I am adding the check for sqlite version in PR https://github.com/conan-io/conan/pull/14950
Not a problem, this was a fun one to investigate 😄 , it was driving me crazy!
Yes, I think failing if the sqlite version is too old would be nice. Checking if
is the right way to check the system sqlite version
I am using docker desktop for windows (I think on wsl2), probably same issue, yes. Not sure I am able to change the WSL config, this is a company provisioned computer.
Yeah, “quite old” is an understatement 😅 Oracle Linux 6 itself is a 14-year-old distribution, but I am locked in with it for a while. I will try building a fresher version of
sqlite3
tomorrow, and see if issue reproduces!Sorry, it looks like the error message was cut out. Could you copy it one more time?