CtrlK
BlogDocsLog inGet started
Tessl Logo

canonical/mason

Agent kit for working on canonical/chisel-releases. Cross-agent skills + scripts for authoring and reviewing chisel slice definition files.

81

Quality

85%

Does it follow best practices?

Impact

75%

Average score across 5 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

_cross-release-porting.mdskills/chisel-slice-porter/kb/

Porting Slices Across Ubuntu Releases

SDFs for the same package differ across Ubuntu release branches. Forward-porting is adaptation, not copy-paste. Always run deb-list.py against each target release and verify actual .deb contents.

Cross-Release Differences

CategoryExampleWhat changes
usrmerge/bin/bash -> /usr/bin/bashUbuntu 24.04+ moved binaries from /bin/ to /usr/bin/. Update contents paths per release
t64 transitionlibssl3 -> libssl3t64Ubuntu 24.04+ renamed libraries for 64-bit time_t. Update essential deps and copyright refs
Package splits/renamesTransitional packages, new soname packagesMay need entirely different SDF structure or filename
Soname bumpslibrocksdb8.9 (24.04) -> librocksdb9.10 (25.10) -> librocksdb9.11 (26.04)Old SDF deleted (archive no longer carries it); new SDF with new filename
Essential syntaxList (- foo_bar) vs map (foo_bar:)Gated by the branch's chisel.yaml format:. v3 branches must use map syntax in essential: (the list form is a parse error, and v3-essential: is rejected -- fold its entries into essential:); v1/v2 use the list, with v3-essential: alongside it for arch gating
Slice granularitybashbug inline in bins (24.04) vs separate bashbug slice (26.04)Newer releases may demand finer-grained decomposition
New/removed filesNew config files, removed scripts.deb contents change between releases. Some paths exist in one release but not another
Dependency changesNew deps added, old deps droppedDepends: may differ. Always re-check with deb-list.py or apt-cache depends

Multiarch Quirks

  • binutils-common per-arch despite Architecture: all-looking contents. Don't assume one SDF covers all arches without checking.
  • Cross-toolchain packages (<tool>-<triple>-linux-gnu, e.g. binutils-aarch64-linux-gnu) ship prefixed binaries (aarch64-linux-gnu-ld). Unprefixed symlinks (/usr/bin/ld -> aarch64-linux-gnu-ld) are not in the cross deb -- consumers create them. Convention: arch-specific SDFs leave them out; top-level binutils SDF carries the unprefixed name with a # Symlink to ${ARCH_TRIPLET}-ld comment.
  • /proc/self/exe workaround for chroot Java tests (chroot breaks /proc/self/exe, which the JVM launcher reads): inside the rootfs, mkdir -p "${rootfs}/proc/self" && ln -sf <path-to-java-binary> "${rootfs}/proc/self/exe" -- see the openjdk task.yaml files for the convention.

README.md

tile.json