Skip to content

Commit 652d0f3

Browse files
cmd/snap-bootstrap: do not create drivers tree if preseeding
It will be part of the preseed tarball.
1 parent 0b6364e commit 652d0f3

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

cmd/snap-bootstrap/cmd_initramfs_mounts.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -394,11 +394,22 @@ func doInstall(mst *initramfsMountsState, model *asserts.Model, sysSnaps map[sna
394394
})
395395
}
396396

397-
// TODO do not rebuild drivers tree if using preseed tarball
397+
preseed := false
398+
currentSeed, err := mst.LoadSeed(mst.recoverySystem)
399+
if err != nil {
400+
return err
401+
}
402+
preseedSeed, ok := currentSeed.(seed.PreseedCapable)
403+
if ok && preseedSeed.HasArtifact("preseed.tgz") {
404+
preseed = true
405+
}
406+
// Drivers tree will already be built if using the preseed tarball
407+
needsKernelSetup := model.NeedsKernelSetup() && !preseed
408+
398409
isCore := !model.Classic()
399410
kernelBootInfo := gadgetInstall.BuildKernelBootInfo(
400411
kernelSnap, compSeedInfos, kernelMountDir, kernCompsMntPts,
401-
isCore, model.NeedsKernelSetup())
412+
isCore, needsKernelSetup)
402413

403414
bootDevice := ""
404415
installedSystem, err := gadgetInstallRun(model, gadgetMountDir, kernelBootInfo.KSnapInfo, bootDevice, options, installObserver, timings.New(nil))
@@ -447,14 +458,10 @@ func doInstall(mst *initramfsMountsState, model *asserts.Model, sysSnaps map[sna
447458
return err
448459
}
449460

450-
currentSeed, err := mst.LoadSeed(mst.recoverySystem)
451-
if err != nil {
452-
return err
453-
}
454-
preseedSeed, ok := currentSeed.(seed.PreseedCapable)
455-
if ok && preseedSeed.HasArtifact("preseed.tgz") {
461+
if preseed {
456462
runMode := false
457-
if err := installApplyPreseededData(preseedSeed, boot.InitramfsWritableDir(model, runMode)); err != nil {
463+
if err := installApplyPreseededData(preseedSeed,
464+
boot.InitramfsWritableDir(model, runMode)); err != nil {
458465
return err
459466
}
460467
}

cmd/snap-bootstrap/cmd_initramfs_mounts_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -856,10 +856,11 @@ func (s *initramfsMountsSuite) TestInitramfsMountsInstallModeWithCompsHappy(c *C
856856
c.Assert(string(model.Grade()), Equals, "signed")
857857
c.Assert(gadgetRoot, Equals, filepath.Join(boot.InitramfsRunMntDir, "gadget"))
858858
c.Assert(kernelSnapInfo, DeepEquals, &gadgetInstall.KernelSnapInfo{
859-
Name: "pc-kernel",
860-
Revision: snap.R(1),
861-
MountPoint: filepath.Join(boot.InitramfsRunMntDir, "kernel"),
862-
NeedsDriversTree: true,
859+
Name: "pc-kernel",
860+
Revision: snap.R(1),
861+
MountPoint: filepath.Join(boot.InitramfsRunMntDir, "kernel"),
862+
// As the drivers tree is already in the preseed tarball
863+
NeedsDriversTree: false,
863864
IsCore: true,
864865
ModulesComps: []install.KernelModulesComponentInfo{
865866
{

0 commit comments

Comments
 (0)