[lxc-devel] [lxc-templates/master] Fix openSUSE Leap 15
hwoarang on Github
lxc-bot at linuxcontainers.org
Tue Jun 26 16:00:06 UTC 2018
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 309 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180626/a4bbeb4d/attachment.bin>
-------------- next part --------------
From 2dc3dc54a537b38d9512f8abb0d64bd2ea946b5a Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras at suse.de>
Date: Tue, 26 Jun 2018 12:44:43 +0100
Subject: [PATCH 1/3] templates: opensuse: Drop support for EOL distributions
All releases prior to 42.X have reached EOL so we can drop these
codepaths in order to simplify the code. This also fixes an indentation
issue.
Signed-off-by: Markos Chandras <mchandras at suse.de>
---
templates/lxc-opensuse.in | 30 ++++++------------------------
1 file changed, 6 insertions(+), 24 deletions(-)
diff --git a/templates/lxc-opensuse.in b/templates/lxc-opensuse.in
index 96891c0..6ce5827 100644
--- a/templates/lxc-opensuse.in
+++ b/templates/lxc-opensuse.in
@@ -148,13 +148,9 @@ download_opensuse()
fi
zypper --quiet --root $cache/partial-$arch-packages --non-interactive ar "$oss_repo_url" repo-oss || return 1
- update_repo_url="http://download.opensuse.org/update/$DISTRO/repo/oss"
# Leap update repos were rearranged
- if [[ $DISTRO == "leap/4"* ]] || [[ $DISTRO == "leap/1"* ]]; then
- update_repo_url="http://download.opensuse.org/update/$DISTRO/oss/"
- fi
- # tumbleweed has no update repo
if [[ $DISTRO != "tumbleweed" ]]; then
+ update_repo_url="http://download.opensuse.org/update/$DISTRO/oss/"
zypper --quiet --root $cache/partial-$arch-packages --non-interactive ar "$update_repo_url" update || return 1
fi
@@ -181,31 +177,17 @@ Support: udev
Support: netcfg
Support: hwinfo insserv-compat module-init-tools openSUSE-release openssh
Support: pwdutils sysconfig
+Support: net-tools iproute2
Ignore: rpm:suse-build-key,build-key
Ignore: systemd:systemd-presets-branding
EOF
- if [ $DISTRO = "13.2" ]
- then
- echo "Support: python3-base" >> $cache/partial-$arch-packages/opensuse.conf
- fi
-
if [[ $DISTRO == "tumbleweed" ]]; then
- echo "Preinstall: liblua5_3 libncurses6 libreadline7" >> $cache/partial-$arch-packages/opensuse.conf
+ echo "Preinstall: liblua5_3 libncurses6 libreadline7" >> $cache/partial-$arch-packages/opensuse.conf
else
- echo "Preinstall: liblua5_1 libncurses5 libreadline6" >> $cache/partial-$arch-packages/opensuse.conf
- echo "Support: rpcbind" >> $cache/partial-$arch-packages/opensuse.conf
- fi
-
- # dhcpcd is not in the default repos since Leap 42.1, neither in tumbleweed
- if [[ $DISTRO != "leap/4"* ]] && [[ $DISTRO != "leap/1"* ]] && [[ $DISTRO != "tumbleweed" ]]; then
- echo "Support: dhcpcd" >> $cache/partial-$arch-packages/opensuse.conf
- fi
-
- # Leap and tumbleweed doesn't seem to have iproute2 utils installed
- if [[ $DISTRO == "leap/4"* ]] || [[ $DISTRO == "leap/1"* ]] || [[ $DISTRO == "tumbleweed" ]]; then
- echo "Support: net-tools iproute2" >> $cache/partial-$arch-packages/opensuse.conf
+ echo "Preinstall: liblua5_1 libncurses5 libreadline6" >> $cache/partial-$arch-packages/opensuse.conf
+ echo "Support: rpcbind" >> $cache/partial-$arch-packages/opensuse.conf
fi
if [ "$arch" = "i686" ]; then
@@ -224,7 +206,7 @@ EOF
repos=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/noarch")
if [[ $DISTRO != "tumbleweed" ]]; then # tumbleweed has no update repo
- repos+=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/noarch")
+ repos+=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/noarch")
fi
CLEAN_BUILD=1 BUILD_ARCH="$arch" BUILD_ROOT="$cache/partial-$arch" BUILD_DIST="$cache/partial-$arch-packages/opensuse.conf" PATH="$PATH:$BUILD_DIR" $BUILD_DIR/init_buildsystem --clean --configdir $BUILD_DIR/configs --cachedir $cache/partial-$arch-cache ${repos[*]} || return 1
From 39ba2322d8606acea4ff73b4b5e95043da7a60e7 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras at suse.de>
Date: Tue, 26 Jun 2018 15:33:47 +0100
Subject: [PATCH 2/3] templates: lxc-opensuse.in: Ensure cache is fully
populated
We build our LXC rootfs based on a minimal openSUSE cache. However,
since we are only using this cache to bootstrap the rootfs, we need to
make sure that all packages are present there otherwise we see failures
like the following one
expanding package dependencies...
expansion error
nothing provides net-tools
nothing provides iproute2
Failed to download 'opensuse base'
Most of the needed packages are being pulled in indirectly as
dependencies of other packages but we should be more explicit since
dependencies could change in the future. Finally, we pass
'--no-recommends' in order to have better control of what packages are
being pulled into the cache.
Signed-off-by: Markos Chandras <mchandras at suse.de>
---
templates/lxc-opensuse.in | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/templates/lxc-opensuse.in b/templates/lxc-opensuse.in
index 6ce5827..24f2da7 100644
--- a/templates/lxc-opensuse.in
+++ b/templates/lxc-opensuse.in
@@ -154,8 +154,10 @@ download_opensuse()
zypper --quiet --root $cache/partial-$arch-packages --non-interactive ar "$update_repo_url" update || return 1
fi
+ support_packages=(zypper patterns-openSUSE-base lxc ncurses-utils iputils udev netcfg hwinfo insserv-compat module-init-tools openSUSE-release openssh pwdutils sysconfig net-tools iproute2)
+
zypper --quiet --root $cache/partial-$arch-packages --non-interactive --gpg-auto-import-keys update || return 1
- zypper --root $cache/partial-$arch-packages --non-interactive in --auto-agree-with-licenses --download-only zypper lxc patterns-openSUSE-base bash iputils sed tar rsyslog || return 1
+ zypper --root $cache/partial-$arch-packages --non-interactive in --no-recommends --auto-agree-with-licenses --download-only zypper lxc patterns-openSUSE-base bash iputils sed tar rsyslog ${support_packages[*]} || return 1
cat > $cache/partial-$arch-packages/opensuse.conf << EOF
Preinstall: aaa_base bash coreutils diffutils
@@ -168,16 +170,7 @@ Preinstall: libpcre1
RunScripts: aaa_base
-Support: zypper
-Support: patterns-openSUSE-base
-Support: lxc
-Support: ncurses-utils
-Support: iputils
-Support: udev
-Support: netcfg
-Support: hwinfo insserv-compat module-init-tools openSUSE-release openssh
-Support: pwdutils sysconfig
-Support: net-tools iproute2
+Support: ${support_packages[*]}
Ignore: rpm:suse-build-key,build-key
Ignore: systemd:systemd-presets-branding
From 53ab98b87e8a51f04cc7d836a604defb8523bc69 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras at suse.de>
Date: Tue, 26 Jun 2018 16:30:45 +0100
Subject: [PATCH 3/3] templates: lxc-opensuse.in: Fix openSUSE Leap 15 cache
url
The repo layout has changed in Leap 15 so we need to adapt it. Moreover,
the required packages for Leap 15 mimic those for Tumbleweed.
Signed-off-by: Markos Chandras <mchandras at suse.de>
---
templates/lxc-opensuse.in | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/templates/lxc-opensuse.in b/templates/lxc-opensuse.in
index 24f2da7..232e467 100644
--- a/templates/lxc-opensuse.in
+++ b/templates/lxc-opensuse.in
@@ -178,7 +178,9 @@ EOF
if [[ $DISTRO == "tumbleweed" ]]; then
echo "Preinstall: liblua5_3 libncurses6 libreadline7" >> $cache/partial-$arch-packages/opensuse.conf
- else
+ elif [[ $DISTRO == "leap/1"* ]]; then
+ echo "Preinstall: liblua5_3-5 libncurses6 libreadline7" >> $cache/partial-$arch-packages/opensuse.conf
+ elif [[ $DISTRO == "leap/4"* ]]; then
echo "Preinstall: liblua5_1 libncurses5 libreadline6" >> $cache/partial-$arch-packages/opensuse.conf
echo "Support: rpcbind" >> $cache/partial-$arch-packages/opensuse.conf
fi
@@ -196,8 +198,12 @@ EOF
# openSUSE 13.2 has no noarch directory in update
[ -d $cache/partial-$arch-packages/var/cache/zypp/packages/update/noarch ] || mkdir -p $cache/partial-$arch-packages/var/cache/zypp/packages/update/noarch
-
- repos=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/noarch")
+ if [[ $DISTRO == "leap/4"* ]]; then
+ repos=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/suse/noarch")
+ else
+ # Leap 15 has a different repo structure compared to 42.3
+ repos=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/repo-oss/noarch")
+ fi
if [[ $DISTRO != "tumbleweed" ]]; then # tumbleweed has no update repo
repos+=("--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/$arch" "--repository" "$cache/partial-$arch-packages/var/cache/zypp/packages/update/noarch")
fi
More information about the lxc-devel
mailing list