Download archives with permissive umask (thanks David Konerding).
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 10 Aug 2011 19:26:51 +0000 (20:26 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 10 Aug 2011 19:30:05 +0000 (20:30 +0100)
https://www.redhat.com/archives/libguestfs/2011-August/msg00025.html

febootstrap_debian.ml
febootstrap_pacman.ml
febootstrap_yum_rpm.ml

index f0d0be5..4aa7389 100644 (file)
@@ -47,7 +47,7 @@ let debian_resolve_dependencies_and_download names =
 
   (* Download the packages. *)
   let cmd =
-    sprintf "cd %s && aptitude download %s"
+    sprintf "umask 0000; cd %s && aptitude download %s"
       (Filename.quote tmpdir)
       (String.concat " " (List.map Filename.quote pkgs)) in
   run_command cmd;
@@ -85,7 +85,7 @@ let debian_list_files pkg =
   let pkgdir = tmpdir // pkg ^ ".d" in
   mkdir pkgdir 0o755;
   let cmd =
-    sprintf "dpkg-deb --fsys-tarfile %s | (cd %s && tar xf -)"
+    sprintf "umask 0000; dpkg-deb --fsys-tarfile %s | (cd %s && tar xf -)"
       (tmpdir // pkg) pkgdir in
   run_command cmd;
 
index 9148988..6691ebe 100644 (file)
@@ -51,13 +51,13 @@ let pacman_resolve_dependencies_and_download names =
   List.iter (
     fun pkg ->
       let cmd =
-        sprintf "cd %s && mkdir -p var/lib/pacman && fakeroot pacman -Syw --noconfirm --cachedir=$(pwd) --root=$(pwd) %s"
+        sprintf "umask 0000; cd %s && mkdir -p var/lib/pacman && fakeroot pacman -Syw --noconfirm --cachedir=$(pwd) --root=$(pwd) %s"
         (Filename.quote tmpdir)
         pkg in
       if Sys.command cmd <> 0 then (
           (* The package is not in the main repos, check the aur *)
           let cmd =
-            sprintf "cd %s && wget http://aur.archlinux.org/packages/%s/%s.tar.gz && tar xf %s.tar.gz && cd %s && makepkg && mv %s-*.pkg.tar.xz %s"
+            sprintf "umask 0000; cd %s && wget http://aur.archlinux.org/packages/%s/%s.tar.gz && tar xf %s.tar.gz && cd %s && makepkg && mv %s-*.pkg.tar.xz %s"
             (Filename.quote tmpdir)
             pkg
             pkg
@@ -84,7 +84,7 @@ let pacman_list_files pkg =
       pkg in
    let ver = List.hd (run_command_get_lines cmd) in
    let cmd =
-     sprintf "fakeroot tar -xf %s-%s* -C %s"
+     sprintf "umask 0000; fakeroot tar -xf %s-%s* -C %s"
      (Filename.quote tmpdir // pkg ) ver (Filename.quote pkgdir) in
    run_command cmd;
 
index f6644b8..ca74f4a 100644 (file)
@@ -221,7 +221,7 @@ let yum_rpm_get_file_from_package pkg file =
 
   let outfile = tmpdir // file in
   let cmd =
-    sprintf "rpm2cpio %s | (cd %s && cpio --quiet -id .%s)"
+    sprintf "umask 0000; rpm2cpio %s | (cd %s && cpio --quiet -id .%s)"
       (Filename.quote pkg) (Filename.quote tmpdir) (Filename.quote file) in
   run_command cmd;
   outfile