mirror of https://github.com/containers/podman.git
				
				
				
			Merge pull request #7335 from rhatdan/VENDOR
Update vendor of buildah to latest code
This commit is contained in:
		
						commit
						6a069446fb
					
				|  | @ -351,6 +351,15 @@ another process. | ||||||
| 
 | 
 | ||||||
| Do not use existing cached images for the container build. Build from the start with a new set of cached layers. | Do not use existing cached images for the container build. Build from the start with a new set of cached layers. | ||||||
| 
 | 
 | ||||||
|  | **--omit-timestamp** *bool-value* | ||||||
|  | 
 | ||||||
|  | Set the create timestamp to epoch 0 to allow for deterministic builds (defaults to false). | ||||||
|  | By default, the created timestamp is changed and written into the image manifest with every commit, | ||||||
|  | causing the image's sha256 hash to be different even if the sources are exactly the same otherwise. | ||||||
|  | When --omit-timestamp is set to true, the created timestamp is always set to the epoch and therefore not | ||||||
|  | changed, allowing the image's sha256 to remain the same. All files committed to the layers of the image | ||||||
|  | will get the epoch 0 timestamp. | ||||||
|  | 
 | ||||||
| **--os**=*string* | **--os**=*string* | ||||||
| 
 | 
 | ||||||
| Set the OS to the provided value instead of the current operating system of the host. | Set the OS to the provided value instead of the current operating system of the host. | ||||||
|  | @ -736,6 +745,52 @@ $ podman build -f dev/Containerfile https://10.10.10.1/podman/context.tar.gz | ||||||
| 
 | 
 | ||||||
| ## Files | ## Files | ||||||
| 
 | 
 | ||||||
|  | ### `.dockerignore` | ||||||
|  | 
 | ||||||
|  | If the file .dockerignore exists in the context directory, `podman build` reads | ||||||
|  | its contents. Podman uses the content to exclude files and directories from | ||||||
|  | the context directory, when executing COPY and ADD directives in the | ||||||
|  | Containerfile/Dockerfile | ||||||
|  | 
 | ||||||
|  | Users can specify a series of Unix shell globals in a .dockerignore file to | ||||||
|  | identify files/directories to exclude. | ||||||
|  | 
 | ||||||
|  | Podman supports a special wildcard string `**` which matches any number of | ||||||
|  | directories (including zero). For example, **/*.go will exclude all files that | ||||||
|  | end with .go that are found in all directories. | ||||||
|  | 
 | ||||||
|  | Example .dockerignore file: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | # exclude this content for image | ||||||
|  | */*.c | ||||||
|  | **/output* | ||||||
|  | src | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `*/*.c` | ||||||
|  | Excludes files and directories whose names ends with .c in any top level subdirectory. For example, the source file include/rootless.c. | ||||||
|  | 
 | ||||||
|  | `**/output*` | ||||||
|  | Excludes files and directories starting with `output` from any directory. | ||||||
|  | 
 | ||||||
|  | `src` | ||||||
|  | Excludes files named src and the directory src as well as any content in it. | ||||||
|  | 
 | ||||||
|  | Lines starting with ! (exclamation mark) can be used to make exceptions to | ||||||
|  | exclusions. The following is an example .dockerignore file that uses this | ||||||
|  | mechanism: | ||||||
|  | ``` | ||||||
|  | *.doc | ||||||
|  | !Help.doc | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Exclude all doc files except Help.doc from the image. | ||||||
|  | 
 | ||||||
|  | This functionality is compatible with the handling of .dockerignore files described here: | ||||||
|  | 
 | ||||||
|  | https://docs.docker.com/engine/reference/builder/#dockerignore-file | ||||||
|  | 
 | ||||||
| **registries.conf** (`/etc/containers/registries.conf`) | **registries.conf** (`/etc/containers/registries.conf`) | ||||||
| 
 | 
 | ||||||
| registries.conf is the configuration file which specifies which container registries should be consulted when completing image names which do not include a registry or domain portion. | registries.conf is the configuration file which specifies which container registries should be consulted when completing image names which do not include a registry or domain portion. | ||||||
|  | @ -752,6 +807,8 @@ If you are using `useradd` within your build script, you should pass the `--no-l | ||||||
| podman(1), buildah(1), containers-registries.conf(5), crun(8), runc(8), useradd(8) | podman(1), buildah(1), containers-registries.conf(5), crun(8), runc(8), useradd(8) | ||||||
| 
 | 
 | ||||||
| ## HISTORY | ## HISTORY | ||||||
|  | Aug 2020, Additional options and .dockerignore added by Dan Walsh <dwalsh@redhat.com> | ||||||
|  | 
 | ||||||
| May 2018, Minor revisions added by Joe Doss <joe@solidadmin.com> | May 2018, Minor revisions added by Joe Doss <joe@solidadmin.com> | ||||||
| 
 | 
 | ||||||
