summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author宋文武 <iyzsong@member.fsf.org>2018-06-09 19:01:27 +0800
committer宋文武 <iyzsong@member.fsf.org>2018-06-12 19:31:18 +0800
commit7714a06943a46c6b1881e2514131c1946428d270 (patch)
tree368aff7bddbc70dd0a8fdf475d3c4b18f33cd1de
parentefdaf8def0add48e4024dfd102d8f3c1368e90c9 (diff)
downloadpatches-7714a06943a46c6b1881e2514131c1946428d270.tar
patches-7714a06943a46c6b1881e2514131c1946428d270.tar.gz
gnu: Add skopeo.
* gnu/packages/virtualization.scm (skopeo): New variable.
-rw-r--r--gnu/packages/virtualization.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index db7c44b2ca..61f0245289 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -45,6 +45,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
@@ -52,6 +53,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
@@ -71,6 +73,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
asl2.0))
#:use-module (guix packages)
@@ -909,3 +912,65 @@ Open Container Initiative specification.")
"@command{umoci} is a tool that allows for high-level modification of an
Open Container Initiative (OCI) image layout and its tagged images.")
(license asl2.0)))
+
+(define-public skopeo
+ (package
+ (name "skopeo")
+ (version "0.1.28")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/projectatomic/skopeo")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "068nwrr3nr27alravcq1sxyhdd5jjr24213vdgn1dqva3885gbi0"))))
+ (build-system go-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("btrfs-progs" ,btrfs-progs)
+ ("eudev" ,eudev)
+ ("libassuan" ,libassuan)
+ ("libselinux" ,libselinux)
+ ("libostree" ,libostree)
+ ("lvm2" ,lvm2)
+ ("glib" ,glib)
+ ("gpgme" ,gpgme)))
+ (arguments
+ '(#:import-path "github.com/projectatomic/skopeo"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (chdir (string-append "src/" import-path))
+ ;; TODO: build manpages with 'go-md2man'.
+ (invoke "make" "binary-local")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (invoke "make" "install-binary" "install-completions"
+ (string-append "PREFIX=" out))))))))
+ (home-page "https://github.com/projectatomic/skopeo")
+ (synopsis "Interact with container images and container image registries")
+ (description
+ "@command{skopeo} is a command line utility providing various operations
+with container images and container image registries. It can:
+@enumerate
+
+@item Copy container images between various containers image stores,
+converting them as necessary.
+
+@item Convert a Docker schema 2 or schema 1 container image to an OCI image.
+
+@item Inspect a repository on a container registry without needlessly pulling
+the image.
+
+@item Sign and verify container images.
+
+@item Delete container images from a remote container registry.
+
+@end enumerate")
+ (license asl2.0)))