[Bug 2038098] Re: oem-config-prepare needs manual execution

Dave Jones 2038098 at bugs.launchpad.net
Mon Oct 2 14:47:16 UTC 2023


** Merge proposal linked:
   https://code.launchpad.net/~waveform/livecd-rootfs/+git/livecd-rootfs/+merge/452563

** Changed in: livecd-rootfs (Ubuntu)
     Assignee: (unassigned) => Dave Jones (waveform)

** Tags added: foundations-todo raspi-image

** Description changed:

  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
- 
+   # 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"
+   # 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 user out).
+ (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

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

Title:
  oem-config-prepare needs manual execution

Status in livecd-rootfs package in Ubuntu:
  New
Status in ubiquity package in Ubuntu:
  New

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/2038098/+subscriptions




More information about the foundations-bugs mailing list