| December 2017, Originally compiled by Tom Sweeney <tsweeney@redhat.com> | December 2017, Originally compiled by Tom Sweeney <tsweeney@redhat.com> | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										4
									
								
								go.mod
								
								
								
								
							|  | @ -10,7 +10,7 @@ require ( | ||||||
| 	github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd // indirect | 	github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd // indirect | ||||||
| 	github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921 | 	github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921 | ||||||
| 	github.com/containernetworking/plugins v0.8.6 | 	github.com/containernetworking/plugins v0.8.6 | ||||||
| 	github.com/containers/buildah v1.15.1-0.20200731151214-29f4d01c621c | 	github.com/containers/buildah v1.15.1-0.20200813183340-0a8dc1f8064c | ||||||
| 	github.com/containers/common v0.20.3 | 	github.com/containers/common v0.20.3 | ||||||
| 	github.com/containers/conmon v2.0.19+incompatible | 	github.com/containers/conmon v2.0.19+incompatible | ||||||
| 	github.com/containers/image/v5 v5.5.2 | 	github.com/containers/image/v5 v5.5.2 | ||||||
|  | @ -47,7 +47,7 @@ require ( | ||||||
| 	github.com/pkg/errors v0.9.1 | 	github.com/pkg/errors v0.9.1 | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 | 	github.com/pmezard/go-difflib v1.0.0 | ||||||
| 	github.com/rootless-containers/rootlesskit v0.10.0 | 	github.com/rootless-containers/rootlesskit v0.10.0 | ||||||
| 	github.com/seccomp/containers-golang v0.5.0 | 	github.com/seccomp/containers-golang v0.6.0 | ||||||
| 	github.com/sirupsen/logrus v1.6.0 | 	github.com/sirupsen/logrus v1.6.0 | ||||||
| 	github.com/spf13/cobra v0.0.7 | 	github.com/spf13/cobra v0.0.7 | ||||||
| 	github.com/spf13/pflag v1.0.5 | 	github.com/spf13/pflag v1.0.5 | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										19
									
								
								go.sum
								
								
								
								
							|  | @ -70,14 +70,13 @@ github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921 h1:eUMd8 | ||||||
| github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= | github.com/containernetworking/cni v0.7.2-0.20200304161608-4fae32b84921/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= | ||||||
| github.com/containernetworking/plugins v0.8.6 h1:npZTLiMa4CRn6m5P9+1Dz4O1j0UeFbm8VYN6dlsw568= | github.com/containernetworking/plugins v0.8.6 h1:npZTLiMa4CRn6m5P9+1Dz4O1j0UeFbm8VYN6dlsw568= | ||||||
| github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= | github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= | ||||||
| github.com/containers/buildah v1.15.1-0.20200731151214-29f4d01c621c h1:+V9RQOhg1LyhyHHU33OVjO+Uan1MoVbkjufH8E/BeLU= | github.com/containers/buildah v1.15.1-0.20200813183340-0a8dc1f8064c h1:elGbJcB3UjBdk7fBxfAzUNS3IT288U1Dzm0gmhgsnB8= | ||||||
| github.com/containers/buildah v1.15.1-0.20200731151214-29f4d01c621c/go.mod h1:XVOKQHd1sP/7tFpCXIaNsUJZdTNCwVZ7YZiLnnEfrVg= | github.com/containers/buildah v1.15.1-0.20200813183340-0a8dc1f8064c/go.mod h1:+IklBLPix5wxPEWn26aDay5f5q4A5VtmNjkdyK5YVsI= | ||||||
| github.com/containers/common v0.15.2/go.mod h1:rhpXuGLTEKsk/xX/x0iKGHjRadMHpBd2ZiNDugwXPEM= | github.com/containers/common v0.19.0/go.mod h1:+NUHV8V5Kmo260ja9Dxtr8ialrDnK4RNzyeEbSgmLac= | ||||||
| github.com/containers/common v0.20.3 h1:d8vSReNkrySKE3ZPya2vt6Wc/xuQiB30pNXTYHz2iHM= | github.com/containers/common v0.20.3 h1:d8vSReNkrySKE3ZPya2vt6Wc/xuQiB30pNXTYHz2iHM= | ||||||
| github.com/containers/common v0.20.3/go.mod h1:+NUHV8V5Kmo260ja9Dxtr8ialrDnK4RNzyeEbSgmLac= | github.com/containers/common v0.20.3/go.mod h1:+NUHV8V5Kmo260ja9Dxtr8ialrDnK4RNzyeEbSgmLac= | ||||||
| github.com/containers/conmon v2.0.19+incompatible h1:1bDVRvHy2MUNTUT/SW6LlHsJHQBTSwXvnKNdcB/a1vQ= | github.com/containers/conmon v2.0.19+incompatible h1:1bDVRvHy2MUNTUT/SW6LlHsJHQBTSwXvnKNdcB/a1vQ= | ||||||
| github.com/containers/conmon v2.0.19+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= | github.com/containers/conmon v2.0.19+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= | ||||||
| github.com/containers/image/v5 v5.5.1 h1:h1FCOXH6Ux9/p/E4rndsQOC4yAdRU0msRTfLVeQ7FDQ= |  | ||||||
| github.com/containers/image/v5 v5.5.1/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | github.com/containers/image/v5 v5.5.1/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | ||||||
| github.com/containers/image/v5 v5.5.2 h1:fv7FArz0zUnjH0W0l8t90CqWFlFcQrPP6Pug+9dUtVI= | github.com/containers/image/v5 v5.5.2 h1:fv7FArz0zUnjH0W0l8t90CqWFlFcQrPP6Pug+9dUtVI= | ||||||
| github.com/containers/image/v5 v5.5.2/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | github.com/containers/image/v5 v5.5.2/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | ||||||
|  | @ -314,7 +313,6 @@ github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W | ||||||
| github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||||
| github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||||
| github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | ||||||
| github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= |  | ||||||
| github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= | github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= | ||||||
| github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | ||||||
| github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= | github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= | ||||||
|  | @ -340,14 +338,13 @@ github.com/opencontainers/runc v1.0.0-rc91/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT5 | ||||||
| github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b h1:wjSgG2Z5xWv1wpAI7JbwKR9aJH0p4HJ+ROZ7ViKh9qU= | github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b h1:wjSgG2Z5xWv1wpAI7JbwKR9aJH0p4HJ+ROZ7ViKh9qU= | ||||||
| github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= | github.com/opencontainers/runc v1.0.0-rc91.0.20200708210054-ce54a9d4d79b/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= | ||||||
| github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9mv9SC7GWmRWE0J/+oD8w3GsN2KYGKtg6uwLN7hfP5E= |  | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
|  | github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200817204227-f9c09b4ea1df h1:5AW5dMFSXVH4Mg3WYe4z7ui64bK8n66IoWK8i6T4QZ8= | github.com/opencontainers/runtime-spec v1.0.3-0.20200817204227-f9c09b4ea1df h1:5AW5dMFSXVH4Mg3WYe4z7ui64bK8n66IoWK8i6T4QZ8= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200817204227-f9c09b4ea1df/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v1.0.3-0.20200817204227-f9c09b4ea1df/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | ||||||
| github.com/opencontainers/selinux v1.3.0/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= |  | ||||||
| github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | ||||||
| github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | ||||||
| github.com/opencontainers/selinux v1.6.0 h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY= | github.com/opencontainers/selinux v1.6.0 h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY= | ||||||
|  | @ -399,9 +396,8 @@ github.com/rootless-containers/rootlesskit v0.10.0/go.mod h1:OZQfuRPb+2MA1p+hmjH | ||||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
| github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8 h1:2c1EFnZHIPCW8qKWgHMH/fX2PkSabFc5mrVzfUNdg5U= | github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8 h1:2c1EFnZHIPCW8qKWgHMH/fX2PkSabFc5mrVzfUNdg5U= | ||||||
| github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | ||||||
| github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= | github.com/seccomp/containers-golang v0.6.0 h1:VWPMMIDr8pAtNjCX0WvLEEK9EQi5lAm4HtJbDtAtFvQ= | ||||||
| github.com/seccomp/containers-golang v0.5.0 h1:uUMOZIz/7TUiEO6h4ursAJY5JT55AzYiN/X5GOj9rvY= | github.com/seccomp/containers-golang v0.6.0/go.mod h1:Dd9mONHvW4YdbSzdm23yf2CFw0iqvqLhO0mEFvPIvm4= | ||||||
| github.com/seccomp/containers-golang v0.5.0/go.mod h1:5fP9lgyYyklJ8fg8Geq193G1QLe0ikf34z+hZKIjmnE= |  | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||||
|  | @ -552,7 +548,6 @@ golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7w | ||||||
| golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | @ -563,8 +558,8 @@ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7w | ||||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= |  | ||||||
| golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= | golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= | ||||||
| golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
|  |  | ||||||
|  | @ -32,7 +32,8 @@ env: | ||||||
|     PRIOR_FEDORA_NAME: "fedora-31" |     PRIOR_FEDORA_NAME: "fedora-31" | ||||||
|     UBUNTU_NAME: "ubuntu-20" |     UBUNTU_NAME: "ubuntu-20" | ||||||
|     PRIOR_UBUNTU_NAME: "ubuntu-19" |     PRIOR_UBUNTU_NAME: "ubuntu-19" | ||||||
|     _BUILT_IMAGE_SUFFIX: "libpod-6508632441356288" | 
 | ||||||
|  |     _BUILT_IMAGE_SUFFIX: "podman-6530021898584064" | ||||||
|     FEDORA_CACHE_IMAGE_NAME: "${FEDORA_NAME}-${_BUILT_IMAGE_SUFFIX}" |     FEDORA_CACHE_IMAGE_NAME: "${FEDORA_NAME}-${_BUILT_IMAGE_SUFFIX}" | ||||||
|     PRIOR_FEDORA_CACHE_IMAGE_NAME: "${PRIOR_FEDORA_NAME}-${_BUILT_IMAGE_SUFFIX}" |     PRIOR_FEDORA_CACHE_IMAGE_NAME: "${PRIOR_FEDORA_NAME}-${_BUILT_IMAGE_SUFFIX}" | ||||||
|     UBUNTU_CACHE_IMAGE_NAME: "${UBUNTU_NAME}-${_BUILT_IMAGE_SUFFIX}" |     UBUNTU_CACHE_IMAGE_NAME: "${UBUNTU_NAME}-${_BUILT_IMAGE_SUFFIX}" | ||||||
|  |  | ||||||
|  | @ -310,6 +310,9 @@ type CommonBuildOptions struct { | ||||||
| 	// LabelOpts is the a slice of fields of an SELinux context, given in "field:pair" format, or "disable".
 | 	// LabelOpts is the a slice of fields of an SELinux context, given in "field:pair" format, or "disable".
 | ||||||
| 	// Recognized field names are "role", "type", and "level".
 | 	// Recognized field names are "role", "type", and "level".
 | ||||||
| 	LabelOpts []string | 	LabelOpts []string | ||||||
|  | 	// OmitTimestamp forces epoch 0 as created timestamp to allow for
 | ||||||
|  | 	// deterministic, content-addressable builds.
 | ||||||
|  | 	OmitTimestamp bool | ||||||
| 	// SeccompProfilePath is the pathname of a seccomp profile.
 | 	// SeccompProfilePath is the pathname of a seccomp profile.
 | ||||||
| 	SeccompProfilePath string | 	SeccompProfilePath string | ||||||
| 	// ApparmorProfile is the name of an apparmor profile.
 | 	// ApparmorProfile is the name of an apparmor profile.
 | ||||||
|  |  | ||||||
|  | @ -206,6 +206,11 @@ func runUsingChrootMain() { | ||||||
| 		os.Exit(1) | 		os.Exit(1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if options.Spec == nil { | ||||||
|  | 		fmt.Fprintf(os.Stderr, "invalid options spec in runUsingChrootMain\n") | ||||||
|  | 		os.Exit(1) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	// Prepare to shuttle stdio back and forth.
 | 	// Prepare to shuttle stdio back and forth.
 | ||||||
| 	rootUID32, rootGID32, err := util.GetHostRootIDs(options.Spec) | 	rootUID32, rootGID32, err := util.GetHostRootIDs(options.Spec) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -657,7 +662,12 @@ func runUsingChrootExecMain() { | ||||||
| 	// Set the hostname.  We're already in a distinct UTS namespace and are admins in the user
 | 	// Set the hostname.  We're already in a distinct UTS namespace and are admins in the user
 | ||||||
| 	// namespace which created it, so we shouldn't get a permissions error, but seccomp policy
 | 	// namespace which created it, so we shouldn't get a permissions error, but seccomp policy
 | ||||||
| 	// might deny our attempt to call sethostname() anyway, so log a debug message for that.
 | 	// might deny our attempt to call sethostname() anyway, so log a debug message for that.
 | ||||||
| 	if options.Spec != nil && options.Spec.Hostname != "" { | 	if options.Spec == nil { | ||||||
|  | 		fmt.Fprintf(os.Stderr, "invalid options spec passed in\n") | ||||||
|  | 		os.Exit(1) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if options.Spec.Hostname != "" { | ||||||
| 		if err := unix.Sethostname([]byte(options.Spec.Hostname)); err != nil { | 		if err := unix.Sethostname([]byte(options.Spec.Hostname)); err != nil { | ||||||
| 			logrus.Debugf("failed to set hostname %q for process: %v", options.Spec.Hostname, err) | 			logrus.Debugf("failed to set hostname %q for process: %v", options.Spec.Hostname, err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -4,17 +4,17 @@ go 1.12 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784 | 	github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784 | ||||||
| 	github.com/containers/common v0.15.2 | 	github.com/containers/common v0.19.0 | ||||||
| 	github.com/containers/image/v5 v5.5.1 | 	github.com/containers/image/v5 v5.5.1 | ||||||
| 	github.com/containers/ocicrypt v1.0.3 | 	github.com/containers/ocicrypt v1.0.3 | ||||||
| 	github.com/containers/storage v1.20.2 | 	github.com/containers/storage v1.23.0 | ||||||
| 	github.com/cyphar/filepath-securejoin v0.2.2 | 	github.com/cyphar/filepath-securejoin v0.2.2 | ||||||
| 	github.com/docker/distribution v2.7.1+incompatible | 	github.com/docker/distribution v2.7.1+incompatible | ||||||
| 	github.com/docker/go-units v0.4.0 | 	github.com/docker/go-units v0.4.0 | ||||||
| 	github.com/docker/libnetwork v0.8.0-dev.2.0.20190625141545-5a177b73e316 | 	github.com/docker/libnetwork v0.8.0-dev.2.0.20190625141545-5a177b73e316 | ||||||
| 	github.com/fsouza/go-dockerclient v1.6.5 | 	github.com/fsouza/go-dockerclient v1.6.5 | ||||||
| 	github.com/ghodss/yaml v1.0.0 | 	github.com/ghodss/yaml v1.0.0 | ||||||
| 	github.com/hashicorp/go-multierror v1.0.0 | 	github.com/hashicorp/go-multierror v1.1.0 | ||||||
| 	github.com/ishidawataru/sctp v0.0.0-20191218070446-00ab2ac2db07 // indirect | 	github.com/ishidawataru/sctp v0.0.0-20191218070446-00ab2ac2db07 // indirect | ||||||
| 	github.com/mattn/go-shellwords v1.0.10 | 	github.com/mattn/go-shellwords v1.0.10 | ||||||
| 	github.com/onsi/ginkgo v1.14.0 | 	github.com/onsi/ginkgo v1.14.0 | ||||||
|  | @ -22,12 +22,12 @@ require ( | ||||||
| 	github.com/opencontainers/go-digest v1.0.0 | 	github.com/opencontainers/go-digest v1.0.0 | ||||||
| 	github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 | 	github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 | ||||||
| 	github.com/opencontainers/runc v1.0.0-rc91 | 	github.com/opencontainers/runc v1.0.0-rc91 | ||||||
| 	github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 | 	github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445 | ||||||
| 	github.com/opencontainers/runtime-tools v0.9.0 | 	github.com/opencontainers/runtime-tools v0.9.0 | ||||||
| 	github.com/opencontainers/selinux v1.6.0 | 	github.com/opencontainers/selinux v1.6.0 | ||||||
| 	github.com/openshift/imagebuilder v1.1.6 | 	github.com/openshift/imagebuilder v1.1.6 | ||||||
| 	github.com/pkg/errors v0.9.1 | 	github.com/pkg/errors v0.9.1 | ||||||
| 	github.com/seccomp/containers-golang v0.5.0 | 	github.com/seccomp/containers-golang v0.6.0 | ||||||
| 	github.com/seccomp/libseccomp-golang v0.9.1 | 	github.com/seccomp/libseccomp-golang v0.9.1 | ||||||
| 	github.com/sirupsen/logrus v1.6.0 | 	github.com/sirupsen/logrus v1.6.0 | ||||||
| 	github.com/spf13/cobra v0.0.7 | 	github.com/spf13/cobra v0.0.7 | ||||||
|  | @ -37,7 +37,7 @@ require ( | ||||||
| 	go.etcd.io/bbolt v1.3.5 | 	go.etcd.io/bbolt v1.3.5 | ||||||
| 	golang.org/x/crypto v0.0.0-20200423211502-4bdfaf469ed5 | 	golang.org/x/crypto v0.0.0-20200423211502-4bdfaf469ed5 | ||||||
| 	golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a | 	golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a | ||||||
| 	golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 | 	golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 | ||||||
| 	golang.org/x/text v0.3.3 // indirect | 	golang.org/x/text v0.3.3 // indirect | ||||||
| 	k8s.io/klog v1.0.0 // indirect | 	k8s.io/klog v1.0.0 // indirect | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f h1:tSNMc+rJDfmY | ||||||
| github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= | github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= | ||||||
| github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1 h1:uict5mhHFTzKLUCufdSLym7z/J0CbBJT59lYbP9wtbg= | github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1 h1:uict5mhHFTzKLUCufdSLym7z/J0CbBJT59lYbP9wtbg= | ||||||
| github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= | github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= | ||||||
|  | github.com/containerd/console v1.0.0 h1:fU3UuQapBs+zLJu82NhR11Rif1ny2zfMMAyPJzSN5tQ= | ||||||
| github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= | github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= | ||||||
| github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= | github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= | ||||||
| github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= | github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= | ||||||
|  | @ -51,8 +52,8 @@ github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDG | ||||||
| github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= | github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= | ||||||
| github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784 h1:rqUVLD8I859xRgUx/WMC3v7QAFqbLKZbs+0kqYboRJc= | github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784 h1:rqUVLD8I859xRgUx/WMC3v7QAFqbLKZbs+0kqYboRJc= | ||||||
| github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= | github.com/containernetworking/cni v0.7.2-0.20190904153231-83439463f784/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= | ||||||
| github.com/containers/common v0.15.2 h1:KNNnSxeWRlghZPTVu07pjMWCRKvDObWykglf4ZFVDVI= | github.com/containers/common v0.19.0 h1:nya/Fh51kiyV0cAO31ejoNwvRAeYreymsO820yjfc3Y= | ||||||
| github.com/containers/common v0.15.2/go.mod h1:rhpXuGLTEKsk/xX/x0iKGHjRadMHpBd2ZiNDugwXPEM= | github.com/containers/common v0.19.0/go.mod h1:+NUHV8V5Kmo260ja9Dxtr8ialrDnK4RNzyeEbSgmLac= | ||||||
| github.com/containers/image/v5 v5.5.1 h1:h1FCOXH6Ux9/p/E4rndsQOC4yAdRU0msRTfLVeQ7FDQ= | github.com/containers/image/v5 v5.5.1 h1:h1FCOXH6Ux9/p/E4rndsQOC4yAdRU0msRTfLVeQ7FDQ= | ||||||
| github.com/containers/image/v5 v5.5.1/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | github.com/containers/image/v5 v5.5.1/go.mod h1:4PyNYR0nwlGq/ybVJD9hWlhmIsNra4Q8uOQX2s6E2uM= | ||||||
| github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE= | github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE= | ||||||
|  | @ -63,6 +64,8 @@ github.com/containers/ocicrypt v1.0.3 h1:vYgl+RZ9Q3DPMuTfxmN+qp0X2Bj52uuY2vnt6Gz | ||||||
| github.com/containers/ocicrypt v1.0.3/go.mod h1:CUBa+8MRNL/VkpxYIpaMtgn1WgXGyvPQj8jcy0EVG6g= | github.com/containers/ocicrypt v1.0.3/go.mod h1:CUBa+8MRNL/VkpxYIpaMtgn1WgXGyvPQj8jcy0EVG6g= | ||||||
| github.com/containers/storage v1.20.2 h1:tw/uKRPDnmVrluIzer3dawTFG/bTJLP8IEUyHFhltYk= | github.com/containers/storage v1.20.2 h1:tw/uKRPDnmVrluIzer3dawTFG/bTJLP8IEUyHFhltYk= | ||||||
| github.com/containers/storage v1.20.2/go.mod h1:oOB9Ie8OVPojvoaKWEGSEtHbXUAs+tSyr7RO7ZGteMc= | github.com/containers/storage v1.20.2/go.mod h1:oOB9Ie8OVPojvoaKWEGSEtHbXUAs+tSyr7RO7ZGteMc= | ||||||
|  | github.com/containers/storage v1.23.0 h1:gYyNkBiihC2FvGiHOjOjpnfojYwgxpLVooTUlmD6pxs= | ||||||
|  | github.com/containers/storage v1.23.0/go.mod h1:I1EIAA7B4OwWRSA0b4yq2AW1wjvvfcY0zLWQuwTa4zw= | ||||||
| github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= | github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= | ||||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | ||||||
| github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||||
|  | @ -72,6 +75,7 @@ github.com/coreos/go-systemd/v22 v22.0.0 h1:XJIw/+VlJ+87J+doOxznsAWIdmWuViOVhkQa | ||||||
| github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= | github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= | ||||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
| github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= | github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= | ||||||
| github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= | github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= | ||||||
|  | @ -158,6 +162,8 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv | ||||||
| github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= | github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= | ||||||
| github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= | github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= | ||||||
| github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | ||||||
|  | github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI= | ||||||
|  | github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= | ||||||
| github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= | github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= | ||||||
| github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | ||||||
| github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= | github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= | ||||||
|  | @ -179,6 +185,8 @@ github.com/klauspost/compress v1.10.7 h1:7rix8v8GpI3ZBb0nSozFRgbtXKv+hOe+qfEpZqy | ||||||
| github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||||
| github.com/klauspost/compress v1.10.8 h1:eLeJ3dr/Y9+XRfJT4l+8ZjmtB5RPJhucH2HeCV5+IZY= | github.com/klauspost/compress v1.10.8 h1:eLeJ3dr/Y9+XRfJT4l+8ZjmtB5RPJhucH2HeCV5+IZY= | ||||||
| github.com/klauspost/compress v1.10.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | github.com/klauspost/compress v1.10.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||||
|  | github.com/klauspost/compress v1.10.10 h1:a/y8CglcM7gLGYmlbP/stPE5sR3hbhFRUjCBfd/0B3I= | ||||||
|  | github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= | ||||||
| github.com/klauspost/pgzip v1.2.4 h1:TQ7CNpYKovDOmqzRHKxJh0BeaBI7UdQZYc6p7pMQh1A= | github.com/klauspost/pgzip v1.2.4 h1:TQ7CNpYKovDOmqzRHKxJh0BeaBI7UdQZYc6p7pMQh1A= | ||||||
| github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= | github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= | ||||||
|  | @ -202,6 +210,7 @@ github.com/mistifyio/go-zfs v2.1.1+incompatible h1:gAMO1HM9xBRONLHHYnu5iFsOJUiJd | ||||||
| github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= | github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= | ||||||
| github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||||
|  | github.com/moby/sys/mountinfo v0.1.3 h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI= | ||||||
| github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= | github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= | ||||||
| github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||||
| github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | ||||||
|  | @ -222,8 +231,6 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W | ||||||
| github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||||
| github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= | github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= | ||||||
| github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | ||||||
| github.com/onsi/ginkgo v1.13.0 h1:M76yO2HkZASFjXL0HSoZJ1AYEmQxNJmY41Jx1zNUq1Y= |  | ||||||
| github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= |  | ||||||
| github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= | github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= | ||||||
| github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= | ||||||
| github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | ||||||
|  | @ -246,10 +253,11 @@ github.com/opencontainers/runc v1.0.0-rc91/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT5 | ||||||
| github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9mv9SC7GWmRWE0J/+oD8w3GsN2KYGKtg6uwLN7hfP5E= | github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9mv9SC7GWmRWE0J/+oD8w3GsN2KYGKtg6uwLN7hfP5E= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
|  | github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445 h1:y8cfsJRmn8g3VkM4IDpusKSgMUZEXhudm/BuYANLozE= | ||||||
|  | github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | ||||||
| github.com/opencontainers/selinux v1.3.0/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= |  | ||||||
| github.com/opencontainers/selinux v1.5.1 h1:jskKwSMFYqyTrHEuJgQoUlTcId0av64S6EWObrIfn5Y= | github.com/opencontainers/selinux v1.5.1 h1:jskKwSMFYqyTrHEuJgQoUlTcId0av64S6EWObrIfn5Y= | ||||||
| github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= | ||||||
| github.com/opencontainers/selinux v1.5.2 h1:F6DgIsjgBIcDksLW4D5RG9bXok6oqZ3nvMwj4ZoFu/Q= | github.com/opencontainers/selinux v1.5.2 h1:F6DgIsjgBIcDksLW4D5RG9bXok6oqZ3nvMwj4ZoFu/Q= | ||||||
|  | @ -294,12 +302,13 @@ github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQl | ||||||
| github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= | github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= | ||||||
| github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= | github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= | ||||||
| github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= | github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= | ||||||
|  | github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= | ||||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
| github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= | github.com/seccomp/containers-golang v0.6.0 h1:VWPMMIDr8pAtNjCX0WvLEEK9EQi5lAm4HtJbDtAtFvQ= | ||||||
| github.com/seccomp/containers-golang v0.5.0 h1:uUMOZIz/7TUiEO6h4ursAJY5JT55AzYiN/X5GOj9rvY= | github.com/seccomp/containers-golang v0.6.0/go.mod h1:Dd9mONHvW4YdbSzdm23yf2CFw0iqvqLhO0mEFvPIvm4= | ||||||
| github.com/seccomp/containers-golang v0.5.0/go.mod h1:5fP9lgyYyklJ8fg8Geq193G1QLe0ikf34z+hZKIjmnE= |  | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | ||||||
|  | github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||||
| github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= | github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= | ||||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | @ -336,6 +345,7 @@ github.com/ulikunitz/xz v0.5.7 h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4= | ||||||
| github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= | ||||||
| github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5 h1:MCfT24H3f//U5+UCrZp1/riVO3B50BovxtDiNn0XKkk= | github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5 h1:MCfT24H3f//U5+UCrZp1/riVO3B50BovxtDiNn0XKkk= | ||||||
| github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= | github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= | ||||||
|  | github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= | ||||||
| github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= | github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= | ||||||
| github.com/vbatts/tar-split v0.11.1 h1:0Odu65rhcZ3JZaPHxl7tCI3V/C/Q9Zf82UFravl02dE= | github.com/vbatts/tar-split v0.11.1 h1:0Odu65rhcZ3JZaPHxl7tCI3V/C/Q9Zf82UFravl02dE= | ||||||
| github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g= | github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g= | ||||||
|  | @ -415,7 +425,6 @@ golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7w | ||||||
| golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | @ -426,6 +435,9 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w | ||||||
| golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= | golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= | ||||||
| golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= | ||||||
|  | golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= | golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= | ||||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| package buildah | package buildah | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"archive/tar" | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  | @ -284,6 +285,7 @@ func (i *containerImageRef) NewImageSource(ctx context.Context, sc *types.System | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  | 	omitTimestamp := i.created.Equal(time.Unix(0, 0)) | ||||||
| 
 | 
 | ||||||
| 	// Extract each layer and compute its digests, both compressed (if requested) and uncompressed.
 | 	// Extract each layer and compute its digests, both compressed (if requested) and uncompressed.
 | ||||||
| 	for _, layerID := range layers { | 	for _, layerID := range layers { | ||||||
|  | @ -356,7 +358,6 @@ func (i *containerImageRef) NewImageSource(ctx context.Context, sc *types.System | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		srcHasher := digest.Canonical.Digester() | 		srcHasher := digest.Canonical.Digester() | ||||||
| 		reader := io.TeeReader(rc, srcHasher.Hash()) |  | ||||||
| 		// Set up to write the possibly-recompressed blob.
 | 		// Set up to write the possibly-recompressed blob.
 | ||||||
| 		layerFile, err := os.OpenFile(filepath.Join(path, "layer"), os.O_CREATE|os.O_WRONLY, 0600) | 		layerFile, err := os.OpenFile(filepath.Join(path, "layer"), os.O_CREATE|os.O_WRONLY, 0600) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | @ -367,14 +368,40 @@ func (i *containerImageRef) NewImageSource(ctx context.Context, sc *types.System | ||||||
| 		counter := ioutils.NewWriteCounter(layerFile) | 		counter := ioutils.NewWriteCounter(layerFile) | ||||||
| 		multiWriter := io.MultiWriter(counter, destHasher.Hash()) | 		multiWriter := io.MultiWriter(counter, destHasher.Hash()) | ||||||
| 		// Compress the layer, if we're recompressing it.
 | 		// Compress the layer, if we're recompressing it.
 | ||||||
| 		writer, err := archive.CompressStream(multiWriter, i.compression) | 		writeCloser, err := archive.CompressStream(multiWriter, i.compression) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			layerFile.Close() | 			layerFile.Close() | ||||||
| 			rc.Close() | 			rc.Close() | ||||||
| 			return nil, errors.Wrapf(err, "error compressing %s", what) | 			return nil, errors.Wrapf(err, "error compressing %s", what) | ||||||
| 		} | 		} | ||||||
| 		size, err := io.Copy(writer, reader) | 		writer := io.MultiWriter(writeCloser, srcHasher.Hash()) | ||||||
| 		writer.Close() | 		// Zero out timestamps in the layer, if we're doing that for
 | ||||||
|  | 		// history entries.
 | ||||||
|  | 		if omitTimestamp { | ||||||
|  | 			nestedWriteCloser := ioutils.NewWriteCloserWrapper(writer, writeCloser.Close) | ||||||
|  | 			writeCloser = newTarFilterer(nestedWriteCloser, func(hdr *tar.Header) (bool, bool, io.Reader) { | ||||||
|  | 				// Changing a zeroed field to a non-zero field
 | ||||||
|  | 				// can affect the format that the library uses
 | ||||||
|  | 				// for writing the header, so only change
 | ||||||
|  | 				// fields that are already set to avoid
 | ||||||
|  | 				// changing the format (and as a result,
 | ||||||
|  | 				// changing the length) of the header that we
 | ||||||
|  | 				// write.
 | ||||||
|  | 				if !hdr.ModTime.IsZero() { | ||||||
|  | 					hdr.ModTime = i.created | ||||||
|  | 				} | ||||||
|  | 				if !hdr.AccessTime.IsZero() { | ||||||
|  | 					hdr.AccessTime = i.created | ||||||
|  | 				} | ||||||
|  | 				if !hdr.ChangeTime.IsZero() { | ||||||
|  | 					hdr.ChangeTime = i.created | ||||||
|  | 				} | ||||||
|  | 				return false, false, nil | ||||||
|  | 			}) | ||||||
|  | 			writer = io.Writer(writeCloser) | ||||||
|  | 		} | ||||||
|  | 		size, err := io.Copy(writer, rc) | ||||||
|  | 		writeCloser.Close() | ||||||
| 		layerFile.Close() | 		layerFile.Close() | ||||||
| 		rc.Close() | 		rc.Close() | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | @ -679,7 +706,7 @@ func (b *Builder) makeImageRef(options CommitOptions, exporting bool) (types.Ima | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if options.OmitTimestamp { | 	if options.OmitTimestamp { | ||||||
| 		created = time.Unix(0, 0) | 		created = time.Unix(0, 0).UTC() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	parent := "" | 	parent := "" | ||||||
|  | @ -714,5 +741,6 @@ func (b *Builder) makeImageRef(options CommitOptions, exporting bool) (types.Ima | ||||||
| 		preEmptyLayers:        b.PrependedEmptyLayers, | 		preEmptyLayers:        b.PrependedEmptyLayers, | ||||||
| 		postEmptyLayers:       b.AppendedEmptyLayers, | 		postEmptyLayers:       b.AppendedEmptyLayers, | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	return ref, nil | 	return ref, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -168,6 +168,9 @@ type BuildOptions struct { | ||||||
| 	SignBy string | 	SignBy string | ||||||
| 	// Architecture specifies the target architecture of the image to be built.
 | 	// Architecture specifies the target architecture of the image to be built.
 | ||||||
| 	Architecture string | 	Architecture string | ||||||
|  | 	// OmitTimestamp forces epoch 0 as created timestamp to allow for
 | ||||||
|  | 	// deterministic, content-addressable builds.
 | ||||||
|  | 	OmitTimestamp bool | ||||||
| 	// OS is the specifies the operating system of the image to be built.
 | 	// OS is the specifies the operating system of the image to be built.
 | ||||||
| 	OS string | 	OS string | ||||||
| 	// MaxPullPushRetries is the maximum number of attempts we'll make to pull or push any one
 | 	// MaxPullPushRetries is the maximum number of attempts we'll make to pull or push any one
 | ||||||
|  |  | ||||||
|  | @ -100,6 +100,7 @@ type Executor struct { | ||||||
| 	devices                        []configs.Device | 	devices                        []configs.Device | ||||||
| 	signBy                         string | 	signBy                         string | ||||||
| 	architecture                   string | 	architecture                   string | ||||||
|  | 	omitTimestamp                  bool | ||||||
| 	os                             string | 	os                             string | ||||||
| 	maxPullPushRetries             int | 	maxPullPushRetries             int | ||||||
| 	retryPullPushDelay             time.Duration | 	retryPullPushDelay             time.Duration | ||||||
|  | @ -200,6 +201,7 @@ func NewExecutor(store storage.Store, options BuildOptions, mainNode *parser.Nod | ||||||
| 		devices:                        devices, | 		devices:                        devices, | ||||||
| 		signBy:                         options.SignBy, | 		signBy:                         options.SignBy, | ||||||
| 		architecture:                   options.Architecture, | 		architecture:                   options.Architecture, | ||||||
|  | 		omitTimestamp:                  options.OmitTimestamp, | ||||||
| 		os:                             options.OS, | 		os:                             options.OS, | ||||||
| 		maxPullPushRetries:             options.MaxPullPushRetries, | 		maxPullPushRetries:             options.MaxPullPushRetries, | ||||||
| 		retryPullPushDelay:             options.PullPushRetryDelay, | 		retryPullPushDelay:             options.PullPushRetryDelay, | ||||||
|  |  | ||||||
|  | @ -296,6 +296,14 @@ func (s *StageExecutor) digestSpecifiedContent(ctx context.Context, node *parser | ||||||
| 			// container.  Update the ID mappings and
 | 			// container.  Update the ID mappings and
 | ||||||
| 			// all-content-comes-from-below-this-directory value.
 | 			// all-content-comes-from-below-this-directory value.
 | ||||||
| 			from := strings.TrimPrefix(flag, "--from=") | 			from := strings.TrimPrefix(flag, "--from=") | ||||||
|  | 
 | ||||||
|  | 			// If from has an argument within it, resolve it to its
 | ||||||
|  | 			// value.  Otherwise just return the value found.
 | ||||||
|  | 			var fromErr error | ||||||
|  | 			from, fromErr = imagebuilder.ProcessWord(from, s.stage.Builder.Arguments()) | ||||||
|  | 			if fromErr != nil { | ||||||
|  | 				return "", errors.Wrapf(fromErr, "unable to resolve argument %q", from) | ||||||
|  | 			} | ||||||
| 			if isStage, err := s.executor.waitForStage(ctx, from, s.stages[:s.index]); isStage && err != nil { | 			if isStage, err := s.executor.waitForStage(ctx, from, s.stages[:s.index]); isStage && err != nil { | ||||||
| 				return "", err | 				return "", err | ||||||
| 			} | 			} | ||||||
|  | @ -886,6 +894,14 @@ func (s *StageExecutor) Execute(ctx context.Context, base string) (imgID string, | ||||||
| 				// If the source's name corresponds to the
 | 				// If the source's name corresponds to the
 | ||||||
| 				// result of an earlier stage, wait for that
 | 				// result of an earlier stage, wait for that
 | ||||||
| 				// stage to finish being built.
 | 				// stage to finish being built.
 | ||||||
|  | 
 | ||||||
|  | 				// If arr[1] has an argument within it, resolve it to its
 | ||||||
|  | 				// value.  Otherwise just return the value found.
 | ||||||
|  | 				var arr1Err error | ||||||
|  | 				arr[1], arr1Err = imagebuilder.ProcessWord(arr[1], s.stage.Builder.Arguments()) | ||||||
|  | 				if arr1Err != nil { | ||||||
|  | 					return "", nil, errors.Wrapf(arr1Err, "unable to resolve argument %q", arr[1]) | ||||||
|  | 				} | ||||||
| 				if isStage, err := s.executor.waitForStage(ctx, arr[1], s.stages[:s.index]); isStage && err != nil { | 				if isStage, err := s.executor.waitForStage(ctx, arr[1], s.stages[:s.index]); isStage && err != nil { | ||||||
| 					return "", nil, err | 					return "", nil, err | ||||||
| 				} | 				} | ||||||
|  | @ -1064,6 +1080,31 @@ func (s *StageExecutor) Execute(ctx context.Context, base string) (imgID string, | ||||||
| 	return imgID, ref, nil | 	return imgID, ref, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func historyEntriesEqual(base, derived v1.History) bool { | ||||||
|  | 	if base.CreatedBy != derived.CreatedBy { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.Comment != derived.Comment { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.Author != derived.Author { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.EmptyLayer != derived.EmptyLayer { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.Created != nil && derived.Created == nil { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.Created == nil && derived.Created != nil { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	if base.Created != nil && derived.Created != nil && !base.Created.Equal(*derived.Created) { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	return true | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // historyMatches returns true if a candidate history matches the history of our
 | // historyMatches returns true if a candidate history matches the history of our
 | ||||||
| // base image (if we have one), plus the current instruction.
 | // base image (if we have one), plus the current instruction.
 | ||||||
| // Used to verify whether a cache of the intermediate image exists and whether
 | // Used to verify whether a cache of the intermediate image exists and whether
 | ||||||
|  | @ -1076,25 +1117,7 @@ func (s *StageExecutor) historyMatches(baseHistory []v1.History, child *parser.N | ||||||
| 		return false | 		return false | ||||||
| 	} | 	} | ||||||
| 	for i := range baseHistory { | 	for i := range baseHistory { | ||||||
| 		if baseHistory[i].CreatedBy != history[i].CreatedBy { | 		if !historyEntriesEqual(baseHistory[i], history[i]) { | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].Comment != history[i].Comment { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].Author != history[i].Author { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].EmptyLayer != history[i].EmptyLayer { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].Created != nil && history[i].Created == nil { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].Created == nil && history[i].Created != nil { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 		if baseHistory[i].Created != nil && history[i].Created != nil && *baseHistory[i].Created != *history[i].Created { |  | ||||||
| 			return false | 			return false | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | @ -1290,6 +1313,7 @@ func (s *StageExecutor) commit(ctx context.Context, createdBy string, emptyLayer | ||||||
| 		s.builder.SetHealthcheck(nil) | 		s.builder.SetHealthcheck(nil) | ||||||
| 	} | 	} | ||||||
| 	s.builder.ClearLabels() | 	s.builder.ClearLabels() | ||||||
|  | 	s.builder.SetLabel(buildah.BuilderIdentityAnnotation, buildah.Version) | ||||||
| 	for k, v := range config.Labels { | 	for k, v := range config.Labels { | ||||||
| 		s.builder.SetLabel(k, v) | 		s.builder.SetLabel(k, v) | ||||||
| 	} | 	} | ||||||
|  | @ -1331,6 +1355,7 @@ func (s *StageExecutor) commit(ctx context.Context, createdBy string, emptyLayer | ||||||
| 		SignBy:                s.executor.signBy, | 		SignBy:                s.executor.signBy, | ||||||
| 		MaxRetries:            s.executor.maxPullPushRetries, | 		MaxRetries:            s.executor.maxPullPushRetries, | ||||||
| 		RetryDelay:            s.executor.retryPullPushDelay, | 		RetryDelay:            s.executor.retryPullPushDelay, | ||||||
|  | 		OmitTimestamp:         s.executor.omitTimestamp, | ||||||
| 	} | 	} | ||||||
| 	imgID, _, manifestDigest, err := s.builder.Commit(ctx, imageRef, options) | 	imgID, _, manifestDigest, err := s.builder.Commit(ctx, imageRef, options) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  |  | ||||||
|  | @ -64,12 +64,12 @@ func hostInfo() map[string]interface{} { | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logrus.Error(err, "err reading memory info") | 		logrus.Error(err, "err reading memory info") | ||||||
| 		info["MemTotal"] = "" | 		info["MemTotal"] = "" | ||||||
| 		info["MenFree"] = "" | 		info["MemFree"] = "" | ||||||
| 		info["SwapTotal"] = "" | 		info["SwapTotal"] = "" | ||||||
| 		info["SwapFree"] = "" | 		info["SwapFree"] = "" | ||||||
| 	} else { | 	} else { | ||||||
| 		info["MemTotal"] = mi.MemTotal | 		info["MemTotal"] = mi.MemTotal | ||||||
| 		info["MenFree"] = mi.MemFree | 		info["MemFree"] = mi.MemFree | ||||||
| 		info["SwapTotal"] = mi.SwapTotal | 		info["SwapTotal"] = mi.SwapTotal | ||||||
| 		info["SwapFree"] = mi.SwapFree | 		info["SwapFree"] = mi.SwapFree | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -65,6 +65,7 @@ type BudResults struct { | ||||||
| 	Logfile             string | 	Logfile             string | ||||||
| 	Loglevel            int | 	Loglevel            int | ||||||
| 	NoCache             bool | 	NoCache             bool | ||||||
|  | 	OmitTimestamp       bool | ||||||
| 	OS                  string | 	OS                  string | ||||||
| 	Platform            string | 	Platform            string | ||||||
| 	Pull                bool | 	Pull                bool | ||||||
|  | @ -126,17 +127,12 @@ func GetUserNSFlags(flags *UserNSResults) pflag.FlagSet { | ||||||
| // GetNameSpaceFlags returns the common flags for a namespace menu
 | // GetNameSpaceFlags returns the common flags for a namespace menu
 | ||||||
| func GetNameSpaceFlags(flags *NameSpaceResults) pflag.FlagSet { | func GetNameSpaceFlags(flags *NameSpaceResults) pflag.FlagSet { | ||||||
| 	fs := pflag.FlagSet{} | 	fs := pflag.FlagSet{} | ||||||
| 	fs.StringVar(&flags.IPC, string(specs.IPCNamespace), "", "'container', `path` of IPC namespace to join, or 'host'") | 	fs.StringVar(&flags.IPC, string(specs.IPCNamespace), "", "'private', `path` of IPC namespace to join, or 'host'") | ||||||
| 	fs.StringVar(&flags.Network, string(specs.NetworkNamespace), "", "'container', `path` of network namespace to join, or 'host'") | 	fs.StringVar(&flags.Network, string(specs.NetworkNamespace), "", "'private', 'none', 'ns:path' of network namespace to join, or 'host'") | ||||||
| 	// TODO How do we alias net and network?
 |  | ||||||
| 	fs.StringVar(&flags.Network, "net", "", "'container', `path` of network namespace to join, or 'host'") |  | ||||||
| 	if err := fs.MarkHidden("net"); err != nil { |  | ||||||
| 		panic(fmt.Sprintf("error marking net flag as hidden: %v", err)) |  | ||||||
| 	} |  | ||||||
| 	fs.StringVar(&flags.CNIConfigDir, "cni-config-dir", util.DefaultCNIConfigDir, "`directory` of CNI configuration files") | 	fs.StringVar(&flags.CNIConfigDir, "cni-config-dir", util.DefaultCNIConfigDir, "`directory` of CNI configuration files") | ||||||
| 	fs.StringVar(&flags.CNIPlugInPath, "cni-plugin-path", util.DefaultCNIPluginPath, "`path` of CNI network plugins") | 	fs.StringVar(&flags.CNIPlugInPath, "cni-plugin-path", util.DefaultCNIPluginPath, "`path` of CNI network plugins") | ||||||
| 	fs.StringVar(&flags.PID, string(specs.PIDNamespace), "", "container, `path` of PID namespace to join, or 'host'") | 	fs.StringVar(&flags.PID, string(specs.PIDNamespace), "", "private, `path` of PID namespace to join, or 'host'") | ||||||
| 	fs.StringVar(&flags.UTS, string(specs.UTSNamespace), "", "container, :`path` of UTS namespace to join, or 'host'") | 	fs.StringVar(&flags.UTS, string(specs.UTSNamespace), "", "private, :`path` of UTS namespace to join, or 'host'") | ||||||
| 	return fs | 	return fs | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -168,6 +164,7 @@ func GetBudFlags(flags *BudResults) pflag.FlagSet { | ||||||
| 	fs.BoolVar(&flags.NoCache, "no-cache", false, "Do not use existing cached images for the container build. Build from the start with a new set of cached layers.") | 	fs.BoolVar(&flags.NoCache, "no-cache", false, "Do not use existing cached images for the container build. Build from the start with a new set of cached layers.") | ||||||
| 	fs.StringVar(&flags.Logfile, "logfile", "", "log to `file` instead of stdout/stderr") | 	fs.StringVar(&flags.Logfile, "logfile", "", "log to `file` instead of stdout/stderr") | ||||||
| 	fs.IntVar(&flags.Loglevel, "loglevel", 0, "adjust logging level (range from -2 to 3)") | 	fs.IntVar(&flags.Loglevel, "loglevel", 0, "adjust logging level (range from -2 to 3)") | ||||||
|  | 	fs.BoolVar(&flags.OmitTimestamp, "omit-timestamp", false, "set created timestamp to epoch 0 to allow for deterministic builds") | ||||||
| 	fs.StringVar(&flags.OS, "os", runtime.GOOS, "set the OS to the provided value instead of the current operating system of the host") | 	fs.StringVar(&flags.OS, "os", runtime.GOOS, "set the OS to the provided value instead of the current operating system of the host") | ||||||
| 	fs.StringVar(&flags.Platform, "platform", parse.DefaultPlatform(), "set the OS/ARCH to the provided value instead of the current operating system and architecture of the host (for example `linux/arm`)") | 	fs.StringVar(&flags.Platform, "platform", parse.DefaultPlatform(), "set the OS/ARCH to the provided value instead of the current operating system and architecture of the host (for example `linux/arm`)") | ||||||
| 	fs.BoolVar(&flags.Pull, "pull", true, "pull the image from the registry if newer or not present in store, if false, only pull the image if not present") | 	fs.BoolVar(&flags.Pull, "pull", true, "pull the image from the registry if newer or not present in store, if false, only pull the image if not present") | ||||||
|  | @ -282,3 +279,12 @@ func VerifyFlagsArgsOrder(args []string) error { | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // aliasFlags is a function to handle backwards compatibility with old flags
 | ||||||
|  | func AliasFlags(f *pflag.FlagSet, name string) pflag.NormalizedName { | ||||||
|  | 	switch name { | ||||||
|  | 	case "net": | ||||||
|  | 		name = "network" | ||||||
|  | 	} | ||||||
|  | 	return pflag.NormalizedName(name) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -101,7 +101,7 @@ func CommonBuildOptions(c *cobra.Command) (*buildah.CommonBuildOptions, error) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	dnsOptions := []string{} | 	dnsOptions := []string{} | ||||||
| 	if c.Flag("dns-search").Changed { | 	if c.Flag("dns-option").Changed { | ||||||
| 		dnsOptions, _ = c.Flags().GetStringSlice("dns-option") | 		dnsOptions, _ = c.Flags().GetStringSlice("dns-option") | ||||||
| 		if noDNS && len(dnsOptions) > 0 { | 		if noDNS && len(dnsOptions) > 0 { | ||||||
| 			return nil, errors.Errorf("invalid --dns-option, --dns-option may not be used with --dns=none") | 			return nil, errors.Errorf("invalid --dns-option, --dns-option may not be used with --dns=none") | ||||||
|  | @ -784,11 +784,14 @@ func IDMappingOptions(c *cobra.Command, isolation buildah.Isolation) (usernsOpti | ||||||
| 	if c.Flag("userns").Changed { | 	if c.Flag("userns").Changed { | ||||||
| 		how := c.Flag("userns").Value.String() | 		how := c.Flag("userns").Value.String() | ||||||
| 		switch how { | 		switch how { | ||||||
| 		case "", "container": | 		case "", "container", "private": | ||||||
| 			usernsOption.Host = false | 			usernsOption.Host = false | ||||||
| 		case "host": | 		case "host": | ||||||
| 			usernsOption.Host = true | 			usernsOption.Host = true | ||||||
| 		default: | 		default: | ||||||
|  | 			if strings.HasPrefix(how, "ns:") { | ||||||
|  | 				how = how[3:] | ||||||
|  | 			} | ||||||
| 			if _, err := os.Stat(how); err != nil { | 			if _, err := os.Stat(how); err != nil { | ||||||
| 				return nil, nil, errors.Wrapf(err, "error checking for %s namespace at %q", string(specs.UserNamespace), how) | 				return nil, nil, errors.Wrapf(err, "error checking for %s namespace at %q", string(specs.UserNamespace), how) | ||||||
| 			} | 			} | ||||||
|  | @ -798,11 +801,8 @@ func IDMappingOptions(c *cobra.Command, isolation buildah.Isolation) (usernsOpti | ||||||
| 	} | 	} | ||||||
| 	usernsOptions = buildah.NamespaceOptions{usernsOption} | 	usernsOptions = buildah.NamespaceOptions{usernsOption} | ||||||
| 
 | 
 | ||||||
| 	// Because --net and --network are technically two different flags, we need
 |  | ||||||
| 	// to check each for nil and .Changed
 |  | ||||||
| 	usernet := c.Flags().Lookup("net") |  | ||||||
| 	usernetwork := c.Flags().Lookup("network") | 	usernetwork := c.Flags().Lookup("network") | ||||||
| 	if (usernet != nil && usernetwork != nil) && (!usernet.Changed && !usernetwork.Changed) { | 	if usernetwork != nil && !usernetwork.Changed { | ||||||
| 		usernsOptions = append(usernsOptions, buildah.NamespaceOption{ | 		usernsOptions = append(usernsOptions, buildah.NamespaceOption{ | ||||||
| 			Name: string(specs.NetworkNamespace), | 			Name: string(specs.NetworkNamespace), | ||||||
| 			Host: usernsOption.Host, | 			Host: usernsOption.Host, | ||||||
|  | @ -851,15 +851,15 @@ func parseIDMap(spec []string) (m [][3]uint32, err error) { | ||||||
| func NamespaceOptions(c *cobra.Command) (namespaceOptions buildah.NamespaceOptions, networkPolicy buildah.NetworkConfigurationPolicy, err error) { | func NamespaceOptions(c *cobra.Command) (namespaceOptions buildah.NamespaceOptions, networkPolicy buildah.NetworkConfigurationPolicy, err error) { | ||||||
| 	options := make(buildah.NamespaceOptions, 0, 7) | 	options := make(buildah.NamespaceOptions, 0, 7) | ||||||
| 	policy := buildah.NetworkDefault | 	policy := buildah.NetworkDefault | ||||||
| 	for _, what := range []string{string(specs.IPCNamespace), "net", "network", string(specs.PIDNamespace), string(specs.UTSNamespace)} { | 	for _, what := range []string{string(specs.IPCNamespace), "network", string(specs.PIDNamespace), string(specs.UTSNamespace)} { | ||||||
| 		if c.Flags().Lookup(what) != nil && c.Flag(what).Changed { | 		if c.Flags().Lookup(what) != nil && c.Flag(what).Changed { | ||||||
| 			how := c.Flag(what).Value.String() | 			how := c.Flag(what).Value.String() | ||||||
| 			switch what { | 			switch what { | ||||||
| 			case "net", "network": | 			case "network": | ||||||
| 				what = string(specs.NetworkNamespace) | 				what = string(specs.NetworkNamespace) | ||||||
| 			} | 			} | ||||||
| 			switch how { | 			switch how { | ||||||
| 			case "", "container": | 			case "", "container", "private": | ||||||
| 				logrus.Debugf("setting %q namespace to %q", what, "") | 				logrus.Debugf("setting %q namespace to %q", what, "") | ||||||
| 				options.AddOrReplace(buildah.NamespaceOption{ | 				options.AddOrReplace(buildah.NamespaceOption{ | ||||||
| 					Name: what, | 					Name: what, | ||||||
|  | @ -890,6 +890,9 @@ func NamespaceOptions(c *cobra.Command) (namespaceOptions buildah.NamespaceOptio | ||||||
| 						break | 						break | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  | 				if strings.HasPrefix(how, "ns:") { | ||||||
|  | 					how = how[3:] | ||||||
|  | 				} | ||||||
| 				if _, err := os.Stat(how); err != nil { | 				if _, err := os.Stat(how); err != nil { | ||||||
| 					return nil, buildah.NetworkDefault, errors.Wrapf(err, "error checking for %s namespace at %q", what, how) | 					return nil, buildah.NetworkDefault, errors.Wrapf(err, "error checking for %s namespace at %q", what, how) | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
|  | @ -370,11 +370,13 @@ func (s *supplementedImageSource) GetSignatures(ctx context.Context, instanceDig | ||||||
| func (s *supplementedImageSource) LayerInfosForCopy(ctx context.Context, instanceDigest *digest.Digest) ([]types.BlobInfo, error) { | func (s *supplementedImageSource) LayerInfosForCopy(ctx context.Context, instanceDigest *digest.Digest) ([]types.BlobInfo, error) { | ||||||
| 	var src types.ImageSource | 	var src types.ImageSource | ||||||
| 	requestInstanceDigest := instanceDigest | 	requestInstanceDigest := instanceDigest | ||||||
|  | 	errMsgDigest := "" | ||||||
| 	if instanceDigest == nil { | 	if instanceDigest == nil { | ||||||
| 		if sourceInstance, ok := s.sourceInstancesByInstance[""]; ok { | 		if sourceInstance, ok := s.sourceInstancesByInstance[""]; ok { | ||||||
| 			src = sourceInstance | 			src = sourceInstance | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
|  | 		errMsgDigest = string(*instanceDigest) | ||||||
| 		if sourceInstance, ok := s.sourceInstancesByInstance[*instanceDigest]; ok { | 		if sourceInstance, ok := s.sourceInstancesByInstance[*instanceDigest]; ok { | ||||||
| 			src = sourceInstance | 			src = sourceInstance | ||||||
| 		} | 		} | ||||||
|  | @ -396,5 +398,5 @@ func (s *supplementedImageSource) LayerInfosForCopy(ctx context.Context, instanc | ||||||
| 		} | 		} | ||||||
| 		return blobInfos, nil | 		return blobInfos, nil | ||||||
| 	} | 	} | ||||||
| 	return nil, errors.Wrapf(ErrDigestNotFound, "error finding instance for instance digest %q to copy layers", *instanceDigest) | 	return nil, errors.Wrapf(ErrDigestNotFound, "error finding instance for instance digest %q to copy layers", errMsgDigest) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -192,7 +192,10 @@ func (b *Builder) Run(command []string, options RunOptions) error { | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		bindFiles["/etc/hosts"] = hostFile | 		// Only bind /etc/hosts if there's a network
 | ||||||
|  | 		if options.ConfigureNetwork != NetworkDisabled { | ||||||
|  | 			bindFiles["/etc/hosts"] = hostFile | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !(contains(volumes, "/etc/resolv.conf") || (len(b.CommonBuildOpts.DNSServers) == 1 && strings.ToLower(b.CommonBuildOpts.DNSServers[0]) == "none")) { | 	if !(contains(volumes, "/etc/resolv.conf") || (len(b.CommonBuildOpts.DNSServers) == 1 && strings.ToLower(b.CommonBuildOpts.DNSServers[0]) == "none")) { | ||||||
|  | @ -200,7 +203,10 @@ func (b *Builder) Run(command []string, options RunOptions) error { | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		bindFiles["/etc/resolv.conf"] = resolvFile | 		// Only bind /etc/resolv.conf if there's a network
 | ||||||
|  | 		if options.ConfigureNetwork != NetworkDisabled { | ||||||
|  | 			bindFiles["/etc/resolv.conf"] = resolvFile | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 	// Empty file, so no need to recreate if it exists
 | 	// Empty file, so no need to recreate if it exists
 | ||||||
| 	if _, ok := bindFiles["/run/.containerenv"]; !ok { | 	if _, ok := bindFiles["/run/.containerenv"]; !ok { | ||||||
|  | @ -1453,9 +1459,10 @@ func runUsingRuntimeMain() { | ||||||
| 	if err := setChildProcess(); err != nil { | 	if err := setChildProcess(); err != nil { | ||||||
| 		os.Exit(1) | 		os.Exit(1) | ||||||
| 	} | 	} | ||||||
| 	var ospec *specs.Spec | 	ospec := options.Spec | ||||||
| 	if options.Spec != nil { | 	if ospec == nil { | ||||||
| 		ospec = options.Spec | 		fmt.Fprintf(os.Stderr, "options spec not specified\n") | ||||||
|  | 		os.Exit(1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Run the container, start to finish.
 | 	// Run the container, start to finish.
 | ||||||
|  |  | ||||||
|  | @ -420,3 +420,21 @@ func ReserveSELinuxLabels(store storage.Store, id string) error { | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // IsContainer identifies if the specified container id is a buildah container
 | ||||||
|  | // in the specified store.
 | ||||||
|  | func IsContainer(id string, store storage.Store) (bool, error) { | ||||||
|  | 	cdir, err := store.ContainerDirectory(id) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return false, err | ||||||
|  | 	} | ||||||
|  | 	// Assuming that if the stateFile exists, that this is a Buildah
 | ||||||
|  | 	// container.
 | ||||||
|  | 	if _, err = os.Stat(filepath.Join(cdir, stateFile)); err != nil { | ||||||
|  | 		if os.IsNotExist(err) { | ||||||
|  | 			return false, nil | ||||||
|  | 		} | ||||||
|  | 		return false, errors.Wrapf(err, "error stating %q", filepath.Join(cdir, stateFile)) | ||||||
|  | 	} | ||||||
|  | 	return true, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,32 @@ | ||||||
|  | package seccomp // import "github.com/seccomp/containers-golang"
 | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | var goArchToSeccompArchMap = map[string]Arch{ | ||||||
|  | 	"386":         ArchX86, | ||||||
|  | 	"amd64":       ArchX86_64, | ||||||
|  | 	"amd64p32":    ArchX32, | ||||||
|  | 	"arm":         ArchARM, | ||||||
|  | 	"arm64":       ArchAARCH64, | ||||||
|  | 	"mips":        ArchMIPS, | ||||||
|  | 	"mips64":      ArchMIPS64, | ||||||
|  | 	"mips64le":    ArchMIPSEL64, | ||||||
|  | 	"mips64p32":   ArchMIPS64N32, | ||||||
|  | 	"mips64p32le": ArchMIPSEL64N32, | ||||||
|  | 	"mipsle":      ArchMIPSEL, | ||||||
|  | 	"ppc":         ArchPPC, | ||||||
|  | 	"ppc64":       ArchPPC64, | ||||||
|  | 	"ppc64le":     ArchPPC64LE, | ||||||
|  | 	"s390":        ArchS390, | ||||||
|  | 	"s390x":       ArchS390X, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GoArchToSeccompArch converts a runtime.GOARCH to a seccomp `Arch`. The
 | ||||||
|  | // function returns an error if the architecture conversion is not supported.
 | ||||||
|  | func GoArchToSeccompArch(goArch string) (Arch, error) { | ||||||
|  | 	arch, ok := goArchToSeccompArchMap[goArch] | ||||||
|  | 	if !ok { | ||||||
|  | 		return "", fmt.Errorf("unsupported go arch provided: %s", goArch) | ||||||
|  | 	} | ||||||
|  | 	return arch, nil | ||||||
|  | } | ||||||
|  | @ -1,16 +1,16 @@ | ||||||
| module github.com/seccomp/containers-golang | module github.com/seccomp/containers-golang | ||||||
| 
 | 
 | ||||||
| go 1.13 | go 1.14 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/blang/semver v3.5.1+incompatible // indirect | 	github.com/blang/semver v3.5.1+incompatible // indirect | ||||||
| 	github.com/hashicorp/go-multierror v1.0.0 // indirect | 	github.com/hashicorp/go-multierror v1.1.0 // indirect | ||||||
| 	github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 | 	github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445 | ||||||
| 	github.com/opencontainers/runtime-tools v0.9.0 | 	github.com/opencontainers/runtime-tools v0.9.0 | ||||||
| 	github.com/opencontainers/selinux v1.3.0 // indirect | 	github.com/opencontainers/selinux v1.6.0 // indirect | ||||||
| 	github.com/seccomp/libseccomp-golang v0.9.1 | 	github.com/seccomp/libseccomp-golang v0.9.1 | ||||||
| 	github.com/sirupsen/logrus v1.4.2 // indirect | 	github.com/sirupsen/logrus v1.6.0 // indirect | ||||||
| 	github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 // indirect | 	github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 // indirect | ||||||
| 	github.com/xeipuuv/gojsonschema v1.2.0 // indirect | 	github.com/xeipuuv/gojsonschema v1.2.0 // indirect | ||||||
| 	golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc | 	golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | github.com/blang/semver v1.1.0 h1:ol1rO7QQB5uy7umSNV7VAmLugfLRD+17sYJujRNYPhg= | ||||||
| github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= | github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= | ||||||
| github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= | github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
|  | @ -6,8 +7,12 @@ github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/U | ||||||
| github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | ||||||
| github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= | github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= | ||||||
| github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | ||||||
|  | github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI= | ||||||
|  | github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= | github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= | ||||||
|  | github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||||
| github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7 h1:Dliu5QO+4JYWu/yMshaMU7G3JN2POGpwjJN7gjy10Go= | github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7 h1:Dliu5QO+4JYWu/yMshaMU7G3JN2POGpwjJN7gjy10Go= | ||||||
| github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-spec v1.0.1 h1:wY4pOY8fBdSIvs9+IDHC55thBuEulhzfSgKeC1yFvzQ= | github.com/opencontainers/runtime-spec v1.0.1 h1:wY4pOY8fBdSIvs9+IDHC55thBuEulhzfSgKeC1yFvzQ= | ||||||
|  | @ -16,23 +21,33 @@ github.com/opencontainers/runtime-spec v1.0.2-0.20191007145322-19e92ca81777 h1:7 | ||||||
| github.com/opencontainers/runtime-spec v1.0.2-0.20191007145322-19e92ca81777/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v1.0.2-0.20191007145322-19e92ca81777/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9mv9SC7GWmRWE0J/+oD8w3GsN2KYGKtg6uwLN7hfP5E= | github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9mv9SC7GWmRWE0J/+oD8w3GsN2KYGKtg6uwLN7hfP5E= | ||||||
| github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
|  | github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445 h1:y8cfsJRmn8g3VkM4IDpusKSgMUZEXhudm/BuYANLozE= | ||||||
|  | github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= | ||||||
| github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= | ||||||
| github.com/opencontainers/selinux v1.2.2 h1:Kx9J6eDG5/24A6DtUquGSpJQ+m2MUTahn4FtGEe8bFg= | github.com/opencontainers/selinux v1.2.2 h1:Kx9J6eDG5/24A6DtUquGSpJQ+m2MUTahn4FtGEe8bFg= | ||||||
| github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= | github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= | ||||||
| github.com/opencontainers/selinux v1.3.0 h1:xsI95WzPZu5exzA6JzkLSfdr/DilzOhCJOqGe5TgR0g= | github.com/opencontainers/selinux v1.3.0 h1:xsI95WzPZu5exzA6JzkLSfdr/DilzOhCJOqGe5TgR0g= | ||||||
| github.com/opencontainers/selinux v1.3.0/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= | github.com/opencontainers/selinux v1.3.0/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= | ||||||
|  | github.com/opencontainers/selinux v1.6.0 h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY= | ||||||
|  | github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= | ||||||
|  | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | ||||||
|  | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | ||||||
| github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= | github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= | ||||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||||
|  | github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= | ||||||
|  | github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8= | github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8= | ||||||
| github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= | github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= | ||||||
|  | github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243 h1:R43TdZy32XXSXjJn7M/HhALJ9imq6ztLnChfYJpVDnM= | ||||||
|  | github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= | ||||||
| github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= | github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= | ||||||
| github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= | github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= | ||||||
| github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= | github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= | ||||||
|  | @ -46,3 +61,6 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0 h1:HyfiK1WMnHj5FXFXatD+Qs1A/ | ||||||
| golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc h1:EinpED/Eb9JUgDi6pkoFjw+tz69c3lHUZr2+Va84S0w= | golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc h1:EinpED/Eb9JUgDi6pkoFjw+tz69c3lHUZr2+Va84S0w= | ||||||
| golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190921190940-14da1ac737cc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 h1:gVCS+QOncANNPlmlO1AhlU3oxs4V9z+gTtPwIk3p2N8= | ||||||
|  | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ func arches() []Architecture { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // DefaultProfile defines the whitelist for the default seccomp profile.
 | // DefaultProfile defines the allowlist for the default seccomp profile.
 | ||||||
| func DefaultProfile() *Seccomp { | func DefaultProfile() *Seccomp { | ||||||
| 	einval := uint(syscall.EINVAL) | 	einval := uint(syscall.EINVAL) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,11 +7,13 @@ | ||||||
| package seccomp // import "github.com/seccomp/containers-golang"
 | package seccomp // import "github.com/seccomp/containers-golang"
 | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"errors" | ||||||
| 
 | 
 | ||||||
| 	"github.com/opencontainers/runtime-spec/specs-go" | 	"github.com/opencontainers/runtime-spec/specs-go" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | var errNotSupported = errors.New("seccomp not enabled in this build") | ||||||
|  | 
 | ||||||
| // DefaultProfile returns a nil pointer on unsupported systems.
 | // DefaultProfile returns a nil pointer on unsupported systems.
 | ||||||
| func DefaultProfile() *Seccomp { | func DefaultProfile() *Seccomp { | ||||||
| 	return nil | 	return nil | ||||||
|  | @ -19,22 +21,22 @@ func DefaultProfile() *Seccomp { | ||||||
| 
 | 
 | ||||||
| // LoadProfile returns an error on unsuppored systems
 | // LoadProfile returns an error on unsuppored systems
 | ||||||
| func LoadProfile(body string, rs *specs.Spec) (*specs.LinuxSeccomp, error) { | func LoadProfile(body string, rs *specs.Spec) (*specs.LinuxSeccomp, error) { | ||||||
| 	return nil, fmt.Errorf("Seccomp not supported on this platform") | 	return nil, errNotSupported | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetDefaultProfile returns an error on unsuppored systems
 | // GetDefaultProfile returns an error on unsuppored systems
 | ||||||
| func GetDefaultProfile(rs *specs.Spec) (*specs.LinuxSeccomp, error) { | func GetDefaultProfile(rs *specs.Spec) (*specs.LinuxSeccomp, error) { | ||||||
| 	return nil, fmt.Errorf("Seccomp not supported on this platform") | 	return nil, errNotSupported | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // LoadProfileFromBytes takes a byte slice and decodes the seccomp profile.
 | // LoadProfileFromBytes takes a byte slice and decodes the seccomp profile.
 | ||||||
| func LoadProfileFromBytes(body []byte, rs *specs.Spec) (*specs.LinuxSeccomp, error) { | func LoadProfileFromBytes(body []byte, rs *specs.Spec) (*specs.LinuxSeccomp, error) { | ||||||
| 	return nil, fmt.Errorf("Seccomp not supported on this platform") | 	return nil, errNotSupported | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // LoadProfileFromConfig takes a Seccomp struct and a spec to retrieve a LinuxSeccomp
 | // LoadProfileFromConfig takes a Seccomp struct and a spec to retrieve a LinuxSeccomp
 | ||||||
| func LoadProfileFromConfig(config *Seccomp, specgen *specs.Spec) (*specs.LinuxSeccomp, error) { | func LoadProfileFromConfig(config *Seccomp, specgen *specs.Spec) (*specs.LinuxSeccomp, error) { | ||||||
| 	return nil, fmt.Errorf("Seccomp not supported on this platform") | 	return nil, errNotSupported | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsEnabled returns true if seccomp is enabled for the host.
 | // IsEnabled returns true if seccomp is enabled for the host.
 | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ github.com/containernetworking/plugins/pkg/utils/hwaddr | ||||||
| github.com/containernetworking/plugins/pkg/utils/sysctl | github.com/containernetworking/plugins/pkg/utils/sysctl | ||||||
| github.com/containernetworking/plugins/plugins/ipam/host-local/backend | github.com/containernetworking/plugins/plugins/ipam/host-local/backend | ||||||
| github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator | github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator | ||||||
| # github.com/containers/buildah v1.15.1-0.20200731151214-29f4d01c621c | # github.com/containers/buildah v1.15.1-0.20200813183340-0a8dc1f8064c | ||||||
| github.com/containers/buildah | github.com/containers/buildah | ||||||
| github.com/containers/buildah/bind | github.com/containers/buildah/bind | ||||||
| github.com/containers/buildah/chroot | github.com/containers/buildah/chroot | ||||||
|  | @ -481,7 +481,7 @@ github.com/rootless-containers/rootlesskit/pkg/port/builtin/parent/udp/udpproxy | ||||||
| github.com/rootless-containers/rootlesskit/pkg/port/portutil | github.com/rootless-containers/rootlesskit/pkg/port/portutil | ||||||
| # github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8 | # github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8 | ||||||
| github.com/safchain/ethtool | github.com/safchain/ethtool | ||||||
| # github.com/seccomp/containers-golang v0.5.0 | # github.com/seccomp/containers-golang v0.6.0 | ||||||
| github.com/seccomp/containers-golang | github.com/seccomp/containers-golang | ||||||
| # github.com/seccomp/libseccomp-golang v0.9.1 | # github.com/seccomp/libseccomp-golang v0.9.1 | ||||||
| github.com/seccomp/libseccomp-golang | github.com/seccomp/libseccomp-golang | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue