[lxc-devel] [distrobuilder/master] chroot: Honor package set order for install/remove

monstermunchkin on Github lxc-bot at linuxcontainers.org
Wed Mar 6 16:25:12 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 364 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190306/2ae9ecee/attachment.bin>
-------------- next part --------------
From 9907a513cf7cfb15931de18385ae8a0beb3c22c0 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Wed, 6 Mar 2019 17:23:04 +0100
Subject: [PATCH] chroot: Honor package set order for install/remove

Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
 distrobuilder/chroot.go | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/distrobuilder/chroot.go b/distrobuilder/chroot.go
index 427d9ba..7113438 100644
--- a/distrobuilder/chroot.go
+++ b/distrobuilder/chroot.go
@@ -53,9 +53,6 @@ func managePackages(def shared.DefinitionPackages, actions []shared.DefinitionAc
 		}
 	}
 
-	var installablePackages []string
-	var removablePackages []string
-
 	for _, set := range def.Sets {
 		if len(set.Releases) > 0 && !lxd.StringInSlice(release, set.Releases) {
 			continue
@@ -66,9 +63,12 @@ func managePackages(def shared.DefinitionPackages, actions []shared.DefinitionAc
 		}
 
 		if set.Action == "install" {
-			installablePackages = append(installablePackages, set.Packages...)
+			err = manager.Install(set.Packages)
 		} else if set.Action == "remove" {
-			removablePackages = append(removablePackages, set.Packages...)
+			err = manager.Remove(set.Packages)
+		}
+		if err != nil {
+			return err
 		}
 	}
 
@@ -77,16 +77,6 @@ func managePackages(def shared.DefinitionPackages, actions []shared.DefinitionAc
 		manager.SetInstallFlags("install", "--allow-downgrade")
 	}
 
-	err = manager.Install(installablePackages)
-	if err != nil {
-		return err
-	}
-
-	err = manager.Remove(removablePackages)
-	if err != nil {
-		return err
-	}
-
 	if def.Cleanup {
 		err = manager.Clean()
 		if err != nil {


More information about the lxc-devel mailing list