[lxc-devel] [distrobuilder/master] openSUSE fixes

monstermunchkin on Github lxc-bot at linuxcontainers.org
Wed Mar 6 15:33:36 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 310 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190306/2402b80b/attachment.bin>
-------------- next part --------------
From 3d46e04141115ca9c1f75a7620803fd573cddd06 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Wed, 6 Mar 2019 16:19:38 +0100
Subject: [PATCH 1/4] managers: Allow overriding install flags

Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
 managers/manager.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/managers/manager.go b/managers/manager.go
index 21d7f0a..bcb406d 100644
--- a/managers/manager.go
+++ b/managers/manager.go
@@ -116,3 +116,8 @@ func (m Manager) Update() error {
 
 	return shared.RunCommand(m.command, args...)
 }
+
+// SetFlags overrides the default install flags.
+func (m *Manager) SetInstallFlags(flags ...string) {
+	m.flags.install = flags
+}

From 6ad760dc4400069b9bdbfe210fa4a37f73325040 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Wed, 6 Mar 2019 16:20:41 +0100
Subject: [PATCH 2/4] zypper: Remove --allow-downgrade install flag

Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
 managers/zypper.go | 1 -
 1 file changed, 1 deletion(-)

diff --git a/managers/zypper.go b/managers/zypper.go
index 60f3395..6f54213 100644
--- a/managers/zypper.go
+++ b/managers/zypper.go
@@ -15,7 +15,6 @@ func NewZypper() *Manager {
 			},
 			install: []string{
 				"install",
-				"--allow-downgrade",
 			},
 			remove: []string{
 				"remove",

From 689ca532dd4aee34a29f12d37603cdbc744d2f54 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Wed, 6 Mar 2019 16:21:24 +0100
Subject: [PATCH 3/4] sources: Support openSUSE Leap 42.3

Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
 sources/opensuse-http.go | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/sources/opensuse-http.go b/sources/opensuse-http.go
index c5ee04a..04096b3 100644
--- a/sources/opensuse-http.go
+++ b/sources/opensuse-http.go
@@ -131,15 +131,20 @@ func (s *OpenSUSEHTTP) getPathToTarball(baseURL string, release string, arch str
 	} else {
 		u.Path = path.Join(u.Path, fmt.Sprintf("openSUSE-Leap-%s", release))
 
-		switch arch {
-		case "x86_64":
-			u.Path = path.Join(u.Path, "containers")
-		case "aarch64", "ppc64le":
-			u.Path = path.Join(u.Path, "containers_ports")
+		if release == "42.3" {
+			u.Path = path.Join(u.Path, "containers",
+				fmt.Sprintf("openSUSE-Leap-%s-container-image.%s-lxc.tar.xz", release, arch))
+		} else {
+			switch arch {
+			case "x86_64":
+				u.Path = path.Join(u.Path, "containers")
+			case "aarch64", "ppc64le":
+				u.Path = path.Join(u.Path, "containers_ports")
+			}
+
+			u.Path = path.Join(u.Path, fmt.Sprintf("opensuse-leap-image.%s-lxc.tar.xz",
+				arch))
 		}
-
-		u.Path = path.Join(u.Path, fmt.Sprintf("opensuse-leap-image.%s-lxc.tar.xz",
-			arch))
 	}
 
 	return u.String()

From a915218806a27baa903105e80521702cfa788ea0 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Wed, 6 Mar 2019 16:29:23 +0100
Subject: [PATCH 4/4] chroot: Special case openSUSE Tumbleweed

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

diff --git a/distrobuilder/chroot.go b/distrobuilder/chroot.go
index ac0a4dd..427d9ba 100644
--- a/distrobuilder/chroot.go
+++ b/distrobuilder/chroot.go
@@ -2,6 +2,7 @@ package main
 
 import (
 	"fmt"
+	"strings"
 
 	lxd "github.com/lxc/lxd/shared"
 
@@ -71,6 +72,11 @@ func managePackages(def shared.DefinitionPackages, actions []shared.DefinitionAc
 		}
 	}
 
+	// TODO: Remove this once openSUSE Tumbleweed builds properly without it.
+	if strings.ToLower(release) == "tumbleweed" {
+		manager.SetInstallFlags("install", "--allow-downgrade")
+	}
+
 	err = manager.Install(installablePackages)
 	if err != nil {
 		return err


More information about the lxc-devel mailing list