efraim pushed a commit to branch rust-team
in repository guix.

commit d8b0865be84c8c17084b8c69784e7b815aa2b6ef
Author: Efraim Flashner <efr...@flashner.co.il>
AuthorDate: Tue Dec 17 11:50:56 2024 +0200

    gnu: rust-ring-0.14: Build source using trivial-build-system.
    
    This removes this use of computed-origin-method.
    
    * gnu/packages/crates-crypto.scm (rust-ring-0.14-sources): Replace use
    of computed-origin-method with an actual package.
    
    Change-Id: Ice40161411828b88321509a1cf5b07a6553f0ce7
---
 gnu/packages/crates-crypto.scm | 345 +++++++++++++++++++++--------------------
 1 file changed, 173 insertions(+), 172 deletions(-)

diff --git a/gnu/packages/crates-crypto.scm b/gnu/packages/crates-crypto.scm
index d2dd3f8ec7..25bb1bb897 100644
--- a/gnu/packages/crates-crypto.scm
+++ b/gnu/packages/crates-crypto.scm
@@ -4617,198 +4617,198 @@ Digital Signature Algorithm} (ECDSA).")
     (supported-systems (list "aarch64-linux" "armhf-linux"
                              "i686-linux" "x86_64-linux"))))
 
-(define computed-origin-method (@@ (guix packages) computed-origin-method))
 (define rust-ring-0.14-sources
-  (let* ((version "0.14.6")
-         (upstream-source
-           (origin
+  (package
+    (inherit rust-ring-0.17-sources)
+    (name "rust-ring")
+    (version "0.14.6.tar.gz")   ; Hack to adjust the output name.
+    (source (origin
              (method git-fetch)
              (uri (git-reference
                     (url "https://github.com/briansmith/ring";)
                     (commit "ef85df478152aa3fe06c811309379efa08f8a529")))
              (file-name (git-file-name "rust-ring" version))
              (sha256
-              (base32 
"12dgw2spvmkdypgzymw3bxpv4bbpnlq8s10sdggral31x597n6xx")))))
-    (origin
-      (method computed-origin-method)
-      (file-name (string-append "rust-ring-" version ".tar.gz"))
-      (sha256 #f)
-      (uri
-        (delay
-          (with-imported-modules '((guix build utils))
-            #~(begin
-                (use-modules (guix build utils))
-                (set-path-environment-variable
-                  "PATH" '("bin")
-                  (list #+(canonical-package gzip)
-                        #+(canonical-package tar)
-                        #+perl
-                        #+yasm
-                        #+go
-                        #+clang             ; clang-format
-                        #+python2-minimal))
-                (setenv "HOME" (getcwd))
-                (copy-recursively #+upstream-source
-                                  (string-append "ring-" #$version))
-                (with-directory-excursion (string-append "ring-" #$version)
-                  (begin
-                    ;; It turns out Guix's yasm works just fine here.
-                    (substitute* "build.rs"
-                      (("yasm.exe") "yasm"))
-                    ;; Files which would be deleted in a snippet:
-                    (delete-file "third_party/fiat/curve25519_tables.h")
-                    (delete-file "crypto/fipsmodule/ec/ecp_nistz256_table.inl")
-                    (delete-file "util/ar/testdata/linux/libsample.a")
-                    (delete-file "util/ar/testdata/mac/libsample.a")
-                    (delete-file "util/ar/testdata/windows/sample.lib")
-                    ;; Fix the doc tests.
-                    (substitute* "src/ec/curve25519/ed25519/verification.rs"
-                      ((";;") ";"))
-                    ;; Files to be generated in the sources:
-                    (format #t "Generating the missing files ...~%")
-                    (force-output)
-                    (with-directory-excursion "third_party/fiat"
-                      (with-output-to-file "curve25519_tables.h"
-                        (lambda _ (invoke "python" 
"make_curve25519_tables.py"))))
-                    (with-directory-excursion "crypto/fipsmodule/ec"
-                      ;; This one seems to have been changed elsewhere in the
-                      ;; sources but not in the script generating the 
definition.
-                      (substitute* "make_p256-x86_64-table.go"
-                        (("ecp_nistz256_precomputed") 
"GFp_nistz256_precomputed"))
-                      (with-output-to-file "ecp_nistz256_table.inl"
-                        (lambda _ (invoke "go" "run" 
"make_p256-x86_64-table.go"))))
-                    (format #t "Generating the pregenerated files ...~%")
-                    (force-output)
-                    (mkdir-p "pregenerated/tmp")
+              (base32 "12dgw2spvmkdypgzymw3bxpv4bbpnlq8s10sdggral31x597n6xx"))
+             (snippet
+              #~(begin (use-modules (guix build utils))
+                       ;; It turns out Guix's yasm works just fine here.
+                       (substitute* "build.rs"
+                         (("yasm.exe") "yasm"))
+                       ;; These files are pregenerated:
+                       (delete-file "third_party/fiat/curve25519_tables.h")
+                       (delete-file 
"crypto/fipsmodule/ec/ecp_nistz256_table.inl")
+                       (delete-file "util/ar/testdata/linux/libsample.a")
+                       (delete-file "util/ar/testdata/mac/libsample.a")
+                       (delete-file "util/ar/testdata/windows/sample.lib")
+                       ;; Fix the doc tests.
+                       (substitute* "src/ec/curve25519/ed25519/verification.rs"
+                         ((";;") ";"))))))
+    (arguments
+     (list
+       #:modules '((guix build utils))
+       #:builder
+       #~(begin
+           (use-modules (guix build utils))
+           (setenv "PATH"
+                   (string-join
+                     (list #+(this-package-native-input "clang") ; for 
clang-format
+                           #+(this-package-native-input "go")
+                           #+(this-package-native-input "gzip")
+                           #+(this-package-native-input "perl")
+                           #+(this-package-native-input "python2-minimal")
+                           #+(this-package-native-input "tar")
+                           #+(this-package-native-input "yasm"))
+                     "/bin:" 'suffix))
 
-                    ;; We generate all the files which upstream would normally 
be
-                    ;; generate by using '(cd pregenerate_asm && cargo clean &&
-                    ;; cargo build) 
./pregenerate_asm/target/debug/pregenerate_asm'
-                    ;; in order to not include a dependency on cargo when
-                    ;; generating the sources.
-                    (define (prefix script)
-                      (string-append
-                        "pregenerated/"
-                        (string-drop-right
-                          (string-drop script
-                                       (string-index-right script #\/)) 3)))
+           (setenv "HOME" (getcwd))
+           (copy-recursively #+source (string-append "ring-" #$version))
+           (with-directory-excursion (string-append "ring-" #$version)
+             (begin
+               (with-directory-excursion "third_party/fiat"
+                 (with-output-to-file "curve25519_tables.h"
+                   (lambda _ (invoke "python" "make_curve25519_tables.py"))))
+               (with-directory-excursion "crypto/fipsmodule/ec"
+                 ;; This one seems to have been changed elsewhere in the
+                 ;; sources but not in the script generating the definition.
+                 (substitute* "make_p256-x86_64-table.go"
+                   (("ecp_nistz256_precomputed") "GFp_nistz256_precomputed"))
+                 (with-output-to-file "ecp_nistz256_table.inl"
+                   (lambda _ (invoke "go" "run" "make_p256-x86_64-table.go"))))
+               (format #t "Generating the pregenerated files ...~%")
+               (force-output)
+               (mkdir-p "pregenerated/tmp")
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "perl" script "elf"
-                                (string-append (prefix script) "-elf.S"))
-                        (invoke "perl" script "macosx"
-                                (string-append (prefix script) "-macosx.S"))
-                        (invoke "perl" script "nasm"
-                                (string-append
-                                  "pregenerated/tmp/"
-                                  (string-drop (prefix script) 13) 
"-nasm.asm")))
-                      '("crypto/fipsmodule/aes/asm/aes-x86_64.pl"
-                        "crypto/fipsmodule/aes/asm/aesni-x86_64.pl"
-                        "crypto/fipsmodule/aes/asm/vpaes-x86_64.pl"
-                        "crypto/fipsmodule/bn/asm/x86_64-mont.pl"
-                        "crypto/fipsmodule/bn/asm/x86_64-mont5.pl"
-                        "crypto/chacha/asm/chacha-x86_64.pl"
-                        "crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl"
-                        "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl"
-                        "crypto/fipsmodule/modes/asm/ghash-x86_64.pl"
-                        "crypto/poly1305/asm/poly1305-x86_64.pl"
-                        "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"))
+               ;; We generate all the files which upstream would normally be
+               ;; generate by using '(cd pregenerate_asm && cargo clean &&
+               ;; cargo build) ./pregenerate_asm/target/debug/pregenerate_asm'
+               ;; in order to not include a dependency on cargo when
+               ;; generating the sources.
+               (define (prefix script)
+                 (string-append
+                   "pregenerated/"
+                   (string-drop-right
+                     (string-drop script (string-index-right script #\/)) 3)))
 
-                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
-                            "elf" "pregenerated/sha256-x86_64-elf.S")
+               (for-each
+                 (lambda (script)
+                   (invoke "perl" script "elf"
+                           (string-append (prefix script) "-elf.S"))
+                   (invoke "perl" script "macosx"
+                           (string-append (prefix script) "-macosx.S"))
+                   (invoke "perl" script "nasm"
+                           (string-append
+                             "pregenerated/tmp/"
+                             (string-drop (prefix script) 13) "-nasm.asm")))
+                 '("crypto/fipsmodule/aes/asm/aes-x86_64.pl"
+                   "crypto/fipsmodule/aes/asm/aesni-x86_64.pl"
+                   "crypto/fipsmodule/aes/asm/vpaes-x86_64.pl"
+                   "crypto/fipsmodule/bn/asm/x86_64-mont.pl"
+                   "crypto/fipsmodule/bn/asm/x86_64-mont5.pl"
+                   "crypto/chacha/asm/chacha-x86_64.pl"
+                   "crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl"
+                   "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl"
+                   "crypto/fipsmodule/modes/asm/ghash-x86_64.pl"
+                   "crypto/poly1305/asm/poly1305-x86_64.pl"
+                   "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"))
 
-                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
-                            "macosx" "pregenerated/sha256-x86_64-macosx.S")
+               (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                       "elf" "pregenerated/sha256-x86_64-elf.S")
 
-                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
-                            "nasm" "pregenerated/tmp/sha256-x86_64-nasm.asm")
+               (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                       "macosx" "pregenerated/sha256-x86_64-macosx.S")
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "yasm" "-X" "vc" "--dformat=cv8"
-                                "--oformat=win64" "--machine=amd64" "-o"
-                                (string-append (prefix script) "obj") script))
-                      (find-files "pregenerated/tmp" "\\.asm"))
+               (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                       "nasm" "pregenerated/tmp/sha256-x86_64-nasm.asm")
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "perl" script "ios64"
-                                (string-append (prefix script) "-ios64.S"))
-                        (invoke "perl" script "linux64"
-                                (string-append (prefix script) "-linux64.S")))
-                      '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
-                        "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
-                        "crypto/fipsmodule/bn/asm/armv8-mont.pl"
-                        "crypto/chacha/asm/chacha-armv8.pl"
-                        "crypto/fipsmodule/ec/asm/ecp_nistz256-armv8.pl"
-                        "crypto/poly1305/asm/poly1305-armv8.pl"
-                        "crypto/fipsmodule/sha/asm/sha512-armv8.pl"))
+               (for-each
+                 (lambda (script)
+                   (invoke "yasm" "-X" "vc" "--dformat=cv8"
+                           "--oformat=win64" "--machine=amd64" "-o"
+                           (string-append (prefix script) "obj") script))
+                 (find-files "pregenerated/tmp" "\\.asm"))
 
-                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl"
-                            "ios64" "pregenerated/sha256-armv8-ios64.S")
+               (for-each
+                 (lambda (script)
+                   (invoke "perl" script "ios64"
+                           (string-append (prefix script) "-ios64.S"))
+                   (invoke "perl" script "linux64"
+                           (string-append (prefix script) "-linux64.S")))
+                 '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
+                   "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
+                   "crypto/fipsmodule/bn/asm/armv8-mont.pl"
+                   "crypto/chacha/asm/chacha-armv8.pl"
+                   "crypto/fipsmodule/ec/asm/ecp_nistz256-armv8.pl"
+                   "crypto/poly1305/asm/poly1305-armv8.pl"
+                   "crypto/fipsmodule/sha/asm/sha512-armv8.pl"))
 
-                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl"
-                            "linux64" "pregenerated/sha256-armv8-linux64.S")
+               (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl"
+                       "ios64" "pregenerated/sha256-armv8-ios64.S")
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "perl" script "elf"
-                                "-fPIC" "-DOPENSSL_IA32_SSE2"
-                                (string-append (prefix script) "-elf.S"))
-                        (invoke "perl" script "macosx"
-                                "-fPIC" "-DOPENSSL_IA32_SSE2"
-                                (string-append (prefix script) "-macosx.S"))
-                        (invoke "perl" script "win32n"
-                                "-fPIC" "-DOPENSSL_IA32_SSE2"
-                                (string-append
-                                  "pregenerated/tmp/"
-                                  (string-drop (prefix script) 13) 
"-win32n.asm")))
-                      '("crypto/fipsmodule/aes/asm/aes-586.pl"
-                        "crypto/fipsmodule/aes/asm/aesni-x86.pl"
-                        "crypto/fipsmodule/aes/asm/vpaes-x86.pl"
-                        "crypto/fipsmodule/bn/asm/x86-mont.pl"
-                        "crypto/chacha/asm/chacha-x86.pl"
-                        "crypto/fipsmodule/ec/asm/ecp_nistz256-x86.pl"
-                        "crypto/fipsmodule/modes/asm/ghash-x86.pl"
-                        "crypto/poly1305/asm/poly1305-x86.pl"
-                        "crypto/fipsmodule/sha/asm/sha256-586.pl"
-                        "crypto/fipsmodule/sha/asm/sha512-586.pl"))
+               (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl"
+                       "linux64" "pregenerated/sha256-armv8-linux64.S")
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "yasm" "-X" "vc" "--dformat=cv8"
-                                "--oformat=win32" "--machine=x86" "-o"
-                                (string-append (prefix script) "obj") script))
-                      (find-files "pregenerated/tmp" "-win32n\\.asm"))
+               (for-each
+                 (lambda (script)
+                   (invoke "perl" script "elf"
+                           "-fPIC" "-DOPENSSL_IA32_SSE2"
+                           (string-append (prefix script) "-elf.S"))
+                   (invoke "perl" script "macosx"
+                           "-fPIC" "-DOPENSSL_IA32_SSE2"
+                           (string-append (prefix script) "-macosx.S"))
+                   (invoke "perl" script "win32n"
+                           "-fPIC" "-DOPENSSL_IA32_SSE2"
+                           (string-append
+                             "pregenerated/tmp/"
+                             (string-drop (prefix script) 13) "-win32n.asm")))
+                 '("crypto/fipsmodule/aes/asm/aes-586.pl"
+                   "crypto/fipsmodule/aes/asm/aesni-x86.pl"
+                   "crypto/fipsmodule/aes/asm/vpaes-x86.pl"
+                   "crypto/fipsmodule/bn/asm/x86-mont.pl"
+                   "crypto/chacha/asm/chacha-x86.pl"
+                   "crypto/fipsmodule/ec/asm/ecp_nistz256-x86.pl"
+                   "crypto/fipsmodule/modes/asm/ghash-x86.pl"
+                   "crypto/poly1305/asm/poly1305-x86.pl"
+                   "crypto/fipsmodule/sha/asm/sha256-586.pl"
+                   "crypto/fipsmodule/sha/asm/sha512-586.pl"))
 
-                    (for-each
-                      (lambda (script)
-                        (invoke "perl" script "ios32"
-                                (string-append (prefix script) "-ios32.S"))
-                        (invoke "perl" script "linux32"
-                                (string-append (prefix script) "-linux32.S")))
-                      '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
-                        "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
-                        "crypto/fipsmodule/aes/asm/aes-armv4.pl"
-                        "crypto/fipsmodule/aes/asm/bsaes-armv7.pl"
-                        "crypto/fipsmodule/bn/asm/armv4-mont.pl"
-                        "crypto/chacha/asm/chacha-armv4.pl"
-                        "crypto/fipsmodule/ec/asm/ecp_nistz256-armv4.pl"
-                        "crypto/fipsmodule/modes/asm/ghash-armv4.pl"
-                        "crypto/poly1305/asm/poly1305-armv4.pl"
-                        "crypto/fipsmodule/sha/asm/sha256-armv4.pl"
-                        "crypto/fipsmodule/sha/asm/sha512-armv4.pl"))
+               (for-each
+                 (lambda (script)
+                   (invoke "yasm" "-X" "vc" "--dformat=cv8"
+                           "--oformat=win32" "--machine=x86" "-o"
+                           (string-append (prefix script) "obj") script))
+                 (find-files "pregenerated/tmp" "-win32n\\.asm"))
+
+               (for-each
+                 (lambda (script)
+                   (invoke "perl" script "ios32"
+                           (string-append (prefix script) "-ios32.S"))
+                   (invoke "perl" script "linux32"
+                           (string-append (prefix script) "-linux32.S")))
+                 '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
+                   "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
+                   "crypto/fipsmodule/aes/asm/aes-armv4.pl"
+                   "crypto/fipsmodule/aes/asm/bsaes-armv7.pl"
+                   "crypto/fipsmodule/bn/asm/armv4-mont.pl"
+                   "crypto/chacha/asm/chacha-armv4.pl"
+                   "crypto/fipsmodule/ec/asm/ecp_nistz256-armv4.pl"
+                   "crypto/fipsmodule/modes/asm/ghash-armv4.pl"
+                   "crypto/poly1305/asm/poly1305-armv4.pl"
+                   "crypto/fipsmodule/sha/asm/sha256-armv4.pl"
+                   "crypto/fipsmodule/sha/asm/sha512-armv4.pl"))
+
+               (format #t "Creating the tarball ...~%")
+               (force-output)
+               ;; The other option is to use cargo package --allow-dirty
+               (with-directory-excursion "../"
+                 (invoke "tar" "czf" #$output
+                         ;; avoid non-determinism in the archive
+                         "--sort=name" "--mtime=@0"
+                         "--owner=root:0" "--group=root:0"
+                         (string-append "ring-" #$version))))))))
+    (native-inputs
+     (list clang go gzip perl python2-minimal tar yasm))))
 
-                    (format #t "Creating the tarball ...~%")
-                    (force-output)
-                    ;; The other option is to use cargo package --allow-dirty
-                    (with-directory-excursion "../"
-                      (invoke "tar" "czf" #$output
-                              ;; avoid non-determinism in the archive
-                              "--sort=name" "--mtime=@0"
-                              "--owner=root:0" "--group=root:0"
-                              (string-append "ring-" #$version))))))))))))
 (define-public rust-ring-0.14
   (package
     (inherit rust-ring-0.16)
@@ -4824,6 +4824,7 @@ Digital Signature Algorithm} (ECDSA).")
         ("rust-untrusted" ,rust-untrusted-0.6)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define computed-origin-method (@@ (guix packages) computed-origin-method))
 (define rust-ring-0.13-sources
   (let* ((version "0.13.5")
          (upstream-source

Reply via email to