gnu: Add skopeo.

* gnu/packages/virtualization.scm (skopeo): New variable.
This commit is contained in:
宋文武 2018-06-09 19:01:27 +08:00
parent efdaf8def0
commit 7714a06943
No known key found for this signature in database
GPG key ID: 26525665AE727D37

View file

@ -45,6 +45,7 @@ (define-module (gnu packages virtualization)
#: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 @@ (define-module (gnu packages virtualization)
#: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 @@ (define-module (gnu packages virtualization)
#: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 @@ (define-public umoci
"@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)))