CI for the Debian Linux kernel crew

44

Beginning honest after Christmas, I the truth is were working on CI for all
the kernel crew’s functions on Salsa. The salsa-ci-crew has accomplished
huge work on producing a general pipeline that is usable for a total lot of
functions with minimal configuration. Alternatively, for some functions
necessary extra work became required.

Linux

I started with the largest
kit, linux
itself. This now has about 1.1 GiB of offer spread over 76,000
offer files. That looks to be a
downside
for the pipeline which in the intervening time puts unpacked offer in
artifacts – it is a long way past the boundaries of what Salsa permits. I
labored round this by the use of a modified model of the extract-offer
and produce jobs that use packed offer kit because the artifacts. The
output of the produce job is properly matched with the general test jobs.

The linux kit also takes loads of resources to present; round 80
minutes on the fastest PC I the truth is comprise at dwelling (if ccache is no longer primed).
Salsa’s shared CI runners appear to be about 10 times slower than
that, so it is fully unfeasible to even one fleshy produce in CI.
Instead I outlined a brand new produce profile that entails completely the
smallest kernel configuration, without debug data, and the
particular person-dwelling functions. This peaceful takes over an hour with the Salsa
CI runners, however I don’t mediate we are in a position to give a hang to this necessary without
shedding loads of code coverage.

Our Git repository for linux also does no longer hang the upstream
offer, so the extract-offer job has to win that. The final
extract-offer job uses origtargz to assemble that, and in
case the orig tarball is no longer already in the archive this would possibly well possibly well streak
uscan. That led me to a brand new downside: our
debian/procure out about file would possibly well possibly per chance well completely procure tarballs linked
from the entrance of
www.kernel.org, and we’re
every so often working with different upstream variations. There would possibly well be
the truth is no single page listing all tarball releases of Linux, and
tarballs for liberate candidates are dynamically generated by CGit
and unsigned. So I modified debian/procure out about to win from
Git, which is what we had been already doing with our comprise
genorig.py script.

Unfortunately, running uscan in opposition to a Git upstream,
with some files excluded (as there are peaceful about a upstream files we
bewitch into consideration non-free), is
about twice as late
because it could possibly per chance well be. Since I needed to modify the extract-offer job
anyway, I’ve persisted the use of genorig.py there.

A fleshy produce log for linux is over 200 MiB, and even with the
decreased produce profile it could possibly per chance well be necessary longer than Salsa’s limit of
2 MiB. I therefore opted to make use of the ‘terse’ produce option (which
interprets to V=0), however made the builds of particular person-dwelling
tools ignore this selection so that blhc would possibly well possibly per chance well peaceful assemble its work. (The
kernel itself can not use the identical hardening alternate choices, so blhc is no longer
priceless there.)

Lastly, with the CI pipeline running, blhc and lintian showed loads
of complications that we hadn’t been attending to. I’ve mounted the total
blhc errors (with some careful suppressions), the total lintian
errors, and the most elementary lintian warnings.

firmware-nonfree

The
firmware-nonfree
kit also has gigantic “offer” (about 560 MB) and wanted one of the most
identical adjustments, however is quick to present so didn’t require a
particular produce profile.

Working lintian over firmware-nonfree reminded me that I desired to
model out the unsuual and inconistent handling of machine-readable
copyright data on this offer kit. I had already accomplished
most of that work on a non-public division in 2020, so here is largely
ready however I peaceful must win to the bottom of a licensing discipline with AppStream
metadata.

Other functions

For
kernel-handbook,
there became already a trivial “CI” pipeline former to push static pages
to
the
web jam. I’ve replaced this with the general pipeline plus a
job that will push the pages from every produce on the master division.

For the total lot else, it became uncomplicated to enable the
general pipeline with a exiguous bit bit of configuration.

posted at: 02: 13 | path: / | permanent link to this entry

NOW WITH OVER +8500 USERS. of us can Be a part of Knowasiak for free. Test in on Knowasiak.com
Read More

Vanic
WRITTEN BY

Vanic

“Simplicity, patience, compassion.
These three are your greatest treasures.
Simple in actions and thoughts, you return to the source of being.
Patient with both friends and enemies,
you accord with the way things are.
Compassionate toward yourself,
you reconcile all beings in the world.”
― Lao Tzu, Tao Te Ching