Skip to content

Commit 6687bc8

Browse files
committed
Release 26.09.49: installs from an ISO get newer kernels again (#103)
Kernel 7.2.6 never showed up in the Hub on systems installed from 26.06.5. The image carries linux-image-7.2.5-skillfishos, held, but not skillfishos-kernel, the package apt upgrades and that fetches every newer kernel. With nothing to upgrade, apt and the Hub had nothing to offer. skillfish-base now recommends skillfishos-kernel. apt installs a Recommends that is new in the upgraded version, so the next Hub update brings it in; its postinst picks the build for the hardware and applies the holds. Recommends rather than Depends because skillfishos-kernel depends on skillfish-base, and a cycle would let dpkg configure the kernel before the base it needs. Verified on the BC-250 dev board with the kernel package removed, to match an install from 26.06.5: the Hub's `apt-get full-upgrade` lists skillfishos-kernel as a new package, dpkg configures skillfish-base first, the kernel package picks 7.2.6-skillfishos and the image and headers end up held. Checks: the release check fails if skillfishos-kernel is not installed or skillfish-base stops recommending it, and ispeziona-iso.sh fails an image without it (the 26.06.5 image would fail) and now also expects skillfish-no-sleep.service to be enabled. The ISO build runs with --apt-recommends false and leaves the package out on purpose, since its postinst would fetch a second kernel inside the chroot, so the next image still needs a way to carry it: a fresh install would not get it from the Recommends, which is not new there. Release check: .32 (BC-250) 211 passed, .22 (x64) 195, no failures.
1 parent 067da59 commit 6687bc8

5 files changed

Lines changed: 41 additions & 2 deletions

File tree

‎SECURITY.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ report those to their respective projects.
1616
| Kernel | `7.2.6-skillfishos` (+ `-x64`) | yes |
1717
| Kernel | `7.2.0-skillfishos`, `7.1.7-skillfishos` | previous series, best effort |
1818
| Kernel | `7.0.11-skillfishos` and older | no |
19-
| Apps | `skillfish-*` `26.09.48` or newer | yes |
19+
| Apps | `skillfish-*` `26.09.49` or newer | yes |
2020

2121
Fixes are delivered through the signed APT repository — `sudo apt update && sudo apt upgrade`.
2222
The installed system does not point at a single address: it carries a mirror list

‎apps/base/os.skillfish.base.metainfo.xml‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,19 @@
3333
<pkgname>skillfish-base</pkgname>
3434
<content_rating type="oars-1.1"/>
3535
<releases>
36+
<release version="26.09.49" date="2026-09-24">
37+
<description>
38+
<p>New kernels reach systems installed from an ISO: the package that brings them, skillfishos-kernel, was missing there, so the Hub never offered kernel 7.2.6. It is now installed with the next update.</p>
39+
<p xml:lang="it">I kernel nuovi arrivano anche sui sistemi installati da una ISO: lì mancava il pacchetto che li porta, skillfishos-kernel, e l'Hub non proponeva il kernel 7.2.6. Ora arriva con il prossimo aggiornamento.</p>
40+
<p xml:lang="fr">Les nouveaux noyaux arrivent aussi sur les systèmes installés depuis une ISO : le paquet qui les apporte, skillfishos-kernel, y manquait, et le Hub ne proposait jamais le noyau 7.2.6. Il s'installe maintenant avec la prochaine mise à jour.</p>
41+
<p xml:lang="es">Los kernels nuevos llegan también a los sistemas instalados desde una ISO: allí faltaba el paquete que los trae, skillfishos-kernel, y el Hub nunca ofrecía el kernel 7.2.6. Ahora se instala con la próxima actualización.</p>
42+
<p xml:lang="pt">Os kernels novos chegam também aos sistemas instalados a partir de uma ISO: lá faltava o pacote que os traz, o skillfishos-kernel, e o Hub nunca propunha o kernel 7.2.6. Agora é instalado com a próxima atualização.</p>
43+
<p xml:lang="de">Neue Kernel erreichen jetzt auch Systeme, die von einer ISO installiert wurden: Dort fehlte das Paket, das sie bringt, skillfishos-kernel, und der Hub bot den Kernel 7.2.6 nie an. Es wird mit dem nächsten Update installiert.</p>
44+
<p xml:lang="pl">Nowe jądra docierają także do systemów zainstalowanych z ISO: brakowało tam pakietu, który je dostarcza, skillfishos-kernel, więc Hub nigdy nie proponował jądra 7.2.6. Teraz instaluje się on z następną aktualizacją.</p>
45+
<p xml:lang="ru">Новые ядра теперь доходят и до систем, установленных с ISO: там не было пакета, который их приносит, skillfishos-kernel, и Hub не предлагал ядро 7.2.6. Теперь он ставится со следующим обновлением.</p>
46+
<p xml:lang="uk">Нові ядра тепер доходять і до систем, встановлених з ISO: там бракувало пакета, який їх приносить, skillfishos-kernel, і Hub не пропонував ядро 7.2.6. Тепер він встановлюється з наступним оновленням.</p>
47+
</description>
48+
</release>
3649
<release version="26.09.48" date="2026-09-24">
3750
<description>
3851
<p>A BC-250 left idle no longer freezes and restarts: the desktop put it to sleep after 15 minutes, and the board never wakes up from sleep. Sleep is now switched off on the BC-250; other computers keep it.</p>

‎scripts/build-debs-ci.sh‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,14 @@ applications read. It is also the one place that asks the SMU how much power the
846846
board, the CPU and the GPU are drawing, and publishes the three numbers for
847847
everything else to read. It pulls in skillfish-boot, which keeps the kernel
848848
command line honest: the board's parameters on a board, and off everything else."
849+
# Issue #103: the images carry a kernel but not skillfishos-kernel, the package
850+
# that apt upgrades and that fetches every newer kernel. Without it the Hub never
851+
# offers one: installs from 26.06.5 sat on 7.2.5 while 7.2.6 was out.
852+
# Recommends, not Depends: skillfishos-kernel depends on skillfish-base, and a
853+
# cycle would let dpkg configure the kernel before the base it needs. apt
854+
# installs a Recommends that is new in the upgraded version, so the next update
855+
# brings it in, and it does not put it back on a machine where it was removed.
856+
sed -i 's/^Depends: .*/&\nRecommends: skillfishos-kernel/' "$OUT/$P/DEBIAN/control"
849857
# base needs its own postinst: enable the watchdog and the freeze check.
850858
# NOTE: core-unlock is only *enabled* (never --now): it warm-reboots the machine when
851859
# it flips the mask, which must not happen during apt. It fires on the next boot.

‎scripts/ispeziona-iso.sh‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,19 @@ for p in fastfetch alacritty; do
238238
&& ok "$p installed" || ko "$p MISSING (SkillFishOS Info needs it)"
239239
done
240240

241+
# Issue #103: the image had a kernel but not skillfishos-kernel, so apt had
242+
# nothing to upgrade and no installation ever got a newer kernel.
243+
chroot "$S" dpkg-query -W -f='${Status}' skillfishos-kernel 2>/dev/null | grep -q "install ok installed" \
244+
&& ok "skillfishos-kernel installed" || ko "skillfishos-kernel MISSING: no newer kernel will ever reach this install"
245+
241246
# Issue #98: a unit with an [Install] section that nobody enabled is a feature
242247
# switched off in every installation made from this image. The 40 compute units
243248
# were off for everybody this way.
244249
for u in skillfish-cu.service skillfish-fand.service skillfish-sensori.service \
245250
skillfish-hub-refresh.timer skillfish-firstboot-flatpaks.service \
246251
skillfish-cpu-governor.service skillfish-core-unlock.service \
247-
skillfish-sshd-keygen.service skillfish-wol.service; do
252+
skillfish-sshd-keygen.service skillfish-wol.service \
253+
skillfish-no-sleep.service; do
248254
if ! find "$S/etc/systemd/system" "$S/usr/lib/systemd/system" -maxdepth 1 -name "$u" -type f 2>/dev/null | grep -q .; then
249255
continue # a unit from a package this image does not carry
250256
fi

‎tests/release/suite/checks_system.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,17 @@ def t_no_sleep_on_bc250(ctx):
226226
return "not a BC-250, sleep left alone (CanSuspend=%s)" % answer
227227

228228

229+
def t_kernel_package(ctx):
230+
"""skillfishos-kernel is what apt upgrades to bring a newer kernel; a system
231+
with a kernel and without it never gets one (issue #103)."""
232+
rc, out, _ = sh("dpkg-query -W -f='${Status} ${Version}' skillfishos-kernel", 15)
233+
check(rc == 0 and out.startswith("install ok installed"),
234+
"skillfishos-kernel is not installed: the Hub will never offer a newer kernel")
235+
rc, rec, _ = sh("dpkg-query -W -f='${Recommends}' skillfish-base", 15)
236+
check("skillfishos-kernel" in rec, "skillfish-base no longer recommends skillfishos-kernel")
237+
return "skillfishos-kernel %s, recommended by skillfish-base" % out.split()[-1]
238+
239+
229240
def run(ctx):
230241
ctx.run("CPUs: all online before the check", t_all_cpus_online, ctx)
231242
ctx.run("packages: all at the release version", t_versions, ctx)
@@ -236,6 +247,7 @@ def run(ctx):
236247
ctx.run("systemd: our units healthy", t_units, ctx)
237248
ctx.run("systemd: units enabled by their package, ISO included", t_units_enabled_by_package, ctx)
238249
ctx.run("sleep: off on the BC-250, untouched elsewhere", t_no_sleep_on_bc250, ctx)
250+
ctx.run("kernel: the package that brings new kernels is installed", t_kernel_package, ctx)
239251
ctx.run("AppStream cards valid", t_metainfo, ctx)
240252
ctx.run("menu entries point at real programs", t_desktop_entries, ctx)
241253
ctx.run("next update removes nothing of the desktop", t_update_removes_nothing, ctx)

0 commit comments

Comments
 (0)