packages: Factorize and document 'computed-origin-method'.
The 'computed-origin-method' had been introduced to work around limitations of the 'snippet' mechanism. The procedure was duplicated, which made it hard to automatically detect packages using it. * guix/packages.scm (computed-origin-method): Move procedure from... * gnu/packages/gnuzilla.scm: ...here and... * gnu/packages/gnuzilla.scm: ...there. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
56b10709ef
commit
270b30705d
|
@ -682,18 +682,8 @@ in C/C++.")
|
|||
("1j6l66v1xw27z8w78mpsnmqgv8m277mf4r0hgqcrb4zx7xc2vqyy" "527e5e090608" "zh-CN")
|
||||
("1frwx35klpyz3sdwrkz7945ivb2dwaawhhyfnz4092h9hn7rc4ky" "6cd366ad2947" "zh-TW")))
|
||||
|
||||
(define* (computed-origin-method gexp-promise hash-algo hash
|
||||
#:optional (name "source")
|
||||
#:key (system (%current-system))
|
||||
(guile (default-guile)))
|
||||
"Return a derivation that executes the G-expression that results
|
||||
from forcing GEXP-PROMISE."
|
||||
(mlet %store-monad ((guile (package->derivation guile system)))
|
||||
(gexp->derivation (or name "computed-origin")
|
||||
(force gexp-promise)
|
||||
#:graft? #f ;nothing to graft
|
||||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
;; XXXX: Workaround 'snippet' limitations.
|
||||
(define computed-origin-method (@@ (guix packages) computed-origin-method))
|
||||
|
||||
(define %icecat-version "78.14.0-guix0-preview1")
|
||||
(define %icecat-build-id "20210907000000") ;must be of the form YYYYMMDDhhmmss
|
||||
|
|
|
@ -215,18 +215,8 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
|||
(file-name (string-append "linux-libre-deblob-check-" version "-" gnu-revision))
|
||||
(sha256 deblob-check-hash))))
|
||||
|
||||
(define* (computed-origin-method gexp-promise hash-algo hash
|
||||
#:optional (name "source")
|
||||
#:key (system (%current-system))
|
||||
(guile (default-guile)))
|
||||
"Return a derivation that executes the G-expression that results
|
||||
from forcing GEXP-PROMISE."
|
||||
(mlet %store-monad ((guile (package->derivation guile system)))
|
||||
(gexp->derivation (or name "computed-origin")
|
||||
(force gexp-promise)
|
||||
#:graft? #f ;nothing to graft
|
||||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
;; XXXX: Workaround 'snippet' limitations
|
||||
(define computed-origin-method (@@ (guix packages) computed-origin-method))
|
||||
|
||||
(define (make-linux-libre-source version
|
||||
upstream-source
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -344,6 +344,27 @@ name of its URI."
|
|||
;; git, svn, cvs, etc. reference
|
||||
#f))))
|
||||
|
||||
;; Work around limitations in the 'snippet' mechanism. It is not possible for
|
||||
;; a 'snippet' to produce a tarball with a different base name than the
|
||||
;; original downloaded source. Moreover, cherry picking dozens of upsteam
|
||||
;; patches and applying them suddenly is often impractical; especially when a
|
||||
;; comprehensive code reformatting is done upstream. Mainly designed for
|
||||
;; Linux and IceCat packages.
|
||||
;; XXXX: do not make part of public API (export) such radical capability
|
||||
;; before a detailed review process.
|
||||
(define* (computed-origin-method gexp-promise hash-algo hash
|
||||
#:optional (name "source")
|
||||
#:key (system (%current-system))
|
||||
(guile (default-guile)))
|
||||
"Return a derivation that executes the G-expression that results
|
||||
from forcing GEXP-PROMISE."
|
||||
(mlet %store-monad ((guile (package->derivation guile system)))
|
||||
(gexp->derivation (or name "computed-origin")
|
||||
(force gexp-promise)
|
||||
#:graft? #f ;nothing to graft
|
||||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
|
||||
|
||||
(define %supported-systems
|
||||
;; This is the list of system types that are supported. By default, we
|
||||
|
|
Reference in New Issue