oem-config-prepare needs manual execution

Bug #2038098 reported by Dave Jones
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
livecd-rootfs (Ubuntu)
Fix Released
Undecided
Unassigned
ubiquity (Ubuntu)
New
Undecided
Unassigned

Bug Description

At present, in pre-installed images that rely on oem-config for their first-boot configuration (the Raspberry Pi Ubuntu desktop images are probably the most obvious of these), it is not enough to simply include oem-config (and an appropriate front-end) in the image. The oem-config-prepare script must also be run, and the appropriate oem user (with the correct UID) must also be created.

Currently this is handled by a series of hacks in either livecd-rootfs or ubuntu-image (whichever is being used to build the image). In the case of livecd-rootfs [1]:

  # Create the oem user account only if it doesn't already exist
  if ! id "oem" &>/dev/null; then
    /usr/sbin/useradd -d /home/oem -G adm,sudo -m -N -u 29999 oem
    /usr/sbin/oem-config-prepare --quiet
    touch "/var/lib/oem-config/run"
  fi

This is doubly pointless since now we use ubuntu-image rather than livecd-rootfs for building these images anyway. Speaking of ubuntu-image, other there we do this [2]:

  # FIXME: Temporarily, we also need to make sure that for desktop pi images
  # we actually run oem-config-prepare before first boot. Otherwise we won't
  # be able to boot into oem-config properly.
  # This should be done via a package postinst ideally, so this manual
  # customization should be only temporary.
  manual:
    execute:
      - path: "/usr/sbin/oem-config-prepare"

(this is also wrong since it misses the creation of the oem user).

It would be much cleaner in both cases to have an extra package (appropriately named "oem-config-prepare") that simply depends on the "oem-config" package, which contains the oem-config-prepare script, but carries out these steps in its postinst. Thus the ubuntu-image yaml can simply include this package under "extra-packages" and the livecd-rootfs hook lines can disappear (in fact the entire hook can disappear as it's for pre-installed desktops which we don't make with livecd-rootfs at all).

[1]: https://git.launchpad.net/livecd-rootfs/tree/live-build/ubuntu/hooks/099-ubuntu-image-customization.chroot#n14

[2]: https://git.launchpad.net/ubuntu-images/tree/ubuntu-pi-arm64.yaml#n68

Related branches

Dave Jones (waveform)
Changed in ubiquity (Ubuntu):
assignee: nobody → Dave Jones (waveform)
Dave Jones (waveform)
Changed in livecd-rootfs (Ubuntu):
assignee: nobody → Dave Jones (waveform)
tags: added: foundations-todo raspi-image
description: updated
Revision history for this message
Dave Jones (waveform) wrote :

Okay, now we're in the noble (24.04) series these should be ready to review. I've rebased the branches as needed (and closed the livecd-rootfs merge as that turned out to be redundant at this point anyway).

Revision history for this message
Dave Jones (waveform) wrote :

Turns out there's still some bits left over in livecd-rootfs after all!

description: updated
Changed in livecd-rootfs (Ubuntu):
assignee: Dave Jones (waveform) → nobody
Changed in ubiquity (Ubuntu):
assignee: Dave Jones (waveform) → nobody
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package livecd-rootfs - 24.04.7

---------------
livecd-rootfs (24.04.7) noble; urgency=medium

  [ Dave Jones ]
  * Remove more bits related to pre-installed desktop images (LP: #2038098)

  [ Jean-Baptiste Lallement ]
  * Include -updates when calling germinate. LP: #1921862.

  [ Dan Bungert ]
  * cpc/vagrant: fix possible autopkgtest hang on ssh-keygen

  [ Simon Poirier ]
  * add systemd-resolved back to buildd images. LP: #2007419.

  [ Steve Langasek ]
  * live-build/functions: add additional debugging to mount_image() on
    failure since we again have loop partitions failing to be block devices.

 -- Steve Langasek <email address hidden> Sun, 03 Dec 2023 21:38:27 -0800

Changed in livecd-rootfs (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.