mirror of https://github.com/containers/podman.git
				
				
				
			Vendor in latest containers/storage fix for UserNS
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #732 Approved by: mheon
This commit is contained in:
		
							parent
							
								
									fa4705c03b
								
							
						
					
					
						commit
						faa8c3ebc5
					
				|  | @ -11,7 +11,7 @@ github.com/containerd/continuity master | |||
| github.com/containernetworking/cni v0.4.0 | ||||
| github.com/containernetworking/plugins master | ||||
| github.com/containers/image 88423e35d5f11939b0db4fb8f2939fc04adf2463 | ||||
| github.com/containers/storage ce923c1ed9e51c8fe58e41a86abc05be7b824f62 | ||||
| github.com/containers/storage e454acf9874d6c399ccb87d03fc4dcbe8c1a4cc6 | ||||
| github.com/coreos/go-systemd v14 | ||||
| github.com/cri-o/ocicni master | ||||
| github.com/cyphar/filepath-securejoin v0.2.1 | ||||
|  |  | |||
|  | @ -945,7 +945,8 @@ loop: | |||
| 		} | ||||
| 		trBuf.Reset(tr) | ||||
| 
 | ||||
| 		if err := remapIDs(nil, idMappings, options.ChownOpts, hdr); err != nil { | ||||
| 		chownOpts := options.ChownOpts | ||||
| 		if err := remapIDs(nil, idMappings, chownOpts, hdr); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
|  | @ -959,7 +960,11 @@ loop: | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if err := createTarFile(path, dest, hdr, trBuf, !options.NoLchown, options.ChownOpts, options.InUserNS); err != nil { | ||||
| 		if chownOpts != nil { | ||||
| 			chownOpts = &idtools.IDPair{UID: hdr.Uid, GID: hdr.Gid} | ||||
| 		} | ||||
| 
 | ||||
| 		if err := createTarFile(path, dest, hdr, trBuf, !options.NoLchown, chownOpts, options.InUserNS); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
|  | @ -1141,7 +1146,7 @@ func (archiver *Archiver) CopyFileWithTar(src, dst string) (err error) { | |||
| 		hdr.Name = filepath.Base(dst) | ||||
| 		hdr.Mode = int64(chmodTarEntry(os.FileMode(hdr.Mode))) | ||||
| 
 | ||||
| 		if err := remapIDs(archiver.TarIDMappings, archiver.UntarIDMappings, archiver.ChownOpts, hdr); err != nil { | ||||
| 		if err := remapIDs(archiver.TarIDMappings, nil, archiver.ChownOpts, hdr); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
|  | @ -1161,7 +1166,12 @@ func (archiver *Archiver) CopyFileWithTar(src, dst string) (err error) { | |||
| 		} | ||||
| 	}() | ||||
| 
 | ||||
| 	err = archiver.Untar(r, filepath.Dir(dst), nil) | ||||
| 	options := &TarOptions{ | ||||
| 		UIDMaps:   archiver.UntarIDMappings.UIDs(), | ||||
| 		GIDMaps:   archiver.UntarIDMappings.GIDs(), | ||||
| 		ChownOpts: archiver.ChownOpts, | ||||
| 	} | ||||
| 	err = archiver.Untar(r, filepath.Dir(dst), options) | ||||
| 	if err != nil { | ||||
| 		r.CloseWithError(err) | ||||
| 	} | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| // Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
 | ||||
| // source: pkg/archive/archive.go
 | ||||
| // source: ./pkg/archive/archive.go
 | ||||
| 
 | ||||
| package archive | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										97
									
								
								vendor/github.com/containers/storage/pkg/archive/example_changes.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										97
									
								
								vendor/github.com/containers/storage/pkg/archive/example_changes.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,97 @@ | |||
| // +build ignore
 | ||||
| 
 | ||||
| // Simple tool to create an archive stream from an old and new directory
 | ||||
| //
 | ||||
| // By default it will stream the comparison of two temporary directories with junk files
 | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"path" | ||||
| 
 | ||||
| 	"github.com/containers/storage/pkg/archive" | ||||
| 	"github.com/sirupsen/logrus" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	flDebug  = flag.Bool("D", false, "debugging output") | ||||
| 	flNewDir = flag.String("newdir", "", "") | ||||
| 	flOldDir = flag.String("olddir", "", "") | ||||
| 	log      = logrus.New() | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
| 	flag.Usage = func() { | ||||
| 		fmt.Println("Produce a tar from comparing two directory paths. By default a demo tar is created of around 200 files (including hardlinks)") | ||||
| 		fmt.Printf("%s [OPTIONS]\n", os.Args[0]) | ||||
| 		flag.PrintDefaults() | ||||
| 	} | ||||
| 	flag.Parse() | ||||
| 	log.Out = os.Stderr | ||||
| 	if (len(os.Getenv("DEBUG")) > 0) || *flDebug { | ||||
| 		logrus.SetLevel(logrus.DebugLevel) | ||||
| 	} | ||||
| 	var newDir, oldDir string | ||||
| 
 | ||||
| 	if len(*flNewDir) == 0 { | ||||
| 		var err error | ||||
| 		newDir, err = ioutil.TempDir("", "storage-test-newDir") | ||||
| 		if err != nil { | ||||
| 			log.Fatal(err) | ||||
| 		} | ||||
| 		defer os.RemoveAll(newDir) | ||||
| 		if _, err := prepareUntarSourceDirectory(100, newDir, true); err != nil { | ||||
| 			log.Fatal(err) | ||||
| 		} | ||||
| 	} else { | ||||
| 		newDir = *flNewDir | ||||
| 	} | ||||
| 
 | ||||
| 	if len(*flOldDir) == 0 { | ||||
| 		oldDir, err := ioutil.TempDir("", "storage-test-oldDir") | ||||
| 		if err != nil { | ||||
| 			log.Fatal(err) | ||||
| 		} | ||||
| 		defer os.RemoveAll(oldDir) | ||||
| 	} else { | ||||
| 		oldDir = *flOldDir | ||||
| 	} | ||||
| 
 | ||||
| 	changes, err := archive.ChangesDirs(newDir, oldDir) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	a, err := archive.ExportChanges(newDir, changes) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	defer a.Close() | ||||
| 
 | ||||
| 	i, err := io.Copy(os.Stdout, a) | ||||
| 	if err != nil && err != io.EOF { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	fmt.Fprintf(os.Stderr, "wrote archive of %d bytes", i) | ||||
| } | ||||
| 
 | ||||
| func prepareUntarSourceDirectory(numberOfFiles int, targetPath string, makeLinks bool) (int, error) { | ||||
| 	fileData := []byte("fooo") | ||||
| 	for n := 0; n < numberOfFiles; n++ { | ||||
| 		fileName := fmt.Sprintf("file-%d", n) | ||||
| 		if err := ioutil.WriteFile(path.Join(targetPath, fileName), fileData, 0700); err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 		if makeLinks { | ||||
| 			if err := os.Link(path.Join(targetPath, fileName), path.Join(targetPath, fileName+"-link")); err != nil { | ||||
| 				return 0, err | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	totalSize := numberOfFiles * len(fileData) | ||||
| 	return totalSize, nil | ||||
| } | ||||
		Loading…
	
		Reference in New Issue