fix(docker): bump g2c 2.1.0 → 2.3.0 to satisfy wgrib2 3.8.0 build req

wgrib2 3.8.0's CMakeLists.txt:93 calls find_package(g2c 2.3.0), so the
previous 2.1.0 pin makes both Dockerfiles error out with "Could not find
a configuration file for package g2c that is compatible with requested
version 2.3.0". Bumping to 2.3.0 across both the Elixir and Rust images
since their wgrib2-builder stages stay in lockstep.
This commit is contained in:
Graham McIntire 2026-04-30 09:37:33 -05:00
parent e6ce8be98c
commit 117c8e7b73
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59
2 changed files with 6 additions and 4 deletions

View file

@ -32,8 +32,9 @@ ARG WGRIB2_VERSION=3.8.0
# this aligned with rust/prop_grid_rs/Dockerfile.
# g2c v2.1.0 is the first release where BUILD_G2C defaults ON, which
# wgrib2 needs at link time (g2c_enc_jpeg2000 / g2c_dec_jpeg2000
# come from the "new" file-based API).
ARG G2C_VERSION=2.1.0
# come from the "new" file-based API). wgrib2 3.8.0 bumps the
# find_package requirement to g2c >= 2.3.0 (CMakeLists.txt:93).
ARG G2C_VERSION=2.3.0
# BuildKit cache mounts keep the .deb archive + apt-lists out of the
# image overlay and on the builder's cache storage, so image layers
@ -80,7 +81,7 @@ WORKDIR /tmp/wgrib2
# exist in wgrib2 3.8.0 — they were silently ignored, leaving
# wgrib2 unable to read GRIB2 packing type 40 (HRDPS uses it).
# Verified 2026-04-30 by ldd showing only libc/libm linked.
# * The g2c v2.1.0 build above carries the actual OpenJPEG support;
# * The g2c v2.3.0 build above carries the actual OpenJPEG support;
# wgrib2 dispatches to g2c via USE_G2CLIB_LOW.
RUN wget -q --content-disposition "https://github.com/NOAA-EMC/wgrib2/archive/refs/tags/v${WGRIB2_VERSION}.tar.gz" \
-O wgrib2.tar.gz \

View file

@ -20,7 +20,8 @@ ARG RUNNER_IMAGE="docker.io/debian:${DEBIAN_VERSION}"
FROM ${RUNNER_IMAGE} AS wgrib2-builder
ARG WGRIB2_VERSION=3.8.0
ARG G2C_VERSION=2.1.0
# wgrib2 3.8.0's CMakeLists.txt requires g2c >= 2.3.0 via find_package.
ARG G2C_VERSION=2.3.0
# wgrib2 3.6.0 has a memory-corruption bug exposed by HRDPS rotated
# lat/lon GRIB2 files plus -lon point extraction: it emits denormal
# garbage values then aborts with `free(): invalid size`. Reproduced