[lxc-devel] [PATCH] fix lxc-fedora template for fedora 21

Serge Hallyn serge.hallyn at ubuntu.com
Mon Jan 5 16:47:17 UTC 2015


Quoting Michael Adam (obnox at samba.org):
> Hi,
> 
> And a happy new year to everybody!
> 
> Is this the correct way to submit a patch?

Almost - it's perfect, except for please put the patches inline rather
than as attachments, if possible.

> Or is it also possible to simply create a pull request on github?

No for thi sproject I prefer email so that everyone can see them.

> Anyhow, here it is:

Thanks for the patch.  It looks good to me, though I have not tested
and don't have any fedora right now.  I'm hoping mwarfield will
see it and comment if there are any problems, but meanwhile acked belw.

> 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

> 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>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  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
> 




> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel



More information about the lxc-devel mailing list