[Bug 2142151] Re: [MIR] piboot-try

Dave Jones 2142151 at bugs.launchpad.net
Fri Mar 13 10:40:59 UTC 2026


Thanks Ravi -- I'd subscribed the wrong foundations team!

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to piboot-try in Ubuntu.
https://bugs.launchpad.net/bugs/2142151

Title:
  [MIR] piboot-try

Status in piboot-try package in Ubuntu:
  Fix Committed

Bug description:
  [Availability]
  The package piboot-try is already in Ubuntu universe.
  The package piboot-try build for the architectures it is designed to work on.
  It currently builds and works for architectures: arm64 armhf
  Link to package https://launchpad.net/ubuntu/+source/piboot-try

  [Rationale]
  - The package piboot-try is required in Ubuntu main for raspi-common platform
    seed
  - It manages the boot assets on all Raspberry Pi images from resolute onwards
  - The package has been split from flash-kernel (main), which was the original
    location for this code after the Pi delta in flash-kernel grew to be more
    than 50% of our delta with Debian, and had nothing in common with the rest of
    flash-kernel
  - Put another way, this code was already in main as part of flash-kernel but
    has now been moved into its own package to reduce our flash-kernel delta with
    Debian
  - For the time being the code is (nearly) a straight copy of the flash-kernel
    code minus the bits definitely not needed (e.g. the flash-kernel-installer
    package); over time it is anticipated the vast majority of the remaining
    flash-kernel code will also disappear

  - Nothing else in the archive implements the required logic, but this isn't
    terribly surprising given the unique nature of the Pi's bootloader

  - This is the first time piboot-try will be in main (as it is a new package),
    but the code was previously in main as part of the flash-kernel package; the
    original MIR for flash-kernel is LP: #339947

  - The binary package piboot-try needs to be in main to enable the building of
    the Ubuntu for Raspberry Pi images where it is taking the place of the
    flash-kernel package (see LP: #2138618 and associated merge request for the
    raspi-common platform seed)

  - The package piboot-try is required in Ubuntu main for the resolute
  release

  [Security]
  - To the best of my knowledge there are no current or historical CVEs for
    flash-kernel (and thus none for piboot-try either); I've been the primary
    maintainer of the flash-kernel package in Ubuntu for several years now and
    have yet to see a CVE for it
  - There have been CVEs in packages like u-boot which flash-kernel is
    responsible for installing, but none that are relevant to piboot-try (we
    moved away from using u-boot on the Pi several years ago)

  - There are no `suid` or `sgid` binaries
  - The package DOES install executables (scripts) in `/usr/sbin`
    - These scripts (`flash-kernel` and `piboot-try`) are not new but were
      originally in the flash-kernel package
  - The package DOES install two services:
    - piboot-try-reboot: Detects when "new" (untested) boot assets are present
      and initiates a reboot into the "tryboot" mode to test them
    - piboot-try-validate: Validates that a boot is "successful" and moves the
      "new" boot assets into the "current" slot
  - Package does not open privileged ports (ports < 1024).
  - Package does not expose any external endpoints
  - Package does not contain extensions to security-sensitive software (filters,
    scanners, plugins, UI skins, ...)

  [Quality assurance - function/usage]
  - The package works well right after install

  [Quality assurance - maintenance]
  - While flash-kernel is present in Debian and primarily maintained there, the
    piboot-try portion of the package has always been Ubuntu specific
    - https://bugs.launchpad.net/ubuntu/+source/piboot-try
  - The package does not deal with exotic hardware we cannot support (at least, I
    hope Raspberry Pi's don't count as "exotic"; enough Canonicalers seem to own
    a few :)

  [Quality assurance - testing]
  - The package runs a test suite on build time, if it fails it makes the build
    fail, link to build log:
    - https://launchpadlibrarian.net/848101836/buildlog_ubuntu-resolute-arm64.piboot-try_1.0_BUILDING.txt.gz
  - The package runs an autopkgtest, and is currently passing on
    the arm64 and armhf architectures, link to test logs:
    - https://autopkgtest.ubuntu.com/packages/piboot-try
    - https://autopkgtest.ubuntu.com/results/autopkgtest-resolute/resolute/arm64/p/piboot-try/20260218_024612_7c3ea@/log.gz
    - https://autopkgtest.ubuntu.com/results/autopkgtest-resolute/resolute/armhf/p/piboot-try/20260218_020250_6ea35@/log.gz
  - The package does have not failing autopkgtests right now

  - The package can not be well tested at build or autopkgtest time because
    neither will actually test boot on Raspberry Pi hardware. To make up for
    that:
    - We have access to such hardware in the team
    - Before every upload, the operation of piboot-try will be tested on actual
      hardware
    - The functionality will also be tested regularly as several team members use
      Raspberry Pis daily, and any kernel upgrade, initramfs update, or call to
      flash-kernel will exercise the functionality of the package

  [Quality assurance - packaging]
  - A mechanism to detect and fetch new upstream versions is not present because
    it is a native package developed by us
  - debian/control defines a correct Maintainer field
  - This package does not yield massive lintian Warnings, Errors
    - A recent build log is attached as piboot-try_1.0_arm64-2026-02-14T01:04:53Z.build
  - No output from lintian --pedantic
  - Lintian overrides are not present

  - This package does not rely on obsolete or about to be demoted packages.
  - The package will be installed by default, but does not ask debconf
    questions higher than medium
  - Packaging and build is easy, link to debian/rules
    - Cannot currently link to d/rules as git.launchpad.net scripts are disabled
      - git clone lp:piboot-try
      - vim debian/rules

  [UI standards]
  - Application is end-user facing, translation not currently present (none
    inherited from flash-kernel)
  - End-user applications without desktop file, not needed because console only

  [Dependencies]
  - Used check-mir from ubuntu-dev-tools to validate all dependencies or
    recommends are in main.

  [Standards compliance]
  - This package correctly follows FHS and Debian Policy

  [Maintenance/Owner]
  - The owning team will be foundations (architectures squad) and I have their
    acknowledgment for that commitment
  - The future owning team is already subscribed to the package
  - This does not use static builds
  - This does not use vendored code
  - This package is not rust based
  - The package has been built within the last 3 months in the archive
  - Build link on launchpad: https://launchpad.net/ubuntu/+source/piboot-try/1.0
  - This change will not impact other teams

  [Background information]
  The following blog post contains details of the major changes made to
  flash-kernel in questing which ultimately led to the decision to split out
  piboot-try:

  https://waldorf.waveform.org.uk/2025/pull-yourself-up-by-your-
  bootstraps.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/piboot-try/+bug/2142151/+subscriptions




More information about the foundations-bugs mailing list