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)
New
Undecided
Dave Jones
ubiquity (Ubuntu)
New
Undecided
Dave Jones

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

In the case of ubuntu-image [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 favour of a simple "add_package oem-config-prepare".

Obviously it's too late in the mantic cycle to look at this, but it should be considered for the 24.04 cycle (assuming we're still intending to use ubiquity / oem-config for that cycle).

[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
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.