GNU bug report logs -
#70115
[PATCH] gnu: skopeo: Update to 1.15.0.
Previous Next
Reported by: Tomas Volf <~@wolfsden.cz>
Date: Sun, 31 Mar 2024 21:08:02 UTC
Severity: normal
Tags: patch
Done: Christopher Baines <mail <at> cbaines.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 05 Apr 2024 12:31:51 +0100
with message-id <87zfu8gi54.fsf <at> cbaines.net>
and subject line Re: [bug#70115] [PATCH v2] gnu: skopeo: Update to 1.15.0.
has caused the debbugs.gnu.org bug report #70115,
regarding [PATCH] gnu: skopeo: Update to 1.15.0.
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
70115: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70115
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
The package is also converted to gnu-build-system in order to take advantage
of already existing Makefile instead of reinventing (parts) of it in Guile.
* gnu/packages/virtualization.scm (skopeo)[version]: Update to 1.15.0.
[build-system]: Use gnu-build-system.
[native-inputs]: Add go-1.21, sort.
[inputs]: Add bash-minimal.
[arguments]<#:import-path, #:install-source?>: Delete.
<#:make-flags, #:test-target, #:imported-modules>: New arguments.
<#:phases>{'configure}: Delete.
{'set-env, 'cc-to-gcc, 'wrap-skopeo, 'remove-go-references}: New phases.
Change-Id: I1010e1f4fbdc093646c2879bdf30125ab2e88bdd
---
This commit updates the skopeo, and also converts it to use
gnu-build-system. Both is done in one commit, since 1.15 did not
built just by straight-forward update, and due to the intended rewrite
the time spent debugging that would be wasted.
This (gnu-build-system) matches how podman and buildah are done in #70112
bringing all github.com/containers/* projects on the same model.
gnu/packages/virtualization.scm | 80 ++++++++++++++++++++++-----------
1 file changed, 54 insertions(+), 26 deletions(-)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 251fe00aa0..60f43c19cf 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -151,6 +151,7 @@ (define-module (gnu packages virtualization)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix modules)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
@@ -2257,7 +2258,7 @@ (define-public umoci
(define-public skopeo
(package
(name "skopeo")
- (version "1.2.3")
+ (version "1.15.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2266,12 +2267,15 @@ (define-public skopeo
(file-name (git-file-name name version))
(sha256
(base32
- "0n22sdif437ddg5ch0ipwim3fg0n6ihc9bfi52qkhy3r1grz04hs"))))
- (build-system go-build-system)
+ "1f9n3ysdmll7vq8dmgpv03m8aqq3w9cfvbmxxpwmnv1nlfc67ihq"))))
+ (build-system gnu-build-system)
(native-inputs
- (list pkg-config go-github-com-go-md2man))
+ (list go-1.21
+ go-github-com-go-md2man
+ pkg-config))
(inputs
- (list btrfs-progs
+ (list bash-minimal
+ btrfs-progs
eudev
libassuan
libselinux
@@ -2280,27 +2284,51 @@ (define-public skopeo
glib
gpgme))
(arguments
- '(#:import-path "github.com/containers/skopeo"
- #:install-source? #f
- #:tests? #f ; The tests require Docker
- #:phases
- (modify-phases %standard-phases
- (replace 'build
- (lambda* (#:key import-path #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (invoke "make" "bin/skopeo"))))
- (add-after 'build 'build-docs
- (lambda* (#:key import-path #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (invoke "make" "docs"))))
- (replace 'install
- (lambda* (#:key import-path outputs #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (let ((out (assoc-ref outputs "out")))
- (install-file "default-policy.json"
- (string-append out "/etc/containers"))
- (invoke "make" "install-binary" "install-completions" "install-docs"
- (string-append "PREFIX=" out)))))))))
+ (list
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ "PREFIX="
+ (string-append "DESTDIR=" #$output)
+ (string-append "GOMD2MAN="
+ #$go-github-com-go-md2man "/bin/go-md2man"))
+ #:tests? #f ; The tests require Docker
+ #:test-target "test-unit"
+ #:imported-modules
+ (source-module-closure `(,@%gnu-build-system-modules
+ (guix build go-build-system)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'set-env
+ (lambda _
+ ;; When running go, things fail because HOME=/homeless-shelter.
+ (setenv "HOME" "/tmp")
+ ;; Required for detecting btrfs in hack/btrfs* due to bug in GNU
+ ;; Make <4.4 causing CC not to be propagated into $(shell ...)
+ ;; calls. Can be removed once we update to >4.3.
+ ;;
+ ;; This techically does nothing *now*, but after upstream
+ ;; issue[1] is solved and 'cc-to-gcc phase is removed, it will
+ ;; start being required.
+ ;; 1: https://github.com/containers/skopeo/issues/2278
+ (setenv "CC" #$(cc-for-target))))
+ (add-after 'unpack 'cc-to-gcc
+ (lambda _
+ (for-each (lambda (file)
+ (substitute* file
+ (("^cc -" all)
+ (string-append "g" all))))
+ '("hack/btrfs_tag.sh"
+ "hack/btrfs_installed_tag.sh"
+ "hack/libdm_tag.sh"
+ "hack/libsubid_tag.sh"))))
+ (add-after 'install 'wrap-skopeo
+ (lambda _
+ (wrap-program (string-append #$output "/bin/skopeo")
+ `("PATH" suffix
+ ("/run/setuid-programs")))))
+ (add-after 'install 'remove-go-references
+ (@@ (guix build go-build-system) remove-go-references)))))
(home-page "https://github.com/containers/skopeo")
(synopsis "Interact with container images and container image registries")
(description
--
2.41.0
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Tomas Volf <~@wolfsden.cz> writes:
> The package is also converted to gnu-build-system in order to take advantage
> of already existing Makefile instead of reinventing (parts) of it in Guile.
>
> * gnu/packages/virtualization.scm (skopeo)[version]: Update to 1.15.0.
> [build-system]: Use gnu-build-system.
> [native-inputs]: Add go-1.21, sort.
> [inputs]: Add bash-minimal.
> [arguments]<#:import-path, #:install-source?>: Delete.
> <#:make-flags, #:test-target, #:imported-modules>: New arguments.
> <#:phases>{'configure}: Delete.
> {'set-env, 'cc-to-gcc, 'wrap-skopeo, 'remove-go-references}: New phases.
Thanks both, I've pushed this to master as
142e1c2cf0de55ea7803f1f175a6022c24fa467f.
Chris
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 1 year and 42 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.