[lxc-devel] [PATCH] fix lxc-fedora template for fedora 21
Michael Adam
obnox at samba.org
Fri Jan 2 19:59:24 UTC 2015
Hi,
And a happy new year to everybody!
Is this the correct way to submit a patch?
Or is it also possible to simply create a pull request on github?
Anyhow, here it is:
the fedora template fails for f21 because in
f21, a package fedora-repos has been split out
of the fedora-release package, and fedora-repos
is also required.
Attached patch fixes this for me by adding the
fedora-repos pacakge if the release is >= 21.
Comments / merge appreciated...
Thanks, Michael
-------------- next part --------------
From c8324559061541e16217e1e9da6886677bbf6516 Mon Sep 17 00:00:00 2001
From: Michael Adam <obnox at samba.org>
Date: Fri, 2 Jan 2015 20:28:59 +0100
Subject: [PATCH] lxc-fedora: In fedora21, the fedora-repos package is needed.
fedora-release has been split into fedora-release and fedora-repos.
Signed-off-by: Michael Adam <obnox at samba.org>
---
templates/lxc-fedora.in | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/templates/lxc-fedora.in b/templates/lxc-fedora.in
index 65e9959..2123e69 100644
--- a/templates/lxc-fedora.in
+++ b/templates/lxc-fedora.in
@@ -823,6 +823,13 @@ download_fedora()
PKG_LIST="${PKG_LIST} db4-utils"
fi
+ if [[ ${release} -ge 21 ]]
+ then
+ # Since Fedora 21, a separate fedora-repos package is needed.
+ # Before, the information was conained in fedora-release.
+ PKG_LIST="${PKG_LIST} fedora-repos"
+ fi
+
DOWNLOAD_OK=no
# We're splitting the old loop into two loops plus a directory retrival.
@@ -851,7 +858,7 @@ download_fedora()
RELEASE_URL="$MIRROR_URL/Packages/"
fi
- echo "Fetching rpm name from $RELEASE_URL..."
+ echo "Fetching release rpm name from $RELEASE_URL..."
# This code is mildly "brittle" in that it assumes a certain directory
# page format and parsing HTML. I've done worse. :-P
RELEASE_RPM=$(curl -L -f "$RELEASE_URL" | sed -e "/fedora-release-${release}-/!d" -e 's/.*<a href=\"//' -e 's/\">.*//' )
@@ -867,6 +874,24 @@ download_fedora()
continue
fi
+ # F21 and newer need fedora-repos in addition to fedora-release.
+ if [ "$release" -ge "21" ]; then
+ echo "Fetching repos rpm name from $RELEASE_URL..."
+ REPOS_RPM=$(curl -L -f "$RELEASE_URL" | sed -e "/fedora-repos-${release}-/!d" -e 's/.*<a href=\"//' -e 's/\">.*//' )
+ if [ $? -ne 0 -o "${REPOS_RPM}" = "" ]; then
+ echo "Failed to identify fedora repos rpm."
+ continue
+ fi
+
+ echo "Fetching fedora repos rpm from ${RELEASE_URL}/${REPOS_RPM}..."
+ curl -L -f "${RELEASE_URL}/${REPOS_RPM}" > ${INSTALL_ROOT}/${REPOS_RPM}
+ if [ $? -ne 0 ]; then
+ echo "Failed to download fedora repos rpm ${RELEASE_RPM}."
+ continue
+ fi
+ fi
+
+
DOWNLOAD_OK=yes
break
done
@@ -887,9 +912,18 @@ download_fedora()
fedora_bootstrap_mounts
${BOOTSTRAP_CHROOT}rpm --root ${BOOTSTRAP_INSTALL_ROOT} --initdb
+
# The --nodeps is STUPID but F15 had a bogus dependency on RawHide?!?!
${BOOTSTRAP_CHROOT}rpm --root ${BOOTSTRAP_INSTALL_ROOT} --nodeps -ivh ${BOOTSTRAP_INSTALL_ROOT}/${RELEASE_RPM}
+ # F21 and newer need fedora-repos in addition to fedora-release...
+ # Note that fedora-release and fedora-system have a mutual dependency.
+ # So installing the reops package after the release package we can
+ # spare one --nodeps.
+ if [ "$release" -ge "21" ]; then
+ ${BOOTSTRAP_CHROOT}rpm --root ${BOOTSTRAP_INSTALL_ROOT} -ivh ${BOOTSTRAP_INSTALL_ROOT}/${REPOS_RPM}
+ fi
+
# yum will take $basearch from host, so force the arch we want
sed -i "s|\$basearch|$basearch|" ${BOOTSTRAP_DIR}/${BOOTSTRAP_INSTALL_ROOT}/etc/yum.repos.d/*
--
2.1.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20150102/04cb350a/attachment.sig>
More information about the lxc-devel
mailing list