[PATCH] rpmostreepayload: Avoid shutil.copytree in favor of cp -r to fix symlinks

Radek Vykydal rvykydal at redhat.com
Wed Dec 3 13:53:09 UTC 2014


Looks ok to me.

On 12/03/2014 03:59 AM, Colin Walters wrote:
> shutil.copytree() follows symlinks by default which I didn't realize,
> and this actively breaks things as grubenv is a symlink.
>
> Since we're shelling out to 'cp' in a case above, might as well do it
> here.
>
> This also means that if we hit e.g. ENOSPC we'll enter the error
> handling codepath instead of an uncaught traceback.
>
> (Yes, this code is crappy, should probably live in bootloader.py,
>   except I'm going through gyrations here to avoid requiring
>   any changes in how mainline bootloaders work)
> ---
>   pyanaconda/packaging/rpmostreepayload.py | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
> index ade664c..f96a316 100644
> --- a/pyanaconda/packaging/rpmostreepayload.py
> +++ b/pyanaconda/packaging/rpmostreepayload.py
> @@ -119,7 +119,7 @@ class RPMOSTreePayload(ArchivePayload):
>                       self._safeExecWithRedirect('cp', ['-r', '-p', sub_srcpath, sub_destpath])
>               else:
>                   log.info("Copying bootloader data: " + fname)
> -                shutil.copytree(srcpath, destpath)
> +                self._safeExecWithRedirect('cp', ['-r', '-p', srcpath, destpath])
>   
>       def install(self):
>           mainctx = GLib.MainContext.new()
>
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/anaconda-patches/attachments/20141203/5d7cf0a7/attachment.html>


More information about the anaconda-patches mailing list