Skip to content

For linux msm/ci fixes#97

Merged
lumag merged 8 commits into
linux-msm:masterfrom
quic-bjorande:for-linux-msm/ci-fixes
Jul 5, 2026
Merged

For linux msm/ci fixes#97
lumag merged 8 commits into
linux-msm:masterfrom
quic-bjorande:for-linux-msm/ci-fixes

Conversation

@andersson

Copy link
Copy Markdown
Collaborator

A number of PRs are blocked by the fact that the CI build currently doesn't pass, fix each of the issues.

GitHub Actions now warns that actions targeting Node.js 20 are
being forced to run on Node.js 24. The warning is emitted by
actions/checkout@v4 in every matrix job, which obscures the real
CI failures and will eventually become a hard compatibility problem
as Node 20 support is removed from runners.

Move to actions/checkout@v5 so the workflow uses an action version
that is compatible with the current runner JavaScript runtime.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Several scheduled jobs are failing because the matrix still includes
release-specific container images for distributions that have reached
end of life. These images may still be pullable, but their package
repositories are no longer maintained in the normal location and can
fail during dependency installation.

Remove the EOL Debian buster, Ubuntu oracular, and fixed Fedora
release jobs. Keep rolling and moving targets such as debian:testing,
alpine:edge, and latest tags so CI continues to catch issues users
may see on active distributions.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Debian testing no longer provides the legacy libftdi-dev package used
by the CI install scripts. As a result, native, i386, and
cross-compile Debian testing jobs fail at apt install before the build
starts.

Install libftdi1-dev instead. The Meson build already prefers the
libftdi1 pkg-config dependency, so this matches the dependency that
the source is actually using.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
The Alpine clang jobs fail during Meson compiler setup rather than
during source compilation. Installing clang alone does not guarantee
the complete native build environment needed for compiler sanity
checks, linking, and startup objects on Alpine.

Install build-base in the Alpine CI setup so both gcc and clang jobs
have the standard compiler, libc, binutils, and make toolchain expected
by Meson.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Ubuntu noble still ships libgpiod 1.x, which selects the local-gpio v1
implementation. That path declared struct gpiod_line_request_config
without initializing the whole structure before passing it to libgpiod,
leaving padding or future fields undefined under stricter toolchains.

Zero-initialize the request configuration before filling the fields
cdba uses, matching the defensive style needed for older supported
distributions and newer compilers.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
The forkpty check was compiled without including <pty.h>, which is
the header that declares the function. On stricter toolchains, and in
some cross builds, that can make Meson conclude that forkpty is not
available from libc even when the target provides it there.

The fallback then looked for a separate libutil as a required library.
That breaks modern glibc targets where forkpty moved into libc and no
separate libutil is available for Meson to find.

Include <pty.h> in the function probe so libc implementations are
detected correctly. Keep libutil as an optional compatibility fallback
for older targets that still need it, without failing configuration
when the separate library is absent.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
The Debian cross jobs install packages with --no-install-recommends.
The cross compiler packages only recommend the target libc development
headers, so the jobs can reach the compile step without basic headers
such as sys/file.h, sys/socket.h, and bits/wordsize.h.

Install libc6-dev for the target architecture explicitly. This provides
the normal system headers needed by the cross compiler and keeps the CI
setup independent of package recommendations.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
cdba_queue() passes a NULL payload with length zero through
cdba_queue_data(). That eventually called memcpy() unconditionally,
which is undefined for NULL pointers even when the requested copy length
is zero.

Ubuntu noble GCC with fortified libc inlines that call and reports the
NULL source argument with -Wnonnull, which becomes a build failure under
-Werror. Only copy the payload when the queued message actually has one.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
@andersson andersson force-pushed the for-linux-msm/ci-fixes branch from 46a86be to 18ea7c8 Compare July 5, 2026 18:30
@andersson andersson requested a review from lumag July 5, 2026 18:34
@lumag lumag merged commit e6dcfc5 into linux-msm:master Jul 5, 2026
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants