nixbot

builds
1stibnite: building ii1i89iwlhagvyanj2d0msq1hykrld3d-skopeo-1.24.1.drv
unpackPhase
2unpacking source archive /nix/store/94b2i5k17351kyhbcw1l636hbsrm66wy-source3source root is source
buildPhase
4diff --git a/image/transports/alltransports/alltransports.go b/image/transports/alltransports/alltransports.go5--- a/image/transports/alltransports/alltransports.go6+++ b/image/transports/alltransports/alltransports.go7@@ -18,6 +18,7 @@8 _ "go.podman.io/image/v5/openshift"9 _ "go.podman.io/image/v5/sif"10 _ "go.podman.io/image/v5/tarball"11+ _ "go.podman.io/image/v5/nix"12 // The docker-daemon transport is registeredy by docker_daemon*.go13 // The storage transport is registered by storage*.go14 )15--- /dev/null16+++ b/image/nix/transport.go17@@ -0,0 +1,206 @@18+package nix19+20+import (21+ "context"22+ "encoding/json"23+ "fmt"24+ "go.podman.io/image/v5/docker/reference"25+ "go.podman.io/image/v5/image"26+ "go.podman.io/image/v5/manifest"27+ "go.podman.io/image/v5/transports"28+ "go.podman.io/image/v5/types"29+ "github.com/nlewo/nix2container/nix"30+ nixtypes "github.com/nlewo/nix2container/types"31+ digest "github.com/opencontainers/go-digest"32+ imgspecv1 "github.com/opencontainers/image-spec/specs-go/v1"33+ "github.com/pkg/errors"34+ "io"35+)36+37+func init() {38+ transports.Register(Transport)39+}40+41+// Transport is an ImageTransport for nix2container JSON image specification.42+var Transport = nixTransport{}43+44+type nixTransport struct{}45+46+func (t nixTransport) Name() string {47+ return "nix"48+}49+50+type nixReference struct {51+ path string52+ nixImage nixtypes.Image53+}54+55+// ParseReference converts a string, which should not start with the ImageTransport.Name prefix, into an ImageReference.56+func (t nixTransport) ParseReference(reference string) (types.ImageReference, error) {57+ nixImage, err := nix.NewImageFromFile(reference)58+ if err != nil {59+ return nil, err60+ }61+ imageReference := nixReference{62+ path: reference,63+ nixImage: nixImage,64+ }65+ return imageReference, nil66+}67+68+// ValidatePolicyConfigurationScope checks that scope is a valid name for a signature.PolicyTransportScopes keys69+// (i.e. a valid PolicyConfigurationIdentity() or PolicyConfigurationNamespaces() return value).70+// It is acceptable to allow an invalid value which will never be matched, it can "only" cause user confusion.71+// scope passed to this function will not be "", that value is always allowed.72+func (t nixTransport) ValidatePolicyConfigurationScope(scope string) error {73+ // See the explanation in archiveReference.PolicyConfigurationIdentity.74+ return errors.New(`nix: does not support any scopes except the default "" one`)75+}76+77+// StringWithinTransport returns a string representation of the reference, which MUST be such that78+// reference.Transport().ParseReference(reference.StringWithinTransport()) returns an equivalent reference.79+func (ref nixReference) StringWithinTransport() string {80+ return fmt.Sprintf("%s", ref.path)81+}82+83+func (ref nixReference) Transport() types.ImageTransport {84+ return Transport85+}86+87+// DeleteImage deletes the named image from the registry, if supported.88+func (ref nixReference) DeleteImage(ctx context.Context, sys *types.SystemContext) error {89+ return errors.New("Deleting images not implemented for nix: images")90+}91+92+// DockerReference returns a Docker reference associated with this reference93+// (fully explicit, i.e. !reference.IsNameOnly, but reflecting user intent,94+// not e.g. after redirect or alias processing), or nil if unknown/not applicable.95+func (ref nixReference) DockerReference() reference.Named {96+ return nil97+}98+99+// NewImage returns a types.ImageCloser for this reference, possibly specialized for this ImageTransport.100+// The caller must call .Close() on the returned ImageCloser.101+// NOTE: If any kind of signature verification should happen, build an UnparsedImage from the value returned by NewImageSource,102+// verify that UnparsedImage, and convert it into a real Image via image.FromUnparsedImage.103+// WARNING: This may not do the right thing for a manifest list, see image.FromSource for details.104+func (ref nixReference) NewImage(ctx context.Context, sys *types.SystemContext) (types.ImageCloser, error) {105+ src, err := newImageSource(ctx, sys, ref)106+ if err != nil {107+ return nil, err108+ }109+ return image.FromSource(ctx, sys, src)110+}111+112+// NewImageSource returns a types.ImageSource for this reference.113+// The caller must call .Close() on the returned ImageSource.114+func (ref nixReference) NewImageSource(ctx context.Context, sys *types.SystemContext) (types.ImageSource, error) {115+ return newImageSource(ctx, sys, ref)116+}117+118+// PolicyConfigurationIdentity returns a string representation of the reference, suitable for policy lookup.119+func (ref nixReference) PolicyConfigurationIdentity() string {120+ return ""121+}122+123+// PolicyConfigurationNamespaces returns a list of other policy configuration namespaces to search124+// for if explicit configuration for PolicyConfigurationIdentity() is not set125+func (ref nixReference) PolicyConfigurationNamespaces() []string {126+ return []string{}127+}128+129+// NewImageDestination returns a types.ImageDestination for this reference.130+// The caller must call .Close() on the returned ImageDestination.131+func (ref nixReference) NewImageDestination(ctx context.Context, sys *types.SystemContext) (types.ImageDestination, error) {132+ return nil, errors.New("It is not possible to copy to nix: images")133+}134+135+// newImageSource returns an ImageSource for reading from an existing directory.136+// newImageSource untars the file and saves it in a temp directory137+func newImageSource(ctx context.Context, sys *types.SystemContext, ref nixReference) (types.ImageSource, error) {138+ return &nixImageSource{139+ ref: ref,140+ }, nil141+}142+143+type nixImageSource struct {144+ ref nixReference145+}146+147+// Close removes resources associated with an initialized ImageSource, if any.148+// Close deletes the temporary directory at dst149+func (s *nixImageSource) Close() error {150+ return nil151+}152+153+func (s *nixImageSource) GetBlob(ctx context.Context, info types.BlobInfo, cache types.BlobInfoCache) (io.ReadCloser, int64, error) {154+ // TODO: returning the blob size here leads to the following error on image copy:155+ // FATA[0000] writing blob: archive/tar: write too long156+ rc, _, err := nix.GetBlob(s.ref.nixImage, info.Digest)157+ return rc, -1, err158+}159+160+// GetManifest returns the image's manifest along with its MIME type (which may be empty when it can't be determined but the manifest is available).161+// It may use a remote (= slow) service.162+// If instanceDigest is not nil, it contains a digest of the specific manifest instance to retrieve (when the primary manifest is a manifest list);163+// this never happens if the primary manifest is not a manifest list (e.g. if the source never returns manifest lists).164+func (s *nixImageSource) GetManifest(ctx context.Context, instanceDigest *digest.Digest) ([]byte, string, error) {165+ configDigest, size, err := nix.GetConfigDigest(s.ref.nixImage)166+ if err != nil {167+ return nil, "", err168+ }169+ config := imgspecv1.Descriptor{170+ MediaType: imgspecv1.MediaTypeImageConfig,171+ Size: size,172+ Digest: configDigest,173+ }174+175+ var layers []imgspecv1.Descriptor176+ for _, layer := range s.ref.nixImage.Layers {177+ digest, err := digest.Parse(layer.Digest)178+ if err != nil {179+ return nil, "", err180+ }181+ layers = append(layers, imgspecv1.Descriptor{182+ MediaType: layer.MediaType,183+ Size: layer.Size,184+ Digest: digest,185+ })186+ }187+188+ m := manifest.OCI1FromComponents(189+ config,190+ layers,191+ )192+ manifestBytes, err := json.Marshal(&m)193+ if err != nil {194+ return nil, "", err195+ }196+ return manifestBytes, imgspecv1.MediaTypeImageManifest, nil197+}198+199+func (s *nixImageSource) GetSignatures(ctx context.Context, instanceDigest *digest.Digest) ([][]byte, error) {200+ return [][]byte{}, nil201+}202+203+// HasThreadSafeGetBlob indicates whether GetBlob can be executed concurrently.204+func (s *nixImageSource) HasThreadSafeGetBlob() bool {205+ return true206+}207+208+// LayerInfosForCopy returns either nil (meaning the values in the manifest are fine), or updated values for the layer209+// blobsums that are listed in the image's manifest. If values are returned, they should be used when using GetBlob()210+// to read the image's layers.211+// If instanceDigest is not nil, it contains a digest of the specific manifest instance to retrieve BlobInfos for212+// (when the primary manifest is a manifest list); this never happens if the primary manifest is not a manifest list213+// (e.g. if the source never returns manifest lists).214+// The Digest field is guaranteed to be provided; Size may be -1.215+// WARNING: The list may contain duplicates, and they are semantically relevant.216+func (s *nixImageSource) LayerInfosForCopy(ctx context.Context, instanceDigest *digest.Digest) ([]types.BlobInfo, error) {217+ return nil, nil218+}219+220+// Reference returns the reference used to set up this source.221+func (s *nixImageSource) Reference() types.ImageReference {222+ return s.ref223+}224patching file transports/alltransports/alltransports.go225patching file nix/transport.go226/nix/var/nix/builds/nix-49185-1820205290/source227patching script interpreter paths in .228./systemtest/make-noarch-manifest: interpreter directive changed from "#!/bin/sh" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/sh"229./systemtest/run-tests: interpreter directive changed from "#!/bin/bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"230./hack/test-system.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"231./hack/warn-destructive-tests.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"232./hack/btrfs_installed_tag.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"233./hack/validate-git-marks.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"234./hack/sqlite_tag.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"235./hack/man-page-checker: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"236./hack/libsubid_tag.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"237./hack/validate-vet.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"238./hack/tree_status.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"239./contrib/cirrus/mac_cleanup.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"240./contrib/cirrus/runner.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/i1pdjlwb27ki88zssg5q2h696v1r1m15-bash-5.3p20/bin/bash"241go build -ldflags '-X go.podman.io/image/v5/signature/internal/sequoia.sequoiaLibraryDir= ' -gcflags "" -tags "exclude_graphdriver_btrfs " -o bin/skopeo ./cmd/skopeo242sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-copy.1.md | go-md2man -in /dev/stdin -out docs/skopeo-copy.1243sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-delete.1.md | go-md2man -in /dev/stdin -out docs/skopeo-delete.1244sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-generate-sigstore-key.1.md | go-md2man -in /dev/stdin -out docs/skopeo-generate-sigstore-key.1245sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-inspect.1.md | go-md2man -in /dev/stdin -out docs/skopeo-inspect.1246sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-list-tags.1.md | go-md2man -in /dev/stdin -out docs/skopeo-list-tags.1247sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-login.1.md | go-md2man -in /dev/stdin -out docs/skopeo-login.1248sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-logout.1.md | go-md2man -in /dev/stdin -out docs/skopeo-logout.1249sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-manifest-digest.1.md | go-md2man -in /dev/stdin -out docs/skopeo-manifest-digest.1250sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-standalone-sign.1.md | go-md2man -in /dev/stdin -out docs/skopeo-standalone-sign.1251sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-standalone-verify.1.md | go-md2man -in /dev/stdin -out docs/skopeo-standalone-verify.1252sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo-sync.1.md | go-md2man -in /dev/stdin -out docs/skopeo-sync.1253sed -e 's/\((skopeo.*\.md)\)//' -e 's/\[\(skopeo.*\)\]/\1/' docs/skopeo.1.md | go-md2man -in /dev/stdin -out docs/skopeo.1254go build -ldflags '-X go.podman.io/image/v5/signature/internal/sequoia.sequoiaLibraryDir= ' -gcflags "" -tags "exclude_graphdriver_btrfs " -o bin/skopeo ./cmd/skopeo255install -d -m 755 completions/bash completions/zsh completions/fish completions/powershell256./bin/skopeo completion bash >| completions/bash/skopeo257./bin/skopeo completion zsh >| completions/zsh/_skopeo258./bin/skopeo completion fish >| completions/fish/skopeo.fish259./bin/skopeo completion powershell >| completions/powershell/skopeo.ps1260buildPhase completed in 1 minutes 27 seconds
installPhase
261go build -ldflags '-X go.podman.io/image/v5/signature/internal/sequoia.sequoiaLibraryDir= ' -gcflags "" -tags "exclude_graphdriver_btrfs " -o bin/skopeo ./cmd/skopeo262install -d -m 755 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/bin263install -m 755 bin/skopeo /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/bin/skopeo264install -d -m 755 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/man/man1265install -m 644 docs/*.1 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/man/man1266go build -ldflags '-X go.podman.io/image/v5/signature/internal/sequoia.sequoiaLibraryDir= ' -gcflags "" -tags "exclude_graphdriver_btrfs " -o bin/skopeo ./cmd/skopeo267install -d -m 755 completions/bash completions/zsh completions/fish completions/powershell268./bin/skopeo completion bash >| completions/bash/skopeo269./bin/skopeo completion zsh >| completions/zsh/_skopeo270./bin/skopeo completion fish >| completions/fish/skopeo.fish271./bin/skopeo completion powershell >| completions/powershell/skopeo.ps1272install -d -m 755 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/bash-completion/completions273install -m 644 completions/bash/skopeo /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/bash-completion/completions274install -d -m 755 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/zsh/site-functions275install -m 644 completions/zsh/_skopeo /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/zsh/site-functions276install -d -m 755 /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/fish/vendor_completions.d277install -m 644 completions/fish/skopeo.fish /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/fish/vendor_completions.d278# There is no common location for powershell files so do not install them. Users have to source the file from their powershell profile.
fixupPhase
279Moving /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/share/man to /nix/store/5jnzraj5chh9cigyy2gi2a7kr5lrv3z8-skopeo-1.24.1-man/share/man280checking for references to /nix/var/nix/builds/nix-49185-1820205290/ in /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1...281patching script interpreter paths in /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1282stripping (with command strip and flags -S) in /nix/store/4q52sc46ygpf79rwjbpi219mqcqfi92a-skopeo-1.24.1/bin283checking for references to /nix/var/nix/builds/nix-49185-1820205290/ in /nix/store/5jnzraj5chh9cigyy2gi2a7kr5lrv3z8-skopeo-1.24.1-man...284gzipping man pages under /nix/store/5jnzraj5chh9cigyy2gi2a7kr5lrv3z8-skopeo-1.24.1-man/share/man/285patching script interpreter paths in /nix/store/5jnzraj5chh9cigyy2gi2a7kr5lrv3z8-skopeo-1.24.1-man