diff --git a/skopeo/skopeo.patch b/skopeo/skopeo.patch new file mode 100644 index 0000000000..886d651082 --- /dev/null +++ b/skopeo/skopeo.patch @@ -0,0 +1,54 @@ +Index: src/github.com/containers/skopeo/Makefile +--- src/github.com/containers/skopeo/Makefile.orig 2020-02-28 22:36:57.000000000 +0100 ++++ src/github.com/containers/skopeo/Makefile 2020-02-28 23:21:25.439462000 +0100 +@@ -30,7 +30,7 @@ + endif + + CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker) +-GOMD2MAN ?= $(shell command -v go-md2man || echo '$(GOBIN)/go-md2man') ++GOMD2MAN ?= md2man + + # Go module support: set `-mod=vendor` to use the vendored sources. + # See also hack/make.sh. +@@ -107,7 +107,7 @@ + + # Build w/o using containers + binary-local: +- $(GPGME_ENV) $(GO) build $(MOD_VENDOR) ${GO_DYN_FLAGS} -ldflags "-X main.gitCommit=${GIT_COMMIT}" -gcflags "$(GOGCFLAGS)" -tags "$(BUILDTAGS)" -o skopeo ./cmd/skopeo ++ $(GPGME_ENV) $(GO) build -v $(MOD_VENDOR) ${GO_DYN_FLAGS} -ldflags "-X main.gitCommit=${GIT_COMMIT}" -gcflags "$(GOGCFLAGS)" -tags "$(BUILDTAGS)" -o skopeo ./cmd/skopeo + + binary-local-static: + $(GPGME_ENV) $(GO) build $(MOD_VENDOR) -ldflags "-extldflags \"-static\" -X main.gitCommit=${GIT_COMMIT}" -gcflags "$(GOGCFLAGS)" -tags "$(BUILDTAGS)" -o skopeo ./cmd/skopeo +Index: src/github.com/containers/skopeo/vendor/github.com/containers/storage/drivers/driver_freebsd.go +--- src/github.com/containers/skopeo/vendor/github.com/containers/storage/drivers/driver_freebsd.go.orig 2020-02-28 22:36:57.000000000 +0100 ++++ src/github.com/containers/skopeo/vendor/github.com/containers/storage/drivers/driver_freebsd.go 2020-02-28 23:20:36.646480000 +0100 +@@ -1,8 +1,6 @@ + package graphdriver + + import ( +- "syscall" +- + "golang.org/x/sys/unix" + ) + +@@ -16,7 +14,7 @@ + // Mounted checks if the given path is mounted as the fs type + func Mounted(fsType FsMagic, mountPath string) (bool, error) { + var buf unix.Statfs_t +- if err := syscall.Statfs(mountPath, &buf); err != nil { ++ if err := unix.Statfs(mountPath, &buf); err != nil { + return false, err + } + return FsMagic(buf.Type) == fsType, nil +Index: src/github.com/containers/skopeo/vendor/github.com/containers/storage/pkg/system/mknod.go +--- src/github.com/containers/skopeo/vendor/github.com/containers/storage/pkg/system/mknod.go.orig 2020-02-28 22:36:57.000000000 +0100 ++++ src/github.com/containers/skopeo/vendor/github.com/containers/storage/pkg/system/mknod.go 2020-02-28 23:20:36.646614000 +0100 +@@ -9,7 +9,7 @@ + // Mknod creates a filesystem node (file, device special file or named pipe) named path + // with attributes specified by mode and dev. + func Mknod(path string, mode uint32, dev int) error { +- return unix.Mknod(path, mode, dev) ++ return unix.Mknod(path, mode, uint64(dev)) + } + + // Mkdev is used to build the value of linux devices (in /dev/) which specifies major diff --git a/skopeo/skopeo.spec b/skopeo/skopeo.spec new file mode 100644 index 0000000000..3192007dd3 --- /dev/null +++ b/skopeo/skopeo.spec @@ -0,0 +1,105 @@ +## +## skopeo.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2020 OpenPKG Project +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_skopeo_base 0.1.41 +%define V_skopeo_snap 20200228 + +# package information +Name: skopeo +Summary: Docker Registry Remote Access +URL: https://github.com/containers/skopeo +Vendor: Red Hat +Packager: OpenPKG Project +Distribution: OpenPKG Community +Class: EVAL +Group: Web +License: Apache +Version: %{V_skopeo_base}.%{V_skopeo_snap} +Release: 20200228 + +# list of sources +Source0: http://download.openpkg.org/components/versioned/skopeo/skopeo-%{V_skopeo_snap}.tar.xz +Patch0: skopeo.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20160101, go, md2man +PreReq: OpenPKG, openpkg >= 20160101 + +%description + Skopeo is a command line utility that performs various operations + on container images and image repositories. Skopeo can work with + OCI images as well as the original Docker v2 images. Skopeo works + with API V2 registries such as Docker registries, the Atomic + registry, private registries, local directories and local OCI-layout + directories. + +%track + prog skopeo:release = { + version = %{V_skopeo_base} + url = https://github.com/containers/skopeo/releases + regex = v(\d+\.\d+\.\d+)\.tar\.gz + } + prog skopeo:snapshot = { + version = %{V_skopeo_snap} + url = http://download.openpkg.org/components/versioned/skopeo/ + regex = skopeo-(__VER__)\.tar\.xz + } + +%prep + %setup -q -n skopeo + %patch -p0 + +%build + # build program + export GOPATH=`pwd` + cd src/github.com/containers/skopeo + %{l_shtool} subst -e 's;/bin/bash;%{l_bash};g' */*.sh + %{l_make} %{l_mflags} SHELL=%{l_bash} binary-local + + # build manpages + %{l_make} %{l_mflags} SHELL=%{l_bash} docs + +%install + # create directory hierarchy + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/bin \ + $RPM_BUILD_ROOT%{l_prefix}/man/man1 + + # install program + %{l_shtool} install -c -s -m 755 \ + src/github.com/containers/skopeo/skopeo \ + $RPM_BUILD_ROOT%{l_prefix}/bin/ + + # install manpages + %{l_shtool} install -c -m 644 \ + src/github.com/containers/skopeo/docs/*.1 \ + $RPM_BUILD_ROOT%{l_prefix}/man/man1/ + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} + +%files -f files + +%clean +