← Back to team overview

debcrafters-packages team mailing list archive

[Bug 2118762] Re: [UBUNTU 25.04] genprotimg fails on Ubuntu 25.04

 

Thank you Nick, I now rebuild the packages with 
-v2.37.0-0ubuntu2 (plucky)
respectively
-v2.31.0-0ubuntu5.1 (noble)
to include the changelog entries of the version that are currently in -proposed into the .changes file
and re-uploaded.
New version (of s390-tools and s390-tools-signed) are now in unapproved queue:
https://launchpad.net/ubuntu/plucky/+queue?queue_state=1&queue_text=s390-tools
https://launchpad.net/ubuntu/noble/+queue?queue_state=1&queue_text=s390-tools

-- 
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to s390-tools in Ubuntu.
https://bugs.launchpad.net/bugs/2118762

Title:
  [UBUNTU 25.04] genprotimg fails on Ubuntu 25.04

Status in Ubuntu on IBM z Systems:
  In Progress
Status in s390-tools package in Ubuntu:
  Fix Released
Status in s390-tools-signed package in Ubuntu:
  Fix Released
Status in s390-tools source package in Plucky:
  Triaged
Status in s390-tools-signed source package in Plucky:
  Triaged
Status in s390-tools source package in Questing:
  Fix Released
Status in s390-tools-signed source package in Questing:
  Fix Released

Bug description:
  SRU Justification:

  [ Impact ]

   * Starting with Ubuntu Server 25.04 genprotimg (part of s390-tools 2.37.0)
     fails with:
     "error: Cannot read stage3a at /usr/share/s390-tools/pvimg/stage3a.bin"

   * However, the needed file is located /usr/share/s390-tools/pvimg/boot,
     so just in the wrong folder.
     The genprotimg tool expects them 'one up' in /usr/share/s390-tools/pvimg,
     the same folder where the genprotimg tool itself is located in.

   * Prior to 25.04 the Makefile build and placed the stage3*.bin files at
     /usr/share/s390-tools/pvimg/ and the debian helper installed it in the
     same folder.

   * With s390-tools 2.37.0 the Makefile builds them in
     /usr/share/s390-tools/pvimg/boot
     hence installing them there (in the same folder) is no longer correct.

   * The solution is simply to move them again one up
     (or let's better say: explicitly install them to the correct folder)
     using/modifying d/s390-tools-data.install.

  [ Test Plan ]

   * An Ubuntu Server 25.04 installation with s390-tools installed is
  required.

   * A (dummy) host key is needed - which can be for example obtained by IBM.
     Here assuming it's named HKD.crt and placed in the user's home directory.

   * On a system without the package modification (that is discussed here),
     means with having the stage3* files in /usr/share/s390-tools/pvimg/boot),
     the genprotimg tool will fail with the the error that was reported:
     $ genprotimg --kernel /boot/vmlinuz-$(uname -r) --output se.img -k ~/HKD.crt --no-verify
     Host-key document verification is disabled. \
     The Secure Execution image may not be protected.
     error: Cannot read stage3a at `/usr/share/s390-tools/pvimg/stage3a.bin`

   * However, on a system with the updated package installed,
     means with having the stage3* files in /usr/share/s390-tools/pvimg),
     the genprotimg tool will successfully work:
     $ genprotimg --kernel /boot/-$(uname -r) --output se.img -k ~/HKD.crt --no-verify
     Host-key document verification is disabled. \
     The Secure Execution image may not be protected.
     Successfully generated the Secure Execution image.

   * This is a step of the creation of secure execution images for s390x
     (confidential computing).
     The entire end-to-end setup for secure execution is described here
     in more detail, also uses Ubuntu Server as an example:
     https://www.ibm.com/docs/en/linuxonibm/pdf/lx24se04.pdf
     (esp.  genprotimg, page 60ff)

  [ Where problems could occur ]

   * The s390-tools code itself was not touched,
     just the packaging meta data d/s390-tools-data.install file.

   * Since this issue is in plucky only, an interim release,
     but the vast majority of secure execution use cases is on LTS releases,
     not many users will be affected.

   * And if a user is affected, the obvious solution/workaround is to
     either copy or link the needed, files,
     so that they can be found by genprotimg.
     And that is exactly what the modification here does.

   * However, regressions and issues could have been introduced:
     in case the syntax in the d/s390-tools-data.install file is wrong,
     or it has wrong permissions
     or is not properly recognized and/or evaluated (for whatever reason)
     in the Debian package build process.
     To mitigate this a test build in PPA was done.

   * Since the files were always in the same folder than the genprotimg tool,
     they should also be there in plucky.

  [ Other Info ]

   * The modification has already landed in questing.

   * With that, other than plucky, no other Ubuntu release is affected.
  __________

  ---Problem Description---

  On Ubuntu 25.04 genprotimg fails with error: Cannot read stage3a at /usr/share/s390-tools/pvimg/stage3a.bin
  The file is located /usr/share/s390-tools/pvimg/boot however

  Machine Type = n/a

  ---Debugger---
  A debugger is not configured

  ---Steps to Reproduce---
   install s390-tools, try to use genprotimg

  ---uname output---
  n/a

  Userspace rpm: s390-tools

  Userspace tool common name: genprotimg

  Userspace tool obtained from project website:  na

  The userspace tool has the following bit modes: both

  *Additional Instructions for d.herrendoerfer@xxxxxxxxxx:
  -Attach ltrace and strace of userspace application.

  == Comment by <MHartmay@xxxxxxxxxx> =========

  The issue is with the packager, see
  https://git.launchpad.net/ubuntu/+source/s390-tools/tree/debian/s390-tools-
  data.install?h=ubuntu/plucky

  Instead of what is expected '.../pvimg/', Ubuntu installs the file to
  the path '.../pvimg/boot/'.

  So the s390-tools-data.install file needs to be changed from

  ```
  rust/pvimg/boot/stage3a.bin usr/share/s390-tools/pvimg/boot/
  rust/pvimg/boot/stage3b_reloc.bin usr/share/s390-tools/pvimg/boot/
  ```

  to

  ```
  rust/pvimg/boot/stage3a.bin usr/share/s390-tools/pvimg/
  rust/pvimg/boot/stage3b_reloc.bin usr/share/s390-tools/pvimg/
  ```

  FYI, I've already talked to Frank.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2118762/+subscriptions