<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildbot, branch v28</title>
<subtitle>LEDE buildbot configuration</subtitle>
<id>https://git.openwrt.org/buildbot/atom?h=v28</id>
<link rel='self' href='https://git.openwrt.org/buildbot/atom?h=v28'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/'/>
<updated>2026-11-01T10:06:34Z</updated>
<entry>
<title>tests: add apk release signing regression test</title>
<updated>2026-11-01T10:06:34Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T07:21:52Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=732085970edb2d6f8a45541189f7d1e04f8a40d5'/>
<id>urn:sha1:732085970edb2d6f8a45541189f7d1e04f8a40d5</id>
<content type='text'>
Add a cram test that runs scripts/signall.sh in a container from the
master image on a tarball with a small apk index, using a throwaway
P-256 key and a config.ini shaped like the production one. The test
starts its own container, because it needs only the tools in the image,
not a running buildmaster.

The test checks that the signed index verifies with the buildmaster apk,
that signing the same tarball twice gives identical packages.adb files,
which only works with the deterministic ECDSA patch, and that sha256sums
matches the signed index. It then verifies the signed index with the apk
of the OpenWrt rootfs images x86-64-main, x86-64-openwrt-25.12 and
x86-64-25.12.6. A copy of the index with one changed payload byte must
fail with "UNTRUSTED signature".

With the patch removed from the buildmaster image, the test fails at the
determinism check.

The config.ini has a dummy last option, because signall.sh reads back
an empty key when the key is the last entry and then skips signing
without an error. That bug will be fixed separately.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>buildmaster: build apk 3.0.5 from the OpenWrt sources mirror</title>
<updated>2026-11-01T10:06:34Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T06:23:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=a8f4ec77d05f047bf182667415552e6d82eba417'/>
<id>urn:sha1:a8f4ec77d05f047bf182667415552e6d82eba417</id>
<content type='text'>
Bump apk-tools from a 2024 pre-release commit to 3.0.5, the version that
OpenWrt main and openwrt-25.12 pin. scripts/signall.sh signs releases
with this binary (apk adbsign), so it should match what OpenWrt builds.

Fetch the release tarball from sources.openwrt.org and check its sha256,
instead of cloning gitlab.alpinelinux.org, which is not always reachable.
Build it with meson as a static musl binary, because the final image is
Debian (glibc).

Apply OpenWrt's patch "crypto_openssl: use deterministic ECDSA
signatures" (OpenWrt commit e923974fc172). With it, signing the same
data twice gives identical bytes, instead of a different signature each
time from a random ECDSA nonce.

Update the cram test for the new usage line of apk 3.0.5.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>ci: run black in --check mode</title>
<updated>2026-11-01T10:06:33Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T05:42:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=789855a9b03405248cb66dbfc168abc6d006e1f0'/>
<id>urn:sha1:789855a9b03405248cb66dbfc168abc6d006e1f0</id>
<content type='text'>
The lint job ran `black phase1/master.cfg`, which rewrites the file
inside the CI checkout and always succeeds. Run it with `--check --diff`,
so unformatted code fails the job and the log shows the needed changes.

Also run it on phase*/master.cfg, the same files that ruff and flake8
check, so phase2 is covered too.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>phase2: reformat master.cfg with black 26.10.1</title>
<updated>2026-11-01T10:06:33Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T05:54:01Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=5b118336797ceb086120277823899ddac3e08179'/>
<id>urn:sha1:5b118336797ceb086120277823899ddac3e08179</id>
<content type='text'>
Formatting only, no functional change. This prepares for running
`black --check` on phase2 too.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>phase1: reformat master.cfg with black 26.10.1</title>
<updated>2026-11-01T10:06:32Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T05:42:30Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=2ab79f75a5872e8271fdfcaa6f0660f0f0173691'/>
<id>urn:sha1:2ab79f75a5872e8271fdfcaa6f0660f0f0173691</id>
<content type='text'>
Formatting only, no functional change. This prepares for running
`black --check` in CI.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>ci: bump lint tools and use `ruff check`</title>
<updated>2026-11-01T10:06:32Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T05:42:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=652d6e6bfeaa6d9a96d1b23f223b6e8e844c0451'/>
<id>urn:sha1:652d6e6bfeaa6d9a96d1b23f223b6e8e844c0451</id>
<content type='text'>
Update requirements-dev.txt to the latest releases:

  black  23.12.1 -&gt; 26.10.1
  ruff   0.1.9   -&gt; 0.17.3
  flake8 6.1.0   -&gt; 7.4.1
  cram   0.7 (unchanged, already the latest)

Ruff 0.17 requires the `check` subcommand and expects the settings in
.ruff.toml under a `lint` table, so update both.

Ruff 0.17 also enables more rules by default and reports 58 style
findings in the master.cfg files, mostly percent-format to str.format
conversions. The configs have no tests, so rewriting them is not worth
the risk. Select the previous default rules (E4, E7, E9, F) explicitly
instead. flake8 needs no changes.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>ci: run test-lint on Python 3.13</title>
<updated>2026-11-01T10:06:31Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2026-10-28T05:42:01Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=0005cdb749327023c59d6c115463e5a99093c58a'/>
<id>urn:sha1:0005cdb749327023c59d6c115463e5a99093c58a</id>
<content type='text'>
The containers are now based on Debian 13, which ships Python 3.13. Run
the lint job with the same version instead of 3.11.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>docker: upgrade base images to debian:13</title>
<updated>2026-11-01T10:06:28Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-06-24T12:29:29Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=90f967c1861945c3be279ee95bb8fba8600d3f7b'/>
<id>urn:sha1:90f967c1861945c3be279ee95bb8fba8600d3f7b</id>
<content type='text'>
Debian 11 (Bullseye) LTS support ends on August 31, 2026.
Upgrading to Debian 13 (Trixie) ensures long-term support until June 30, 2030.

While upgrading:
- Replace deprecated libncurses5-dev package with libncurses-dev.
- Install gnupg explicitly as it is no longer pre-installed.
- Add legacy-cgi to pip packages. Debian 13 comes with Python 3.13, which
  removed the standard cgi module. Buildbot 3.11.8 / Twisted requires cgi
  at startup, so legacy-cgi is required as a drop-in replacement.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
[ fixed alphabetical order of legacy-cgi ]
Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
Link: https://github.com/openwrt/buildbot/pull/84
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>phase2: fix not signing each package</title>
<updated>2026-06-15T08:06:35Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2026-06-15T08:04:44Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=8177d30013165326023cab9bb2e78e23f4bcf67d'/>
<id>urn:sha1:8177d30013165326023cab9bb2e78e23f4bcf67d</id>
<content type='text'>
This commit fixes the previous commit. While manual testing falsely gave the
impression of it working, this should now really do the trick (via more manual
testing).

Fixes: e29de99 phase2: don't sign each package
Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>CI(deps): Bump docker/metadata-action from 5 to 6</title>
<updated>2026-06-09T13:53:43Z</updated>
<author>
<name>dependabot[bot]</name>
</author>
<published>2026-03-09T22:34:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/buildbot/commit/?id=e21753beff557a8e2eea145c9e4e15fdacc5c50b'/>
<id>urn:sha1:e21753beff557a8e2eea145c9e4e15fdacc5c50b</id>
<content type='text'>
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;</content>
</entry>
</feed>
