Merge pull request #1751 from mwhudson/no-oem-for-core
move oem configuration stuff to a separate method
This commit is contained in:
commit
e072ad0615
|
@ -0,0 +1,32 @@
|
||||||
|
#source-catalog: examples/sources/desktop.yaml
|
||||||
|
Source:
|
||||||
|
source: ubuntu-desktop
|
||||||
|
Welcome:
|
||||||
|
lang: en_US
|
||||||
|
Refresh:
|
||||||
|
update: no
|
||||||
|
Keyboard:
|
||||||
|
layout: us
|
||||||
|
Zdev:
|
||||||
|
accept-default: yes
|
||||||
|
Network:
|
||||||
|
accept-default: yes
|
||||||
|
Proxy:
|
||||||
|
proxy: ""
|
||||||
|
Mirror:
|
||||||
|
country-code: us
|
||||||
|
Filesystem:
|
||||||
|
guided: yes
|
||||||
|
guided-index: 0
|
||||||
|
Identity:
|
||||||
|
realname: Ubuntu
|
||||||
|
username: ubuntu
|
||||||
|
hostname: ubuntu-server
|
||||||
|
# ubuntu
|
||||||
|
password: '$6$wdAcoXrU039hKYPd$508Qvbe7ObUnxoj15DRCkzC3qO7edjH0VV7BPNRDYK4QR8ofJaEEF2heacn0QgD.f8pO8SNp83XNdWG6tocBM1'
|
||||||
|
UbuntuPro:
|
||||||
|
token: ""
|
||||||
|
InstallProgress:
|
||||||
|
reboot: yes
|
||||||
|
Drivers:
|
||||||
|
install: no
|
|
@ -224,6 +224,55 @@ class InstallController(SubiquityController):
|
||||||
device_map = json.load(fp)
|
device_map = json.load(fp)
|
||||||
self.app.controllers.Filesystem.update_devices(device_map)
|
self.app.controllers.Filesystem.update_devices(device_map)
|
||||||
|
|
||||||
|
async def pre_curthooks_oem_configuration(self, context):
|
||||||
|
async def install_oem_metapackages(ctx):
|
||||||
|
# For OEM, we basically mimic what ubuntu-drivers does:
|
||||||
|
# 1. Install each package with apt-get install
|
||||||
|
# 2. For each package, run apt-get update using only the source
|
||||||
|
# installed by said package.
|
||||||
|
# 3. Run apt-get install again for each package. This will upgrade
|
||||||
|
# them to the version found in the OEM archive.
|
||||||
|
|
||||||
|
# NOTE In ubuntu-drivers, this is done in a single call to apt-get
|
||||||
|
# install.
|
||||||
|
for pkg in self.model.oem.metapkgs:
|
||||||
|
await self.install_package(package=pkg.name, context=ctx)
|
||||||
|
|
||||||
|
if not self.model.network.has_network:
|
||||||
|
return
|
||||||
|
|
||||||
|
for pkg in self.model.oem.metapkgs:
|
||||||
|
source_list = f"/etc/apt/sources.list.d/{pkg.name}.list"
|
||||||
|
await run_curtin_command(
|
||||||
|
self.app,
|
||||||
|
context,
|
||||||
|
"in-target",
|
||||||
|
"-t",
|
||||||
|
self.tpath(),
|
||||||
|
"--",
|
||||||
|
"apt-get",
|
||||||
|
"update",
|
||||||
|
"-o",
|
||||||
|
f"Dir::Etc::SourceList={source_list}",
|
||||||
|
"-o",
|
||||||
|
"Dir::Etc::SourceParts=/dev/null",
|
||||||
|
"--no-list-cleanup",
|
||||||
|
private_mounts=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
# NOTE In ubuntu-drivers, this is done in a single call to
|
||||||
|
# apt-get install.
|
||||||
|
for pkg in self.model.oem.metapkgs:
|
||||||
|
await self.install_package(package=pkg.name)
|
||||||
|
|
||||||
|
if not self.model.oem.metapkgs:
|
||||||
|
return
|
||||||
|
|
||||||
|
with context.child(
|
||||||
|
"install_oem_metapackages", "installing applicable OEM metapackages"
|
||||||
|
) as child:
|
||||||
|
await install_oem_metapackages(child)
|
||||||
|
|
||||||
@with_context(description="installing system", level="INFO", childlevel="DEBUG")
|
@with_context(description="installing system", level="INFO", childlevel="DEBUG")
|
||||||
async def curtin_install(self, *, context, source):
|
async def curtin_install(self, *, context, source):
|
||||||
if self.app.opts.dry_run:
|
if self.app.opts.dry_run:
|
||||||
|
@ -343,48 +392,14 @@ class InstallController(SubiquityController):
|
||||||
)
|
)
|
||||||
await self.setup_target(context=context)
|
await self.setup_target(context=context)
|
||||||
|
|
||||||
# For OEM, we basically mimic what ubuntu-drivers does:
|
if self.supports_apt():
|
||||||
# 1. Install each package with apt-get install
|
await self.pre_curthooks_oem_configuration(context=context)
|
||||||
# 2. For each package, run apt-get update using only the source
|
|
||||||
# installed by said package.
|
|
||||||
# 3. Run apt-get install again for each package. This will upgrade
|
|
||||||
# them to the version found in the OEM archive.
|
|
||||||
|
|
||||||
# NOTE In ubuntu-drivers, this is done in a single call to apt-get
|
# If we already have a kernel installed, don't bother requesting
|
||||||
# install.
|
# curthooks to install it again or we might end up with two
|
||||||
for pkg in self.model.oem.metapkgs:
|
# kernels.
|
||||||
await self.install_package(package=pkg.name)
|
if await list_installed_kernels(Path(self.tpath())):
|
||||||
|
self.model.kernel.curthooks_no_install = True
|
||||||
if self.model.network.has_network:
|
|
||||||
for pkg in self.model.oem.metapkgs:
|
|
||||||
source_list = f"/etc/apt/sources.list.d/{pkg.name}.list"
|
|
||||||
await run_curtin_command(
|
|
||||||
self.app,
|
|
||||||
context,
|
|
||||||
"in-target",
|
|
||||||
"-t",
|
|
||||||
self.tpath(),
|
|
||||||
"--",
|
|
||||||
"apt-get",
|
|
||||||
"update",
|
|
||||||
"-o",
|
|
||||||
f"Dir::Etc::SourceList={source_list}",
|
|
||||||
"-o",
|
|
||||||
"Dir::Etc::SourceParts=/dev/null",
|
|
||||||
"--no-list-cleanup",
|
|
||||||
private_mounts=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
# NOTE In ubuntu-drivers, this is done in a single call to
|
|
||||||
# apt-get install.
|
|
||||||
for pkg in self.model.oem.metapkgs:
|
|
||||||
await self.install_package(package=pkg.name)
|
|
||||||
|
|
||||||
# If we already have a kernel installed, don't bother requesting
|
|
||||||
# curthooks to install it again or we might end up with two
|
|
||||||
# kernels.
|
|
||||||
if await list_installed_kernels(Path(self.tpath())):
|
|
||||||
self.model.kernel.curthooks_no_install = True
|
|
||||||
|
|
||||||
await run_curtin_step(
|
await run_curtin_step(
|
||||||
name="curthooks",
|
name="curthooks",
|
||||||
|
|
Loading…
Reference in New Issue