Skip to content

Install pkg-config in builder images#9297

Open
ShahanaFarooqui wants to merge 3 commits into
ElementsProject:masterfrom
ShahanaFarooqui:repro-add-pkg-config
Open

Install pkg-config in builder images#9297
ShahanaFarooqui wants to merge 3 commits into
ElementsProject:masterfrom
ShahanaFarooqui:repro-add-pkg-config

Conversation

@ShahanaFarooqui

@ShahanaFarooqui ShahanaFarooqui commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

All three reproducible builds started failing after our last commit to pin coincurve builds from source. This is an environment gap in the repro images, not a problem with the coincurve pin itself.

coincurve==20.0.0 shipped prebuilt wheels, so nothing was ever compiled during uv sync. The git pin has no wheels, so the repro build now compiles coincurve from source, and its CMake build hard-requires pkg-config. Regular CI already installs pkg-config via .github/scripts/setup.sh, which is why PR CI passed; the repro Dockerfiles keep a separate apt list and were missing it.

Failed Action: https://github.com/ElementsProject/lightning/actions/runs/28993800082

Changelog-None.

@ShahanaFarooqui ShahanaFarooqui marked this pull request as ready for review July 9, 2026 05:05
@ShahanaFarooqui ShahanaFarooqui requested a review from cdecker as a code owner July 9, 2026 05:05
@madelinevibes madelinevibes added this to the v26.09 milestone Jul 9, 2026
daywalker90
daywalker90 previously approved these changes Jul 9, 2026
@daywalker90

Copy link
Copy Markdown
Collaborator

The installation instructions also need updating. I took the liberty to update arch linux instructions as a whole, since they were horribly outdated. pkg-config command is provided by different package names, depending on the distro.

@madelinevibes madelinevibes self-requested a review July 9, 2026 13:42
madelinevibes
madelinevibes previously approved these changes Jul 9, 2026

@madelinevibes madelinevibes left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! ebb8532 & 985d668

ShahanaFarooqui and others added 2 commits July 9, 2026 16:19
Since we pinned coincurve to a git revision, it no longer installs from prebuilt wheels but builds from source, and coincurve's CMake build requires pkg-config. Regular CI installs it via .github/scripts/setup.sh but the repro Dockerfiles maintain their own package list and were missing it.

Changelog-None.
Also updated Arch linux instructions to use necessary dependencies, uv and rust

Removed python plugin instructions, they can not be generalized and this repo no
longer has any python plugins that need extra dependencies in production.
Python plugins from the plugins repo have their own documentation.

Changelog-None
@daywalker90 daywalker90 dismissed stale reviews from madelinevibes and themself via 473265c July 9, 2026 14:19
@daywalker90 daywalker90 force-pushed the repro-add-pkg-config branch from 985d668 to 473265c Compare July 9, 2026 14:19
@daywalker90

Copy link
Copy Markdown
Collaborator

There were two problems with the docker build step. One was that it required the target arch's python headers and the other was that the vendored cmake is dynamically linked against libatomic1 which is usually included when installing build-essentials but we don't do that in that bookworm-slim image. So i kept it slim and only pulled in libatomic1.

cdecker
cdecker previously approved these changes Jul 9, 2026
Commit 5733046 ("docker: Fix missing CLN version in docker image")
added `ARG VERSION` / `ENV VERSION=${VERSION}` to the Dockerfile and
passed the build-arg in the docker-release workflow, but not in
tools/build-release.sh. Without the build-arg the container gets a
set-but-empty VERSION environment variable, which `VERSION ?=` in the
Makefile will not overwrite, so the git-describe fallback never runs
and `make install-program` fails with:

    ERROR: git is required for generating version information
    make: *** [Makefile:761: version_gen.h] Error 1

Pass the version the script already computed, mirroring the workflow.

Changelog-None.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants