[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