[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