nextstrain / conda-base

Conda package build for nextstrain-base
https://anaconda.org/Nextstrain/nextstrain-base
1 stars 1 forks source link

Newer Linux base systems (glibc version) required #92

Closed tsibley closed 1 month ago

tsibley commented 1 month ago

It appears we relatively recently started requiring newer Linux base systems at some point, as I can no longer install a recent package build:

error    libmamba Could not solve for environment specs
    The following package could not be installed
    └─ nextstrain-base 20240904T185420Z  is not installable because it requires
       └─ c-ares ==1.33.1 heb4867d_0, which requires
          └─ __glibc >=2.28,<3.0.a0 , which is missing on the system.

I ran into this error while trying to install the PR package build for https://github.com/nextstrain/conda-base/pull/91.

My work computer is still on Ubuntu 18.04 (I know, I know) and supported under Ubuntu's ESM updates (until 2028) and ships with glibc 2.27. That's not new enough to meet the glibc ≥2.28 requirement. The previously glibc requirement was ≥2.17. The earliest common distro versions with those glibc versions are

glibc ≥2.17 glibc ≥2.28
Ubuntu 14.04 18.10
Debian 8 10
RHEL 7 8
Fedora 19 29

We're maybe (?) fine with that shift, but I wanted to flag this and record it. I may bisect our packages (20240731T140821Z was installable) to understand better when this changed.

tsibley commented 1 month ago

First version with this new requirement is 20240820T183407Z. It was introduced by c-ares 1.33.0.

tsibley commented 1 month ago

We're maybe (?) fine with that shift, but I wanted to flag this and record it.

I fixed a similar backwards compatibility issue for Nextstrain CLI a while back which was affecting both CDC's (on RHEL/CentOS 7) and a Serratus contributor's (on Amazon Linux 2) ability to use it. And for CDC, I know they were using our Conda runtime too on CentOS 7. This change would break that.

tsibley commented 1 month ago

If we wanted to revert this glibc requirement bump, I think we'd be able to by restricting to c-ares <1.33.0. That would eventually become unworkable, but there's a good chance it would be fine for a long time and well beyond the point it mattered.