diff options
author | William Hubbs <williamh@gentoo.org> | 2017-06-23 16:55:44 -0500 |
---|---|---|
committer | William Hubbs <williamh@gentoo.org> | 2017-06-23 16:56:25 -0500 |
commit | ea3aa51b57d560e10bc951aebb7c23f55073c695 (patch) | |
tree | 663f3a0f64a4e246f6f3a43b69e156fbf8947521 /app-emulation/skopeo | |
parent | net-fs/samba: Use waf-utils_src_compile in order to get parallel builds (diff) | |
download | gentoo-ea3aa51b57d560e10bc951aebb7c23f55073c695.tar.gz gentoo-ea3aa51b57d560e10bc951aebb7c23f55073c695.tar.bz2 gentoo-ea3aa51b57d560e10bc951aebb7c23f55073c695.zip |
app-emulation/skopeo: new package
Package-Manager: Portage-2.3.6, Repoman-2.3.1
Diffstat (limited to 'app-emulation/skopeo')
-rw-r--r-- | app-emulation/skopeo/Manifest | 1 | ||||
-rw-r--r-- | app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch | 158 | ||||
-rw-r--r-- | app-emulation/skopeo/metadata.xml | 8 | ||||
-rw-r--r-- | app-emulation/skopeo/skopeo-0.1.22.ebuild | 57 |
4 files changed, 224 insertions, 0 deletions
diff --git a/app-emulation/skopeo/Manifest b/app-emulation/skopeo/Manifest new file mode 100644 index 000000000000..cdca793499aa --- /dev/null +++ b/app-emulation/skopeo/Manifest @@ -0,0 +1 @@ +DIST skopeo-0.1.22.tar.gz 1921286 SHA256 a2090f84e5318752bf506fd7aa6d8420285726c32dcbac3ab735ec5762104692 SHA512 10ed4e577b07f672540ff86774b5c5b6b7531765fd36313b9e4e6bf974840fee98ede193014977c381b96875cb9147307ee690f4fc8dd4f97d87681d7fa2f4f2 WHIRLPOOL 94c88b784c8a7186ff6abd5d4a1f2c2307fb9c29c98f256a28a5d066546afc7cbb0c848aec77c8835c63f5c62628a8e983d25f4e63e3c6bfa5f4322dd9420522 diff --git a/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch b/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch new file mode 100644 index 000000000000..1e81d8bff341 --- /dev/null +++ b/app-emulation/skopeo/files/skopeo-0.1.22-make-ostree-optional.patch @@ -0,0 +1,158 @@ +From a49f22efd84d1cc656242319cca27cbdf8852e05 Mon Sep 17 00:00:00 2001 +From: William Hubbs <whubbs@gaikai.com> +Date: Fri, 23 Jun 2017 12:34:25 -0500 +Subject: [PATCH] make ostree optional + +--- + vendor/github.com/containers/image/README.md | 14 ++++++--- + .../transports/alltransports/alltransports.go | 2 +- + .../image/transports/alltransports/ostree.go | 8 +++++ + .../image/transports/alltransports/ostree_stub.go | 9 ++++++ + .../github.com/containers/image/transports/stub.go | 36 ++++++++++++++++++++++ + .../containers/image/transports/stub_test.go | 18 +++++++++++ + 6 files changed, 82 insertions(+), 5 deletions(-) + create mode 100644 vendor/github.com/containers/image/transports/alltransports/ostree.go + create mode 100644 vendor/github.com/containers/image/transports/alltransports/ostree_stub.go + create mode 100644 vendor/github.com/containers/image/transports/stub.go + create mode 100644 vendor/github.com/containers/image/transports/stub_test.go + +diff --git a/vendor/github.com/containers/image/README.md b/vendor/github.com/containers/image/README.md +index ca8afd4..8e812bb 100644 +--- a/vendor/github.com/containers/image/README.md ++++ b/vendor/github.com/containers/image/README.md +@@ -51,14 +51,20 @@ Ensure that the dependencies documented [in vendor.conf](https://github.com/cont + are also available + (using those exact versions or different versions of your choosing). + +-This library, by default, also depends on the GpgME C library. Either install it: ++This library, by default, also depends on the GpgME and libostree C libraries. Either install them: + ```sh +-Fedora$ dnf install gpgme-devel libassuan-devel ++Fedora$ dnf install gpgme-devel libassuan-devel libostree-devel + macOS$ brew install gpgme + ``` +-or use the `containers_image_openpgp` build tag (e.g. using `go build -tags …`) +-This will use a Golang-only OpenPGP implementation for signature verification instead of the default cgo/gpgme-based implementation; ++or use the build tags described below to avoid the dependencies (e.g. using `go build -tags …`) ++ ++### Supported build tags ++ ++- `containers_image_openpgp`: Use a Golang-only OpenPGP implementation for signature verification instead of the default cgo/gpgme-based implementation; + the primary downside is that creating new signatures with the Golang-only implementation is not supported. ++- `containers_image_ostree_stub`: Instead of importing `ostree:` transport in `github.com/containers/image/transports/alltransports`, use a stub which reports that the transport is not supported. This allows building the library without requiring the `libostree` development libraries. ++ ++ (Note that explicitly importing `github.com/containers/image/ostree` will still depend on the `libostree` library, this build tag only affects generic users of …`/alltransports`.) + + ## Contributing + +diff --git a/vendor/github.com/containers/image/transports/alltransports/alltransports.go b/vendor/github.com/containers/image/transports/alltransports/alltransports.go +index dc70fad..dd80b7f 100644 +--- a/vendor/github.com/containers/image/transports/alltransports/alltransports.go ++++ b/vendor/github.com/containers/image/transports/alltransports/alltransports.go +@@ -12,7 +12,7 @@ import ( + _ "github.com/containers/image/docker/daemon" + _ "github.com/containers/image/oci/layout" + _ "github.com/containers/image/openshift" +- _ "github.com/containers/image/ostree" ++ // The ostree transport is registered by ostree*.go + _ "github.com/containers/image/storage" + "github.com/containers/image/transports" + "github.com/containers/image/types" +diff --git a/vendor/github.com/containers/image/transports/alltransports/ostree.go b/vendor/github.com/containers/image/transports/alltransports/ostree.go +new file mode 100644 +index 0000000..0fc5d7e +--- /dev/null ++++ b/vendor/github.com/containers/image/transports/alltransports/ostree.go +@@ -0,0 +1,8 @@ ++// +build !containers_image_ostree_stub ++ ++package alltransports ++ ++import ( ++ // Register the ostree transport ++ _ "github.com/containers/image/ostree" ++) +diff --git a/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go b/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go +new file mode 100644 +index 0000000..8b01afe +--- /dev/null ++++ b/vendor/github.com/containers/image/transports/alltransports/ostree_stub.go +@@ -0,0 +1,9 @@ ++// +build containers_image_ostree_stub ++ ++package alltransports ++ ++import "github.com/containers/image/transports" ++ ++func init() { ++ transports.Register(transports.NewStubTransport("ostree")) ++} +diff --git a/vendor/github.com/containers/image/transports/stub.go b/vendor/github.com/containers/image/transports/stub.go +new file mode 100644 +index 0000000..087f69b +--- /dev/null ++++ b/vendor/github.com/containers/image/transports/stub.go +@@ -0,0 +1,36 @@ ++package transports ++ ++import ( ++ "fmt" ++ ++ "github.com/containers/image/types" ++) ++ ++// stubTransport is an implementation of types.ImageTransport which has a name, but rejects any references with “the transport $name: is not supported in this build”. ++type stubTransport string ++ ++// NewStubTransport returns an implementation of types.ImageTransport which has a name, but rejects any references with “the transport $name: is not supported in this build”. ++func NewStubTransport(name string) types.ImageTransport { ++ return stubTransport(name) ++} ++ ++// Name returns the name of the transport, which must be unique among other transports. ++func (s stubTransport) Name() string { ++ return string(s) ++} ++ ++// ParseReference converts a string, which should not start with the ImageTransport.Name prefix, into an ImageReference. ++func (s stubTransport) ParseReference(reference string) (types.ImageReference, error) { ++ return nil, fmt.Errorf(`The transport "%s:" is not supported in this build`, string(s)) ++} ++ ++// ValidatePolicyConfigurationScope checks that scope is a valid name for a signature.PolicyTransportScopes keys ++// (i.e. a valid PolicyConfigurationIdentity() or PolicyConfigurationNamespaces() return value). ++// It is acceptable to allow an invalid value which will never be matched, it can "only" cause user confusion. ++// scope passed to this function will not be "", that value is always allowed. ++func (s stubTransport) ValidatePolicyConfigurationScope(scope string) error { ++ // Allowing any reference in here allows tools with some transports stubbed-out to still ++ // use signature verification policies which refer to these stubbed-out transports. ++ // See also the treatment of unknown transports in policyTransportScopesWithTransport.UnmarshalJSON . ++ return nil ++} +diff --git a/vendor/github.com/containers/image/transports/stub_test.go b/vendor/github.com/containers/image/transports/stub_test.go +new file mode 100644 +index 0000000..f181a1a +--- /dev/null ++++ b/vendor/github.com/containers/image/transports/stub_test.go +@@ -0,0 +1,18 @@ ++package transports ++ ++import ( ++ "testing" ++ ++ "github.com/stretchr/testify/assert" ++) ++ ++func TestStubTransport(t *testing.T) { ++ const name = "whatever" ++ ++ s := NewStubTransport(name) ++ assert.Equal(t, name, s.Name()) ++ _, err := s.ParseReference("this is rejected regardless of content") ++ assert.Error(t, err) ++ err = s.ValidatePolicyConfigurationScope("this is accepted regardless of content") ++ assert.NoError(t, err) ++} +-- +2.13.0 + diff --git a/app-emulation/skopeo/metadata.xml b/app-emulation/skopeo/metadata.xml new file mode 100644 index 000000000000..c36c37139fad --- /dev/null +++ b/app-emulation/skopeo/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> +</pkgmetadata> diff --git a/app-emulation/skopeo/skopeo-0.1.22.ebuild b/app-emulation/skopeo/skopeo-0.1.22.ebuild new file mode 100644 index 000000000000..21ccca2bc453 --- /dev/null +++ b/app-emulation/skopeo/skopeo-0.1.22.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +EGO_PN=github.com/projectatomic/skopeo +COMMIT=5d24b67 +inherit golang-vcs-snapshot + +DESCRIPTION="Command line utility foroperations on container images and image repositories" +HOMEPAGE="http://github.com/projectatomic/skopeo" +SRC_URI="https://github.com/projectatomic/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:= + >=dev-libs/libassuan-2.4.3 + >=sys-fs/btrfs-progs-4.0.1 + >=sys-fs/lvm2-2.02.145" +DEPEND="${COMMON_DEPEND} +dev-go/go-md2man" +RDEPEND="${COMMON_DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-make-ostree-optional.patch +) + +S="${WORKDIR}/${P}/src/${EGO_PN}" + +RESTRICT="test" + +src_compile() { + local BUILDTAGS="containers_image_ostree_stub" + set -- env GOPATH="${WORKDIR}/${P}" \ + go build -ldflags "-X main.gitCommit=${COMMIT}" \ + -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \ + -o skopeo ./cmd/skopeo + echo "$@" + "$@" || die + cd docs + for f in *.1.md; do + go-md2man -in ${f} -out ${f%%.md} || die + done +} + +src_install() { + dobin skopeo +doman docs/*.1 + insinto /etc/containers + newins default-policy.json policy.json + insinto /etc/containers/registries.d + doins default.yaml + dodir /var/lib/atomic/sigstore + einstalldocs +} |