From 9b65b60b976c215ccf4e619c90b90e907ff82bf4 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 22 Jan 2024 09:32:57 +0100 Subject: gnu: notmuch: Update to 0.38.2. * gnu/packages/mail.scm (notmuch): Update to 0.38.2. * gnu/packages/patches/notmuch-emacs-test-output.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Apply file deletion. Change-Id: I60d0487f2258ed5ef8602de7a624686c5f012a4f --- gnu/local.mk | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3d1afd4555..b8f3da7591 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1713,7 +1713,6 @@ dist_patch_DATA = \ %D%/packages/patches/network-manager-meson.patch \ %D%/packages/patches/nginx-socket-cloexec.patch \ %D%/packages/patches/nnpack-system-libraries.patch \ - %D%/packages/patches/notmuch-emacs-test-output.patch \ %D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nss-getcwd-nonnull.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ -- cgit 1.4.1 From e479920cfd4208407d10939881a438f19ef289f7 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 24 Jan 2024 09:50:41 -0500 Subject: gnu: emacs-yasnippet: Update to 0.14.0-0.297546f. * gnu/packages/emacs-xyz.scm (emacs-yasnippet): Update to 0.14.0-0.297546f. Remove fix-tests patch. * gnu/packages/patches/emacs-yasnippet-fix-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. Change-Id: I3fda2bb3d879d88f06f9d814b6c8d835d9eafc9f --- gnu/local.mk | 1 - gnu/packages/emacs-xyz.scm | 65 +++++------ .../patches/emacs-yasnippet-fix-tests.patch | 127 --------------------- 3 files changed, 33 insertions(+), 160 deletions(-) delete mode 100644 gnu/packages/patches/emacs-yasnippet-fix-tests.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index b8f3da7591..c20e93390d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1132,7 +1132,6 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \ %D%/packages/patches/emacs-xelb-ignore-length-element.patch \ %D%/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch \ - %D%/packages/patches/emacs-yasnippet-fix-tests.patch \ %D%/packages/patches/enblend-enfuse-reproducible.patch \ %D%/packages/patches/enjarify-setup-py.patch \ %D%/packages/patches/enlightenment-fix-setuid-path.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ad8c72e97d..7d3e2dc17e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17919,39 +17919,40 @@ the Emacs TempEl package.") (license license:gpl3+)))) (define-public emacs-yasnippet - (package - (name "emacs-yasnippet") - (version "0.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joaotavora/yasnippet") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv")) - (patches - (search-patches "emacs-yasnippet-fix-empty-snippet-next.patch" - "emacs-yasnippet-fix-tests.patch")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "yasnippet-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - ;; Set HOME, otherwise test-rebindings fails. - (add-before 'check 'set-home - (lambda _ - (setenv "HOME" (getcwd)) - #t))))) - (home-page "https://github.com/joaotavora/yasnippet") - (synopsis "Yet another snippet extension for Emacs") - (description "YASnippet is a template system for Emacs. It allows you to + ;; The latest release is more than 5 years old, has test problems. + (let ((revision "0") + (commit "297546f0853a6a51f5b05e954d0c6aea8caa5ec2")) + (package + (name "emacs-yasnippet") + (version (git-version "0.14.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joaotavora/yasnippet") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b1fdigwjshfim6zyzkn2wa6k8xd4qlafrf7zgj5bsx6alrzac8v")) + (patches + (search-patches "emacs-yasnippet-fix-empty-snippet-next.patch")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:test-command '("emacs" "--batch" + "-l" "yasnippet-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + (modify-phases %standard-phases + ;; Set HOME, otherwise test-rebindings fails. + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" (getcwd))))))) + (home-page "https://github.com/joaotavora/yasnippet") + (synopsis "Yet another snippet extension for Emacs") + (description "YASnippet is a template system for Emacs. It allows you to type an abbreviation and automatically expand it into function templates.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-yasnippet-snippets (package diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch deleted file mode 100644 index 5995b0afa4..0000000000 --- a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 904a058fcf4e1f4985e03f8551eec282ca12ccb5 Mon Sep 17 00:00:00 2001 -From: Philipp Stephani -Date: Mon, 6 Dec 2021 18:50:10 +0100 -Subject: [PATCH] Unbreak unit tests under Emacs 28. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- Emacs 28 has a new mode ‘lisp-data-mode’ for Lisp data. -- A test that was temporarily broken passes again. -- The default for ‘org-adapt-indentation’ has changed. -- buffer-list may be called with arguments when native-comp is enabled. - -2023-08-19 Liliana Marie Prikler - - * delete-numberless-inner-snippet-issue-562: Correct value in - looking-at. ---- - yasnippet-tests.el | 45 ++++++++++++++++++++++++++++----------------- - 1 file changed, 28 insertions(+), 17 deletions(-) - -diff --git a/yasnippet-tests.el b/yasnippet-tests.el -index f7ca2bb..7618ab7 100644 ---- a/yasnippet-tests.el -+++ b/yasnippet-tests.el -@@ -1,6 +1,6 @@ - ;;; yasnippet-tests.el --- some yasnippet tests -*- lexical-binding: t -*- - --;; Copyright (C) 2012-2015, 2017-2018 Free Software Foundation, Inc. -+;; Copyright (C) 2012-2015, 2017-2018, 2021 Free Software Foundation, Inc. - - ;; Author: João Távora - ;; Keywords: emulations, convenience -@@ -289,7 +289,7 @@ attention to case differences." - (should (looking-at "testblable")) - (ert-simulate-command '(yas-next-field-or-maybe-expand)) - (ert-simulate-command '(yas-skip-and-clear-field)) -- (should (looking-at "ble")) -+ (should (looking-at "blable")) - (should (null (yas-active-snippets))))) - - (ert-deftest delete-nested-simple-field-issue-824 () -@@ -556,16 +556,19 @@ XXXXX ------------------------")))) - (yas-mock-insert "foo bar") - (ert-simulate-command '(yas-next-field)) - (goto-char (point-min)) -- (let ((expected (with-temp-buffer -- (insert (format (concat "* Test foo bar\n" -- " " org-property-format "\n" -- " " org-property-format "\n" -- " " org-property-format) -- ":PROPERTIES:" "" -- ":ID:" "foo bar-after" -- ":END:" "")) -- (delete-trailing-whitespace) -- (buffer-string)))) -+ ;; The default value of `org-adapt-indentation' changed between Org-mode 9.4 -+ ;; and 9.5, so force a specific value. -+ (let* ((org-adapt-indentation nil) -+ (expected (with-temp-buffer -+ (insert (format (concat "* Test foo bar\n" -+ org-property-format "\n" -+ org-property-format "\n" -+ org-property-format) -+ ":PROPERTIES:" "" -+ ":ID:" "foo bar-after" -+ ":END:" "")) -+ (delete-trailing-whitespace) -+ (buffer-string)))) - ;; Some org-mode versions leave trailing whitespace, some don't. - (delete-trailing-whitespace) - (should (equal expected (buffer-string)))))) -@@ -1195,11 +1198,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ - (let ((saved-sym (make-symbol "yas--buffer-list"))) - `(let ((,saved-sym (symbol-function 'buffer-list))) - (cl-letf (((symbol-function 'buffer-list) -- (lambda () -+ (lambda (&rest args) - (cl-remove-if (lambda (buf) - (with-current-buffer buf - (eq major-mode 'lisp-interaction-mode))) -- (funcall ,saved-sym))))) -+ (funcall ,saved-sym args))))) - ,@body)))) - - -@@ -1356,7 +1359,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ - ,@(if (fboundp 'prog-mode) - '(prog-mode)) - emacs-lisp-mode -- lisp-interaction-mode)) -+ lisp-interaction-mode -+ ;; `lisp-data-mode' doesn't exist prior to Emacs 28. -+ ,@(and (fboundp 'lisp-data-mode) '(lisp-data-mode)))) - (observed (yas--modes-to-activate))) - (should (equal major-mode (car observed))) - (should (equal (sort expected #'string<) (sort observed #'string<)))))))) -@@ -1384,7 +1389,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ - '(prog-mode)) - emacs-lisp-mode - and-also-this-one -- lisp-interaction-mode)) -+ lisp-interaction-mode -+ ;; `lisp-data-mode' doesn't exist prior to -+ ;; Emacs 28. -+ ,@(and (fboundp 'lisp-data-mode) -+ '(lisp-data-mode)))) - (observed (yas--modes-to-activate))) - (should (equal expected-first - (cl-subseq observed 0 (length expected-first)))) -@@ -1657,9 +1666,11 @@ TODO: be meaner" - "Test expansion of snippets in org source blocks." - ;; org 9+ no longer runs fontification for text-mode, so our hacks - ;; don't work. Note that old ert doesn't have skipping, so we have -- ;; to expect failure instead. -+ ;; to expect failure instead. Starting with Org-mode 9.5 this seems -+ ;; to work again. - :expected-result (if (and (fboundp 'org-in-src-block-p) -- (version< (org-version) "9")) -+ (or (version< (org-version) "9") -+ (version<= "9.5" (org-version)))) - :passed :failed) - (let ((text-mode-hook #'yas-minor-mode)) - (do-yas-org-native-tab-in-source-block "text"))) --- -2.37.2 - -- cgit 1.4.1 From da3e6aea0a750246e8a9120d62441c3df65faff0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 24 Jan 2024 16:12:07 +0200 Subject: gnu: range-v3: Update to 0.12.0. * gnu/packages/cpp.scm (range-v3): Update to 0.12.0. [source]: Remove patch. * gnu/packages/patches/range-v3-build-with-gcc10.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. Change-Id: I078937f9aff0da31ede8d472d8739e48bb775c55 --- gnu/local.mk | 1 - gnu/packages/cpp.scm | 7 +- .../patches/range-v3-build-with-gcc10.patch | 122 --------------------- 3 files changed, 3 insertions(+), 127 deletions(-) delete mode 100644 gnu/packages/patches/range-v3-build-with-gcc10.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c20e93390d..43d02ee793 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1957,7 +1957,6 @@ dist_patch_DATA = \ %D%/packages/patches/qtwayland-cleanup-callbacks.patch \ %D%/packages/patches/ragel-char-signedness.patch \ %D%/packages/patches/randomjungle-disable-static-build.patch \ - %D%/packages/patches/range-v3-build-with-gcc10.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \ %D%/packages/patches/ratpoints-sturm_and_rp_private.patch \ %D%/packages/patches/ratpoison-shell.patch \ diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index eeb4e6bf7b..44175231af 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -25,7 +25,7 @@ ;;; Copyright © 2021 jgart ;;; Copyright © 2021 Julien Lepiller ;;; Copyright © 2021 Disseminate Dissent -;;; Copyright © 2022, 2023 Efraim Flashner +;;; Copyright © 2022-2024 Efraim Flashner ;;; Copyright © 2022 muradm ;;; Copyright © 2022 Attila Lendvai ;;; Copyright © 2022 Arun Isaac @@ -187,7 +187,7 @@ development effort.") (define-public range-v3 (package (name "range-v3") - (version "0.11.0") + (version "0.12.0") (source (origin (method git-fetch) @@ -195,9 +195,8 @@ development effort.") (url "https://github.com/ericniebler/range-v3.git") (commit version))) (file-name (git-file-name name version)) - (patches (search-patches "range-v3-build-with-gcc10.patch")) (sha256 - (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh")))) + (base32 "0r85s5rmp5ixmik2y5y4w760pa38j1sg9hbr1fss2flibzvrf53d")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/patches/range-v3-build-with-gcc10.patch b/gnu/packages/patches/range-v3-build-with-gcc10.patch deleted file mode 100644 index a5d5b33523..0000000000 --- a/gnu/packages/patches/range-v3-build-with-gcc10.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 0487cca29e352e8f16bbd91fda38e76e39a0ed28 Mon Sep 17 00:00:00 2001 -From: Louis Dionne -Date: Tue, 15 Jun 2021 14:40:01 -0400 -Subject: [PATCH] Work around broken integration with latest libc++. (#1635) - -* Work around broken integration with latest libc++. - -In newer versions of libc++, the base template of std::iterator_traits -provides a member typedef called __primary_template which is an alias -to the std::iterator_traits specialization itself. This fix works with -both the old version of libc++ and the new one. - -Fixes issue #1633. - -* Fix is_std_iterator_traits_specialized_v on MSVC - -It used to pretend that std::iterator_traits is a user-defined -specialization, which isn't the case. This is due to MSVC's -iterator_traits specialization not posing as the base template. ---- - include/std/detail/associated_types.hpp | 22 +++++++++++----- - test/CMakeLists.txt | 1 + - test/bug1633.cpp | 34 +++++++++++++++++++++++++ - 3 files changed, 51 insertions(+), 6 deletions(-) - create mode 100644 test/bug1633.cpp - -diff --git a/include/std/detail/associated_types.hpp b/include/std/detail/associated_types.hpp -index b642166d4..449a3f91c 100644 ---- a/include/std/detail/associated_types.hpp -+++ b/include/std/detail/associated_types.hpp -@@ -265,11 +265,22 @@ namespace ranges - template - char is_std_iterator_traits_specialized_impl_(void *); - #elif defined(_LIBCPP_VERSION) -- template -- char ( -- &is_std_iterator_traits_specialized_impl_(std::__iterator_traits *))[2]; -+ // In older versions of libc++, the base template inherits from std::__iterator_traits. -+ template class IteratorTraitsBase, typename I, bool B> -+ char (&libcpp_iterator_traits_base_impl(IteratorTraitsBase *))[2]; -+ template class IteratorTraitsBase, typename I> -+ char libcpp_iterator_traits_base_impl(void *); -+ -+ // In newer versions, the base template has only one template parameter and provides the -+ // __primary_template typedef which aliases the iterator_traits specialization. -+ template class, typename I> -+ char (&libcpp_iterator_traits_base_impl(typename std::iterator_traits::__primary_template *))[2]; -+ template class, typename I> -+ char libcpp_iterator_traits_base_impl(void *); -+ - template -- char is_std_iterator_traits_specialized_impl_(void *); -+ auto is_std_iterator_traits_specialized_impl_(std::iterator_traits* traits) -+ -> decltype(libcpp_iterator_traits_base_impl(traits)); - #elif defined(_MSVC_STL_VERSION) - template - char (&is_std_iterator_traits_specialized_impl_( -@@ -287,14 +298,13 @@ namespace ranges - RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v = - 1 == sizeof(is_std_iterator_traits_specialized_impl_( - static_cast *>(nullptr))); -- -+#endif - // The standard iterator_traits specialization(s) do not count - // as user-specialized. This will no longer be necessary in C++20. - // This helps with `T volatile*` and `void *`. - template - RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v = - false; --#endif - } // namespace detail - /// \endcond - } // namespace ranges -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 889f314af..2c2b7c09c 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -19,3 +19,4 @@ rv3_add_test(test.bug474 bug474 bug474.cpp) - rv3_add_test(test.bug566 bug566 bug566.cpp) - rv3_add_test(test.bug1322 bug1322 bug1322.cpp) - rv3_add_test(test.bug1335 bug1335 bug1335.cpp) -+rv3_add_test(test.bug1633 bug1633 bug1633.cpp) -diff --git a/test/bug1633.cpp b/test/bug1633.cpp -new file mode 100644 -index 000000000..be52420ad ---- /dev/null -+++ b/test/bug1633.cpp -@@ -0,0 +1,34 @@ -+// Range v3 library -+// -+// Use, modification and distribution is subject to the -+// Boost Software License, Version 1.0. (See accompanying -+// file LICENSE_1_0.txt or copy at -+// http://www.boost.org/LICENSE_1_0.txt) -+// -+// Project home: https://github.com/ericniebler/range-v3 -+ -+#include -+#include -+#include -+ -+struct X { }; -+ -+namespace std { -+ template<> struct iterator_traits { }; -+} -+ -+struct Y { -+ using difference_type = std::ptrdiff_t; -+ using value_type = int; -+ using pointer = int*; -+ using reference = int&; -+ using iterator_category = std::forward_iterator_tag; -+}; -+ -+static_assert(ranges::detail::is_std_iterator_traits_specialized_v, ""); -+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v, ""); -+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v, ""); -+ -+int main() -+{ -+} -- cgit 1.4.1 From f027a6c22c6cefe10cdd46821168bc9261111d5b Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 25 Jan 2024 12:29:30 +0100 Subject: gnu: s7: Compile with flint@3. * gnu/packages/patches/s7-flint-3.patch: New file. * gnu/local.mk (dist_patch_DATA): Register file. * gnu/packages/lisp.scm (s7-bootstrap)[source]: Add patch. [inputs]: Remove arb. Change-Id: I06bac9d850977b8ee769e629f1b64411a8dc3247 --- gnu/local.mk | 3 ++- gnu/packages/lisp.scm | 10 ++++++---- gnu/packages/patches/s7-flint-3.patch | 31 +++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/s7-flint-3.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 43d02ee793..9eac0cae1a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012-2024 Ludovic Courtès -# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Andreas Enge +# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023, 2024 Andreas Enge # Copyright © 2016 Mathieu Lirzin # Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver # Copyright © 2016 Chris Marusich @@ -2003,6 +2003,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \ %D%/packages/patches/rw-igraph-0.10.patch \ %D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \ + %D%/packages/patches/s7-flint-3.patch \ %D%/packages/patches/sbc-fix-build-non-x86.patch \ %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \ %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 8e614b7d90..29d5ddebdc 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -25,7 +25,8 @@ ;;; Copyright © 2022 ( ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Yovan Naumovski -;;; Copyright © 2023 Andrew Kravchuk +;;; Copyright © 2024 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -1502,7 +1503,8 @@ includes a compiler as well as an interpreter.") (file-name (git-file-name name version)) (sha256 (base32 - "0fiw8lb7rswglixvn271la2q2hgwszrf2ckykhr6jjxdvmb9a7d0")))) + "0fiw8lb7rswglixvn271la2q2hgwszrf2ckykhr6jjxdvmb9a7d0")) + (patches (search-patches "s7-flint-3.patch")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests in bootstrap @@ -1533,7 +1535,7 @@ includes a compiler as well as an interpreter.") (invoke #$(cc-for-target) "libarb_s7.c" "-I." "-O2" "-g" "-shared" "-o" "libarb_s7.so" - "-larb" "-lflint" "-lmpc" "-fPIC") + "-lflint" "-lmpc" "-fPIC") (display "[BUILD] libnotcurses_s7.so\n") (invoke #$(cc-for-target) "notcurses_s7.c" "-I." "-O2" "-g" @@ -1572,7 +1574,7 @@ includes a compiler as well as an interpreter.") (install-file "s7.c" share) (install-file "s7.h" inc) (install-file "s7.html" doc))))))) - (inputs (list arb flint mpc notcurses)) + (inputs (list flint mpc notcurses)) (home-page "https://ccrma.stanford.edu/software/snd/snd/s7.html") (synopsis "Scheme interpreter intended as an extension language") (description diff --git a/gnu/packages/patches/s7-flint-3.patch b/gnu/packages/patches/s7-flint-3.patch new file mode 100644 index 0000000000..49f47adda1 --- /dev/null +++ b/gnu/packages/patches/s7-flint-3.patch @@ -0,0 +1,31 @@ +From bd54bd42c5933e4c571dcfd6a8afac8e52cf7366 Mon Sep 17 00:00:00 2001 +From: Andreas Enge +Date: Thu, 25 Jan 2024 12:13:18 +0100 +Subject: [PATCH] Adapt libarb_s7.c to FLINT 3. + +--- + libarb_s7.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libarb_s7.c b/libarb_s7.c +index 7413ccc..d9e0084 100644 +--- a/libarb_s7.c ++++ b/libarb_s7.c +@@ -6,10 +6,10 @@ + #include + #include + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + #define WITH_GMP 1 + #include "s7.h" +-- +2.41.0 + -- cgit 1.4.1 From ff9d8420cf8bf0b0f0ceb4210966f821a0447858 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 25 Jan 2024 14:41:30 +0100 Subject: gnu: python-flint: Update to 0.5.0 and build with flint@3. * gnu/packages/patches/python-flint-includes.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Unregister file. * gnu/packages/algebra.scm (python-flint): Update to 0.5.0. [source]: Drop patch. [inputs]: Drop arb. [native-inputs]: Use python-cython-3. Change-Id: I5fa9b201efff76e16f957aee0ebcd453ea823e69 --- gnu/local.mk | 1 - gnu/packages/algebra.scm | 9 +- gnu/packages/patches/python-flint-includes.patch | 131 ----------------------- 3 files changed, 4 insertions(+), 137 deletions(-) delete mode 100644 gnu/packages/patches/python-flint-includes.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 9eac0cae1a..ab63bd5881 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1910,7 +1910,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \ %D%/packages/patches/python-pillow-CVE-2022-45199.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ - %D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-memcached-syntax-warnings.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 43047a9b32..5fd8d0f106 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -494,7 +494,7 @@ real and complex numbers, with automatic, rigorous error control.") (define-public python-flint (package (name "python-flint") - (version "0.3.0") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -503,15 +503,14 @@ real and complex numbers, with automatic, rigorous error control.") (file-name (git-file-name name version)) (sha256 (base32 - "1v0anazbj1cfi68nl2j6dbd31kgkc1563xmr0zk5xk3xj78569pw")) - (patches (search-patches "python-flint-includes.patch")))) + "10370kqik6q6vdqrqv3gbznsyaxbgqb3rbrff4alpw0sqr5s07c7")))) (build-system python-build-system) (native-inputs - (list python-cython)) + (list python-cython-3)) (propagated-inputs (list python-numpy)) (inputs - (list arb flint)) + (list flint)) (synopsis "Python module wrapping ARB and FLINT") (description "Python-flint is a Python extension module wrapping FLINT diff --git a/gnu/packages/patches/python-flint-includes.patch b/gnu/packages/patches/python-flint-includes.patch deleted file mode 100644 index c0cfe94a04..0000000000 --- a/gnu/packages/patches/python-flint-includes.patch +++ /dev/null @@ -1,131 +0,0 @@ -The following patch, authored by Andreas Enge, looks for the flint include -files in the correct subdirectory. - -diff -u -r python-flint-old/src/flint.pxd python-flint-new/src/flint.pxd ---- python-flint-old/src/flint.pxd 2019-03-19 10:26:11.055748626 +0100 -+++ python-flint-new/src/flint.pxd 2019-03-19 10:35:23.269341203 +0100 -@@ -27,7 +27,7 @@ - - ctypedef long fmpz_struct - --cdef extern from "flint.h": -+cdef extern from "flint/flint.h": - ctypedef void * flint_rand_t - void flint_randinit(flint_rand_t state) - void flint_randclear(flint_rand_t state) -@@ -35,7 +35,7 @@ - long flint_get_num_threads() - void flint_cleanup() - --cdef extern from "nmod_vec.h": -+cdef extern from "flint/nmod_vec.h": - ctypedef struct nmod_t: - mp_limb_t n - mp_limb_t ninv -@@ -47,7 +47,7 @@ - mp_limb_t nmod_mul(mp_limb_t a, mp_limb_t b, nmod_t mod) - mp_limb_t nmod_div(mp_limb_t a, mp_limb_t b, nmod_t mod) - --cdef extern from "nmod_poly.h": -+cdef extern from "flint/nmod_poly.h": - ctypedef struct nmod_poly_struct: - mp_ptr coeffs - long alloc -@@ -129,7 +129,7 @@ - void nmod_poly_factor_init(nmod_poly_factor_t fac) - void nmod_poly_factor_clear(nmod_poly_factor_t fac) - --cdef extern from "nmod_mat.h": -+cdef extern from "flint/nmod_mat.h": - ctypedef struct nmod_mat_struct: - mp_limb_t * entries - long r -@@ -178,7 +178,7 @@ - long nmod_mat_rref(nmod_mat_t A) - long nmod_mat_nullspace(nmod_mat_t X, nmod_mat_t A) - --cdef extern from "fmpz.h": -+cdef extern from "flint/fmpz.h": - ctypedef fmpz_struct fmpz_t[1] - int COEFF_IS_MPZ(fmpz_struct v) - void fmpz_init(fmpz_t op) -@@ -268,7 +268,7 @@ - void fmpz_rfac_uiui(fmpz_t r, ulong x, ulong n) - void fmpz_primorial(fmpz_t res, ulong n) - --cdef extern from "fmpz_factor.h": -+cdef extern from "flint/fmpz_factor.h": - ctypedef struct fmpz_factor_struct: - int sign - fmpz_struct * p -@@ -280,7 +280,7 @@ - void fmpz_factor_clear(fmpz_factor_t factor) - void fmpz_factor(fmpz_factor_t factor, fmpz_t n) - --cdef extern from "fmpz_poly.h": -+cdef extern from "flint/fmpz_poly.h": - ctypedef struct fmpz_poly_struct: - fmpz_struct * coeffs - long alloc -@@ -390,14 +390,14 @@ - void fmpz_poly_cos_minpoly(fmpz_poly_t, ulong) - void fmpz_poly_swinnerton_dyer(fmpz_poly_t, ulong) - --cdef extern from "fmpz_poly_factor.h": -+cdef extern from "flint/fmpz_poly_factor.h": - void fmpz_poly_factor_init(fmpz_poly_factor_t fac) - void fmpz_poly_factor_clear(fmpz_poly_factor_t fac) - void fmpz_poly_factor_zassenhaus(fmpz_poly_factor_t fac, fmpz_poly_t G) - void fmpz_poly_factor(fmpz_poly_factor_t fac, fmpz_poly_t G) - void fmpz_poly_factor_squarefree(fmpz_poly_factor_t fac, fmpz_poly_t G) - --cdef extern from "fmpz_mat.h": -+cdef extern from "flint/fmpz_mat.h": - ctypedef struct fmpz_mat_struct: - fmpz_struct * entries - long r -@@ -448,7 +448,7 @@ - void fmpz_mat_snf(fmpz_mat_t S, const fmpz_mat_t A) - int fmpz_mat_is_in_snf(const fmpz_mat_t A) - --cdef extern from "fmpz_lll.h": -+cdef extern from "flint/fmpz_lll.h": - ctypedef struct fmpz_lll_struct: - double delta - double eta -@@ -461,7 +461,7 @@ - void fmpz_lll(fmpz_mat_t B, fmpz_mat_t U, const fmpz_lll_t fl) - - --cdef extern from "fmpq.h": -+cdef extern from "flint/fmpq.h": - ctypedef struct fmpq_struct: - fmpz_struct num - fmpz_struct den -@@ -506,7 +506,7 @@ - void fmpq_next_signed_minimal(fmpq_t res, fmpq_t x) - void fmpq_harmonic_ui(fmpq_t res, ulong n) - --cdef extern from "fmpq_poly.h": -+cdef extern from "flint/fmpq_poly.h": - ctypedef struct fmpq_poly_struct: - fmpz_struct * coeffs - fmpz_t den -@@ -620,7 +620,7 @@ - void fmpq_poly_compose_series(fmpq_poly_t res, fmpq_poly_t poly1, fmpq_poly_t poly2, long n) - void fmpq_poly_revert_series(fmpq_poly_t res, fmpq_poly_t poly1, long n) - --cdef extern from "fmpq_mat.h": -+cdef extern from "flint/fmpq_mat.h": - ctypedef struct fmpq_mat_struct: - fmpq_struct * entries - long r -@@ -672,7 +672,7 @@ - long fmpq_mat_rref(fmpq_mat_t B, fmpq_mat_t A) - void fmpq_mat_transpose(fmpq_mat_t B, fmpq_mat_t A) - --cdef extern from "arith.h": -+cdef extern from "flint/arith.h": - void arith_number_of_partitions(fmpz_t res, ulong n) - int arith_moebius_mu(fmpz_t n) - void arith_divisor_sigma(fmpz_t v, fmpz_t n, ulong k) -- cgit 1.4.1 From 78bdf4f9993c47956270adefca24991b2221752f Mon Sep 17 00:00:00 2001 From: Michal Atlas Date: Fri, 24 Nov 2023 17:07:14 +0000 Subject: gnu: Add cl-rpcq. * gnu/packages/quantum.scm: New file. (cl-rpcq, sbcl-rpcq): New variables. * gnu/local.mk (GNU_SYSTEM_MODULES): Register "quantum.scm". Change-Id: Ic893ad22ffb7a3bf9aa5e841fcf4c14bf3a23b2f Co-authored-by: Guillaume Le Vaillant --- gnu/local.mk | 1 + gnu/packages/quantum.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/quantum.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index ab63bd5881..041e2f1b7b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -543,6 +543,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/toys.scm \ %D%/packages/tryton.scm \ %D%/packages/qt.scm \ + %D%/packages/quantum.scm \ %D%/packages/racket.scm \ %D%/packages/radio.scm \ %D%/packages/ragel.scm \ diff --git a/gnu/packages/quantum.scm b/gnu/packages/quantum.scm new file mode 100644 index 0000000000..c0658daae4 --- /dev/null +++ b/gnu/packages/quantum.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Michal Atlas +;;; Copyright © 2024 Guillaume Le Vaillant +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages quantum) + #:use-module (gnu packages) + #:use-module (gnu packages lisp-check) + #:use-module (gnu packages lisp-xyz) + #:use-module (guix build-system asdf) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +(define-public sbcl-rpcq + (package + (name "sbcl-rpcq") + (version "3.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rigetti/rpcq") + (commit (string-append "v" version)))) + (file-name (git-file-name "cl-rpcq" version)) + (sha256 + (base32 "1bvppxlacvp0pfdbpn7ls1zxd127jacl225ds7lph5s8f8cyvf17")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiasco)) + (inputs + (list sbcl-alexandria + sbcl-bordeaux-threads + sbcl-cl-messagepack + sbcl-cl-ppcre + sbcl-cl-syslog + sbcl-flexi-streams + sbcl-local-time + sbcl-parse-float + sbcl-pzmq + sbcl-trivial-backtrace + sbcl-uuid + sbcl-yason)) + (synopsis "RPC framework for Rigetti Quantum Cloud Services") + (description + "This package provides the asynchronous RPC client-server framework and +message specification for Rigetti Quantum Cloud Services (QCS). It implements +an efficient transport protocol by using ZeroMQ (ZMQ) sockets and MessagePack +(msgpack) serialization.") + (home-page "https://github.com/rigetti/rpcq") + (license license:asl2.0))) + +(define-public cl-rpcq + (sbcl-package->cl-source-package sbcl-rpcq)) -- cgit 1.4.1 From 2f67528edd2d7669b441f61cb36d1b0f4f60bdb9 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sun, 28 Jan 2024 16:37:16 +0100 Subject: home: Add home-dotfiles-service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/home/service/dotfiles.scm: New file; * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Essential Home Services): Document it. Change-Id: I6769169cfacefc3842faa5b31bee081c56c28743 Co-authored-by: Ludovic Courtès --- doc/guix.texi | 108 +++++++++++++++++++++++++++++++++++++ gnu/home/services/dotfiles.scm | 117 +++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 1 + po/guix/POTFILES.in | 1 + 4 files changed, 227 insertions(+) create mode 100644 gnu/home/services/dotfiles.scm (limited to 'gnu/local.mk') diff --git a/doc/guix.texi b/doc/guix.texi index c458befb76..dee14e3bb7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -44216,6 +44216,114 @@ to use alternative services to implement more advanced use cases like read-only home. Feel free to experiment and share your results. @end defvar +It is often the case that Guix Home users already have a setup for versioning +their user configuration files (also known as @emph{dotfiles}) in a single +directory, and some way of automatically deploy changes to their user home. + +The @code{home-dotfiles-service-type} from @code{(gnu home services dotfiles)} +is designed to ease the way into using Guix Home for this kind of users, +allowing them to point the service to their dotfiles directory, which must +follow the layout suggested by +@uref{https://www.gnu.org/software/stow/, GNU Stow}, +and have their dotfiles automatically deployed to their user home, without +migrating them to Guix native configurations. + +The dotfiles directory layout is expected to be structured as follows. Please +keep in mind that it is advisable to keep your dotfiles directories under +version control, for example in the same repository where you'd track your +Guix Home configuration. + +@example +~$ tree -a ./dotfiles/ +dotfiles/ +├── git +│ └── .gitconfig +├── gpg +│ └── .gnupg +│ ├── gpg-agent.conf +│ └── gpg.conf +├── guile +│ └── .guile +├── guix +│ └── .config +│ └── guix +│ └── channels.scm +├── nix +│ ├── .config +│ │ └── nixpkgs +│ │ └── config.nix +│ └── .nix-channels +├── tmux +│ └── .tmux.conf +└── vim + └── .vimrc + +13 directories, 10 files +@end example + +For an informal specification please refer to the Stow manual +(@pxref{Top,,, stow, Introduction}). A suitable configuration would then +be: + +@lisp +(home-environment + ;; @dots{} + (services + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories (list "./dotfiles")))))) +@end lisp + +The expected home directory state would then be: + +@example +. +├── .config +│ ├── guix +│ │ └── channels.scm +│ └── nixpkgs +│ └── config.nix +├── .gitconfig +├── .gnupg +│ ├── gpg-agent.conf +│ └── gpg.conf +├── .guile +├── .nix-channels +├── .tmux.conf +└── .vimrc +@end example + +@defvar home-dotfiles-service-type +Return a service which is very similiar to @code{home-files-service-type} +(and actually extends it), but designed to ease the way into using Guix +Home for users that already track their dotfiles under some kind of version +control. This service allows users to point Guix Home to their dotfiles +directory and have their files automatically deployed to their home directory +just like Stow would, without migrating all of their dotfiles to Guix native +configurations. +@end defvar + +@deftp {Data Type} home-dotfiles-configuration +Available @code{home-dotfiles-configuration} fields are: + +@table @asis +@item @code{source-directory} (default: @code{(current-source-directory)}) +The path where dotfile directories are resolved. By default dotfile directories +are resolved relative the source location where +@code{home-dotfiles-configuration} appears. + +@item @code{directories} (type: list-of-strings) +The list of dotfiles directories where @code{home-dotfiles-service-type} will +look for application dotfiles. + +@item @code{exclude} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")}) +The list of file patterns @code{home-dotfiles-service-type} will exclude while +visiting each one of the @code{directories}. + +@end table + +@end deftp + @defvar home-xdg-configuration-files-service-type The service is very similar to @code{home-files-service-type} (and actually extends it), but used for defining files, which will go to diff --git a/gnu/home/services/dotfiles.scm b/gnu/home/services/dotfiles.scm new file mode 100644 index 0000000000..6a740c42ce --- /dev/null +++ b/gnu/home/services/dotfiles.scm @@ -0,0 +1,117 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ludovic Courtès +;;; Copyright © 2024 Giacomo Leidi +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu home services dotfiles) + #:use-module (gnu home services) + #:use-module (gnu services) + #:autoload (guix build utils) (find-files) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module ((guix utils) #:select (current-source-directory)) + #:use-module (srfi srfi-1) + #:use-module (ice-9 ftw) + #:use-module (ice-9 regex) + #:export (home-dotfiles-service-type + home-dotfiles-configuration + home-dotfiles-configuration? + home-dotfiles-configuration-source-directory + home-dotfiles-configuration-directories + home-dotfiles-configuration-excluded)) + +(define %home-dotfiles-excluded + '(".*~" + ".*\\.swp" + "\\.git" + "\\.gitignore")) + +(define-record-type* + home-dotfiles-configuration make-home-dotfiles-configuration + home-dotfiles-configuration? + (source-directory home-dotfiles-configuration-source-directory + (default (current-source-directory)) + (innate)) + (directories home-dotfiles-configuration-directories ;list of strings + (default '())) + (excluded home-dotfiles-configuration-excluded ;list of strings + (default %home-dotfiles-excluded))) + +(define (import-dotfiles directory files) + "Return a list of objects compatible with @code{home-files-service-type}'s +value. Each object is a pair where the first element is the relative path +of a file and the second is a gexp representing the file content. Objects are +generated by recursively visiting DIRECTORY and mapping its contents to the +user's home directory, excluding files that match any of the patterns in EXCLUDED." + (define (strip file) + (string-drop file (+ 1 (string-length directory)))) + + (define (format file) + ;; Remove from FILE characters that cannot be used in the store. + (string-append + "home-dotfiles-" + (string-map (lambda (chr) + (if (and (char-set-contains? char-set:ascii chr) + (char-set-contains? char-set:graphic chr) + (not (memv chr '(#\. #\/ #\space)))) + chr + #\-)) + file))) + + (map (lambda (file) + (let ((stripped (strip file))) + (list stripped + (local-file file (format stripped) + #:recursive? #t)))) + files)) + +(define (home-dotfiles-configuration->files config) + "Return a list of objects compatible with @code{home-files-service-type}'s +value, generated following GNU Stow's algorithm for each of the +directories in CONFIG, excluding files that match any of the patterns configured." + (define excluded + (home-dotfiles-configuration-excluded config)) + (define exclusion-rx + (make-regexp (string-append "^.*(" (string-join excluded "|") ")$"))) + + (define (directory-contents directory) + (find-files directory + (lambda (file stat) + (not (regexp-exec exclusion-rx + (basename file)))))) + + (define (resolve directory) + ;; Resolve DIRECTORY relative to the 'source-directory' field of CONFIG. + (if (string-prefix? "/" directory) + directory + (in-vicinity (home-dotfiles-configuration-source-directory config) + directory))) + + (append-map (lambda (directory) + (let* ((directory (resolve directory)) + (contents (directory-contents directory))) + (import-dotfiles directory contents))) + (home-dotfiles-configuration-directories config))) + +(define-public home-dotfiles-service-type + (service-type (name 'home-dotfiles) + (extensions + (list (service-extension home-files-service-type + home-dotfiles-configuration->files))) + (default-value (home-dotfiles-configuration)) + (description "Files that will be put in the user's home directory +following GNU Stow's algorithm, and further processed during activation."))) diff --git a/gnu/local.mk b/gnu/local.mk index 041e2f1b7b..5e0a058848 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -96,6 +96,7 @@ GNU_SYSTEM_MODULES = \ %D%/home/services.scm \ %D%/home/services/desktop.scm \ %D%/home/services/dict.scm \ + %D%/home/services/dotfiles.scm \ %D%/home/services/symlink-manager.scm \ %D%/home/services/fontutils.scm \ %D%/home/services/gnupg.scm \ diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 154ad4e530..d13e19619d 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -14,6 +14,7 @@ gnu/services/samba.scm gnu/services/version-control.scm gnu/home/services.scm gnu/home/services/desktop.scm +gnu/home/services/dotfiles.scm gnu/home/services/fontutils.scm gnu/home/services/gnupg.scm gnu/home/services/guix.scm -- cgit 1.4.1 From e3942c7589966206d1d8b4246eddee753f1c4818 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Tue, 16 Jan 2024 22:00:38 +0000 Subject: gnu: Add (gnu packages golang-crypto) module. * gnu/packages/golang-crypto.scm: New file. * gnu/local.mk: Add to gnu/packages/golang-crypto.scm scope. Change-Id: I92a110f31a74c5a54c59ee2a0f17373915be1b35 --- gnu/local.mk | 1 + gnu/packages/golang-crypto.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 gnu/packages/golang-crypto.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 5e0a058848..2a88db9f6d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -308,6 +308,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gobby.scm \ %D%/packages/golang.scm \ %D%/packages/golang-check.scm \ + %D%/packages/golang-crypto.scm \ %D%/packages/golang-web.scm \ %D%/packages/gperf.scm \ %D%/packages/gpodder.scm \ diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm new file mode 100644 index 0000000000..38ccc5ffe9 --- /dev/null +++ b/gnu/packages/golang-crypto.scm @@ -0,0 +1,43 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages golang-crypto) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-check)) + +;;; Commentary: +;;; +;;; Golang modules (libraries) related to Cryptography: encryption algorithms, +;;; hashing functions, TLS, key management, digital signatures, password +;;; hashing etc. +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- cgit 1.4.1 From 2c5293afffa39d5d4aaec248a1973c7f62b1a0b4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 28 Jan 2024 20:46:03 -0500 Subject: gnu: lugaru: Apply patch fixing sound. * gnu/packages/patches/lugaru-fix-sound.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/games.scm (lugaru) [source]: Update source URL. Apply patch. [arguments]: Use gexps. [inputs]: Remove labels and sort. Change-Id: Iebefc9fc43d3473e51c8c732539e6aa2f14d9f5f --- gnu/local.mk | 1 + gnu/packages/games.scm | 37 ++++++++++++++--------------- gnu/packages/patches/lugaru-fix-sound.patch | 32 +++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 gnu/packages/patches/lugaru-fix-sound.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 2a88db9f6d..16058ac784 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1646,6 +1646,7 @@ dist_patch_DATA = \ %D%/packages/patches/lua-liblua-so.patch \ %D%/packages/patches/lua-5.4-pkgconfig.patch \ %D%/packages/patches/lua-5.4-liblua-so.patch \ + %D%/packages/patches/lugaru-fix-sound.patch \ %D%/packages/patches/luit-posix.patch \ %D%/packages/patches/mactelnet-remove-init.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c6aa873ac7..06ba868f35 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -72,7 +72,7 @@ ;;; Copyright © 2022 Roman Riabenko ;;; Copyright © 2022, 2023 zamfofex ;;; Copyright © 2022 Gabriel Arazas -;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022, 2024 Maxim Cournoyer ;;; Copyright © 2022 Hendursaga ;;; Copyright © 2022 Parnikkapore ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> @@ -7199,27 +7199,26 @@ monsters in a quest to find the mystifyingly fabulous Orb of Zot.") (version "1.2") (source (origin (method url-fetch) - (uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/" - "lugaru-" version ".tar.xz")) + (uri (string-append "https://github.com/osslugaru/lugaru/releases" + "/download/" version + "/lugaru-" version ".tar.xz")) (sha256 - (base32 - "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk")))) + (base32 "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk")) + (patches + (search-patches "lugaru-fix-sound.patch")))) (build-system cmake-build-system) (arguments - `(#:configure-flags - (list "-DSYSTEM_INSTALL=ON") - ;; no test target - #:tests? #f)) - (native-inputs - (list pkg-config)) + (list #:configure-flags #~(list "-DSYSTEM_INSTALL=ON") + #:tests? #f)) ;no test suite + (native-inputs (list pkg-config)) (inputs - `(("sdl2" ,sdl2) - ("glu" ,glu) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("openal" ,openal) - ("vorbis" ,libvorbis) - ("zlib" ,zlib))) + (list glu + libjpeg-turbo + libpng + libvorbis + openal + sdl2 + zlib)) (home-page "https://osslugaru.gitlab.io") (synopsis "Cross-platform third-person action game") (description "Lugaru is a third-person action game. The main character, @@ -7228,7 +7227,7 @@ In his quest to find those responsible for slaughtering his village, he uncovers a far-reaching conspiracy involving the corrupt leaders of the rabbit republic and the starving wolves from a nearby den. Turner takes it upon himself to fight against their plot and save his fellow rabbits from slavery.") - (license (list license:gpl2+ ; code + (license (list license:gpl2+ ; code ;; assets: license:cc-by-sa3.0 license:cc-by-sa4.0)))) diff --git a/gnu/packages/patches/lugaru-fix-sound.patch b/gnu/packages/patches/lugaru-fix-sound.patch new file mode 100644 index 0000000000..742908c977 --- /dev/null +++ b/gnu/packages/patches/lugaru-fix-sound.patch @@ -0,0 +1,32 @@ +From 3adfb088eed81fc2c9e40ac55018378d4975f469 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer +Date: Sun, 28 Jan 2024 19:50:51 -0500 +Subject: [PATCH] audio: Look extension from right, not left. + +* Source/Audio/openal_wrapper.cpp (decode_to_pcm): Find extension from +the right (strrchr), not from the left, to avoid eagerly truncating a +file name. + +Fixes: https://gitlab.com/osslugaru/lugaru/-/issues/124#note_1746570172 +--- + Source/Audio/openal_wrapper.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/Audio/openal_wrapper.cpp b/Source/Audio/openal_wrapper.cpp +index cc4fc36..072fcb8 100644 +--- a/Source/Audio/openal_wrapper.cpp ++++ b/Source/Audio/openal_wrapper.cpp +@@ -316,7 +316,7 @@ static void* decode_to_pcm(const char* _fname, ALenum& format, ALsizei& size, AL + // !!! FIXME: if it's not Ogg, we don't have a decoder. I'm lazy. :/ + char* fname = (char*)alloca(strlen(_fname) + 16); + strcpy(fname, _fname); +- char* ptr = strchr(fname, '.'); ++ char* ptr = strrchr(fname, '.'); + if (ptr) { + *ptr = '\0'; + } + +base-commit: 6a58b62858d9c3c3630abf00bf43075f65a09d38 +-- +2.41.0 + -- cgit 1.4.1 From a4e75305e29318f19cf7e23e21778006d3f64e30 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jan 2024 15:06:24 +0100 Subject: gnu: r-sapa: Patch call of dstebz routine. * gnu/packages/patches/r-sapa-lapack.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/cran.scm (r-sapa)[source]: Add it. Change-Id: I17354c4e8b3a0f322e17c9a1e17bc37c93630105 --- gnu/local.mk | 1 + gnu/packages/cran.scm | 4 +++- gnu/packages/patches/r-sapa-lapack.patch | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/r-sapa-lapack.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 16058ac784..4f868ca53e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1969,6 +1969,7 @@ dist_patch_DATA = \ %D%/packages/patches/renpy-use-system-fribidi.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ %D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \ + %D%/packages/patches/r-sapa-lapack.patch \ %D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index e544a467a5..0685049641 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -62,6 +62,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system r) + #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -11144,7 +11145,8 @@ sapa R packages.") (uri (cran-uri "sapa" version)) (sha256 (base32 - "0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc")))) + "0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc")) + (patches (search-patches "r-sapa-lapack.patch")))) (build-system r-build-system) (propagated-inputs (list r-ifultools r-splus2r)) diff --git a/gnu/packages/patches/r-sapa-lapack.patch b/gnu/packages/patches/r-sapa-lapack.patch new file mode 100644 index 0000000000..1911b133c5 --- /dev/null +++ b/gnu/packages/patches/r-sapa-lapack.patch @@ -0,0 +1,23 @@ +From 5eb1faf8ee2eac3057ef55c99dd3083242559b9e Mon Sep 17 00:00:00 2001 +From: dbpercival +Date: Sat, 8 Jul 2023 16:26:35 -0700 +Subject: [PATCH] Update sapa_lapack.c + +Stephen's suggested change +--- + src/sapa_lapack.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sapa_lapack.c b/src/sapa_lapack.c +index eff4851..a520e33 100644 +--- a/src/sapa_lapack.c ++++ b/src/sapa_lapack.c +@@ -102,7 +102,7 @@ SEXP R_sapa_dpss(SEXP nsample, SEXP ntaper, SEXP bandwidth) + ISPLIT, + WORK1, + IWORK1, +- &INFO); ++ &INFO FCONE FCONE); + // if (INFO != 0) + // error(_("error code %d from LAPACK routine '%s'"), info, "dstebz"); + -- cgit 1.4.1 From 376bba6030cd418bf26c55422b15f4d22138ddaa Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Mon, 29 Jan 2024 23:53:50 +0000 Subject: gnu: Add (gnu packages golang-xyz) module. * gnu/packages/golang-xyz.scm: New file. * gnu/local.mk: Add to gnu/packages/golang-xyz.scm scope. Change-Id: I25e434de1adc29c2f08146f040755287c63632d6 --- gnu/local.mk | 1 + gnu/packages/golang-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 gnu/packages/golang-xyz.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 4f868ca53e..0d6e47ceae 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -310,6 +310,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/golang-check.scm \ %D%/packages/golang-crypto.scm \ %D%/packages/golang-web.scm \ + %D%/packages/golang-xyz.scm \ %D%/packages/gperf.scm \ %D%/packages/gpodder.scm \ %D%/packages/gps.scm \ diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm new file mode 100644 index 0000000000..c2484aae6b --- /dev/null +++ b/gnu/packages/golang-xyz.scm @@ -0,0 +1,39 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages golang-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages)) + +;;; Commentary: +;;; +;;; Nomad Golang modules (libraries) are welcome here. +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- cgit 1.4.1 From 8f9bc4e95273638654a1ecff4f6101b5db833ee4 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Wed, 17 Jan 2024 12:56:03 +0100 Subject: gnu: torbrowser: Stop inheriting Icecat. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/local.mk (GNU_SYSTEM_MODULES): Add packages/tor-browsers.scm. * gnu/packages/gnupg.scm: Remove fix for dependency loop (fixed because we use a new file). * gnu/packages/tor-browsers.scm (mozilla-locale, mozilla-locales, %torbrowser-locales, %moz-build-date, %torbrowser-version, %torbrowser-firefox-version, translation-base-browser, translation-tor-browser, torbrowser-assets, torbrowser): New variables. (make-torbrowser): New procedure, which is a merge of ‘make-torbrowser’ (from tor.scm) with ‘icecat-minimal’ (from gnuzilla.scm). * gnu/packages/tor.scm (%moz-build-date, %torbrowser-version, %torbrowser-firefox-version, %torbrowser-locales, translation-base-browser, translation-tor-browser, torbrowser-assets, torbrowser): Remove variables. Change-Id: I5fcf73e53fe4481a18e13cdeb3515c3dc4430090 --- gnu/local.mk | 3 +- gnu/packages/gnupg.scm | 3 +- gnu/packages/tor-browsers.scm | 840 ++++++++++++++++++++++++++++++++++++++++++ gnu/packages/tor.scm | 462 ----------------------- 4 files changed, 844 insertions(+), 464 deletions(-) create mode 100644 gnu/packages/tor-browsers.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 0d6e47ceae..fbdb285695 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -13,7 +13,7 @@ # Copyright © 2016-2023 Efraim Flashner # Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Jan (janneke) Nieuwenhuizen # Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice -# Copyright © 2017, 2018, 2023 Clément Lassieur +# Copyright © 2017, 2018, 2023, 2024 Clément Lassieur # Copyright © 2017, 2020 Mathieu Othacehe # Copyright © 2017, 2018, 2019 Gábor Boskovits # Copyright © 2018 Amirouche Boubekki @@ -633,6 +633,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/tls.scm \ %D%/packages/tmux.scm \ %D%/packages/toolkits.scm \ + %D%/packages/tor-browsers.scm \ %D%/packages/tor.scm \ %D%/packages/tree-sitter.scm \ %D%/packages/tv.scm \ diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index a6ba57d7f3..171eea6600 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -71,6 +71,7 @@ #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) + #:use-module (gnu packages tor) #:use-module (gnu packages web) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) @@ -1129,7 +1130,7 @@ files, to verify signatures, and to manage the private and public keys.") perl-try-tiny perl-type-tiny perl-types-path-tiny - (@ (gnu packages tor) torsocks))) ;avoid dependency loop + torsocks)) (native-inputs (list perl-file-which perl-gnupg-interface diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm new file mode 100644 index 0000000000..fbae549224 --- /dev/null +++ b/gnu/packages/tor-browsers.scm @@ -0,0 +1,840 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2015 Andreas Enge +;;; Copyright © 2013-2022 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Mark H Weaver +;;; Copyright © 2015 Sou Bunnbu +;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner +;;; Copyright © 2016 Alex Griffin +;;; Copyright © 2017, 2023, 2024 Clément Lassieur +;;; Copyright © 2017, 2018 Nikita +;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2020 Ricardo Wurmus +;;; Copyright © 2019 Ivan Petkov +;;; Copyright © 2020 Oleg Pykhalov +;;; Copyright © 2020 Jakub Kądziołka +;;; Copyright © 2019, 2020 Adrian Malacoda +;;; Copyright © 2020-2023 Jonathan Brielmaier +;;; Copyright © 2020, 2022 Marius Bakke +;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer +;;; Copyright © 2021 Baptiste Strazzul +;;; Copyright © 2022 SeerLite +;;; Copyright © 2024 Aleksandr Vityazev +;;; Copyright © 2020, 2021 André Batista +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages tor-browsers) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages assembly) + #:use-module (gnu packages base) + #:use-module (gnu packages browser-extensions) + #:use-module (gnu packages compression) + #:use-module (gnu packages cups) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages golang) + #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) + #:use-module (gnu packages image) + #:use-module (gnu packages kerberos) + #:use-module (gnu packages libcanberra) + #:use-module (gnu packages libevent) + #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) + #:use-module (gnu packages m4) + #:use-module (gnu packages node) + #:use-module (gnu packages nss) + #:use-module (gnu packages pciutils) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages rust) + #:use-module (gnu packages rust-apps) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tor) + #:use-module (gnu packages video) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xorg) + #:use-module (gnu packages) + #:use-module (guix build-system cargo) + #:use-module (guix build-system copy) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mozilla) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix hg-download) + #:use-module (guix packages) + #:use-module (ice-9 regex) + #:use-module (guix utils)) + +(define (mozilla-locale locale changeset hash-string) + (origin + (method hg-fetch) + (uri (hg-reference + (url (string-append "https://hg.mozilla.org/l10n-central/" + locale)) + (changeset changeset))) + (file-name (string-append "mozilla-locale-" locale)) + (sha256 (base32 hash-string)))) + +(define-syntax-rule (mozilla-locales (hash-string changeset locale) ...) + #~(list (cons #$locale #$(mozilla-locale locale changeset hash-string)) + ...)) + +;; See tor-browser-build/rbm.conf for the list. +;; See browser/locales/l10n-changesets.json for the changeset. +;; See update-mozilla-locales in gnuzilla.scm to automate updating changeset. +(define %torbrowser-locales + (mozilla-locales + ;; sha256 changeset locale + ;;--------------------------------------------------------------------------- + ("14wnjv13alaj04pd8i8ysillbr3ic2jqa867rbj5ncz8h4hxxfxc" "4c7e24ef78bd" "ar") + ("0mcc15n3p7yk4zdbr3na2fm7wq2184mbcrkk3cvppkl6p4k8654d" "24d50653ab5c" "ca") + ("0ray22hdb3nrv2yi5z98cvbmpk9kpsv96a8wzad5dr4sxy44ii0d" "0d96b6b04bfb" "cs") + ("0is7qbykv2pj0z9ll9r35vwjp0x29vmfr10yjl3s0amfaqzjqpqc" "0a0b774407cc" "da") + ("0yq7m4v7d7ayg90m66j73mflrnp709qw9n7skhpsl9h1wbhrd7q7" "633986260777" "de") + ("19g2ha32syq6rjcyl4ypmy7sc9w7xkvrpkic5lfc2yja6ll9116p" "e2f2d1541e38" "el") + ("018qi9zn24kzfcidsj9lbqfg5n97r295yr8fs953nyfdbim9jsfv" "accf5e4506c0" "es-ES") + ("11prhmh2cp95dpv6z0k479mb11zbfm541bvigs3gnkh3nazjvc8q" "37aa71d77cb6" "fa") + ("1lv9l98q88ixb0ph970yzphahgzbl97x0w069bkxa54kblkv1ch1" "dc40a4fd5d0e" "fi") + ("0wx4k7mwhvpv5w0wa4y5pca2q3jac62jv804nxqnfwh1bvi90wv0" "415c1f0e84bd" "fr") + ("17j68a6rbaphfcq38mgz6s1076fyy92fk0ldw8igql6gd85qjlaa" "d271f275cf48" "ga-IE") + ("0b7qdayljb4ryyqgalvi626lzg238gyn03m3a2f7afs9zi6px526" "46f8d7c031a6" "he") + ("14xbrzvc09fcp7qzllb65nis27hkg9pg5615y29xzwiz4g090my1" "086ac0260d6b" "hu") + ("0q5s4iz02xgmbw6nnpg6xg4pwz7n55nvxb9mj8vqdakq3faybbd5" "f03a6b3069a5" "id") + ("1lwklx3nkm56420xc3kbg892jm2b6202sjw33nvv766sm9hbvcap" "5c4b61165e1d" "is") + ("1n7l5idw9399n8ih1r1d6m8vzpzhwmnxmr9i7jvygkdc8d6adp1k" "07d5e1ff5f9b" "it") + ("1w6nw9cd92p1ndy82wwlq9xizyq3i8rq0nj7118gbxbx368mk2kj" "e6f9db9ce3e6" "ja") + ("1js99gbyc1dj33xc425wb08s1aw3bfznaacrqhw3l42yw1g1ghy4" "a15eb9feea2c" "ka") + ("116a8s0k2yvijy7qf0xpqm5w66gdzs32jhc06364sdar5v34lyhh" "805b85981696" "ko") + ("1yrjrhmmd0b810kxryja1j1md3rr2zpn1j9cbg05dgp5s8i89psk" "943a26276832" "lt") + ("08zccz7gflzpr20y0hvhmdsiz6ncags39kh83cay5ivchyib5qbi" "fbef80de5499" "mk") + ("100k4ibpwys9i4ghi5xvmgwr9api67ngav2hvb613rj6hdfd57f7" "20ec0915ec35" "ms") + ("0kk3cjlpghbi7j3ndb2s0c7g838fzd2mpzg01bp0cra8lzd0n2ac" "4ab6f0d05aa6" "my") + ("1i3r2ici95mazw07m2mrf192fc6bfa3x6j3c2pcc1zg7z9srihgh" "561b0cd86ec1" "nb-NO") + ("1c0m8jhn52h1dif5bswrdwrlzppgga01y61wlii4aaaw15imd6yd" "2a55df0cc389" "nl") + ("1gssvg306b80drp7kvc35kvcxwldb5sga0bapaxhv362irq1nya8" "a64a7dab01c4" "pl") + ("1dzh13x85a7src8szbrq5pjmrbak4isln9xdwjk7a1yq4g9h7jgs" "33bf2a9f4c49" "pt-BR") + ("0jx9y7fv44wxqapmcgr924wgb1l5cm95bgpmnhnjchp1zpmyfdl5" "a367feeadd33" "ro") + ("09x2jirf04kgc118a70z0xrb3msbm7vr4f41ig4xrwf2s5b816r3" "528b76d6aaca" "ru") + ("02y898f0ncjwka474r9lw361b0kywx1w56hj09i7im4j5jrsjnh1" "fa28d9d79cd3" "sq") + ("1cyimbd42aaq2amyhdbbx26jwsns77lsfl8g9a70bsjlpwzwzryg" "cc8e8962e59c" "sv-SE") + ("03mqrvcal7i172gf9239q9fnynfp5kg9b3r1w8gr9iz7rkr22gw5" "d361502c559e" "th") + ("12srgqkqwaidcwbz0y7zr59165f7aq5k5s3b81ql7ixdbwia91pm" "f6173aca4762" "tr") + ("1d91gfx5p6wyb455syw0b57wxl1sd4b4kcdvfk92pb050rqaqfgv" "c5ad4d4f70eb" "uk") + ("1dj8q2jw60a184f018jyldl51rfmvz1cndz3kbw0cc5l5sli7hwr" "0e75c226763d" "vi") + ("1dl2dpif4wwrlpx7zkz5qf8kk4vhxyf63016xcfpbhxizqqwc1ki" "df2d025ed631" "zh-CN") + ("1c63ngff9lsc1x3pi6lnkyxw19gdc65yc67p7alzvrka3cv292ia" "11f8d68148a4" "zh-TW"))) + +;; We copy the official build id, which can be found there: +;; https://aus1.torproject.org/torbrowser/update_3/release/. +(define %moz-build-date "20240115174022") + +;; To find the last version, look at https://www.torproject.org/download/. +(define %torbrowser-version "13.0.9") + +;; To find the last Firefox version, browse +;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version> +;; There should be only one archive that starts with +;; "src-firefox-tor-browser-". +(define %torbrowser-firefox-version "115.7.0esr-13.0-1-build1") + +;; See tor-browser-build/projects/translation/config. +(define translation-base-browser + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/translation.git") + (commit "cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a"))) + (file-name "translation-base-browser") + (sha256 + (base32 + "103dj1zzc68gxzjxwcpc4sbc6qca4zg8kkhdivzpq37ma07sp9sf")))) + +;; See tor-browser-build/projects/translation/config. +(define translation-tor-browser + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/translation.git") + (commit "767ab5111f065b82151275775af5ecf7a529ef48"))) + (file-name "translation-tor-browser") + (sha256 + (base32 + "034s0ivbama497xq0904q8p6d7n2f2aa2vn2jcs9g4bvmhgwicw4")))) + +(define torbrowser-assets + ;; This is a prebuilt Torbrowser from which we take the assets we need. + (package + (name "torbrowser-assets") + (version %torbrowser-version) + (source + (origin + (method url-fetch) + (uri + (string-append + "https://archive.torproject.org/tor-package-archive/torbrowser/" + version "/tor-browser-linux-x86_64-" version ".tar.xz")) + (sha256 + (base32 + "0j143r24xzmq38nd5z1xqsa9zp35lws9rvlj6hb9xn3dnl67gh59")))) + (arguments + (list + #:install-plan + ''(("Browser" "." #:include-regexp + ("^\\./TorBrowser/Data/Tor/torrc-defaults" + "^\\./fonts/" + "^\\./fontconfig/fonts.conf"))))) + (build-system copy-build-system) + (home-page "https://www.torproject.org") + (synopsis "Tor Browser assets") + (description "This package contains fonts and configuration files for Tor +Browser.") + (license license:silofl1.1))) + +(define* (make-torbrowser #:key + moz-app-name + moz-app-remotingname + branding-directory + assets + locales + base-browser-version) + (package + (name "torbrowser") + (version %torbrowser-version) + (source + (origin + (method url-fetch) + (uri + (string-append + "https://archive.torproject.org/tor-package-archive/torbrowser/" + version "/src-firefox-tor-browser-" %torbrowser-firefox-version + ".tar.xz")) + (sha256 + (base32 + "0h05js9j1drzw5q98nlphsmvlp1k2a71z5jd06xk6pz29w6322pw")))) + (build-system mozilla-build-system) + (inputs + (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird + tor-client + alsa-lib + bzip2 + cups + dbus-glib + gdk-pixbuf + glib + gtk+ + ;; UNBUNDLE-ME! graphite2 + cairo + pango + freetype + ;; UNBUNDLE-ME! harfbuzz + libcanberra + libgnome + libjpeg-turbo + libpng-apng + ;; UNBUNDLE-ME! libogg + ;; UNBUNDLE-ME! libtheora ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! libvorbis + libxft + libevent + libxinerama + libxscrnsaver + libxcomposite + libxt + libffi + ;; Support for FFmpeg 6 was only added in version 112 (see: + ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1819374). + ffmpeg-5 + libvpx + (force (@@ (gnu packages gnuzilla) icu4c-73-promise)) + pixman + pulseaudio + mesa + pciutils + mit-krb5 + hunspell + libnotify + nspr + ;; UNBUNDLE-ME! nss (pending upgrade of 'nss' to 3.90 or later) + shared-mime-info + sqlite + eudev + unzip + zip + zlib)) + (native-inputs + (list + rust + `(,rust "cargo") + rust-cbindgen-0.24 + llvm-15 + clang-15 + perl + node-lts + python-wrapper + yasm + nasm ; XXX FIXME: only needed on x86_64 and i686 + pkg-config + m4 + which)) + (arguments + (list + #:tests? #f ;not worth the cost + + ;; Some dynamic lib was determined at runtime, so rpath check may fail. + #:validate-runpath? #f + + #:configure-flags + #~(list + "--without-relative-data-dir" ;store is read-only + "--disable-base-browser-update" + ;; Default is "default", which is the same as "nightly". + "--enable-update-channel=release" + ;; This is useless right now but it might be used in the future. + ;; (See nsAppFileLocationProvider.cpp.) + (string-append "--with-user-appdir=." #$moz-app-name) + (string-append "--with-branding=" #$branding-directory) + (string-append "--prefix=" #$output) + (string-append "--with-base-browser-version=" + #$base-browser-version) + + "--enable-application=browser" + "--with-distribution-id=org.gnu" + "--enable-geckodriver" + ;; Do not require addons in the global app or system directories to + ;; be signed by Mozilla. + "--with-unsigned-addon-scopes=app,system" + "--allow-addon-sideload" + + "--enable-pulseaudio" + + "--disable-tests" + "--disable-updater" + "--disable-crashreporter" + ;; The --disable-eme option is not available on aarch64. + #$(if (target-aarch64?) "" "--disable-eme") + + ;; Building with debugging symbols takes ~5GiB, so disable it. + "--disable-debug" + "--disable-debug-symbols" + + "--enable-rust-simd" + "--enable-release" + "--enable-optimize" + "--enable-strip" + "--disable-elf-hack" + + ;; Clang is needed to build Stylo, Mozilla's new CSS engine. We must + ;; specify the clang paths manually, because otherwise the Mozilla + ;; build system looks in the directories returned by llvm-config + ;; --bindir and llvm-config --libdir, which return paths in the llvm + ;; package where clang is not found. + (string-append "--with-clang-path=" + (search-input-file %build-inputs "bin/clang")) + (string-append "--with-libclang-path=" + (dirname (search-input-file %build-inputs + "lib/libclang.so"))) + + ;; Hack to work around missing "unofficial" branding in icecat. + "--enable-official-branding" + + ;; TODO: Add support for wasm sandboxed libraries. + "--without-wasm-sandboxed-libraries" + + ;; Avoid bundled libraries. + "--with-system-jpeg" ;must be libjpeg-turbo + "--with-system-png" ;must be libpng-apng + "--with-system-zlib" + ;; UNBUNDLE-ME! "--with-system-bz2" + ;; UNBUNDLE-ME! "--with-system-libevent" + ;; UNBUNDLE-ME! "--with-system-ogg" + ;; UNBUNDLE-ME! "--with-system-vorbis" + ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "--with-system-libvpx" + "--with-system-icu" + "--with-system-nspr" + ;; UNBUNDLE-ME! "--with-system-nss" ; pending upgrade of 'nss' to 3.90 + + ;; UNBUNDLE-ME! "--with-system-harfbuzz" + ;; UNBUNDLE-ME! "--with-system-graphite2" + "--enable-system-pixman" + "--enable-system-ffi" + ;; UNBUNDLE-ME! "--enable-system-sqlite" + ) + + #:imported-modules %cargo-utils-modules ;for `generate-all-checksums' + + #:modules `((ice-9 ftw) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26) + (rnrs bytevectors) + (rnrs io ports) + (guix elf) + (guix build gremlin) + ,@%gnu-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'apply-guix-specific-patches + (lambda _ + (for-each + (lambda (file) (invoke "patch" "--force" "-p1" "-i" file)) + '(#$(local-file + (search-patch "icecat-compare-paths.patch")) + #$(local-file + (search-patch "icecat-use-system-wide-dir.patch")))))) + (add-after 'apply-guix-specific-patches 'remove-bundled-libraries + (lambda _ + ;; Remove bundled libraries that we don't use, since they may + ;; contain unpatched security flaws, they waste disk space and + ;; memory, and may cause confusion. + (for-each (lambda (file) + (format #t "deleting '~a'...~%" file) + (delete-file-recursively file)) + '( ;; FIXME: Removing the bundled icu breaks configure. + ;; * The bundled icu headers are used in some places. + ;; * The version number is taken from the bundled copy. + ;;"intl/icu" + ;; + ;; FIXME: A script from the bundled nspr is used. + ;;"nsprpub" + ;; + ;; FIXME: Some of the bundled NSS sources are used + ;; to build third_party/prio. + ;;"security/nss" + ;; + ;; TODO: Use more system media libraries. See: + ;; + ;; * libtheora: esr60 wants v1.2, not yet released. + ;; * soundtouch: avoiding the bundled library would + ;; result in some loss of functionality. There's + ;; also an issue with exception handling + ;; configuration. It seems that this is needed in + ;; some moz.build: + ;; DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1 + ;; * libopus + ;; * speex + ;; + "modules/freetype2" + ;; "media/libjpeg" ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build + ;; UNBUNDLE-ME! "modules/zlib" + ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent" + ;; UNBUNDLE-ME! "media/libvpx" + ;; UNBUNDLE-ME! "media/libogg" + ;; UNBUNDLE-ME! "media/libvorbis" + ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "media/libtremor" + ;; UNBUNDLE-ME! "gfx/harfbuzz" + ;; UNBUNDLE-ME! "gfx/graphite2" + "js/src/ctypes/libffi" + ;; UNBUNDLE-ME! "db/sqlite3" + )))) + (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker + (lambda* (#:key inputs #:allow-other-keys) + ;; Arrange to load libavcodec.so by its absolute file name. + (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" + (("libavcodec\\.so") + (search-input-file inputs "lib/libavcodec.so"))))) + (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist + (lambda* (#:key inputs #:allow-other-keys) + (define (runpath-of lib) + (call-with-input-file lib + (compose elf-dynamic-info-runpath + elf-dynamic-info + parse-elf + get-bytevector-all))) + (define (runpaths-of-input label) + (let* ((dir (string-append (assoc-ref inputs label) "/lib")) + (libs (find-files dir "\\.so$"))) + (append-map runpath-of libs))) + ;; Populate the sandbox read-path whitelist as needed by ffmpeg. + (let* ((whitelist + (map (cut string-append <> "/") + (delete-duplicates + `(,(string-append (assoc-ref inputs "shared-mime-info") + "/share/mime") + ,@(append-map runpaths-of-input + '("mesa" "ffmpeg")))))) + (whitelist-string (string-join whitelist ","))) + (with-output-to-file "whitelist.txt" + (lambda () + (display whitelist-string)))))) + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda _ + (use-modules (guix build cargo-utils)) + (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) + (for-each (lambda (file) + (format #t "patching checksums in ~a~%" file) + (substitute* file + (("^checksum = \".*\"") + (string-append "checksum = \"" null-hash "\"")))) + (find-files "." "Cargo.lock$")) + (for-each generate-all-checksums + '("services" + "js" + "third_party/rust" + "dom/media" + "dom/webauthn" + "toolkit" + "gfx" + "storage" + "modules" + "xpcom/rust" + "media" + "mozglue/static/rust" + "netwerk" + "remote" + "intl" + "servo" + "security/manager/ssl" + "build"))))) + (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag + (lambda _ + ;; Remove --frozen flag from cargo invokation, otherwise it'll + ;; complain that it's not able to change Cargo.lock. + ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373 + (substitute* "build/RunCbindgen.py" + (("\"--frozen\",") "")))) + (delete 'bootstrap) + (add-before 'configure 'setenv + (lambda _ + (setenv "CONFIG_SHELL" (which "bash")) + ;; Install location is prefix/lib/$MOZ_APP_NAME. Also + ;; $MOZ_APP_NAME is the executable name. Default is + ;; "firefox". + (setenv "MOZ_APP_NAME" #$moz-app-name) + ;; Profile location (relative to "~/."). Default is + ;; lower($MOZ_APP_VENDOR/$MOZ_APP_BASENAME), which is: + ;; ~/.tor project/firefox. + (setenv "MOZ_APP_PROFILE" #$(in-vicinity + moz-app-name "browser")) + ;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL"). + (setenv "MOZ_APP_REMOTINGNAME" #$moz-app-remotingname) + ;; Persistent state directory for the build system (default is + ;; $HOME/.mozbuild). + (setenv "MOZBUILD_STATE_PATH" + (in-vicinity (getcwd) ".mozbuild")) + (setenv "MOZ_CHROME_MULTILOCALE" + (string-join (map car #$locales))) + ;; Make build reproducible. + (setenv "MOZ_BUILD_DATE" #$%moz-build-date))) + (add-before 'configure 'mozconfig + (lambda* (#:key configure-flags #:allow-other-keys) + (with-output-to-file "mozconfig" + (lambda () + (format #t ". $topsrcdir/mozconfig-linux-x86_64~%") + (for-each (lambda (flag) + (format #t "ac_add_options ~a~%" flag)) + configure-flags))))) + ;; See tor-browser-build/projects/firefox/build. + (add-before 'configure 'copy-firefox-locales + (lambda _ + (let ((l10ncentral ".mozbuild/l10n-central")) + (mkdir-p l10ncentral) + (for-each + (lambda (lang) + (copy-recursively (cdr lang) + (in-vicinity l10ncentral + (car lang)))) + #$locales)))) + (add-after 'copy-firefox-locales 'copy-basebrowser-locales + (lambda _ + (let ((l10ncentral ".mozbuild/l10n-central")) + ;; Temporary copy so that we can use ‘mv’ to mimic + ;; tor-browser-build/projects/firefox/build. + (copy-recursively #$translation-base-browser + "translation-base-browser") + (for-each + (lambda (lang) + (system + (format + #f (string-join + '("mv" + "translation-base-browser/~a/base-browser.ftl" + "~a/~a/browser/browser/")) + lang l10ncentral lang)) + (system + (format + #f (string-join + '("mv" + "translation-base-browser/~a/*" + "~a/~a/browser/chrome/browser/")) + lang l10ncentral lang))) + (map car #$locales))))) + (add-after 'copy-basebrowser-locales 'copy-torbrowser-locales + (lambda _ + (let ((l10ncentral ".mozbuild/l10n-central")) + ;; Temporary copy so that we can use ‘mv’ to mimic + ;; tor-browser-build/projects/firefox/build. + (copy-recursively #$translation-tor-browser + "translation-tor-browser") + (for-each + (lambda (lang) + (system + (format + #f (string-join + '("mv" + "translation-tor-browser/~a/tor-browser.ftl" + "~a/~a/browser/browser/")) + lang l10ncentral lang)) + (system + (format + #f (string-join + '("mv" + "translation-tor-browser/~a/cryptoSafetyPrompt.properties" + "~a/~a/browser/chrome/browser/")) + lang l10ncentral lang)) + (system + (format + #f (string-join + '("mv" + "translation-tor-browser/~a" + "toolkit/torbutton/chrome/locale/")) + lang)) + (let ((port (open-file "toolkit/torbutton/jar.mn" "a"))) + (format port "% locale torbutton ~a %locale/~a/~%" + lang lang) + (format port " locale/~a/ (chrome/locale/~a/*)~%" + lang lang) + (close port))) + (map car #$locales))))) + (replace 'configure + (lambda _ + (invoke "./mach" "configure"))) + (add-before 'build 'fix-addons-placeholder + (lambda _ + (substitute* + "toolkit/locales/en-US/toolkit/about/aboutAddons.ftl" + (("addons.mozilla.org") "gnuzilla.gnu.org")))) + (add-before 'build 'add-bridges ;see deploy.sh + (lambda _ + (let ((port (open-file + "browser/app/profile/000-tor-browser.js" "a"))) + (display + "#include ../../../tools/torbrowser/bridges.js" port) + (newline port) + (close port)))) + (replace 'build + (lambda* (#:key (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (apply invoke "./mach" "build" + ;; mach will use a wide parallel build if possible by + ;; default, so reign it in if requested. + `(,(string-append + "-j" (number->string (if parallel-build? + (parallel-job-count) + 1))) + ,@make-flags)))) + ;; See tor-browser-build/projects/firefox/build. + (add-after 'build 'build-locales + (lambda _ + (system (string-join '("./mach package-multi-locale --locales" + "en-US $MOZ_CHROME_MULTILOCALE"))))) + (add-after 'build-locales 'neutralise-store-references + (lambda _ + ;; Mangle the store references to compilers & other build tools in + ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64. + (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>)) + ((dir) dir))) + (file (string-append + obj-dir + "/dist/bin/chrome/toolkit/content/global/buildconfig.html"))) + (substitute* file + (("[0-9a-df-np-sv-z]{32}" hash) + (string-append (string-take hash 8) + "" + (string-drop hash 8))))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "./mach" "install") + ;; The geckodriver binary is not installed by the above, for some + ;; reason. Use 'find-files' to avoid having to deal with the + ;; system/architecture-specific file name. + (install-file (first (find-files "." "geckodriver")) + (string-append #$output "/bin")))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs #:allow-other-keys) + (let* ((gtk #$(this-package-input "gtk+")) + (gtk-share (string-append gtk "/share")) + (fonts.conf (format #f "~a/lib/~a/fontconfig/fonts.conf" + #$output #$moz-app-name)) + (ld-libs '#$(cons + (file-append + (this-package-input "libcanberra") + "/lib/gtk-3.0/modules") + (map (lambda (label) + (file-append (this-package-input label) "/lib")) + '("libpng-apng" + "libxscrnsaver" + "mesa" + "pciutils" + "mit-krb5" + "eudev" + "pulseaudio" + ;; For the integration of native notifications + ;; (same reason as icedove) + "libnotify"))))) + (wrap-program (format #f "~a/lib/~a/~a" + #$output #$moz-app-name #$moz-app-name) + `("XDG_DATA_DIRS" prefix (,gtk-share)) + ;; The following line is commented out because the icecat + ;; package on guix has been observed to be unstable when + ;; using wayland, and the bundled extensions stop working. + ;; `("MOZ_ENABLE_WAYLAND" = ("1")) + `("LD_LIBRARY_PATH" prefix ,ld-libs) + `("FONTCONFIG_FILE" prefix (,fonts.conf)))))) + (add-after 'wrap-program 'install-desktop-entry + (lambda _ + (let ((apps (in-vicinity #$output "share/applications"))) + (mkdir-p apps) + (make-desktop-entry-file + (string-append apps "/" #$moz-app-name ".desktop") + #:name #$moz-app-remotingname + #:exec (format #f "~a/bin/~a %u" #$output #$moz-app-name) + #:categories '("Network" "WebBrowser" "Security") + #:startup-w-m-class #$moz-app-remotingname + #:icon #$moz-app-name)))) + (add-after 'install-desktop-entry 'install-icons + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (lambda (size) + (let ((oldpath (string-append + #$branding-directory "/default" size ".png")) + (newpath (string-append + #$output "/share/icons/hicolor/" size "x" + size "/apps/" #$moz-app-name ".png"))) + (mkdir-p (dirname newpath)) + (copy-file oldpath newpath))) + '("16" "22" "24" "32" "48" "64" "128" "256")))) + (add-after 'install 'deploy-fonts + (lambda* (#:key inputs #:allow-other-keys) + (let ((lib (string-append #$output "/lib/" #$moz-app-name))) + ;; Fonts + (copy-recursively (in-vicinity #$assets "fontconfig") + (in-vicinity lib "fontconfig")) + (substitute* (in-vicinity lib "fontconfig/fonts.conf") + (("fonts") + (format #f "~a" (in-vicinity lib "fonts")))) + (delete-file-recursively (in-vicinity lib "fonts")) + (copy-recursively (in-vicinity #$assets "fonts") + (in-vicinity lib "fonts"))))) + (add-after 'deploy-fonts 'deploy-tor-assets + (lambda* (#:key inputs #:allow-other-keys) + (let ((lib (in-vicinity #$output "lib/torbrowser")) + (tor #$(this-package-input "tor-client"))) + ;; TorBrowser/Data/Tor/torrc-defaults + (copy-recursively (in-vicinity #$assets "TorBrowser") + (in-vicinity lib "TorBrowser")) + (substitute* + (in-vicinity lib "TorBrowser/Data/Tor/torrc-defaults") + (("exec ./TorBrowser/Tor/PluggableTransports/lyrebird") + (string-append + "exec " (search-input-file inputs "bin/lyrebird")))) + ;; The geoip and geoip6 files are in the same directory as + ;; torrc-defaults. (See TorProcess.sys.mjs.) + (mkdir-p (in-vicinity lib "TorBrowser/Data/Tor")) + (copy-file (in-vicinity tor "share/tor/geoip6") + (in-vicinity lib "TorBrowser/Data/Tor/geoip6")) + (copy-file (in-vicinity tor "share/tor/geoip") + (in-vicinity lib "TorBrowser/Data/Tor/geoip"))))) + (add-after 'install 'autoconfig + (lambda* (#:key inputs #:allow-other-keys) + (let ((lib (string-append #$output "/lib/" #$moz-app-name)) + (config-file (string-append #$moz-app-name ".cfg"))) + (with-output-to-file (in-vicinity + lib "defaults/pref/autoconfig.js") + (lambda () + (format #t "// first line must be a comment~%") + (format #t "pref(~s, ~s);~%" + "general.config.filename" config-file) + (format #t "pref(~s, ~a);~%" + "general.config.obscure_value" "0"))) + (with-output-to-file (in-vicinity lib config-file) + (lambda () + (format #t "// first line must be a comment~%") + ;; Required for Guix packaged extensions + ;; SCOPE_PROFILE=1, SCOPE_APPLICATION=4, SCOPE_SYSTEM=8 + ;; Default is 5. + (format #t "pref(~s, ~a);~%" + "extensions.enabledScopes" "13") + (format #t "pref(~s, ~s);~%" + "security.sandbox.content.read_path_whitelist" + (call-with-input-file "whitelist.txt" + get-string-all)) + ;; Add-ons pannel (see settings.js in Icecat source). + (format #t "pref(~s, ~s);~%" + "extensions.getAddons.search.browseURL" + "https://gnuzilla.gnu.org/mozzarella") + (format #t "pref(~s, ~s);~%" + "extensions.getAddons.get.url" + "https://gnuzilla.gnu.org/mozzarella") + (format #t "pref(~s, ~s);~%" + "extensions.getAddons.link.url" + "https://gnuzilla.gnu.org/mozzarella") + (format #t "pref(~s, ~s);~%" + "extensions.getAddons.discovery.api_url" + "https://gnuzilla.gnu.org/mozzarella") + (format #t "pref(~s, ~s);~%" + "extensions.getAddons.langpacks.url" + "https://gnuzilla.gnu.org/mozzarella") + (format #t "pref(~s, ~s);~%" + "lightweightThemes.getMoreURL" + "https://gnuzilla.gnu.org/mozzarella")))))) + (add-after 'autoconfig 'autoconfig-tor + (lambda* (#:key inputs #:allow-other-keys) + (let ((lib (in-vicinity #$output "lib/torbrowser")) + (config-file (string-append #$moz-app-name ".cfg"))) + (let ((port (open-file (in-vicinity lib config-file) "a"))) + (format port "pref(~s, ~s);~%" + "extensions.torlauncher.torrc-defaults_path" + (in-vicinity + lib "TorBrowser/Data/Tor/torrc-defaults")) + (format port "pref(~s, ~s);~%" + "extensions.torlauncher.tor_path" + (search-input-file inputs "bin/tor")) + (close port)))))))) + (propagated-inputs + (list noscript/icecat)) + (native-search-paths + (list (search-path-specification + (variable "ICECAT_SYSTEM_DIR") + (separator #f) ;single entry + (files '("lib/icecat"))))) + (home-page "https://www.torproject.org") + (synopsis "Anonymous browser derived from Mozilla Firefox") + (description + "Tor Browser is the Tor Project version of Firefox browser. It is the +only recommended way to anonymously browse the web that is supported by the +project. It modifies Firefox in order to avoid many know application level +attacks on the privacy of Tor users.") + (license license:mpl2.0))) ;And others, see + ;toolkit/content/license.html + +(define-public torbrowser + (make-torbrowser #:moz-app-name "torbrowser" + #:moz-app-remotingname "Tor Browser" + #:branding-directory "browser/branding/tb-release" + #:assets torbrowser-assets + #:locales %torbrowser-locales + #:base-browser-version %torbrowser-version)) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 8cbf8f5f8c..4b356b6cc1 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -13,7 +13,6 @@ ;;; Copyright © 2021-2023 Danial Behzadi ;;; Copyright © 2022 Maxim Cournoyer ;;; Copyright © 2022 Jim Newsome -;;; Copyright © 2023, 2024 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,16 +36,11 @@ #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) - #:use-module (guix hg-download) - #:use-module (guix build-system copy) #:use-module (guix build-system gnu) - #:use-module (guix build-system mozilla) #:use-module (guix build-system python) #:use-module (guix build-system pyproject) #:use-module (gnu packages) #:use-module (gnu packages base) - #:use-module (gnu packages bash) - #:use-module (gnu packages browser-extensions) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages check) @@ -54,8 +48,6 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) - #:use-module (gnu packages golang) - #:use-module (gnu packages gnuzilla) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-check) @@ -491,457 +483,3 @@ Potential client and exit connections are scrubbed of sensitive information.") the onion proxy and sets up proxy in user session, so you don't have to mess up with TOR on your system anymore.") (license license:gpl3+))) - -(define (mozilla-locale locale changeset hash-string) - (origin - (method hg-fetch) - (uri (hg-reference - (url (string-append "https://hg.mozilla.org/l10n-central/" - locale)) - (changeset changeset))) - (file-name (string-append "mozilla-locale-" locale)) - (sha256 (base32 hash-string)))) - -(define-syntax-rule (mozilla-locales (hash-string changeset locale) ...) - #~(list (cons #$locale #$(mozilla-locale locale changeset hash-string)) - ...)) - -;; See tor-browser-build/rbm.conf for the list. -;; See browser/locales/l10n-changesets.json for the changeset. -;; See update-mozilla-locales in gnuzilla.scm to automate updating changeset. -(define %torbrowser-locales - (mozilla-locales - ;; sha256 changeset locale - ;;--------------------------------------------------------------------------- - ("14wnjv13alaj04pd8i8ysillbr3ic2jqa867rbj5ncz8h4hxxfxc" "4c7e24ef78bd" "ar") - ("0mcc15n3p7yk4zdbr3na2fm7wq2184mbcrkk3cvppkl6p4k8654d" "24d50653ab5c" "ca") - ("0ray22hdb3nrv2yi5z98cvbmpk9kpsv96a8wzad5dr4sxy44ii0d" "0d96b6b04bfb" "cs") - ("0is7qbykv2pj0z9ll9r35vwjp0x29vmfr10yjl3s0amfaqzjqpqc" "0a0b774407cc" "da") - ("0yq7m4v7d7ayg90m66j73mflrnp709qw9n7skhpsl9h1wbhrd7q7" "633986260777" "de") - ("19g2ha32syq6rjcyl4ypmy7sc9w7xkvrpkic5lfc2yja6ll9116p" "e2f2d1541e38" "el") - ("018qi9zn24kzfcidsj9lbqfg5n97r295yr8fs953nyfdbim9jsfv" "accf5e4506c0" "es-ES") - ("11prhmh2cp95dpv6z0k479mb11zbfm541bvigs3gnkh3nazjvc8q" "37aa71d77cb6" "fa") - ("1lv9l98q88ixb0ph970yzphahgzbl97x0w069bkxa54kblkv1ch1" "dc40a4fd5d0e" "fi") - ("0wx4k7mwhvpv5w0wa4y5pca2q3jac62jv804nxqnfwh1bvi90wv0" "415c1f0e84bd" "fr") - ("17j68a6rbaphfcq38mgz6s1076fyy92fk0ldw8igql6gd85qjlaa" "d271f275cf48" "ga-IE") - ("0b7qdayljb4ryyqgalvi626lzg238gyn03m3a2f7afs9zi6px526" "46f8d7c031a6" "he") - ("14xbrzvc09fcp7qzllb65nis27hkg9pg5615y29xzwiz4g090my1" "086ac0260d6b" "hu") - ("0q5s4iz02xgmbw6nnpg6xg4pwz7n55nvxb9mj8vqdakq3faybbd5" "f03a6b3069a5" "id") - ("1lwklx3nkm56420xc3kbg892jm2b6202sjw33nvv766sm9hbvcap" "5c4b61165e1d" "is") - ("1n7l5idw9399n8ih1r1d6m8vzpzhwmnxmr9i7jvygkdc8d6adp1k" "07d5e1ff5f9b" "it") - ("1w6nw9cd92p1ndy82wwlq9xizyq3i8rq0nj7118gbxbx368mk2kj" "e6f9db9ce3e6" "ja") - ("1js99gbyc1dj33xc425wb08s1aw3bfznaacrqhw3l42yw1g1ghy4" "a15eb9feea2c" "ka") - ("116a8s0k2yvijy7qf0xpqm5w66gdzs32jhc06364sdar5v34lyhh" "805b85981696" "ko") - ("1yrjrhmmd0b810kxryja1j1md3rr2zpn1j9cbg05dgp5s8i89psk" "943a26276832" "lt") - ("08zccz7gflzpr20y0hvhmdsiz6ncags39kh83cay5ivchyib5qbi" "fbef80de5499" "mk") - ("100k4ibpwys9i4ghi5xvmgwr9api67ngav2hvb613rj6hdfd57f7" "20ec0915ec35" "ms") - ("0kk3cjlpghbi7j3ndb2s0c7g838fzd2mpzg01bp0cra8lzd0n2ac" "4ab6f0d05aa6" "my") - ("1i3r2ici95mazw07m2mrf192fc6bfa3x6j3c2pcc1zg7z9srihgh" "561b0cd86ec1" "nb-NO") - ("1c0m8jhn52h1dif5bswrdwrlzppgga01y61wlii4aaaw15imd6yd" "2a55df0cc389" "nl") - ("1gssvg306b80drp7kvc35kvcxwldb5sga0bapaxhv362irq1nya8" "a64a7dab01c4" "pl") - ("1dzh13x85a7src8szbrq5pjmrbak4isln9xdwjk7a1yq4g9h7jgs" "33bf2a9f4c49" "pt-BR") - ("0jx9y7fv44wxqapmcgr924wgb1l5cm95bgpmnhnjchp1zpmyfdl5" "a367feeadd33" "ro") - ("09x2jirf04kgc118a70z0xrb3msbm7vr4f41ig4xrwf2s5b816r3" "528b76d6aaca" "ru") - ("02y898f0ncjwka474r9lw361b0kywx1w56hj09i7im4j5jrsjnh1" "fa28d9d79cd3" "sq") - ("1cyimbd42aaq2amyhdbbx26jwsns77lsfl8g9a70bsjlpwzwzryg" "cc8e8962e59c" "sv-SE") - ("03mqrvcal7i172gf9239q9fnynfp5kg9b3r1w8gr9iz7rkr22gw5" "d361502c559e" "th") - ("12srgqkqwaidcwbz0y7zr59165f7aq5k5s3b81ql7ixdbwia91pm" "f6173aca4762" "tr") - ("1d91gfx5p6wyb455syw0b57wxl1sd4b4kcdvfk92pb050rqaqfgv" "c5ad4d4f70eb" "uk") - ("1dj8q2jw60a184f018jyldl51rfmvz1cndz3kbw0cc5l5sli7hwr" "0e75c226763d" "vi") - ("1dl2dpif4wwrlpx7zkz5qf8kk4vhxyf63016xcfpbhxizqqwc1ki" "df2d025ed631" "zh-CN") - ("1c63ngff9lsc1x3pi6lnkyxw19gdc65yc67p7alzvrka3cv292ia" "11f8d68148a4" "zh-TW"))) - -;; We copy the official build id, which can be found there: -;; https://aus1.torproject.org/torbrowser/update_3/release/. -(define %moz-build-date "20240115174022") - -;; To find the last version, look at https://www.torproject.org/download/. -(define %torbrowser-version "13.0.9") - -;; To find the last Firefox version, browse -;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version> -;; There should be only one archive that starts with -;; "src-firefox-tor-browser-". -(define %torbrowser-firefox-version "115.7.0esr-13.0-1-build1") - -;; See tor-browser-build/projects/translation/config. -(define translation-base-browser - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.torproject.org/tpo/translation.git") - (commit "cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a"))) - (file-name "translation-base-browser") - (sha256 - (base32 - "103dj1zzc68gxzjxwcpc4sbc6qca4zg8kkhdivzpq37ma07sp9sf")))) - -;; See tor-browser-build/projects/translation/config. -(define translation-tor-browser - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.torproject.org/tpo/translation.git") - (commit "767ab5111f065b82151275775af5ecf7a529ef48"))) - (file-name "translation-tor-browser") - (sha256 - (base32 - "034s0ivbama497xq0904q8p6d7n2f2aa2vn2jcs9g4bvmhgwicw4")))) - -(define torbrowser-assets - ;; This is a prebuilt Torbrowser from which we take the assets we need. - (package - (name "torbrowser-assets") - (version %torbrowser-version) - (source - (origin - (method url-fetch) - (uri - (string-append - "https://archive.torproject.org/tor-package-archive/torbrowser/" - version "/tor-browser-linux-x86_64-" version ".tar.xz")) - (sha256 - (base32 - "0j143r24xzmq38nd5z1xqsa9zp35lws9rvlj6hb9xn3dnl67gh59")))) - (arguments - (list - #:install-plan - ''(("Browser" "." #:include-regexp - ("^\\./TorBrowser/Data/Tor/torrc-defaults" - "^\\./fonts/" - "^\\./fontconfig/fonts.conf"))))) - (build-system copy-build-system) - (home-page "https://www.torproject.org") - (synopsis "Tor Browser assets") - (description "This package contains fonts and configuration files for Tor -Browser.") - (license license:silofl1.1))) - -(define-public torbrowser - (package - (inherit icecat-minimal) - (name "torbrowser") - (version %torbrowser-version) - (source - (origin - (method url-fetch) - (uri - (string-append - "https://archive.torproject.org/tor-package-archive/torbrowser/" - version "/src-firefox-tor-browser-" %torbrowser-firefox-version - ".tar.xz")) - (sha256 - (base32 - "0h05js9j1drzw5q98nlphsmvlp1k2a71z5jd06xk6pz29w6322pw")))) - (build-system mozilla-build-system) - (arguments - (substitute-keyword-arguments (package-arguments icecat-minimal) - ((#:configure-flags flags '()) - #~(cons* - "--without-relative-data-dir" ;store is read-only - "--disable-base-browser-update" - ;; Default is "default", which is the same as "nightly". - "--enable-update-channel=release" - "--with-user-appdir=.torbrowser" - "--with-branding=browser/branding/tb-release" - (string-append "--prefix=" #$output) - (string-append "--with-base-browser-version=" #$version) - #$flags)) - ((#:phases phases) - #~(modify-phases #$phases - (add-before 'configure 'setenv - (lambda _ - (setenv "CONFIG_SHELL" (which "bash")) - ;; Install location is prefix/lib/$MOZ_APP_NAME. Also - ;; $MOZ_APP_NAME is the executable name. Default is - ;; "firefox". - (setenv "MOZ_APP_NAME" "torbrowser") - ;; Profile location (relative to "~/."). Default is - ;; lower($MOZ_APP_VENDOR/$MOZ_APP_BASENAME), which is: - ;; ~/.tor project/firefox. - (setenv "MOZ_APP_PROFILE" "torbrowser/browser") - ;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL"). - (setenv "MOZ_APP_REMOTINGNAME" "Tor Browser") - ;; Persistent state directory for the build system (default is - ;; $HOME/.mozbuild). - (setenv "MOZBUILD_STATE_PATH" - (in-vicinity (getcwd) ".mozbuild")) - (setenv "MOZ_CHROME_MULTILOCALE" - (string-join (map car #$%torbrowser-locales))) - ;; Make build reproducible. - (setenv "MOZ_BUILD_DATE" #$%moz-build-date))) - (add-before 'configure 'mozconfig - (lambda* (#:key configure-flags #:allow-other-keys) - (with-output-to-file "mozconfig" - (lambda () - (format #t ". $topsrcdir/mozconfig-linux-x86_64~%") - (for-each (lambda (flag) - (format #t "ac_add_options ~a~%" flag)) - configure-flags))))) - (replace 'configure - (lambda _ - (invoke "./mach" "configure"))) - ;; See tor-browser-build/projects/firefox/build. - (add-before 'configure 'copy-firefox-locales - (lambda _ - (let ((l10ncentral ".mozbuild/l10n-central")) - (mkdir-p l10ncentral) - (for-each - (lambda (lang) - (copy-recursively (cdr lang) - (in-vicinity l10ncentral (car lang)))) - #$%torbrowser-locales)))) - (add-after 'copy-firefox-locales 'copy-basebrowser-locales - (lambda _ - (let ((l10ncentral ".mozbuild/l10n-central")) - ;; Temporary copy so that we can use ‘mv’ to mimic - ;; tor-browser-build/projects/firefox/build. - (copy-recursively #$translation-base-browser - "translation-base-browser") - (for-each - (lambda (lang) - (system - (format - #f (string-join - '("mv" - "translation-base-browser/~a/base-browser.ftl" - "~a/~a/browser/browser/")) - lang l10ncentral lang)) - (system - (format - #f (string-join - '("mv" - "translation-base-browser/~a/*" - "~a/~a/browser/chrome/browser/")) - lang l10ncentral lang))) - (map car #$%torbrowser-locales))))) - (add-after 'copy-basebrowser-locales 'copy-torbrowser-locales - (lambda _ - (let ((l10ncentral ".mozbuild/l10n-central")) - ;; Temporary copy so that we can use ‘mv’ to mimic - ;; tor-browser-build/projects/firefox/build. - (copy-recursively #$translation-tor-browser - "translation-tor-browser") - (for-each - (lambda (lang) - (system - (format - #f (string-join - '("mv" - "translation-tor-browser/~a/tor-browser.ftl" - "~a/~a/browser/browser/")) - lang l10ncentral lang)) - (system - (format - #f (string-join - '("mv" - "translation-tor-browser/~a/cryptoSafetyPrompt.properties" - "~a/~a/browser/chrome/browser/")) - lang l10ncentral lang)) - (system - (format - #f (string-join - '("mv" - "translation-tor-browser/~a" - "toolkit/torbutton/chrome/locale/")) - lang)) - (let ((port (open-file "toolkit/torbutton/jar.mn" "a"))) - (format port "% locale torbutton ~a %locale/~a/~%" - lang lang) - (format port " locale/~a/ (chrome/locale/~a/*)~%" - lang lang) - (close port))) - (map car #$%torbrowser-locales))))) - (add-before 'build 'fix-addons-placeholder - (lambda _ - (substitute* - "toolkit/locales/en-US/toolkit/about/aboutAddons.ftl" - (("addons.mozilla.org") "gnuzilla.gnu.org")))) - (add-before 'build 'add-bridges ;see deploy.sh - (lambda _ - (let ((port (open-file - "browser/app/profile/000-tor-browser.js" "a"))) - (display - "#include ../../../tools/torbrowser/bridges.js" port) - (newline port) - (close port)))) - ;; See tor-browser-build/projects/firefox/build. - (add-after 'build 'build-locales - (lambda _ - (system (string-join '("./mach package-multi-locale --locales" - "en-US $MOZ_CHROME_MULTILOCALE"))))) - (add-after 'install 'deploy-assets - (lambda* (#:key inputs #:allow-other-keys) - (let ((lib (in-vicinity #$output "lib/torbrowser")) - (tor #$(this-package-input "tor-client"))) - ;; TorBrowser/Data/Tor/torrc-defaults - (copy-recursively (in-vicinity - #$torbrowser-assets "TorBrowser") - (in-vicinity lib "TorBrowser")) - (substitute* - (in-vicinity lib "TorBrowser/Data/Tor/torrc-defaults") - (("exec ./TorBrowser/Tor/PluggableTransports/lyrebird") - (string-append - "exec " (search-input-file inputs "bin/lyrebird")))) - ;; The geoip and geoip6 files are in the same directory as - ;; torrc-defaults. (See TorProcess.sys.mjs.) - (mkdir-p (in-vicinity lib "TorBrowser/Data/Tor")) - (copy-file (in-vicinity tor "share/tor/geoip") - (in-vicinity lib "TorBrowser/Data/Tor/geoip")) - (copy-file (in-vicinity tor "share/tor/geoip6") - (in-vicinity lib "TorBrowser/Data/Tor/geoip6")) - ;; Fonts - (copy-recursively (in-vicinity - #$torbrowser-assets "fontconfig") - (in-vicinity lib "fontconfig")) - (substitute* (in-vicinity lib "fontconfig/fonts.conf") - (("fonts") - (format #f "~a" (in-vicinity lib "fonts")))) - (delete-file-recursively (in-vicinity lib "fonts")) - (copy-recursively (in-vicinity #$torbrowser-assets "fonts") - (in-vicinity lib "fonts"))))) - (replace 'build-sandbox-whitelist - (lambda* (#:key inputs #:allow-other-keys) - (define (runpath-of lib) - (call-with-input-file lib - (compose elf-dynamic-info-runpath - elf-dynamic-info - parse-elf - get-bytevector-all))) - (define (runpaths-of-input label) - (let* ((dir (string-append (assoc-ref inputs label) "/lib")) - (libs (find-files dir "\\.so$"))) - (append-map runpath-of libs))) - ;; Populate the sandbox read-path whitelist as needed by ffmpeg. - (let* ((whitelist - (map (cut string-append <> "/") - (delete-duplicates - `(,(string-append (assoc-ref inputs "shared-mime-info") - "/share/mime") - ,@(append-map runpaths-of-input - '("mesa" "ffmpeg")))))) - (whitelist-string (string-join whitelist ","))) - (with-output-to-file "whitelist.txt" - (lambda () - (display whitelist-string)))))) - (add-after 'install 'autoconfig - (lambda* (#:key inputs #:allow-other-keys) - (let ((lib (in-vicinity #$output "lib/torbrowser")) - (config-file "tor-browser.cfg")) - (with-output-to-file (in-vicinity - lib "defaults/pref/autoconfig.js") - (lambda () - (format #t "// first line must be a comment~%") - (format #t "pref(~s, ~s);~%" - "general.config.filename" config-file) - (format #t "pref(~s, ~a);~%" - "general.config.obscure_value" "0"))) - (with-output-to-file (in-vicinity lib config-file) - (lambda () - (format #t "// first line must be a comment~%") - (format #t "pref(~s, ~s);~%" - "extensions.torlauncher.torrc-defaults_path" - (in-vicinity - lib "TorBrowser/Data/Tor/torrc-defaults")) - (format #t "pref(~s, ~s);~%" - "extensions.torlauncher.tor_path" - (search-input-file inputs "bin/tor")) - ;; Required for Guix packaged extensions - ;; SCOPE_PROFILE=1, SCOPE_APPLICATION=4, SCOPE_SYSTEM=8 - ;; Default is 5. - (format #t "pref(~s, ~a);~%" - "extensions.enabledScopes" "13") - (format #t "pref(~s, ~s);~%" - "security.sandbox.content.read_path_whitelist" - (call-with-input-file "whitelist.txt" - get-string-all)) - ;; Add-ons pannel (see settings.js in Icecat source). - (format #t "pref(~s, ~s);~%" - "extensions.getAddons.search.browseURL" - "https://gnuzilla.gnu.org/mozzarella") - (format #t "pref(~s, ~s);~%" - "extensions.getAddons.get.url" - "https://gnuzilla.gnu.org/mozzarella") - (format #t "pref(~s, ~s);~%" - "extensions.getAddons.link.url" - "https://gnuzilla.gnu.org/mozzarella") - (format #t "pref(~s, ~s);~%" - "extensions.getAddons.discovery.api_url" - "https://gnuzilla.gnu.org/mozzarella") - (format #t "pref(~s, ~s);~%" - "extensions.getAddons.langpacks.url" - "https://gnuzilla.gnu.org/mozzarella") - (format #t "pref(~s, ~s);~%" - "lightweightThemes.getMoreURL" - "https://gnuzilla.gnu.org/mozzarella")))))) - (replace 'wrap-program - (lambda* (#:key inputs #:allow-other-keys) - (let* ((gtk #$(this-package-input "gtk+")) - (gtk-share (string-append gtk "/share")) - (fonts.conf (in-vicinity - #$output - "lib/torbrowser/fontconfig/fonts.conf")) - (ld-libs '#$(cons - (file-append - (this-package-input "libcanberra") - "/lib/gtk-3.0/modules") - (map - (lambda (label) - (file-append - (this-package-input label) "/lib")) - '("libpng-apng" - "libxscrnsaver" - "mesa" - "pciutils" - "mit-krb5" - "eudev" - "pulseaudio" - "libnotify"))))) - (wrap-program - (in-vicinity #$output "lib/torbrowser/torbrowser") - `("XDG_DATA_DIRS" prefix (,gtk-share)) - `("LD_LIBRARY_PATH" prefix ,ld-libs) - `("FONTCONFIG_FILE" prefix (,fonts.conf)))))) - (replace 'install-desktop-entry - (lambda _ - (let ((apps (in-vicinity #$output "share/applications"))) - (mkdir-p apps) - (make-desktop-entry-file - (in-vicinity apps "torbrowser.desktop") - #:name "Tor Browser" - #:exec - (format #f "~a %u" (in-vicinity #$output "bin/torbrowser")) - #:comment - "Tor Browser is +1 for privacy and -1 for mass surveillance" - #:categories '("Network" "WebBrowser" "Security") - #:startup-w-m-class "Tor Browser" - #:icon "tor-browser")))) - (replace 'install-icons - (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (size) - (let ((oldpath (string-append - "browser/branding/tb-release/default" - size ".png")) - (newpath (string-append #$output - "/share/icons/hicolor/" - size "x" size "/apps"))) - (mkdir-p newpath) - (copy-file oldpath - (in-vicinity newpath "tor-browser.png")))) - '("16" "22" "24" "32" "48" "64" "128" "256")))))))) - (inputs - (modify-inputs (package-inputs icecat-minimal) - (append go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird - tor-client))) - (propagated-inputs - (list noscript/icecat)) - (home-page "https://www.torproject.org") - (synopsis "Anonymous browser derived from Mozilla Firefox") - (description - "Tor Browser is the Tor Project version of Firefox browser. It is the -only recommended way to anonymously browse the web that is supported by the -project. It modifies Firefox in order to avoid many know application level -attacks on the privacy of Tor users.") - (license license:mpl2.0))) ;And others, see - ;toolkit/content/license.html -- cgit 1.4.1 From 5618fd5d6f40b3a95d923ec344f72f32b557ae72 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Wed, 17 Jan 2024 17:03:58 +0000 Subject: gnu: spdlog: Update to 1.13.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/logging.scm (spdlog): Update to 1.13.0. [source]: Remove upstreamed patch. * gnu/local.mk: Unregister it. * gnu/packages/patches/spdlog-fix-tests.patch: Delete file. Change-Id: I78b5021b9841d16f43a283eaee931b4f92746ab8 Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 - gnu/packages/logging.scm | 5 ++--- gnu/packages/patches/spdlog-fix-tests.patch | 26 -------------------------- 3 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/spdlog-fix-tests.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index fbdb285695..6e294c7e0a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2045,7 +2045,6 @@ dist_patch_DATA = \ %D%/packages/patches/source-highlight-gcc-compat.patch \ %D%/packages/patches/softhsm-fix-openssl3-tests.patch \ %D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \ - %D%/packages/patches/spdlog-fix-tests.patch \ %D%/packages/patches/sphinxbase-fix-doxygen.patch \ %D%/packages/patches/sssd-system-directories.patch \ %D%/packages/patches/steghide-fixes.patch \ diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 0efd828f8a..47e8cd39c2 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -213,7 +213,7 @@ output in multiple windows in a terminal.") (define-public spdlog (package (name "spdlog") - (version "1.12.0") + (version "1.13.0") (source (origin (method git-fetch) @@ -221,9 +221,8 @@ output in multiple windows in a terminal.") (url "https://github.com/gabime/spdlog") (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (patches (search-patches "spdlog-fix-tests.patch")) (sha256 - (base32 "0yyncv6wjs5rqm76rkqyxpfbsingk1dq5zfcqhy1a7fpw8xdl53k")))) + (base32 "0zgdmdgnp2y36jrlk85d4fiyjkjd6anly8pambyc3f3v6sg02zyy")))) (build-system cmake-build-system) ;; TODO run benchmark. Currently not possible, as adding ;; (gnu packages benchmark) forms a dependency cycle diff --git a/gnu/packages/patches/spdlog-fix-tests.patch b/gnu/packages/patches/spdlog-fix-tests.patch deleted file mode 100644 index 13dffb309e..0000000000 --- a/gnu/packages/patches/spdlog-fix-tests.patch +++ /dev/null @@ -1,26 +0,0 @@ -Remove after next release and package update: -https://github.com/gabime/spdlog/commit/2ee8bac78e6525a8ad9a9196e65d502ce390d83a - -From 2ee8bac78e6525a8ad9a9196e65d502ce390d83a Mon Sep 17 00:00:00 2001 -From: xvitaly -Date: Sun, 23 Jul 2023 10:15:25 +0200 -Subject: [PATCH] Added missing square bracket to fix the level_to_string_view - test. (#2827) - ---- - tests/test_misc.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp -index 9f3cb1744..6199641ff 100644 ---- a/tests/test_misc.cpp -+++ b/tests/test_misc.cpp -@@ -43,7 +43,7 @@ TEST_CASE("log_levels", "[log_levels]") - REQUIRE(log_info("Hello", spdlog::level::trace) == "Hello"); - } - --TEST_CASE("level_to_string_view", "[convert_to_string_view") -+TEST_CASE("level_to_string_view", "[convert_to_string_view]") - { - REQUIRE(spdlog::level::to_string_view(spdlog::level::trace) == "trace"); - REQUIRE(spdlog::level::to_string_view(spdlog::level::debug) == "debug"); -- cgit 1.4.1 From 10dba10fd6551ab480a38d00301e6f102def674d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 7 Feb 2024 10:30:50 +0200 Subject: gnu: Register missing patch. * gnu/local.mk (dist_patch_DATA): Add missing patch. Change-Id: I82264a8cbea1550522994292e24f702f7cc78700 --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 6e294c7e0a..3ab036ee82 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2010,6 +2010,7 @@ dist_patch_DATA = \ %D%/packages/patches/rw-igraph-0.10.patch \ %D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \ %D%/packages/patches/s7-flint-3.patch \ + %D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \ %D%/packages/patches/sbc-fix-build-non-x86.patch \ %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \ %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \ -- cgit 1.4.1 From a042bfcd7eecb3499d42f143eff733b669f2bbe0 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Sun, 4 Feb 2024 16:47:13 +0000 Subject: gnu: libgeotiff: Fix build with proj 9.3.1. * gnu/packages/geo.scm (libgeotiff): [source]: Add patches to fix build with proj 9.3.1. * gnu/local.mk: Add patch files. * gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch: New file. * gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch: New file. * gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch: New file. Change-Id: I5f09e793698b0b137888faa0f595ef06850c6160 Signed-off-by: Guillaume Le Vaillant --- gnu/local.mk | 3 ++ gnu/packages/geo.scm | 6 ++- .../patches/libgeotiff-fix-tests-on-i386.patch | 35 +++++++++++++++ .../libgeotiff-fix-tests-with-proj-9.3.0.patch | 51 ++++++++++++++++++++++ .../libgeotiff-fix-tests-with-proj-9.3.1.patch | 40 +++++++++++++++++ 5 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch create mode 100644 gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch create mode 100644 gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3ab036ee82..f7ef95e2f8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1507,6 +1507,9 @@ dist_patch_DATA = \ %D%/packages/patches/julia-Use-MPFR-4.2.patch \ %D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \ %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \ + %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \ + %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \ + %D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \ %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ %D%/packages/patches/librime-fix-build-with-gcc10.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 5882271174..3171efa0dc 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -548,7 +548,11 @@ and driving.") (method url-fetch) (uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-" version ".tar.gz")) - (patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch")) + (patches + (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch" + "libgeotiff-fix-tests-with-proj-9.3.0.patch" + "libgeotiff-fix-tests-with-proj-9.3.1.patch" + "libgeotiff-fix-tests-on-i386.patch")) (sha256 (base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5")) (modules '((guix build utils))) diff --git a/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch b/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch new file mode 100644 index 0000000000..e84f726a3d --- /dev/null +++ b/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch @@ -0,0 +1,35 @@ +From 9990160268fafb71751d4f3a9ad724df70cb9451 Mon Sep 17 00:00:00 2001 +From: Bas Couwenberg +Date: Fri, 1 Dec 2023 10:35:46 +0100 +Subject: [PATCH] Fix test failure on i386. + +--- +https://github.com/OSGeo/libgeotiff/pull/107 + + test/testlistgeo | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/test/testlistgeo b/test/testlistgeo +index 48e92eb..ceec2e6 100755 +--- a/test/testlistgeo ++++ b/test/testlistgeo +@@ -218,6 +218,9 @@ echo "" >>${OUT} + sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp + mv ${OUT}.tmp ${OUT} + ++sed "s/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.02\"E)/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.03\"E)/" < ${OUT} > ${OUT}.tmp ++mv ${OUT}.tmp ${OUT} ++ + sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized + + sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp +@@ -230,6 +233,9 @@ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized + sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp + mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized + ++sed "s/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.02\"E)/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.03\"E)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp ++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized ++ + # do 'diff' with distribution results + # after cleaning for avoid spurios result due + # to different build dir diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch new file mode 100644 index 0000000000..5d381d78e2 --- /dev/null +++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch @@ -0,0 +1,51 @@ +From 3806fdab4a17f44641a2113faec778e756e2be3d Mon Sep 17 00:00:00 2001 +From: Even Rouault +Date: Tue, 29 Aug 2023 19:04:25 +0200 +Subject: [PATCH] Fix 'make check' to pass with PROJ 9.3 (fixes #89) + +--- +https://github.com/OSGeo/libgeotiff/pull/90 + + test/testlistgeo | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/test/testlistgeo b/test/testlistgeo +index 9a41e74..48e92eb 100755 +--- a/test/testlistgeo ++++ b/test/testlistgeo +@@ -218,14 +218,24 @@ echo "" >>${OUT} + sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp + mv ${OUT}.tmp ${OUT} + +-sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.tmp ++sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized ++ ++sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp ++mv ${OUT}.tmp ${OUT} ++sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < ${OUT} > ${OUT}.tmp ++mv ${OUT}.tmp ${OUT} ++ ++sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp ++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized ++sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp ++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized + + # do 'diff' with distribution results + # after cleaning for avoid spurios result due + # to different build dir + sed -e "s/Testing listgeo .*test/Testing listgeo ..\/test/" -i ${OUT} + echo "diff ${OUT} with testlistgeo_out.dist" +-diff -u ${OUT} testlistgeo_out.dist.tmp ++diff -u ${OUT} testlistgeo_out.dist.normalized + if [ $? -ne 0 ] ; then + echo "" + echo "PROBLEMS HAVE OCCURRED" +@@ -236,7 +246,7 @@ else + echo "TEST OK" + echo "test file ${OUT} removed" + echo +- rm testlistgeo_out.dist.tmp ++ rm testlistgeo_out.dist.normalized + /bin/rm -f ${OUT} + exit 0 + fi diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch new file mode 100644 index 0000000000..e9a28d1fcd --- /dev/null +++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch @@ -0,0 +1,40 @@ +From 4f90e57fa1cac7afdd57e5f649775cb24aa15612 Mon Sep 17 00:00:00 2001 +From: Bas Couwenberg +Date: Fri, 1 Dec 2023 08:23:20 +0100 +Subject: [PATCH] Fix test failure with PROJ 9.3.1. + +Closes: #104 +--- +https://github.com/OSGeo/libgeotiff/pull/105 + + test/testlistgeo | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/test/testlistgeo b/test/testlistgeo +index 48e92eb..4331cc3 100755 +--- a/test/testlistgeo ++++ b/test/testlistgeo +@@ -218,6 +218,11 @@ echo "" >>${OUT} + sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp + mv ${OUT}.tmp ${OUT} + ++sed "s/Projection = 15914 (BLM zone 14N (US survey .*))/Projection = 15914 (BLM zone 14N)/g" < ${OUT} > ${OUT}.tmp ++mv ${OUT}.tmp ${OUT} ++sed "s/Projection = 6753 (Oregon Columbia River West zone (.*))/Projection = 6753 (Oregon Columbia River West zone)/" < ${OUT} > ${OUT}.tmp ++mv ${OUT}.tmp ${OUT} ++ + sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized + + sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp +@@ -230,6 +235,11 @@ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized + sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp + mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized + ++sed "s/Projection = 15914 (BLM zone 14N (US survey .*))/Projection = 15914 (BLM zone 14N)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp ++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized ++sed "s/Projection = 6753 (Oregon Columbia River West zone (.*))/Projection = 6753 (Oregon Columbia River West zone)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp ++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized ++ + # do 'diff' with distribution results + # after cleaning for avoid spurios result due + # to different build dir -- cgit 1.4.1 From 4b941ab3d5dea321e1fd96dd21faf346258e2d80 Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Wed, 10 Jan 2024 08:43:10 +0100 Subject: gnu: coq: Update to 8.17.1. * gnu/packages/coq.scm (coq): Update to 8.17.1 and merge with coq-core and coq-stdlib. [arguments] Merge with coq-core and coq-stdlib. Add pre-build phases and add a custom install phase. Remove unnecessary test-target. [source](patches): Remove. [native-search-paths]: Remove COQLIBPATH and COQCORELIB. (coq-core): Remove variable. (coq-stdlib): Remove variable. (coq-ide)[propagated-inputs]: Add zlib. (coq-mathcomp-bigenough)[propagated-inputs]: Remove coq-core. (coq-mathcomp-finmap)[inputs]: Remove coq-stdlib. (coq-equations): Update to 1.3-8.17. * gnu/packages/patches/coq-fix-envvars.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Co-authored-by: Josselin Poiret Signed-off-by: Julien Lepiller Change-Id: I0a0d9f7a6e06dd19ce1b66051334476d85f4f195 --- gnu/local.mk | 1 - gnu/packages/coq.scm | 89 +++++++++++------------------- gnu/packages/patches/coq-fix-envvars.patch | 53 ------------------ 3 files changed, 32 insertions(+), 111 deletions(-) delete mode 100644 gnu/packages/patches/coq-fix-envvars.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index f7ef95e2f8..168590f778 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1056,7 +1056,6 @@ dist_patch_DATA = \ %D%/packages/patches/converseen-hide-non-free-pointers.patch \ %D%/packages/patches/cool-retro-term-wctype.patch \ %D%/packages/patches/coreutils-gnulib-tests.patch \ - %D%/packages/patches/coq-fix-envvars.patch \ %D%/packages/patches/cppcheck-disable-char-signedness-test.patch \ %D%/packages/patches/cpuinfo-system-libraries.patch \ %D%/packages/patches/cpulimit-with-glib-2.32.patch \ diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 57f8489a18..105b942ad3 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages compression) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) @@ -51,10 +52,10 @@ #:use-module (guix utils) #:use-module ((srfi srfi-1) #:hide (zip))) -(define-public coq-core +(define-public coq (package - (name "coq-core") - (version "8.16.1") + (name "coq") + (version "8.17.1") (source (origin (method git-fetch) @@ -64,28 +65,35 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0ljpqhh5lfsim29fcfp2xfcvm3j84pf1mb0gnpdr8vcqqw7mqwpf")) - (patches (search-patches "coq-fix-envvars.patch")))) + "0gg6hizq0i08lk741b579cbswhy6qvkh6inc3d3i5a2af98psq63")))) (native-search-paths (list (search-path-specification (variable "COQPATH") - (files (list "lib/ocaml/site-lib/coq/user-contrib" - "lib/coq/user-contrib"))) - (search-path-specification - (variable "COQLIBPATH") - (files (list "lib/ocaml/site-lib/coq"))) - (search-path-specification - (variable "COQCORELIB") - (files (list "lib/ocaml/site-lib/coq-core")) - (separator #f)))) + (files (list "lib/coq/user-contrib"))))) (build-system dune-build-system) + (arguments + (list + #:package "coq-core,coq-stdlib,coq" + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (coqlib (string-append out "/lib/ocaml/site-lib/coq/"))) + (invoke "./configure" "-prefix" out + "-libdir" coqlib)))) + (add-before 'build 'make-dunestrap + (lambda _ (invoke "make" "dunestrap"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib/ocaml/site-lib"))) + (invoke "dune" "install" "--prefix" out + "--libdir" libdir "coq" "coq-core" "coq-stdlib"))))))) (inputs (list gmp ocaml-zarith)) (native-inputs (list ocaml-ounit2 which)) - (arguments - `(#:package "coq-core" - #:test-target ".")) (properties '((upstream-name . "coq"))) ; also for inherited packages (home-page "https://coq.inria.fr") (synopsis "Proof assistant for higher-order logic") @@ -97,39 +105,6 @@ It is developed using Objective Caml and Camlp5.") ;; Some of the documentation is distributed under opl1.0+. (license (list license:lgpl2.1 license:opl1.0+)))) -(define-public coq-stdlib - (package - (inherit coq-core) - (name "coq-stdlib") - (arguments - `(#:package "coq-stdlib" - #:test-target "." - #:phases - (modify-phases %standard-phases - (add-before 'build 'fix-dune - (lambda _ - (substitute* "user-contrib/Ltac2/dune" - (("coq-core.plugins.ltac2") - (string-join - (map (lambda (plugin) (string-append "coq-core.plugins." plugin)) - '("ltac2" "number_string_notation" "tauto" "cc" - "firstorder")) - " ")))))))) - (inputs - (list coq-core gmp ocaml-zarith)) - (native-inputs '()))) - -(define-public coq - (package - (inherit coq-core) - (name "coq") - (arguments - `(#:package "coq" - #:test-target ".")) - (propagated-inputs - (list coq-core coq-stdlib)) - (native-inputs '()))) - (define-public coq-ide-server (package (inherit coq) @@ -148,7 +123,7 @@ It is developed using Objective Caml and Camlp5.") `(#:tests? #f #:package "coqide")) (propagated-inputs - (list coq coq-ide-server)) + (list coq coq-ide-server zlib)) (inputs (list lablgtk3 ocaml-lablgtk3-sourceview3)))) @@ -582,16 +557,16 @@ uses Ltac to synthesize the substitution operation.") (define-public coq-equations (package (name "coq-equations") - (version "1.3") + (version "1.3-8.17") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mattam82/Coq-Equations") - (commit (string-append "v" version "-8.16")))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg")))) + "0g68h4c1ijpphixvl9wkd7sibds38v4236dpvvh194j5ii42vnn8")))) (build-system gnu-build-system) (native-inputs (list ocaml coq camlp5)) @@ -743,7 +718,7 @@ for goals involving set operations. "/lib/coq/user-contrib")) #:phases (modify-phases %standard-phases (delete 'configure)))) - (inputs (list coq coq-stdlib coq-mathcomp which)) + (inputs (list coq coq coq-mathcomp which)) (synopsis "Finite sets and finite types for coq-mathcomp") (description "This library is an extension of coq-mathcomp which supports finite sets @@ -774,7 +749,7 @@ subsume notations for finite sets.") ;; by the packaged project in the future. #:tests? #f #:make-flags ,#~(list (string-append "COQBIN=" - #$(this-package-input "coq-core") + #$(this-package-input "coq") "/bin/") (string-append "COQMF_COQLIB=" (assoc-ref %outputs "out") @@ -784,7 +759,7 @@ subsume notations for finite sets.") "/lib/coq/user-contrib")) #:phases (modify-phases %standard-phases (delete 'configure)))) - (propagated-inputs (list coq coq-core coq-mathcomp which)) + (propagated-inputs (list coq coq-mathcomp which)) (home-page "https://math-comp.github.io/") (synopsis "Small library to do epsilon - N reasoning") (description diff --git a/gnu/packages/patches/coq-fix-envvars.patch b/gnu/packages/patches/coq-fix-envvars.patch deleted file mode 100644 index 6c48224c64..0000000000 --- a/gnu/packages/patches/coq-fix-envvars.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0e76cda958a4d3e4bcbb96e171c26b6b3478c6c2 Mon Sep 17 00:00:00 2001 -From: Julien Lepiller -Date: Thu, 10 Feb 2022 16:44:10 +0100 -Subject: [PATCH] Fix environment variable usage. - ---- - boot/env.ml | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/boot/env.ml b/boot/env.ml -index e8521e7..d834a3a 100644 ---- a/boot/env.ml -+++ b/boot/env.ml -@@ -32,17 +32,29 @@ let fail_msg = - - let fail s = Format.eprintf "%s@\n%!" fail_msg; exit 1 - -+let path_to_list p = -+ let sep = if String.equal Sys.os_type "Win32" then ';' else ':' in -+ String.split_on_char sep p -+ - (* This code needs to be refactored, for now it is just what used to be in envvars *) - let guess_coqlib () = - Util.getenv_else "COQLIB" (fun () -> - let prelude = "theories/Init/Prelude.vo" in -- Util.check_file_else -- ~dir:Coq_config.coqlibsuffix -- ~file:prelude -- (fun () -> -- if Sys.file_exists (Filename.concat Coq_config.coqlib prelude) -- then Coq_config.coqlib -- else fail ())) -+ let coqlibpath = Util.getenv_else "COQLIBPATH" (fun () -> Coq_config.coqlibsuffix) in -+ let paths = path_to_list coqlibpath in -+ let valid_paths = -+ List.filter -+ (fun dir -> (Util.check_file_else ~dir:dir ~file:prelude (fun () -> "")) <> "") -+ paths in -+ match valid_paths with -+ | [] -> -+ if Sys.file_exists (Filename.concat Coq_config.coqlib prelude) -+ then Coq_config.coqlib -+ else -+ fail "cannot guess a path for Coq libraries; please use -coqlib option \ -+ or ensure you have installed the package containing Coq's stdlib (coq-stdlib in OPAM) \ -+ If you intend to use Coq without a standard library, the -boot -noinit options must be used." -+ | p::_ -> p) - - (* Build layout uses coqlib = coqcorelib *) - let guess_coqcorelib lib = --- -2.34.0 - -- cgit 1.4.1 From 01ee39cfee10583402e9fc252ca5c0e8232435db Mon Sep 17 00:00:00 2001 From: pukkamustard Date: Wed, 10 Jan 2024 08:43:35 +0100 Subject: gnu: opam: Update to 2.1.5. * gnu/packages/ocaml.scm (opam): Update to 2.1.5. [native-inputs]: Add more test data. [arguments]: Disable failing test. (ocaml-graph): Update to 2.0.0. (ocaml-dose3): Update to 7.0.0. * gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch: Remove. * gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch: Remove. * gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch: Remove. * gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch: Remove. * gnu/local.mk (dist_path_DATA): Unregister removed patches. Change-Id: Ie715998a6d7740332187e1fe0742631964ba5a8a Signed-off-by: Julien Lepiller --- gnu/local.mk | 4 - gnu/packages/ocaml.scm | 132 +++++++++++--------- .../patches/ocaml-dose3-Fix-for-ocaml-4.06.patch | 52 -------- .../patches/ocaml-dose3-Install-mli-cmx-etc.patch | 133 --------------------- .../patches/ocaml-dose3-add-unix-dependency.patch | 25 ---- .../patches/ocaml-dose3-dont-make-printconf.patch | 9 -- 6 files changed, 74 insertions(+), 281 deletions(-) delete mode 100644 gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch delete mode 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch delete mode 100644 gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch delete mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 168590f778..7806771eea 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1729,10 +1729,6 @@ dist_patch_DATA = \ %D%/packages/patches/nvi-db4.patch \ %D%/packages/patches/nyacc-binary-literals.patch \ %D%/packages/patches/obs-modules-location.patch \ - %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \ - %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \ - %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \ - %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \ %D%/packages/patches/ocaml-multiple-definitions.patch \ %D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \ %D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \ diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 480d1dc269..9c0fab1c38 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -714,7 +714,7 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.") (define-public ocaml-dose3 (package (name "ocaml-dose3") - (version "5.0.1") + (version "7.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -723,29 +723,16 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.") (file-name (git-file-name name version)) (sha256 (base32 - "0dxkw37gj8z45kd0dnrlfgpj8yycq0dphs8kjm9kvq9xc8rikxp3")) - (patches - (search-patches - "ocaml-dose3-add-unix-dependency.patch" - "ocaml-dose3-Fix-for-ocaml-4.06.patch" - "ocaml-dose3-dont-make-printconf.patch" - "ocaml-dose3-Install-mli-cmx-etc.patch")))) - (build-system ocaml-build-system) - (arguments - `(#:tests? #f ;the test suite requires python 2 - #:configure-flags - ,#~(list (string-append "SHELL=" - #+(file-append (canonical-package bash-minimal) - "/bin/sh"))) - #:make-flags - ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib")))) - (propagated-inputs - (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re)) - (native-inputs - (list perl - ocaml-extlib - ocamlbuild - ocaml-cppo)) + "0hcjh68svicap7j9bghgkp49xa12qhxa1pygmrgc9qwm0m4dhirb")))) + (build-system dune-build-system) + (arguments `(#:package "dose3")) + (propagated-inputs (list ocaml-extlib + ocaml-base64-boot + ocaml-cudf + ocaml-graph + ocaml-re + ocaml-stdlib-shims)) + (native-inputs (list ocaml-ounit)) (home-page "https://www.mancoosi.org/software/") (synopsis "Package distribution management framework") (description "Dose3 is a framework made of several OCaml libraries for @@ -850,7 +837,7 @@ the opam file format.") (define ocaml-opam-core (package (name "ocaml-opam-core") - (version "2.1.3") + (version "2.1.5") (source (origin (method git-fetch) (uri (git-reference @@ -859,7 +846,7 @@ the opam file format.") (file-name (git-file-name name version)) (sha256 (base32 - "1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7")))) + "0ckd87rcmcz11iyhhm5qnmy27jbdffx6n1fr06hvrqqrzi00jljh")))) (build-system dune-build-system) (arguments `(#:package "opam-core" ;; tests are run with the opam package @@ -1038,7 +1025,10 @@ name = Guix Builder") (("diff opamroot-versions.test opamroot-versions.out") "run true") ;; Disable a failing test, probably because the repository we ;; replaced is not as expected - (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true")) + (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true") + ;; Disable a failing test because of missing sandboxing + ;; functionality + (("diff init.test init.out") "run true")) (substitute* "tests/reftests/dune" ;; Because of our changes to the previous file, we cannot check ;; it can be regenerated @@ -1074,18 +1064,42 @@ name = Guix Builder") ("which" ,which) ;; Data for tests - ("opam-repo-009e00fa" ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2" - "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w")) - ("opam-repo-7090735c" ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15" - "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z")) - ("opam-repo-a5d7cdc0" ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd" - "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369")) - ("opam-repo-ad4dd344" ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4" - "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8")) - ("opam-repo-c1d23f0e" ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0" - "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii")) - ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" - "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))))) + ("opam-repo-0070613707" + ,(opam-repo "00706137074d536d2019d2d222fbe1bea929deda" + "1gv1vvmfscj7wirfv6qncp8pf81wygnpzjwd0lyqcxm7g8r8lb4w")) + ("opam-repo-009e00fa" + ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2" + "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w")) + ("opam-repo-7090735c" + ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15" + "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z")) + ("opam-repo-a5d7cdc0" + ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd" + "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369")) + ("opam-repo-ad4dd344" + ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4" + "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8")) + ("opam-repo-c1842d168d" + ,(opam-repo "c1842d168de956caf06d7ac8588e65020d7594d8" + "142y1ac7sprygyh91shcp0zcyfxjjkshi9g44qgg4rx60rbsbhai")) + ("opam-repo-c1d23f0e" + ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0" + "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii")) + ("opam-repo-f372039d" + ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" + "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")) + ("opam-repo-11ea1cb" + ,(opam-repo "11ea1cb6f2418b1f8a6679e4422771a04c9c3655" + "1s4p0wfn3bx97yvm8xvj3yhzv2pz0jwml68g2ybv37hj9mpbrsq0")) + ("opam-repo-297366c" + ,(opam-repo "297366cd01c3aaf29b967bf0b34ccc7989d4d5b3" + "1ysg69gys37nc2cxivs2ikh6xp0gj85if4rcrr874mqb9z12dm0j")) + ("opam-repo-3235916" + ,(opam-repo "3235916a162a59d7c82dac3fe24214975d48f1aa" + "1yf73rv2n740a4s9g7a9k4j91b4k7al88nwnw9cdw0k2ncbmr486")) + ("opam-repo-de897adf36c4230dfea812f40c98223b31c4521a" + ,(opam-repo "de897adf36c4230dfea812f40c98223b31c4521a" + "1m18x9gcwnbar8yv9sbfz8a3qpw412fp9cf4d6fb7syn0p0h96jw"))))) (inputs (list ocaml-opam-client)) (properties ;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14 @@ -4390,8 +4404,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).") (base32 "1jq349jp663hq51a941afr2y4yyh34r19zsxla73ks9bywj4mm2q")))) (build-system dune-build-system) - (native-inputs - (list ocaml-alcotest ocaml-bos ocaml-rresult)) + (native-inputs (list ocaml-alcotest ocaml-bos ocaml-rresult)) (home-page "https://github.com/mirage/ocaml-base64") (synopsis "Base64 encoding for OCaml") (description "Base64 is a group of similar binary-to-text encoding schemes @@ -4399,6 +4412,14 @@ that represent binary data in an ASCII string format by translating it into a radix-64 representation. It is specified in RFC 4648.") (license license:isc))) +;; A variant without tests that is used to prevent a cyclic dependency when +;; compiling ocaml-dose3. +(define ocaml-base64-boot + (package + (inherit ocaml-base64) + (arguments `(#:tests? #f)) + (native-inputs '()))) + (define-public ocamlify (package (name "ocamlify") @@ -5120,27 +5141,22 @@ and 4 (random based) according to RFC 4122.") (define-public ocaml-graph (package (name "ocaml-graph") - (version "1.8.8") + (version "2.0.0") + (home-page "https://github.com/backtracking/ocamlgraph/") (source (origin - (method url-fetch) - (uri (string-append "http://ocamlgraph.lri.fr/download/" - "ocamlgraph-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr")))) - (build-system ocaml-build-system) - (arguments - `(#:install-target "install-findlib" - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-before 'configure 'set-shell - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CONFIG_SHELL" - (search-input-file inputs "/bin/sh"))))))) - (inputs (list lablgtk)) + "1gjrsyyamvvn2rd9n9yjx6hsglhw0dbm4cgazq0dpx0bbr4inwc3")))) + (build-system dune-build-system) + (arguments `(#:package "ocamlgraph")) + (propagated-inputs (list ocaml-stdlib-shims)) + (native-inputs (list ocaml-graphics)) (properties `((upstream-name . "ocamlgraph"))) - (home-page "https://ocamlgraph.lri.fr/") (synopsis "Graph library for OCaml") (description "OCamlgraph is a generic graph library for OCaml.") (license license:lgpl2.1))) diff --git a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch deleted file mode 100644 index 2c344af821..0000000000 --- a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch +++ /dev/null @@ -1,52 +0,0 @@ -From aeca7656f499d7f4595319858f242276920e31bb Mon Sep 17 00:00:00 2001 -From: Louis Gesbert -Date: Sat, 2 Dec 2017 12:51:01 +0100 -Subject: [PATCH] Fix for ocaml 4.06 - ---- - common/criteria_lexer.mll | 8 ++++---- - common/util.ml | 2 +- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/common/criteria_lexer.mll b/common/criteria_lexer.mll -index 71f9178..fc4eae3 100644 ---- a/common/criteria_lexer.mll -+++ b/common/criteria_lexer.mll -@@ -18,7 +18,7 @@ - let c = Lexing.lexeme_char lexbuf 2 in (* the delimiter can be any character *) - (* find the terminating delimiter *) - let endpos = -- try String.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with -+ try Bytes.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with - |Invalid_argument _ -> - raise (Format822.Syntax_error ( - Format822.error lexbuf "String too short")) -@@ -27,9 +27,9 @@ - Format822.error lexbuf (Printf.sprintf "cannot find: %c" c))) - in - let len = endpos - (lexbuf.lex_start_pos + 3) in -- let s = String.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in -- lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((String.length s)+4); -- s -+ let s = Bytes.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in -+ lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((Bytes.length s)+4); -+ Bytes.to_string s - - } - -diff --git a/common/util.ml b/common/util.ml -index 598f266..36ca3d1 100644 ---- a/common/util.ml -+++ b/common/util.ml -@@ -87,7 +87,7 @@ module MakeMessages(X : sig val label : string end) = struct - let clean label = - try - let s = Filename.chop_extension (Filename.basename label) in -- String.capitalize s -+ String.capitalize_ascii s - with Invalid_argument _ -> label - - let create ?(enabled=false) label = --- -2.11.0 - diff --git a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch deleted file mode 100644 index 41494e7b3c..0000000000 --- a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch +++ /dev/null @@ -1,133 +0,0 @@ -From b5314c20d8e3caf62fe0dc96ad937a2950158b23 Mon Sep 17 00:00:00 2001 -From: Louis Gesbert -Date: Thu, 2 Mar 2017 12:19:56 +0100 -Subject: [PATCH] Install mli, cmx, etc. - ---- - Makefile | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -diff --git a/Makefile b/Makefile -index 09464ff..5044d7f 100644 ---- a/Makefile -+++ b/Makefile -@@ -56,7 +56,7 @@ $(DOSELIBS)/cudf.%: - @for i in _build/cudf/cudf.*; do \ - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -67,7 +67,7 @@ $(DOSELIBS)/common.%: common/*.ml common/*.mli - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -78,7 +78,7 @@ $(DOSELIBS)/versioning.%: versioning/*.ml versioning/*.mli - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -88,7 +88,7 @@ $(DOSELIBS)/algo.%: algo/*.ml algo/*.mli $(DOSELIBS)/common.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -98,7 +98,7 @@ $(DOSELIBS)/debian.%: deb/*.ml deb/*.mli $(DOSELIBS)/pef.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -108,7 +108,7 @@ $(DOSELIBS)/opam.%: opam/*.ml opam/*.mli $(DOSELIBS)/pef.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -118,7 +118,7 @@ $(DOSELIBS)/npm.%: npm/*.ml npm/*.mli $(DOSELIBS)/versioning.% $(DOSELIBS)/pef.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -128,7 +128,7 @@ $(DOSELIBS)/rpm.%: rpm/*.ml $(DOSELIBS)/algo.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -138,7 +138,7 @@ $(DOSELIBS)/pef.%: pef/*.ml pef/*.mli - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -148,7 +148,7 @@ $(DOSELIBS)/csw.%: opencsw/*.ml $(DOSELIBS)/versioning.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \ -+ rm -f $(DOSELIBS)/*.mlpack ; \ - fi ; \ - done - -@@ -158,7 +158,7 @@ $(DOSELIBS)/doseparse.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ; \ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx $(DOSELIBS)/*.ml ; \ -+ rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.ml ; \ - fi ; \ - done - -@@ -168,7 +168,7 @@ $(DOSELIBS)/doseparseNoRpm.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.% - if [ -e $$i ]; then \ - cp $$i $(DOSELIBS) ;\ - rm $$i ;\ -- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ;\ -+ rm -f $(DOSELIBS)/*.mlpack ;\ - fi ; \ - done - -@@ -223,7 +223,7 @@ INSTALL_STUFF_ = META - INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cma _build/doselibs/*.cmi) - INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cmxa _build/doselibs/*.cmxs) - INSTALL_STUFF_ += $(wildcard _build/doselibs/*.a) --#INSTALL_STUFF_ += $(wildcard _build/*/*.mli) -+INSTALL_STUFF_ += $(wildcard _build/doselibs/*.mli) $(wildcard _build/doselibs/*.cmti) $(wildcard _build/doselibs/*.cmx) - INSTALL_STUFF_ += $(wildcard _build/rpm/*.so) - - exclude_cudf = $(wildcard _build/doselibs/*cudf* _build/cudf/*) --- -2.11.0 - diff --git a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch b/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch deleted file mode 100644 index d2cc44c784..0000000000 --- a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b94cf24739818e5aff397e0a83b19ea32dc81f42 Mon Sep 17 00:00:00 2001 -From: Louis Gesbert -Date: Tue, 6 Feb 2018 10:15:45 +0100 -Subject: [PATCH 3/3] Add "unix" as dependency to dose3.common in META.in - ---- - META.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/META.in b/META.in -index aa2cd8d..0f9d337 100644 ---- a/META.in -+++ b/META.in -@@ -8,7 +8,7 @@ package "common" ( - version = "@PACKAGE_VERSION@" - archive(byte) = "common.cma" - archive(native) = "common.cmxa" --requires = "extlib, re.pcre, cudf, @ZIP@, @BZ2@" -+requires = "extlib, re.pcre, cudf, unix, @ZIP@, @BZ2@" - ) - - package "algo" ( --- -2.11.0 - diff --git a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch deleted file mode 100644 index 84b6a3b81b..0000000000 --- a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/configure -+++ b/configure -@@ -6552,6 +6552,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi -- -- --make printconf -- cgit 1.4.1 From 52cca41c6fdb35d25c0543fef5fd90ebc855163c Mon Sep 17 00:00:00 2001 From: David Elsing Date: Sun, 28 Jan 2024 23:02:00 +0000 Subject: gnu: avalon-toolkit: Update to 2.0.5a. The bug freeing static memory and the makefile have been improved upstream, so we don't have to work around them anymore. Now, two static libraries are built instead. * gnu/packages/chemistry.scm (avalon-toolkit): Update to 2.0.5a. [source]: Switch to git reference from GitHub. Adjust snippet. Add patch from the RDKit fork. [arguments]: Remove 'dont-free-static-memory phase. Use provided makefile. Adjust 'install phase. * gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Christopher Baines --- gnu/local.mk | 2 + gnu/packages/chemistry.scm | 131 +++++++++------------ .../patches/avalon-toolkit-rdkit-fixes.patch | 110 +++++++++++++++++ 3 files changed, 166 insertions(+), 77 deletions(-) create mode 100644 gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 7806771eea..ab690795a7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -63,6 +63,7 @@ # Copyright © 2023 gemmaro # Copyright © 2023 Herman Rimm # Copyright © 2023 Troy Figiel +# Copyright © 2024 David Elsing # # This file is part of GNU Guix. # @@ -957,6 +958,7 @@ dist_patch_DATA = \ %D%/packages/patches/audiofile-function-signature.patch \ %D%/packages/patches/automake-skip-amhello-tests.patch \ %D%/packages/patches/avahi-localstatedir.patch \ + %D%/packages/patches/avalon-toolkit-rdkit-fixes.patch \ %D%/packages/patches/avidemux-install-to-lib.patch \ %D%/packages/patches/awesome-reproducible-png.patch \ %D%/packages/patches/awesome-4.3-fno-common.patch \ diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 4a9dd97c5b..5e19bdf182 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -917,90 +917,67 @@ calculations and analyzing the results.") (define-public avalon-toolkit (package (name "avalon-toolkit") - (version "1.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/avalontoolkit/" - "AvalonToolkit_" (substring version 0 3) "/AvalonToolkit_" - version ".source.tar")) - (sha256 - (base32 - "0rnnyy6axs2da7aa4q6l30ldavbk49v6l22llj1adn74h1i67bpv")) - (modules '((guix build utils) (ice-9 ftw))) - (snippet - #~(begin - (delete-file-recursively "../SourceDistribution/java"))))) + (version "2.0.5a") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rohdebe1/ava-formake") + (commit (string-append "AvalonToolkit_" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mfg40y5xc17sm59zdfc5sk22n9zm5zk0z1aw47chvl6hp465szk")) + (patches + (search-patches "avalon-toolkit-rdkit-fixes.patch")) + (modules '((guix build utils) (ice-9 ftw))) + (snippet + #~(begin + (delete-file-recursively "src/main/java") + (delete-file-recursively "src/test/target"))))) (build-system gnu-build-system) (arguments (list - ;; There are no intended tests + ;; There is only one test, which is missing a file #:tests? #f #:phases - #~(let ((programs '("canonizer" "matchtest" "sketch" "smi2mol" "struchk"))) - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "common"))) - (delete 'configure) - (add-before 'build 'dont-free-static-memory - (lambda _ - (substitute* "reaccsio.c" - (("MyFree\\(.*tempdir\\)" m) - (string-append "/* freeing memory from getenv is bad */" - "// " m))))) - ;; The makefile has incorrect compiler flags and is missing some - ;; object files, so we build it ourselves. - (replace 'build - (lambda _ - (for-each - (lambda (part) - (format #t "Compiling ~a.c ~~> ~a.o~%" part part) - (invoke #$(cc-for-target) "-c" "-fPIC" "-O2" - (string-append part ".c") - "-o" (string-append part ".o"))) - (list "aacheck" "casutils" "denormal" "depictutil" - "didepict" "fixcharges" "forio" "geometry" - "graph" "hashcode" "layout" "local" "pattern" - "perceive" "reaccsio" "rtutils" "set" "shortcut" - "sketch" "ssmatch" "stereo" "symbol_lists" - "symboltable" "utilities")) - (display "Building libavalontoolkit.so\n") - (apply invoke "gcc" "-fPIC" "-shared" "-lm" - "-o" "libavalontoolkit.so" "canonizer.c" "smi2mol.c" - "struchk.c" "patclean.c" (find-files "." "\\.o$")) - ;; patclean is not built here as there is an undeclared - ;; variable in main(). - (for-each - (lambda (program) - (display (string-append "Building " program "\n")) - (invoke "gcc" "-L." "-lavalontoolkit" "-lm" "-O2" - (string-append "-Wl,-rpath=" #$output "/lib") - "-DMAIN" (string-append program ".c") "-o" program)) - programs))) - (replace 'install - (lambda _ - ;; Executables + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (mkdir "build") + (mkdir-p "target/executables") + (mkdir-p "target/libraries") + (invoke "make" "programs" "-j" + (if parallel-build? + (number->string (parallel-job-count)) + "1")))) + (replace 'install + (lambda _ + ;; Executables + (let ((programs '("canonizer" "matchtest" "smi2mol" "struchk"))) (for-each (lambda (program) - (install-file program (string-append #$output "/bin"))) - programs) - (for-each - (lambda (name) - (symlink (string-append #$output "/bin/smi2mol") - (string-append #$output "/bin/" name))) - '("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf")) - ;; Library - (install-file "libavalontoolkit.so" - (string-append #$output "/lib")) - (for-each - (lambda (file) - (install-file file (string-append #$output - "/include/avalontoolkit"))) - (find-files "." "\\.h$")) - (install-file "../license.txt" - (string-append #$output "/share/doc/" - #$name "-" #$version "/")))))))) + (install-file (string-append "target/executables/" program) + (string-append #$output "/bin"))) + programs)) + (for-each + (lambda (name) + (symlink (string-append #$output "/bin/smi2mol") + (string-append #$output "/bin/" name))) + '("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf")) + ;; Library + (install-file "target/libraries/libavalon_tools.a" + (string-append #$output "/lib")) + (install-file "target/libraries/libavalon4rdkit.a" + (string-append #$output "/lib")) + (for-each + (lambda (file) + (install-file file (string-append #$output + "/include/avalontoolkit"))) + (find-files "src/main/C/include" "\\.h$")) + (install-file "license.txt" + (string-append #$output "/share/doc/" + #$name "-" #$version "/"))))))) (home-page "https://sourceforge.net/projects/avalontoolkit/") (synopsis "Tools for SMILES and MOL files and for structure fingerprinting") (description "This package contains a library and programs for diff --git a/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch b/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch new file mode 100644 index 0000000000..c93a9869ed --- /dev/null +++ b/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch @@ -0,0 +1,110 @@ +Patches taken from the rdkit fork at this commit (there version +AvalonToolkit_2.0.6-pre.2): +https://github.com/rdkit/ava-formake/commit/d05bee0382b8f4696b2b4b05b0038fb7d559520a + +diff -ur a/src/main/C/common/reaccsio.c b/src/main/C/common/reaccsio.c +--- a/src/main/C/common/reaccsio.c ++++ b/src/main/C/common/reaccsio.c +@@ -322,34 +322,49 @@ + fprintf(fp,"\n"); + } + ++#define MAX_BONDLINE_FIELDS 7 ++#define BONDLINE_FIELD_LEN 3 ++ + int ReadREACCSBond(Fortran_FILE *fp, struct reaccs_bond_t *bp) + { +- int nitems, i; +- char buffer[MAX_BUFFER+1]; ++ int nitems, i, j, k; ++ int bond_line_len, n_chars, pos; ++ int *ptrarray[MAX_BONDLINE_FIELDS]; ++ char c; ++ char buffer[BONDLINE_FIELD_LEN+1]; + + if (fp->status != FORTRAN_NORMAL) return(fp->status); + +- strncpy(buffer,fp->buffer,MAX_BUFFER); +- /* zero pad only atom numbers! */ +- for (i=0; i<6; i++) if (buffer[i] == ' ') buffer[i] = '0'; +- + bp->stereo_symbol = 0; + bp->dummy = 0; + bp->topography = 0; + bp->reaction_mark = NONE; +- // make sure spaces are interpreted the Fortran-way +- for (i=9; iatoms[0]; ++ ptrarray[1] = &bp->atoms[1]; ++ ptrarray[2] = &bp->bond_type; ++ ptrarray[3] = &bp->stereo_symbol; ++ ptrarray[4] = &bp->dummy; ++ ptrarray[5] = &bp->topography; ++ ptrarray[6] = &bp->reaction_mark; ++ bond_line_len = strlen(fp->buffer); ++ nitems = bond_line_len ? (bond_line_len - 1) / BONDLINE_FIELD_LEN + 1 : 0; ++ if (nitems > MAX_BONDLINE_FIELDS) ++ nitems = MAX_BONDLINE_FIELDS; ++ for (i = 0; i < nitems; ++i) ++ { ++ pos = i * BONDLINE_FIELD_LEN; ++ memset(buffer, 0, BONDLINE_FIELD_LEN + 1); ++ n_chars = bond_line_len - pos; ++ if (n_chars > BONDLINE_FIELD_LEN) ++ n_chars = BONDLINE_FIELD_LEN; ++ for (j = 0, k = 0; j < n_chars; ++j) ++ { ++ c = fp->buffer[pos + j]; ++ if (c != ' ') ++ buffer[k++] = c; ++ } ++ sscanf(buffer, "%3d", ptrarray[i]); + } +- nitems = sscanf(buffer, +- "%3d%3d%3d%3d%3d%3d%3d", +- &bp->atoms[0], &bp->atoms[1], +- &bp->bond_type, &bp->stereo_symbol, +- &bp->dummy, +- &bp->topography, &bp->reaction_mark); +- + if (nitems >= 3) + { + GetBuffer(fp); +@@ -1582,6 +1597,8 @@ + + PrintREACCSMolecule(fp, mp,""); + ++ fputc('\0', fp); ++ fflush(fp); + rewind(fp); + + MolStr = _ReadFile(fp); +diff -ur a/src/main/C/programs/struchk.c b/src/main/C/programs/struchk.c +--- a/src/main/C/programs/struchk.c ++++ b/src/main/C/programs/struchk.c +@@ -1581,6 +1581,22 @@ + + if ((result & SIZE_CHECK_FAILED) == 0) + { ++ for (i = 0; i < mp->n_bonds; ++i) { ++ for (j = 0; j < 2; ++j) { ++ if (mp->bond_array[i].atoms[j] < 1 || mp->bond_array[i].atoms[j] > mp->n_atoms) ++ { ++ snprintf(msg_buffer, MAXMSG, ++ "%10s : illegal atom # (%d, max allowed is %d) in bond %d", ++ mp->name, mp->bond_array[i].atoms[j], mp->n_atoms, i + 1); ++ AddMsgToList(msg_buffer); ++ result |= SIZE_CHECK_FAILED; ++ } ++ } ++ } ++ } ++ ++ if ((result & SIZE_CHECK_FAILED) == 0) ++ { + if (convert_atom_texts) + { + tmp = ConvertAtomAliases(mp); -- cgit 1.4.1 From 5a77f2ee541b6a738fcf0dae762884825cd26d50 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Mon, 5 Feb 2024 17:30:31 +0000 Subject: gnu: Add (gnu packages golang-build) module. * gnu/packages/golang-build.scm: New file. * gnu/local.mk: Add to gnu/packages/golang-build.scm scope. Change-Id: I4605d44452859b47ed6369a234c7ead496b19c2a --- gnu/local.mk | 1 + gnu/packages/golang-build.scm | 44 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 gnu/packages/golang-build.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index ab690795a7..53c7e369bd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -308,6 +308,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gnu-pw-mgr.scm \ %D%/packages/gobby.scm \ %D%/packages/golang.scm \ + %D%/packages/golang-build.scm \ %D%/packages/golang-check.scm \ %D%/packages/golang-crypto.scm \ %D%/packages/golang-web.scm \ diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm new file mode 100644 index 0000000000..03fcdede80 --- /dev/null +++ b/gnu/packages/golang-build.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages golang-build) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages)) + +;;; Commentary: +;;; +;;; Modules (libraries) which are part of the Golang project but outside the +;;; main Golang tree, see +;;; +;;; Since they are bound to be relied on by many, their dependencies should be +;;; kept minimal, and this module should not depend on other modules +;;; containing Golang packages. +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- cgit 1.4.1 From 1996575a7e30bc1c1bfd19840879f530869bec4e Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Wed, 7 Feb 2024 17:08:13 +0000 Subject: gnu: Add (gnu packages golang-compression) module. * gnu/packages/golang-compression.scm: New file. * gnu/local.mk: Add to gnu/packages/golang-compression.scm scope. Change-Id: I1c68a3f6f9b3d6a316cba560b7fc81e707376417 --- gnu/local.mk | 1 + gnu/packages/golang-compression.scm | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 gnu/packages/golang-compression.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 53c7e369bd..5683dbf6de 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -310,6 +310,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/golang.scm \ %D%/packages/golang-build.scm \ %D%/packages/golang-check.scm \ + %D%/packages/golang-compression.scm \ %D%/packages/golang-crypto.scm \ %D%/packages/golang-web.scm \ %D%/packages/golang-xyz.scm \ diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm new file mode 100644 index 0000000000..268cd16e30 --- /dev/null +++ b/gnu/packages/golang-compression.scm @@ -0,0 +1,37 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages golang-compression) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages)) + +;;; Commentary: +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; +;;; Code: + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- cgit 1.4.1 From 0c3ae6dc84fa7d12020983a42802346638be66bc Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 24 Jan 2024 17:27:40 +0100 Subject: gnu: arpack-ng: Update to 3.9.1. * gnu/packages/maths.scm (arpack-ng): Update to 3.9.1. Drop patch. * gnu/packages/patches/arpack-ng-propagate-rng-state.patch: Remove file. * gnu/packages/maths.scm (dist_patch_DATA): Unregister patch. Change-Id: I33a666c3a88fb2f6791c8d698eeb054a831103fc --- gnu/local.mk | 1 - gnu/packages/maths.scm | 5 +- .../patches/arpack-ng-propagate-rng-state.patch | 523 --------------------- 3 files changed, 2 insertions(+), 527 deletions(-) delete mode 100644 gnu/packages/patches/arpack-ng-propagate-rng-state.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 5683dbf6de..becca7dd56 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -935,7 +935,6 @@ dist_patch_DATA = \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/aria2-unbundle-wslay.patch \ %D%/packages/patches/ark-skip-xar-test.patch \ - %D%/packages/patches/arpack-ng-propagate-rng-state.patch \ %D%/packages/patches/asli-use-system-libs.patch \ %D%/packages/patches/aspell-CVE-2019-25051.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 286e7da6c6..d557154f91 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1055,7 +1055,7 @@ halfspaces) or by their double description with both representations.") (define-public arpack-ng (package (name "arpack-ng") - (version "3.9.0") + (version "3.9.1") (home-page "https://github.com/opencollab/arpack-ng") (source (origin (method git-fetch) @@ -1063,8 +1063,7 @@ halfspaces) or by their double description with both representations.") (file-name (git-file-name name version)) (sha256 (base32 - "09smxilyn8v9xs3kpx3nlj2s7ql3v8z40mpc09kccbb6smyd35iv")) - (patches (search-patches "arpack-ng-propagate-rng-state.patch")))) + "0bbw6a48py9fjlif2n4x75skyjskq2hghffjqzm85wnsnsjdlaqw")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DICB=ON"))) diff --git a/gnu/packages/patches/arpack-ng-propagate-rng-state.patch b/gnu/packages/patches/arpack-ng-propagate-rng-state.patch deleted file mode 100644 index 4466bb8e50..0000000000 --- a/gnu/packages/patches/arpack-ng-propagate-rng-state.patch +++ /dev/null @@ -1,523 +0,0 @@ -Fix a bug that manifests while running the test suite of 'python-igraph': - - https://github.com/opencollab/arpack-ng/issues/401 - https://github.com/opencollab/arpack-ng/pull/414 - -From d885b7be4ecdc9c1496f2d6f256f6c0d34962459 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szabolcs=20Horva=CC=81t?= -Date: Sun, 9 Apr 2023 16:36:35 +0200 -Subject: [PATCH] fix: ensure that LAPACK RNG state is propagated - - - fixes #401, #410, #411 - - restores 'inits' variable removed in ce2e69a849da1d10dad5d6d3ec4db6120b3ecf50, ensuring that the RNG state is propagated - - reverts e0d67054f573da351f12a226f7c7cc65a690ef3d to ensure that seed is different on each parallel thread - - updates seed initialization of parallel pdgetv0/psgetv0 so that they match that of pzgetv0/pcgetv0 ---- - PARPACK/SRC/MPI/pcgetv0.f | 48 +++++++++++++++++++++++---------------- - PARPACK/SRC/MPI/pdgetv0.f | 40 ++++++++++++++++++++++++++------ - PARPACK/SRC/MPI/psgetv0.f | 43 ++++++++++++++++++++++++++--------- - PARPACK/SRC/MPI/pzgetv0.f | 48 +++++++++++++++++++++++---------------- - SRC/cgetv0.f | 21 ++++++++++++----- - SRC/dgetv0.f | 21 ++++++++++++----- - SRC/sgetv0.f | 21 ++++++++++++----- - SRC/zgetv0.f | 21 ++++++++++++----- - 8 files changed, 183 insertions(+), 80 deletions(-) - -diff --git a/PARPACK/SRC/MPI/pcgetv0.f b/PARPACK/SRC/MPI/pcgetv0.f -index 59e3d1658..24fe8a0f1 100644 ---- a/PARPACK/SRC/MPI/pcgetv0.f -+++ b/PARPACK/SRC/MPI/pcgetv0.f -@@ -176,13 +176,13 @@ subroutine pcgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj, myid, igen - Real - & rnorm0 - Complex - & cnorm, cnorm2 -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - Complex - & cnorm_buf, buf2(1) -@@ -203,6 +203,12 @@ subroutine pcgetv0 - & ccdotc - external ccdotc, pscnorm2, slapy2 - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -213,26 +219,30 @@ subroutine pcgetv0 - c | random number generator | - c %-----------------------------------% - c -+ if (inits) then - c --c %-----------------------------------% --c | Generate a seed on each processor | --c | using process id (myid). | --c | Note: the seed must be between 1 | --c | and 4095. iseed(4) must be odd. | --c %-----------------------------------% -+c %-----------------------------------% -+c | Generate a seed on each processor | -+c | using process id (myid). | -+c | Note: the seed must be between 1 | -+c | and 4095. iseed(4) must be odd. | -+c %-----------------------------------% - c -- call MPI_COMM_RANK(comm, myid, ierr) -- igen = 1000 + 2*myid + 1 -- if (igen .gt. 4095) then -- write(0,*) 'Error in p_getv0: seed exceeds 4095!' -- end if -+ call MPI_COMM_RANK(comm, myid, ierr) -+ igen = 1000 + 2*myid + 1 -+ if (igen .gt. 4095) then -+ write(0,*) 'Error in p_getv0: seed exceeds 4095!' -+ end if -+c -+ iseed(1) = igen/1000 -+ igen = mod(igen,1000) -+ iseed(2) = igen/100 -+ igen = mod(igen,100) -+ iseed(3) = igen/10 -+ iseed(4) = mod(igen,10) - c -- iseed(1) = igen/1000 -- igen = mod(igen,1000) -- iseed(2) = igen/100 -- igen = mod(igen,100) -- iseed(3) = igen/10 -- iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/PARPACK/SRC/MPI/pdgetv0.f b/PARPACK/SRC/MPI/pdgetv0.f -index 0f348b820..5a1956997 100644 ---- a/PARPACK/SRC/MPI/pdgetv0.f -+++ b/PARPACK/SRC/MPI/pdgetv0.f -@@ -177,11 +177,11 @@ subroutine pdgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -- integer idist, iseed(4), iter, msglvl, jj -+ logical first, inits, orth -+ integer idist, iseed(4), iter, msglvl, jj, myid, igen - Double precision - & rnorm0, buf2(1) -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - Double precision - & rnorm_buf -@@ -206,6 +206,12 @@ subroutine pdgetv0 - c - intrinsic abs, sqrt - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -216,10 +222,30 @@ subroutine pdgetv0 - c | random number generator | - c %-----------------------------------% - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+ if (inits) then -+c -+c %-----------------------------------% -+c | Generate a seed on each processor | -+c | using process id (myid). | -+c | Note: the seed must be between 1 | -+c | and 4095. iseed(4) must be odd. | -+c %-----------------------------------% -+c -+ call MPI_COMM_RANK(comm, myid, ierr) -+ igen = 1000 + 2*myid + 1 -+ if (igen .gt. 4095) then -+ write(0,*) 'Error in p_getv0: seed exceeds 4095!' -+ end if -+c -+ iseed(1) = igen/1000 -+ igen = mod(igen,1000) -+ iseed(2) = igen/100 -+ igen = mod(igen,100) -+ iseed(3) = igen/10 -+ iseed(4) = mod(igen,10) -+c -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/PARPACK/SRC/MPI/psgetv0.f b/PARPACK/SRC/MPI/psgetv0.f -index d79a513b2..078e4fa8c 100644 ---- a/PARPACK/SRC/MPI/psgetv0.f -+++ b/PARPACK/SRC/MPI/psgetv0.f -@@ -177,11 +177,11 @@ subroutine psgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -- integer idist, iseed(4), iter, msglvl, jj -+ logical first, inits, orth -+ integer idist, iseed(4), iter, msglvl, jj, myid, igen - Real - & rnorm0 -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - Real - & rnorm_buf -@@ -206,20 +206,41 @@ subroutine psgetv0 - c - intrinsic abs, sqrt - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% - c - c --c %-----------------------------------% --c | Initialize the seed of the LAPACK | --c | random number generator | --c %-----------------------------------% -+ if (inits) then - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+c %-----------------------------------% -+c | Generate a seed on each processor | -+c | using process id (myid). | -+c | Note: the seed must be between 1 | -+c | and 4095. iseed(4) must be odd. | -+c %-----------------------------------% -+c -+ call MPI_COMM_RANK(comm, myid, ierr) -+ igen = 1000 + 2*myid + 1 -+ if (igen .gt. 4095) then -+ write(0,*) 'Error in p_getv0: seed exceeds 4095!' -+ end if -+c -+ iseed(1) = igen/1000 -+ igen = mod(igen,1000) -+ iseed(2) = igen/100 -+ igen = mod(igen,100) -+ iseed(3) = igen/10 -+ iseed(4) = mod(igen,10) -+c -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/PARPACK/SRC/MPI/pzgetv0.f b/PARPACK/SRC/MPI/pzgetv0.f -index 731fb319f..94fb705f3 100644 ---- a/PARPACK/SRC/MPI/pzgetv0.f -+++ b/PARPACK/SRC/MPI/pzgetv0.f -@@ -176,13 +176,13 @@ subroutine pzgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj, myid, igen - Double precision - & rnorm0 - Complex*16 - & cnorm, cnorm2 -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - Complex*16 - & cnorm_buf, buf2(1) -@@ -203,6 +203,12 @@ subroutine pzgetv0 - & zzdotc - external zzdotc , pdznorm2 , dlapy2 - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -213,26 +219,30 @@ subroutine pzgetv0 - c | random number generator | - c %-----------------------------------% - c -+ if (inits) then - c --c %-----------------------------------% --c | Generate a seed on each processor | --c | using process id (myid). | --c | Note: the seed must be between 1 | --c | and 4095. iseed(4) must be odd. | --c %-----------------------------------% -+c %-----------------------------------% -+c | Generate a seed on each processor | -+c | using process id (myid). | -+c | Note: the seed must be between 1 | -+c | and 4095. iseed(4) must be odd. | -+c %-----------------------------------% - c -- call MPI_COMM_RANK(comm, myid, ierr) -- igen = 1000 + 2*myid + 1 -- if (igen .gt. 4095) then -- write(0,*) 'Error in p_getv0: seed exceeds 4095!' -- end if -+ call MPI_COMM_RANK(comm, myid, ierr) -+ igen = 1000 + 2*myid + 1 -+ if (igen .gt. 4095) then -+ write(0,*) 'Error in p_getv0: seed exceeds 4095!' -+ end if -+c -+ iseed(1) = igen/1000 -+ igen = mod(igen,1000) -+ iseed(2) = igen/100 -+ igen = mod(igen,100) -+ iseed(3) = igen/10 -+ iseed(4) = mod(igen,10) - c -- iseed(1) = igen/1000 -- igen = mod(igen,1000) -- iseed(2) = igen/100 -- igen = mod(igen,100) -- iseed(3) = igen/10 -- iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/SRC/cgetv0.f b/SRC/cgetv0.f -index b49e66708..c231eadcb 100644 ---- a/SRC/cgetv0.f -+++ b/SRC/cgetv0.f -@@ -156,13 +156,13 @@ subroutine cgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj - Real - & rnorm0 - Complex - & cnorm -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - c %----------------------% - c | External Subroutines | -@@ -180,6 +180,12 @@ subroutine cgetv0 - & ccdotc - external ccdotc, scnrm2, slapy2 - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -190,10 +196,13 @@ subroutine cgetv0 - c | random number generator | - c %-----------------------------------% - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+ if (inits) then -+ iseed(1) = 1 -+ iseed(2) = 3 -+ iseed(3) = 5 -+ iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/SRC/dgetv0.f b/SRC/dgetv0.f -index 8be4fa26d..1d6dc01bd 100644 ---- a/SRC/dgetv0.f -+++ b/SRC/dgetv0.f -@@ -157,11 +157,11 @@ subroutine dgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj - Double precision - & rnorm0 -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - c %----------------------% - c | External Subroutines | -@@ -183,6 +183,12 @@ subroutine dgetv0 - c - intrinsic abs, sqrt - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -193,10 +199,13 @@ subroutine dgetv0 - c | random number generator | - c %-----------------------------------% - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+ if (inits) then -+ iseed(1) = 1 -+ iseed(2) = 3 -+ iseed(3) = 5 -+ iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/SRC/sgetv0.f b/SRC/sgetv0.f -index 26130a014..d861b2d6d 100644 ---- a/SRC/sgetv0.f -+++ b/SRC/sgetv0.f -@@ -157,11 +157,11 @@ subroutine sgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj - Real - & rnorm0 -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - c %----------------------% - c | External Subroutines | -@@ -183,6 +183,12 @@ subroutine sgetv0 - c - intrinsic abs, sqrt - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -193,10 +199,13 @@ subroutine sgetv0 - c | random number generator | - c %-----------------------------------% - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+ if (inits) then -+ iseed(1) = 1 -+ iseed(2) = 3 -+ iseed(3) = 5 -+ iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -diff --git a/SRC/zgetv0.f b/SRC/zgetv0.f -index cc13c3cfb..1fbd50851 100644 ---- a/SRC/zgetv0.f -+++ b/SRC/zgetv0.f -@@ -156,13 +156,13 @@ subroutine zgetv0 - c | Local Scalars & Arrays | - c %------------------------% - c -- logical first, orth -+ logical first, inits, orth - integer idist, iseed(4), iter, msglvl, jj - Double precision - & rnorm0 - Complex*16 - & cnorm -- save first, iseed, iter, msglvl, orth, rnorm0 -+ save first, iseed, inits, iter, msglvl, orth, rnorm0 - c - c %----------------------% - c | External Subroutines | -@@ -180,6 +180,12 @@ subroutine zgetv0 - & zzdotc - external zzdotc, dznrm2, dlapy2 - c -+c %-----------------% -+c | Data Statements | -+c %-----------------% -+c -+ data inits /.true./ -+c - c %-----------------------% - c | Executable Statements | - c %-----------------------% -@@ -190,10 +196,13 @@ subroutine zgetv0 - c | random number generator | - c %-----------------------------------% - c -- iseed(1) = 1 -- iseed(2) = 3 -- iseed(3) = 5 -- iseed(4) = 7 -+ if (inits) then -+ iseed(1) = 1 -+ iseed(2) = 3 -+ iseed(3) = 5 -+ iseed(4) = 7 -+ inits = .false. -+ end if - c - if (ido .eq. 0) then - c -- cgit 1.4.1 From 8b7e0c195237f311608cd40c866848b76476c6d3 Mon Sep 17 00:00:00 2001 From: Nicolas Graves Date: Sat, 3 Feb 2024 15:06:17 +0100 Subject: gnu: Add restartd. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (restartd): New variable. * gnu/packages/patches/restartd-update-robust.patch: Add file. * gnu/local.mk: Register gnu/packages/patches/restartd-update-robust.patch. Change-Id: I38b9b70e97b64f006a86d7618a75f1ec3ed8b034 Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/admin.scm | 52 ++++ gnu/packages/patches/restartd-update-robust.patch | 295 ++++++++++++++++++++++ 3 files changed, 348 insertions(+) create mode 100644 gnu/packages/patches/restartd-update-robust.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index becca7dd56..c08b27f94d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1982,6 +1982,7 @@ dist_patch_DATA = \ %D%/packages/patches/racket-rktio-bin-sh.patch \ %D%/packages/patches/racket-zuo-bin-sh.patch \ %D%/packages/patches/remake-impure-dirs.patch \ + %D%/packages/patches/restartd-update-robust.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ %D%/packages/patches/rng-tools-revert-build-randstat.patch \ %D%/packages/patches/rocclr-5.6.0-enable-gfx800.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 11f69e57a4..47c82e9678 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -62,6 +62,7 @@ ;;; Copyright © 2023 Bruno Victal ;;; Copyright © 2023 Tobias Kortkamp ;;; Copyright © 2023 Jaeme Sifat +;;; Copyright © 2023 Nicolas Graves ;;; ;;; This file is part of GNU Guix. ;;; @@ -5843,6 +5844,57 @@ up services to use only two factor, or public/private authentication mechanisms if you really want to protect services.") (license license:gpl2+))) +(define-public restartd + (let* ((commit "7044125ac55056f2663536f7137170edf92ebd75") + ;; Version is 0.2.4 in the version file in the repo + ;; but not in github tags. + ;; It is released as 0.2.3-1.1 for other distributions. + ;; Probably because of the lack of activity upstream. + (revision "1")) + (package + (name "restartd") + (version (git-version "0.2.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ajraymond/restartd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m1np00b4zvvwx63gzysbi38i5vj1jsjvh2s0p9czl6dzyz582z0")) + (patches (search-patches "restartd-update-robust.patch")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "restartd.conf" (string-append #$output "/etc")) + (install-file "restartd" (string-append #$output "/sbin")) + (install-file "restartd.8" + (string-append #$output "/share/man/man8")) + (mkdir-p (string-append #$output "/share/man/fr/man8")) + (copy-file + "restartd.fr.8" + (string-append #$output "/share/man/fr/man8/restartd.8"))))))) + (home-page "https://launchpad.net/debian/+source/restartd") + (synopsis "Daemon for restarting processes") + (description "This package provides a daemon for checking running and +not running processes. It reads the @file{/proc} directory every @var{n} +seconds and does a POSIX regexp on the process names. The daemon runs a +user-provided script when it detects a program in the running processes, or an +alternate script if it doesn't detect the program. The daemon can only be +called by the root user, but can use @command{sudo -u user} in the process +called if needed.") + (license license:gpl2+)))) + (define-public rex (package (name "rex") diff --git a/gnu/packages/patches/restartd-update-robust.patch b/gnu/packages/patches/restartd-update-robust.patch new file mode 100644 index 0000000000..d279ebd8ff --- /dev/null +++ b/gnu/packages/patches/restartd-update-robust.patch @@ -0,0 +1,295 @@ +From 01cd2d15a9bf1109e0e71b3e31b835d63dcf9cd8 Mon Sep 17 00:00:00 2001 +From: Maxime Devos , Yin Kangkai , Sudip Mukherjee +Subject: [PATCH] + +Fix segfault when run as normal user + +Also exit immediately when "restartd -h" +Signed-off-by: Yin Kangkai + +Fix build with gcc-10 + +Bug: https://bugs.debian.org/957761 +Signed-off-by: Sudip Mukherjee + +Handle memory allocation failures. + +This makes the code a little more robust. +Signed-off-by: Maxime Devos + +Handle fopen failures. + +This makes the code a little more robust. What if /var/run does not +exist, or we do not have permission to open +/var/run/restartd.pid (EPERM?) due to SELinux misconfiguration? +Signed-off-by: Maxime Devos + +Handle printf and fprintf failures. + +This makes the code a little more robust. What if the write was +refused to the underlying device being removed? + +The --help, debug and stderr printfs were ignored because there error +handling does not appear important to me. +Signed-off-by: Maxime Devos + +Handle fclose failures when writing. + +This makes the code a little more robust. What if a quotum is exceeded? +Signed-off-by: Maxime Devos +--- + config.c | 19 +++++++++---- + config.h | 14 ++++++---- + restartd.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++------- + 3 files changed, 92 insertions(+), 21 deletions(-) + +diff --git a/config.c b/config.c +index f307b8a..5cc0271 100644 +--- a/config.c ++++ b/config.c +@@ -57,7 +57,11 @@ int read_config(void) + config_process_number = 0; + + line1 = (char *) malloc(MAX_LINE_LENGTH); ++ if (!line1) ++ oom_failure(); + line2 = (char *) malloc(MAX_LINE_LENGTH); ++ if (!line2) ++ oom_failure(); + + if ((config_fd = fopen(config_file, "rt")) == NULL) { + fprintf(stderr, "Error at opening config file: %s\n", config_file); +@@ -155,11 +159,16 @@ void dump_config(void) { + int i; + + for(i=0; i + * Copyright (C) 2006 Aurélien GÉRÔME ++ * Copyright (C) 2022 Maxime Devos + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License +@@ -25,12 +26,12 @@ + + #define DEFAULT_CONFIG "/etc/restartd.conf" + +-int debug; +-int config_process_number; +-int check_interval; +-int foreground; +-struct config_process_type *config_process; +-char *config_file; ++extern int debug; ++extern int config_process_number; ++extern int check_interval; ++extern int foreground; ++extern struct config_process_type *config_process; ++extern char *config_file; + + typedef struct config_process_type { + char name[64]; +@@ -43,5 +44,6 @@ typedef struct config_process_type { + + int read_config(/* char *config_file */); + void dump_config(void); ++void oom_failure(void); + + #endif /* RESTARTD_CONFIG_H */ +diff --git a/restartd.c b/restartd.c +index 2aa720c..aa74334 100644 +--- a/restartd.c ++++ b/restartd.c +@@ -1,6 +1,7 @@ + /* restartd - Process checker and/or restarter daemon + * Copyright (C) 2000-2002 Tibor Koleszar + * Copyright (C) 2006 Aurélien GÉRÔME ++ * Copyright (C) 2022 Maxime Devos + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License +@@ -35,6 +36,13 @@ + + #include "config.h" + ++int debug; ++int config_process_number; ++int check_interval; ++int foreground; ++struct config_process_type *config_process; ++char *config_file; ++ + /* SIGTERM & SIGHUP handler */ + void got_signal(int sig) + { +@@ -52,6 +60,17 @@ void got_signal(int sig) + } + } + ++/* Ignoring out-of-memory failures is risky on systems without virtual memory ++ where additionally at address 0 there is actually something important ++ mapped. Additionally, while often on Linux the OOM killer will kill processes ++ where an OOM happens, this is not always the case and there exist other systems ++ without an OOM killer (e.g. the Hurd). */ ++void oom_failure() ++{ ++ syslog(LOG_ERR, "Failed to allocate memory. Exiting."); ++ exit(1); ++} ++ + int main(int argc, char *argv[]) + { + DIR *procdir_id; +@@ -75,15 +94,21 @@ int main(int argc, char *argv[]) + + /* Options */ + config_file = strdup(DEFAULT_CONFIG); ++ if (!config_file) ++ oom_failure(); ++ + list_only = 0; + + for(i = 0; i < argc; i++) { + if (!strcmp(argv[i], "-c") || !strcmp(argv[i], "--config")) { + config_file = strdup(argv[i + 1]); ++ if (!config_file) ++ oom_failure(); + } + if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) { + printf("restard %s - Copyright 2000-2002 Tibor Koleszar \n" +- " Copyright 2006 Aurélien GÉRÔME \n", ++ " Copyright 2006 Aurélien GÉRÔME \n" ++ " Copyright 2022 Maxime Devos \n", + VERSION); + exit(0); + } +@@ -118,10 +143,13 @@ int main(int argc, char *argv[]) + " -i : the check interval in second\n" + " -l : list configuration options\n" + " -h : help\n\n", VERSION); ++ exit(0); + } + } + + config_process = malloc(sizeof(struct config_process_type) * 128); ++ if (!config_process) ++ oom_failure(); + + read_config(); + if (list_only) { +@@ -133,9 +161,17 @@ int main(int argc, char *argv[]) + config_process_number); + + procdir_dirent = malloc(sizeof(struct dirent)); ++ if (!procdir_dirent) ++ oom_failure(); + proc_cmdline_str = (char *) malloc(1024); ++ if (!proc_cmdline_str) ++ oom_failure(); + proc_cmdline_name = (char *) malloc(1024); ++ if (!proc_cmdline_name) ++ oom_failure(); + regc = malloc(1024); ++ if (!regc) ++ oom_failure(); + + /* Catch signals */ + signal(SIGTERM, got_signal); +@@ -187,8 +223,19 @@ int main(int argc, char *argv[]) + } + + out_proc = fopen("/var/run/restartd.pid", "wt"); +- fprintf(out_proc, "%d", getpid()); +- fclose(out_proc); ++ if (!out_proc) { ++ syslog(LOG_ERR, "Failed to open /var/run/restartd.pid"); ++ return -1; ++ } ++ if (fprintf(out_proc, "%d", getpid()) < 0) { ++ syslog(LOG_ERR, "Failed to write to /var/run/restartd.pid. Exiting."); ++ return -1; ++ } ++ if (fclose(out_proc) < 0) { /* errors can happen when flushing the buffer */ ++ syslog(LOG_ERR, "Failed to write to /var/run/restartd.pid. Exiting."); ++ return -1; ++ } ++ + + while(1) { + if ((procdir_id = opendir("/proc")) == NULL) { +@@ -237,16 +284,23 @@ int main(int argc, char *argv[]) + now = time(NULL); + + out_proc = fopen("/var/run/restartd", "wt"); ++ if (!out_proc) { ++ syslog(LOG_ERR, "Failed to open /var/run/restartd.pid"); ++ return -1; ++ } + +- fprintf(out_proc, "%s\n", ctime(&now)); ++ if (fprintf(out_proc, "%s\n", ctime(&now)) < 0) { ++ syslog(LOG_ERR, "Failed to write to /var/run/restartd. Exiting."); ++ return -1; ++ } + + for(i=0; i 0) { + if (strlen(config_process[i].running) > 0) { + strcpy(config_process[i].status, "running"); +- syslog(LOG_INFO, "%s is running, executing '%s'", ++ /* syslog(LOG_INFO, "%s is running, executing '%s'", + config_process[i].name, +- config_process[i].running); ++ config_process[i].running); */ + system(config_process[i].running); + } else { + strcpy(config_process[i].status, "running"); +@@ -267,12 +321,18 @@ int main(int argc, char *argv[]) + strcpy(config_process[i].status, "not running"); + } + +- fprintf(out_proc, "%-12s %-12s %s\n", +- config_process[i].name, config_process[i].status, +- config_process[i].processes); ++ if (fprintf(out_proc, "%-12s %-12s %s\n", ++ config_process[i].name, config_process[i].status, ++ config_process[i].processes) < 0) { ++ syslog(LOG_ERR, "Failed to write to /var/run/restartd. Exiting."); ++ return -1; ++ } + } + +- fclose(out_proc); ++ if (fclose(out_proc) < 0) { ++ syslog(LOG_ERR, "Failed to write to /var/run/restartd.pid. Exiting."); ++ return -1; ++ } + + sleep(check_interval); + } +-- +2.37.3 + -- cgit 1.4.1 From 549a72f1289b3ad27410f248b92b1a10b838d123 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Feb 2024 14:07:29 +0100 Subject: gnu: r-sgloptim: Apply patch to fix build. * gnu/packages/patches/r-sgloptim.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/cran.scm (r-sgloptim)[source]: Apply it. Change-Id: I6435ec1dfadcffac684c378cd074777a19cd0d7f --- gnu/local.mk | 1 + gnu/packages/cran.scm | 3 +- gnu/packages/patches/r-sgloptim.patch | 53 +++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/r-sgloptim.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c08b27f94d..58011d1149 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1973,6 +1973,7 @@ dist_patch_DATA = \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ %D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \ %D%/packages/patches/r-sapa-lapack.patch \ + %D%/packages/patches/r-sgloptim.patch \ %D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 2822da369a..a076a52640 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -33337,7 +33337,8 @@ filter.") (uri (cran-uri "sglOptim" version)) (sha256 (base32 - "15bkkvgp9v9vsp65wps48g3c2fa0fj1025hbrziywq14j7wayyjr")))) + "15bkkvgp9v9vsp65wps48g3c2fa0fj1025hbrziywq14j7wayyjr")) + (patches (search-patches "r-sgloptim.patch")))) (properties `((upstream-name . "sglOptim"))) (build-system r-build-system) diff --git a/gnu/packages/patches/r-sgloptim.patch b/gnu/packages/patches/r-sgloptim.patch new file mode 100644 index 0000000000..efba2c7013 --- /dev/null +++ b/gnu/packages/patches/r-sgloptim.patch @@ -0,0 +1,53 @@ +From cb9a15eb9d558b2b4b67f9e6806b394f65bff01f Mon Sep 17 00:00:00 2001 +From: Dirk Eddelbuettel +Date: Wed, 30 Nov 2022 20:15:42 -0600 +Subject: [PATCH] Simplify includes and only include RcppArmadillo.h + +--- + inst/include/sgl.h | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +diff --git a/inst/include/sgl.h b/inst/include/sgl.h +index a36011e..869a295 100644 +--- a/inst/include/sgl.h ++++ b/inst/include/sgl.h +@@ -21,13 +21,12 @@ + + #define R_NO_REMAP + ++//R, Rcpp, RcppArmadillo ++#include ++ + //Progress monitor + #include + +-//Rcpp ect +-#include +-#include +-#include + + // Debugging + #ifdef SGL_DEBUG +@@ -45,8 +44,10 @@ + #else + // Do no debugging + #define ARMA_NO_DEBUG ++#ifndef NDEBUG + #define NDEBUG + #endif ++#endif + + // Registration helper macros + #define STR_VALUE(x) #x +@@ -59,11 +60,6 @@ + + #define CALL_METHOD(METHOD, MODULE, ARGS) {GET_STR_VALUE(FUN_NAME(METHOD,MODULE)), (DL_FUNC) &r_ ## MODULE ## _ ## METHOD, ARGS} + +-//Support for xl matrices +-//#define ARMA_64BIT_WORD +- +-#include +-#include + + //Boost + #include -- cgit 1.4.1 From b4148713d18c4b6c37639653de5191eb7f1ca4cc Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Sun, 4 Feb 2024 17:54:42 +0400 Subject: gnu: Update wlroots to 0.17.1. Keep the older version as wlroots-0.16 since a few packages break without it. * gnu/packages/wm.scm (wlroots): Update to 0.17.1. [source]: Add patch. [propagated-inputs]: Add libdisplay-info. * gnu/packages/patches/wlroots-hwdata-fallback.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/wm.scm (wlroots-0.16): New variable. * gnu/packages/wm.scm (cage)[inputs]: Replace wlroots with wlroots-0.16. * gnu/packages/wm.scm (fnott)[inputs]: Likewise. * gnu/packages/wm.scm (dwl)[inputs]: Likewise. * gnu/packages/wm.scm (sway)[inputs]: Likewise. * gnu/packages/wm.scm (cagebreak)[inputs]: Likewise. * gnu/packages/wm.scm (hikari)[inputs]: Likewise. * gnu/packages/wm.scm (river)[native-inputs]: Likewise. Change-Id: Ib3d3938d6486fb1674380811a6dc0a512c991ac7 Signed-off-by: John Kehayias --- gnu/local.mk | 1 + gnu/packages/patches/wlroots-hwdata-fallback.patch | 46 ++++++++++++++++++++++ gnu/packages/wm.scm | 37 +++++++++++++---- gnu/packages/zig-xyz.scm | 2 +- 4 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/wlroots-hwdata-fallback.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 58011d1149..bed0c181e4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2176,6 +2176,7 @@ dist_patch_DATA = \ %D%/packages/patches/webrtc-audio-processing-big-endian.patch \ %D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \ %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \ + %D%/packages/patches/wlroots-hwdata-fallback.patch \ %D%/packages/patches/wmctrl-64-fix.patch \ %D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \ %D%/packages/patches/wordnet-CVE-2008-2149.patch \ diff --git a/gnu/packages/patches/wlroots-hwdata-fallback.patch b/gnu/packages/patches/wlroots-hwdata-fallback.patch new file mode 100644 index 0000000000..6468c7cbf3 --- /dev/null +++ b/gnu/packages/patches/wlroots-hwdata-fallback.patch @@ -0,0 +1,46 @@ +backend/drm: add hardcoded hwdata path fallback + +Add hardcoded fallback "/usr/share/hwdata/pnp.ids" as a +temporary solution to get things working in Guix until +hwdata ships with pkg-config file. + +diff --git a/backend/drm/meson.build b/backend/drm/meson.build +index 6fcb2c15..ed95360a 100644 +--- a/backend/drm/meson.build ++++ b/backend/drm/meson.build +@@ -1,8 +1,7 @@ + hwdata = dependency( + 'hwdata', +- required: 'drm' in backends, ++ required: false, + native: true, +- not_found_message: 'Required for the DRM backend.', + ) + + libdisplay_info = dependency( +@@ -19,15 +18,21 @@ libliftoff = dependency( + required: false, + ) + +-if not (hwdata.found() and libdisplay_info.found() and features['session']) ++if hwdata.found() ++ hwdata_dir = hwdata.get_variable(pkgconfig: 'pkgdatadir') ++ pnp_ids = files(hwdata_dir / 'pnp.ids') ++else ++ pnp_ids = files('/usr/share/hwdata/pnp.ids') ++endif ++ ++if not (libdisplay_info.found() and features['session']) + subdir_done() + endif + +-hwdata_dir = hwdata.get_variable(pkgconfig: 'pkgdatadir') + pnpids_c = custom_target( + 'pnpids.c', + output: 'pnpids.c', +- input: files(hwdata_dir / 'pnp.ids'), ++ input: pnp_ids, + feed: true, + capture: true, + command: files('gen_pnpids.sh'), + diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 9abf505caf..fdf846f982 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -67,6 +67,7 @@ ;;; Copyright © 2023 Jaeme Sifat ;;; Copyright © 2023 Josselin Poiret ;;; Copyright © 2024 Timotej Lazar +;;; Copyright © 2024 Ahmad Draidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -208,7 +209,7 @@ the leaves of a full binary tree.") (sha256 (base32 "11sg9x08zl2nr7a723h462knz5lf58sgvkhv1mgc9z3hhkhvbsja")))) (build-system meson-build-system) (native-inputs (list pkg-config scdoc)) - (inputs (list wayland wlroots libxkbcommon)) + (inputs (list wayland wlroots-0.16 libxkbcommon)) (home-page "https://github.com/cage-kiosk/cage") (synopsis "Wayland kiosk") (description "This package provides a Wayland @dfn{kiosk}, which runs a @@ -1168,7 +1169,7 @@ the XDG Autostart specification.") tllist scdoc)) (inputs - (list wlroots wayland fcft dbus libpng)) + (list wlroots-0.16 wayland fcft dbus libpng)) (home-page "https://codeberg.org/dnkl/fnott") (synopsis "Keyboard driven and lightweight Wayland notification daemon") (description "Fnott is a keyboard driven and lightweight notification daemon @@ -1570,7 +1571,7 @@ started automatically on the first call via D-Bus.") (native-inputs (list pkg-config)) (inputs - (list wlroots)) + (list wlroots-0.16)) (home-page "https://github.com/djpohly/dwl") (synopsis "Dynamic window manager for Wayland") (description @@ -1676,7 +1677,7 @@ functionality to display information about the most commonly used services.") (define-public wlroots (package (name "wlroots") - (version "0.16.2") + (version "0.17.1") (source (origin (method git-fetch) @@ -1685,7 +1686,9 @@ functionality to display information about the most commonly used services.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1m12nv6avgnz626h3giqp6gcx44w1wq6z0jy780mx8z255ic7q15")))) + (base32 "1hj4gq5vx8in65622yvjm8bwqkw2vpc556k9my997a0hn0ricj37")) + ;; This patch can be removed once hwdata in Guix supports pkg-config + (patches (search-patches "wlroots-hwdata-fallback.patch")))) (build-system meson-build-system) (arguments `(#:phases @@ -1706,6 +1709,7 @@ functionality to display information about the most commonly used services.") (propagated-inputs (list ;; As required by wlroots.pc. eudev + libdisplay-info libinput-minimal libxkbcommon mesa @@ -1731,6 +1735,23 @@ Wayland compositor") modules for building a Wayland compositor.") (license license:expat))) ; MIT license +(define-public wlroots-0.16 + (package + (inherit wlroots) + (name "wlroots-0.16") + (version "0.16.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/wlroots/wlroots") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m12nv6avgnz626h3giqp6gcx44w1wq6z0jy780mx8z255ic7q15")))) + (propagated-inputs (modify-inputs (package-propagated-inputs wlroots) + (delete libdisplay-info))))) + (define-public sway (package (name "sway") @@ -1775,7 +1796,7 @@ modules for building a Wayland compositor.") pcre2 swaybg wayland - wlroots)) + wlroots-0.16)) (native-inputs (cons* linux-pam mesa pkg-config scdoc wayland-protocols (if (%current-target-system) @@ -2967,7 +2988,7 @@ shows a notification for the user on the screen.") (("/etc/") (string-append #$output "/etc/")) (("/usr/share/") (string-append #$output "/usr/share/")))))))) (native-inputs (list pkg-config scdoc)) - (inputs (list libevdev pango wlroots)) + (inputs (list libevdev pango wlroots-0.16)) (home-page "https://github.com/project-repo/cagebreak") (synopsis "Tiling wayland compositor inspired by ratpoison") (description @@ -3107,7 +3128,7 @@ session. Nor does it depend on any UI toolkits such as Qt or GTK.") linux-pam pango wayland - wlroots)) + wlroots-0.16)) (arguments `(#:tests? #f ; no tests #:make-flags diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm index f01c120cc3..fd194a6a4f 100644 --- a/gnu/packages/zig-xyz.scm +++ b/gnu/packages/zig-xyz.scm @@ -71,7 +71,7 @@ scdoc wayland wayland-protocols - wlroots)) + wlroots-0.16)) (home-page "https://github.com/riverwm/river") (synopsis "Dynamic tiling Wayland compositor") (description -- cgit 1.4.1 From 18c35009ebdf23eaf2b84f6c70ca710b896f71e6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Dec 2023 10:03:49 +0200 Subject: gnu: Add rust-ring-0.17. * gnu/packages/crates-io.scm (rust-ring-0.17, rust-ring-0.17-sources): New variables. (rust-ring-0.16): Inherit from rust-ring-0.17. Change-Id: Ic71f17e7d9c21f75a449ceededf8725870c2395b --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 220 ++++++++- .../patches/rust-ring-0.17-ring-core.patch | 496 +++++++++++++++++++++ 3 files changed, 711 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/patches/rust-ring-0.17-ring-core.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 58011d1149..79cb6d8d1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2003,6 +2003,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ %D%/packages/patches/rust-ring-0.16-missing-files.patch \ %D%/packages/patches/rust-ring-0.16-test-files.patch \ + %D%/packages/patches/rust-ring-0.17-ring-core.patch \ %D%/packages/patches/i3status-rust-enable-unstable-features.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index ab9cb39b4b..dd96777a06 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -61,9 +61,11 @@ #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages assembly) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) + #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages c) #:use-module (gnu packages cmake) @@ -78,6 +80,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages golang) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) @@ -63978,8 +63981,218 @@ Usage of the @dfn{Digital Signature Algorithm} (DSA) and @dfn{Elliptic Curve Digital Signature Algorithm} (ECDSA).") (license (list license:asl2.0 license:expat)))) +(define computed-origin-method (@@ (guix packages) computed-origin-method)) +(define rust-ring-0.17-sources + (let* ((version "0.17.7") + (upstream-source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/briansmith/ring") + (commit "2be687bebdf76648ce85109d40c015412e14b0da"))) + (file-name (git-file-name "rust-ring" version)) + (sha256 + (base32 "1i3b7sha8yj990v2s5yk2a5dx3v4x9b8ckzm6bgiyi6wk4vnid69")) + (patches (search-patches "rust-ring-0.17-ring-core.patch"))))) + (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 + #+nasm + #+go + #+clang ; clang-format + #+python-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 nasm works just fine here. + (substitute* "build.rs" + (("./target/tools/windows/nasm/nasm") "nasm")) + ;; Files which would be deleted in a snippet: + (delete-file "crypto/curve25519/curve25519_tables.h") + (delete-file "crypto/fipsmodule/ec/p256-nistz-table.h") + (delete-file "crypto/fipsmodule/ec/p256_table.h") + ;; This file causes problems during the 'package phase and + ;; is not distributed with the packaged crate. + (substitute* "Cargo.toml" + (("\"bench\",") "")) + (delete-file "bench/Cargo.toml") + ;; Files to be generated in the sources: + (format #t "Generating the missing files ...~%") + (force-output) + (with-directory-excursion "crypto/curve25519" + (with-output-to-file "curve25519_tables.h" + (lambda _ (invoke "python3" "make_curve25519_tables.py"))) + ;; As seen in git between 0.17.0 and 0.17.1. + (substitute* "curve25519_tables.h" + (("static const uint8_t k25519Precomp") + "const uint8_t k25519Precomp"))) + (with-directory-excursion "crypto/fipsmodule/ec" + (invoke "go" "run" "make_tables.go") + (invoke "go" "run" "make_ec_scalar_base_mult_tests.go")) + (format #t "Generating the pregenerated files ...~%") + (force-output) + (mkdir-p "pregenerated/tmp/ring_core_generated") + + ;; We generate all the files which upstream would normally be + ;; generate by using 'RING_PREGENERATE_ASM=1 cargo build + ;; --target-dir=target/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))) + + (for-each + (lambda (script) + (invoke "perl" script "ios64" + (string-append (prefix script) "-ios64.S")) + (invoke "perl" script "linux64" + (string-append (prefix script) "-linux64.S")) + (invoke "perl" script "win64" + (string-append (prefix script) "-win64.S"))) + '("crypto/fipsmodule/aes/asm/aesv8-armx.pl" + "crypto/fipsmodule/modes/asm/ghashv8-armx.pl" + "crypto/chacha/asm/chacha-armv8.pl" + "crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl" + "crypto/fipsmodule/aes/asm/vpaes-armv8.pl" + "crypto/fipsmodule/bn/asm/armv8-mont.pl" + "crypto/fipsmodule/ec/asm/p256-armv8-asm.pl" + "crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl" + "crypto/fipsmodule/sha/asm/sha512-armv8.pl")) + + (for-each + (lambda (arch) + (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl" + arch (string-append + "pregenerated/sha256-armv8-" arch ".S"))) + '("ios64" "linux64" "win64")) + + (for-each + (lambda (script) + (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/bsaes-armv7.pl" + "crypto/fipsmodule/aes/asm/vpaes-armv7.pl" + "crypto/fipsmodule/bn/asm/armv4-mont.pl" + "crypto/chacha/asm/chacha-armv4.pl" + "crypto/fipsmodule/modes/asm/ghash-armv4.pl" + "crypto/fipsmodule/sha/asm/sha256-armv4.pl" + "crypto/fipsmodule/sha/asm/sha512-armv4.pl")) + + (for-each + (lambda (script) + (invoke "perl" script "elf" + "-fPIC" "-DOPENSSL_IA32_SSE2" + (string-append (prefix script) "-elf.S")) + (invoke "perl" script "win32n" + "-fPIC" "-DOPENSSL_IA32_SSE2" + (string-append + "pregenerated/tmp/" + (string-drop (prefix script) 13) "-win32n.asm"))) + '("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/modes/asm/ghash-x86.pl")) + + (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/chacha/asm/chacha-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/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/fipsmodule/sha/asm/sha512-x86_64.pl" + "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl")) + + (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" + "macosx" "pregenerated/sha256-x86_64-macosx.S") + + (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl" + "nasm" "pregenerated/tmp/sha256-x86_64-nasm.asm") + + ;; TODO: Extract ring_core_generated/prefix_symbols_nasm.inc + ;; and ring_core_generated/prefix_symbols_asm.h from build.rs. + + (for-each + (lambda (script) + (invoke "nasm" "-o" (string-append (prefix script) "o") + "-f" "win32" "-i" "include/" "-i" "pregenerated/tmp/" + "-Xgnu" "-gcv8" script)) + (find-files "pregenerated/tmp" "win32n\\.asm")) + + (for-each + (lambda (script) + (invoke "nasm" "-o" (string-append (prefix script) "o") + "-f" "win64" "-i" "include/" "-i" "pregenerated/tmp/" + "-Xgnu" "-gcv8" script)) + (find-files "pregenerated/tmp" "nasm\\.asm")) + + (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.17 + (package + (name "rust-ring") + (version "0.17.7") + (source rust-ring-0.17-sources) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-cc" ,rust-cc-1) + ("rust-getrandom" ,rust-getrandom-0.2) + ("rust-libc" ,rust-libc-0.2) + ("rust-spin" ,rust-spin-0.9) + ("rust-untrusted" ,rust-untrusted-0.9) + ("rust-windows-sys" ,rust-windows-sys-0.48)) + #:cargo-development-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)))) + (home-page "https://github.com/briansmith/ring") + (synopsis "Safe, fast, small crypto using Rust") + (description "This package provided safe, fast, small crypto using Rust.") + (license (list license:isc license:openssl)))) + (define-public rust-ring-0.16 (package + (inherit rust-ring-0.17) (name "rust-ring") (version "0.16.20") (source @@ -64004,7 +64217,6 @@ Digital Signature Algorithm} (ECDSA).") (with-output-to-file ".git" (lambda _ (format #t ""))))))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2) @@ -64028,14 +64240,10 @@ Digital Signature Algorithm} (ECDSA).") (invoke "python" "make_curve25519_tables.py"))))))))) (native-inputs (list clang perl python-2)) - (home-page "https://github.com/briansmith/ring") - (synopsis "Safe, fast, small crypto using Rust") - (description "This package provided safe, fast, small crypto using Rust.") ;; For a mostly complete list of supported systems see: ;; https://github.com/briansmith/ring/blob/main/.github/workflows/ci.yml#L170 (supported-systems (list "aarch64-linux" "armhf-linux" - "i686-linux" "x86_64-linux")) - (license (list license:isc license:openssl)))) + "i686-linux" "x86_64-linux")))) (define-public rust-ring-0.14 (package diff --git a/gnu/packages/patches/rust-ring-0.17-ring-core.patch b/gnu/packages/patches/rust-ring-0.17-ring-core.patch new file mode 100644 index 0000000000..faa3a8a191 --- /dev/null +++ b/gnu/packages/patches/rust-ring-0.17-ring-core.patch @@ -0,0 +1,496 @@ +These two files are needed to finish generating the files for windows +and were generated using 'RING_PREGENERATE_ASM=1 cargo build +--target-dir=target/pregenerate_asm'. Included here so we don't need to +add cargo to the computed-source. + +--- + .../ring_core_generated/prefix_symbols_asm.h | 236 ++++++++++++++++++ + .../prefix_symbols_nasm.inc | 236 ++++++++++++++++++ + 2 files changed, 472 insertions(+) + create mode 100644 pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h + create mode 100644 pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc + +diff --git a/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h b/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h +new file mode 100644 +index 000000000..1cd766400 +--- /dev/null ++++ b/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h +@@ -0,0 +1,236 @@ ++ ++#ifndef ring_core_generated_PREFIX_SYMBOLS_ASM_H ++#define ring_core_generated_PREFIX_SYMBOLS_ASM_H ++ ++#if defined(__APPLE__) ++#define _ecp_nistz256_point_double _p256_point_double ++#define _ecp_nistz256_point_add _p256_point_add ++#define _ecp_nistz256_point_add_affine _p256_point_add_affine ++#define _ecp_nistz256_ord_mul_mont _p256_scalar_mul_mont ++#define _ecp_nistz256_ord_sqr_mont _p256_scalar_sqr_rep_mont ++#define _ecp_nistz256_mul_mont _p256_mul_mont ++#define _ecp_nistz256_sqr_mont _p256_sqr_mont ++#define _CRYPTO_memcmp _ring_core_0_17_7_CRYPTO_memcmp ++#define _CRYPTO_poly1305_finish _ring_core_0_17_7_CRYPTO_poly1305_finish ++#define _CRYPTO_poly1305_finish_neon _ring_core_0_17_7_CRYPTO_poly1305_finish_neon ++#define _CRYPTO_poly1305_init _ring_core_0_17_7_CRYPTO_poly1305_init ++#define _CRYPTO_poly1305_init_neon _ring_core_0_17_7_CRYPTO_poly1305_init_neon ++#define _CRYPTO_poly1305_update _ring_core_0_17_7_CRYPTO_poly1305_update ++#define _CRYPTO_poly1305_update_neon _ring_core_0_17_7_CRYPTO_poly1305_update_neon ++#define _ChaCha20_ctr32 _ring_core_0_17_7_ChaCha20_ctr32 ++#define _LIMBS_add_mod _ring_core_0_17_7_LIMBS_add_mod ++#define _LIMBS_are_even _ring_core_0_17_7_LIMBS_are_even ++#define _LIMBS_are_zero _ring_core_0_17_7_LIMBS_are_zero ++#define _LIMBS_equal _ring_core_0_17_7_LIMBS_equal ++#define _LIMBS_equal_limb _ring_core_0_17_7_LIMBS_equal_limb ++#define _LIMBS_less_than _ring_core_0_17_7_LIMBS_less_than ++#define _LIMBS_less_than_limb _ring_core_0_17_7_LIMBS_less_than_limb ++#define _LIMBS_reduce_once _ring_core_0_17_7_LIMBS_reduce_once ++#define _LIMBS_select_512_32 _ring_core_0_17_7_LIMBS_select_512_32 ++#define _LIMBS_shl_mod _ring_core_0_17_7_LIMBS_shl_mod ++#define _LIMBS_sub_mod _ring_core_0_17_7_LIMBS_sub_mod ++#define _LIMBS_window5_split_window _ring_core_0_17_7_LIMBS_window5_split_window ++#define _LIMBS_window5_unsplit_window _ring_core_0_17_7_LIMBS_window5_unsplit_window ++#define _LIMB_shr _ring_core_0_17_7_LIMB_shr ++#define _OPENSSL_armcap_P _ring_core_0_17_7_OPENSSL_armcap_P ++#define _OPENSSL_cpuid_setup _ring_core_0_17_7_OPENSSL_cpuid_setup ++#define _OPENSSL_ia32cap_P _ring_core_0_17_7_OPENSSL_ia32cap_P ++#define _aes_hw_ctr32_encrypt_blocks _ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks ++#define _aes_hw_encrypt _ring_core_0_17_7_aes_hw_encrypt ++#define _aes_hw_set_encrypt_key _ring_core_0_17_7_aes_hw_set_encrypt_key ++#define _aes_nohw_ctr32_encrypt_blocks _ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks ++#define _aes_nohw_encrypt _ring_core_0_17_7_aes_nohw_encrypt ++#define _aes_nohw_set_encrypt_key _ring_core_0_17_7_aes_nohw_set_encrypt_key ++#define _aesni_gcm_decrypt _ring_core_0_17_7_aesni_gcm_decrypt ++#define _aesni_gcm_encrypt _ring_core_0_17_7_aesni_gcm_encrypt ++#define _bn_from_montgomery_in_place _ring_core_0_17_7_bn_from_montgomery_in_place ++#define _bn_gather5 _ring_core_0_17_7_bn_gather5 ++#define _bn_mul_mont _ring_core_0_17_7_bn_mul_mont ++#define _bn_mul_mont_gather5 _ring_core_0_17_7_bn_mul_mont_gather5 ++#define _bn_neg_inv_mod_r_u64 _ring_core_0_17_7_bn_neg_inv_mod_r_u64 ++#define _bn_power5 _ring_core_0_17_7_bn_power5 ++#define _bn_scatter5 _ring_core_0_17_7_bn_scatter5 ++#define _bn_sqr8x_internal _ring_core_0_17_7_bn_sqr8x_internal ++#define _bn_sqrx8x_internal _ring_core_0_17_7_bn_sqrx8x_internal ++#define _bsaes_ctr32_encrypt_blocks _ring_core_0_17_7_bsaes_ctr32_encrypt_blocks ++#define _bssl_constant_time_test_conditional_memcpy _ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy ++#define _bssl_constant_time_test_conditional_memxor _ring_core_0_17_7_bssl_constant_time_test_conditional_memxor ++#define _bssl_constant_time_test_main _ring_core_0_17_7_bssl_constant_time_test_main ++#define _chacha20_poly1305_open _ring_core_0_17_7_chacha20_poly1305_open ++#define _chacha20_poly1305_seal _ring_core_0_17_7_chacha20_poly1305_seal ++#define _fiat_curve25519_adx_mul _ring_core_0_17_7_fiat_curve25519_adx_mul ++#define _fiat_curve25519_adx_square _ring_core_0_17_7_fiat_curve25519_adx_square ++#define _gcm_ghash_avx _ring_core_0_17_7_gcm_ghash_avx ++#define _gcm_ghash_clmul _ring_core_0_17_7_gcm_ghash_clmul ++#define _gcm_ghash_neon _ring_core_0_17_7_gcm_ghash_neon ++#define _gcm_gmult_clmul _ring_core_0_17_7_gcm_gmult_clmul ++#define _gcm_gmult_neon _ring_core_0_17_7_gcm_gmult_neon ++#define _gcm_init_avx _ring_core_0_17_7_gcm_init_avx ++#define _gcm_init_clmul _ring_core_0_17_7_gcm_init_clmul ++#define _gcm_init_neon _ring_core_0_17_7_gcm_init_neon ++#define _k25519Precomp _ring_core_0_17_7_k25519Precomp ++#define _limbs_mul_add_limb _ring_core_0_17_7_limbs_mul_add_limb ++#define _little_endian_bytes_from_scalar _ring_core_0_17_7_little_endian_bytes_from_scalar ++#define _ecp_nistz256_neg _ring_core_0_17_7_ecp_nistz256_neg ++#define _ecp_nistz256_select_w5 _ring_core_0_17_7_ecp_nistz256_select_w5 ++#define _ecp_nistz256_select_w7 _ring_core_0_17_7_ecp_nistz256_select_w7 ++#define _p256_mul_mont _ring_core_0_17_7_p256_mul_mont ++#define _p256_point_add _ring_core_0_17_7_p256_point_add ++#define _p256_point_add_affine _ring_core_0_17_7_p256_point_add_affine ++#define _p256_point_double _ring_core_0_17_7_p256_point_double ++#define _p256_point_mul _ring_core_0_17_7_p256_point_mul ++#define _p256_point_mul_base _ring_core_0_17_7_p256_point_mul_base ++#define _p256_point_mul_base_vartime _ring_core_0_17_7_p256_point_mul_base_vartime ++#define _p256_scalar_mul_mont _ring_core_0_17_7_p256_scalar_mul_mont ++#define _p256_scalar_sqr_rep_mont _ring_core_0_17_7_p256_scalar_sqr_rep_mont ++#define _p256_sqr_mont _ring_core_0_17_7_p256_sqr_mont ++#define _p384_elem_div_by_2 _ring_core_0_17_7_p384_elem_div_by_2 ++#define _p384_elem_mul_mont _ring_core_0_17_7_p384_elem_mul_mont ++#define _p384_elem_neg _ring_core_0_17_7_p384_elem_neg ++#define _p384_elem_sub _ring_core_0_17_7_p384_elem_sub ++#define _p384_point_add _ring_core_0_17_7_p384_point_add ++#define _p384_point_double _ring_core_0_17_7_p384_point_double ++#define _p384_point_mul _ring_core_0_17_7_p384_point_mul ++#define _p384_scalar_mul_mont _ring_core_0_17_7_p384_scalar_mul_mont ++#define _openssl_poly1305_neon2_addmulmod _ring_core_0_17_7_openssl_poly1305_neon2_addmulmod ++#define _openssl_poly1305_neon2_blocks _ring_core_0_17_7_openssl_poly1305_neon2_blocks ++#define _sha256_block_data_order _ring_core_0_17_7_sha256_block_data_order ++#define _sha512_block_data_order _ring_core_0_17_7_sha512_block_data_order ++#define _vpaes_ctr32_encrypt_blocks _ring_core_0_17_7_vpaes_ctr32_encrypt_blocks ++#define _vpaes_encrypt _ring_core_0_17_7_vpaes_encrypt ++#define _vpaes_encrypt_key_to_bsaes _ring_core_0_17_7_vpaes_encrypt_key_to_bsaes ++#define _vpaes_set_encrypt_key _ring_core_0_17_7_vpaes_set_encrypt_key ++#define _x25519_NEON _ring_core_0_17_7_x25519_NEON ++#define _x25519_fe_invert _ring_core_0_17_7_x25519_fe_invert ++#define _x25519_fe_isnegative _ring_core_0_17_7_x25519_fe_isnegative ++#define _x25519_fe_mul_ttt _ring_core_0_17_7_x25519_fe_mul_ttt ++#define _x25519_fe_neg _ring_core_0_17_7_x25519_fe_neg ++#define _x25519_fe_tobytes _ring_core_0_17_7_x25519_fe_tobytes ++#define _x25519_ge_double_scalarmult_vartime _ring_core_0_17_7_x25519_ge_double_scalarmult_vartime ++#define _x25519_ge_frombytes_vartime _ring_core_0_17_7_x25519_ge_frombytes_vartime ++#define _x25519_ge_scalarmult_base _ring_core_0_17_7_x25519_ge_scalarmult_base ++#define _x25519_ge_scalarmult_base_adx _ring_core_0_17_7_x25519_ge_scalarmult_base_adx ++#define _x25519_public_from_private_generic_masked _ring_core_0_17_7_x25519_public_from_private_generic_masked ++#define _x25519_sc_mask _ring_core_0_17_7_x25519_sc_mask ++#define _x25519_sc_muladd _ring_core_0_17_7_x25519_sc_muladd ++#define _x25519_sc_reduce _ring_core_0_17_7_x25519_sc_reduce ++#define _x25519_scalar_mult_adx _ring_core_0_17_7_x25519_scalar_mult_adx ++#define _x25519_scalar_mult_generic_masked _ring_core_0_17_7_x25519_scalar_mult_generic_masked ++ ++#else ++#define ecp_nistz256_point_double p256_point_double ++#define ecp_nistz256_point_add p256_point_add ++#define ecp_nistz256_point_add_affine p256_point_add_affine ++#define ecp_nistz256_ord_mul_mont p256_scalar_mul_mont ++#define ecp_nistz256_ord_sqr_mont p256_scalar_sqr_rep_mont ++#define ecp_nistz256_mul_mont p256_mul_mont ++#define ecp_nistz256_sqr_mont p256_sqr_mont ++#define CRYPTO_memcmp ring_core_0_17_7_CRYPTO_memcmp ++#define CRYPTO_poly1305_finish ring_core_0_17_7_CRYPTO_poly1305_finish ++#define CRYPTO_poly1305_finish_neon ring_core_0_17_7_CRYPTO_poly1305_finish_neon ++#define CRYPTO_poly1305_init ring_core_0_17_7_CRYPTO_poly1305_init ++#define CRYPTO_poly1305_init_neon ring_core_0_17_7_CRYPTO_poly1305_init_neon ++#define CRYPTO_poly1305_update ring_core_0_17_7_CRYPTO_poly1305_update ++#define CRYPTO_poly1305_update_neon ring_core_0_17_7_CRYPTO_poly1305_update_neon ++#define ChaCha20_ctr32 ring_core_0_17_7_ChaCha20_ctr32 ++#define LIMBS_add_mod ring_core_0_17_7_LIMBS_add_mod ++#define LIMBS_are_even ring_core_0_17_7_LIMBS_are_even ++#define LIMBS_are_zero ring_core_0_17_7_LIMBS_are_zero ++#define LIMBS_equal ring_core_0_17_7_LIMBS_equal ++#define LIMBS_equal_limb ring_core_0_17_7_LIMBS_equal_limb ++#define LIMBS_less_than ring_core_0_17_7_LIMBS_less_than ++#define LIMBS_less_than_limb ring_core_0_17_7_LIMBS_less_than_limb ++#define LIMBS_reduce_once ring_core_0_17_7_LIMBS_reduce_once ++#define LIMBS_select_512_32 ring_core_0_17_7_LIMBS_select_512_32 ++#define LIMBS_shl_mod ring_core_0_17_7_LIMBS_shl_mod ++#define LIMBS_sub_mod ring_core_0_17_7_LIMBS_sub_mod ++#define LIMBS_window5_split_window ring_core_0_17_7_LIMBS_window5_split_window ++#define LIMBS_window5_unsplit_window ring_core_0_17_7_LIMBS_window5_unsplit_window ++#define LIMB_shr ring_core_0_17_7_LIMB_shr ++#define OPENSSL_armcap_P ring_core_0_17_7_OPENSSL_armcap_P ++#define OPENSSL_cpuid_setup ring_core_0_17_7_OPENSSL_cpuid_setup ++#define OPENSSL_ia32cap_P ring_core_0_17_7_OPENSSL_ia32cap_P ++#define aes_hw_ctr32_encrypt_blocks ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks ++#define aes_hw_encrypt ring_core_0_17_7_aes_hw_encrypt ++#define aes_hw_set_encrypt_key ring_core_0_17_7_aes_hw_set_encrypt_key ++#define aes_nohw_ctr32_encrypt_blocks ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks ++#define aes_nohw_encrypt ring_core_0_17_7_aes_nohw_encrypt ++#define aes_nohw_set_encrypt_key ring_core_0_17_7_aes_nohw_set_encrypt_key ++#define aesni_gcm_decrypt ring_core_0_17_7_aesni_gcm_decrypt ++#define aesni_gcm_encrypt ring_core_0_17_7_aesni_gcm_encrypt ++#define bn_from_montgomery_in_place ring_core_0_17_7_bn_from_montgomery_in_place ++#define bn_gather5 ring_core_0_17_7_bn_gather5 ++#define bn_mul_mont ring_core_0_17_7_bn_mul_mont ++#define bn_mul_mont_gather5 ring_core_0_17_7_bn_mul_mont_gather5 ++#define bn_neg_inv_mod_r_u64 ring_core_0_17_7_bn_neg_inv_mod_r_u64 ++#define bn_power5 ring_core_0_17_7_bn_power5 ++#define bn_scatter5 ring_core_0_17_7_bn_scatter5 ++#define bn_sqr8x_internal ring_core_0_17_7_bn_sqr8x_internal ++#define bn_sqrx8x_internal ring_core_0_17_7_bn_sqrx8x_internal ++#define bsaes_ctr32_encrypt_blocks ring_core_0_17_7_bsaes_ctr32_encrypt_blocks ++#define bssl_constant_time_test_conditional_memcpy ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy ++#define bssl_constant_time_test_conditional_memxor ring_core_0_17_7_bssl_constant_time_test_conditional_memxor ++#define bssl_constant_time_test_main ring_core_0_17_7_bssl_constant_time_test_main ++#define chacha20_poly1305_open ring_core_0_17_7_chacha20_poly1305_open ++#define chacha20_poly1305_seal ring_core_0_17_7_chacha20_poly1305_seal ++#define fiat_curve25519_adx_mul ring_core_0_17_7_fiat_curve25519_adx_mul ++#define fiat_curve25519_adx_square ring_core_0_17_7_fiat_curve25519_adx_square ++#define gcm_ghash_avx ring_core_0_17_7_gcm_ghash_avx ++#define gcm_ghash_clmul ring_core_0_17_7_gcm_ghash_clmul ++#define gcm_ghash_neon ring_core_0_17_7_gcm_ghash_neon ++#define gcm_gmult_clmul ring_core_0_17_7_gcm_gmult_clmul ++#define gcm_gmult_neon ring_core_0_17_7_gcm_gmult_neon ++#define gcm_init_avx ring_core_0_17_7_gcm_init_avx ++#define gcm_init_clmul ring_core_0_17_7_gcm_init_clmul ++#define gcm_init_neon ring_core_0_17_7_gcm_init_neon ++#define k25519Precomp ring_core_0_17_7_k25519Precomp ++#define limbs_mul_add_limb ring_core_0_17_7_limbs_mul_add_limb ++#define little_endian_bytes_from_scalar ring_core_0_17_7_little_endian_bytes_from_scalar ++#define ecp_nistz256_neg ring_core_0_17_7_ecp_nistz256_neg ++#define ecp_nistz256_select_w5 ring_core_0_17_7_ecp_nistz256_select_w5 ++#define ecp_nistz256_select_w7 ring_core_0_17_7_ecp_nistz256_select_w7 ++#define p256_mul_mont ring_core_0_17_7_p256_mul_mont ++#define p256_point_add ring_core_0_17_7_p256_point_add ++#define p256_point_add_affine ring_core_0_17_7_p256_point_add_affine ++#define p256_point_double ring_core_0_17_7_p256_point_double ++#define p256_point_mul ring_core_0_17_7_p256_point_mul ++#define p256_point_mul_base ring_core_0_17_7_p256_point_mul_base ++#define p256_point_mul_base_vartime ring_core_0_17_7_p256_point_mul_base_vartime ++#define p256_scalar_mul_mont ring_core_0_17_7_p256_scalar_mul_mont ++#define p256_scalar_sqr_rep_mont ring_core_0_17_7_p256_scalar_sqr_rep_mont ++#define p256_sqr_mont ring_core_0_17_7_p256_sqr_mont ++#define p384_elem_div_by_2 ring_core_0_17_7_p384_elem_div_by_2 ++#define p384_elem_mul_mont ring_core_0_17_7_p384_elem_mul_mont ++#define p384_elem_neg ring_core_0_17_7_p384_elem_neg ++#define p384_elem_sub ring_core_0_17_7_p384_elem_sub ++#define p384_point_add ring_core_0_17_7_p384_point_add ++#define p384_point_double ring_core_0_17_7_p384_point_double ++#define p384_point_mul ring_core_0_17_7_p384_point_mul ++#define p384_scalar_mul_mont ring_core_0_17_7_p384_scalar_mul_mont ++#define openssl_poly1305_neon2_addmulmod ring_core_0_17_7_openssl_poly1305_neon2_addmulmod ++#define openssl_poly1305_neon2_blocks ring_core_0_17_7_openssl_poly1305_neon2_blocks ++#define sha256_block_data_order ring_core_0_17_7_sha256_block_data_order ++#define sha512_block_data_order ring_core_0_17_7_sha512_block_data_order ++#define vpaes_ctr32_encrypt_blocks ring_core_0_17_7_vpaes_ctr32_encrypt_blocks ++#define vpaes_encrypt ring_core_0_17_7_vpaes_encrypt ++#define vpaes_encrypt_key_to_bsaes ring_core_0_17_7_vpaes_encrypt_key_to_bsaes ++#define vpaes_set_encrypt_key ring_core_0_17_7_vpaes_set_encrypt_key ++#define x25519_NEON ring_core_0_17_7_x25519_NEON ++#define x25519_fe_invert ring_core_0_17_7_x25519_fe_invert ++#define x25519_fe_isnegative ring_core_0_17_7_x25519_fe_isnegative ++#define x25519_fe_mul_ttt ring_core_0_17_7_x25519_fe_mul_ttt ++#define x25519_fe_neg ring_core_0_17_7_x25519_fe_neg ++#define x25519_fe_tobytes ring_core_0_17_7_x25519_fe_tobytes ++#define x25519_ge_double_scalarmult_vartime ring_core_0_17_7_x25519_ge_double_scalarmult_vartime ++#define x25519_ge_frombytes_vartime ring_core_0_17_7_x25519_ge_frombytes_vartime ++#define x25519_ge_scalarmult_base ring_core_0_17_7_x25519_ge_scalarmult_base ++#define x25519_ge_scalarmult_base_adx ring_core_0_17_7_x25519_ge_scalarmult_base_adx ++#define x25519_public_from_private_generic_masked ring_core_0_17_7_x25519_public_from_private_generic_masked ++#define x25519_sc_mask ring_core_0_17_7_x25519_sc_mask ++#define x25519_sc_muladd ring_core_0_17_7_x25519_sc_muladd ++#define x25519_sc_reduce ring_core_0_17_7_x25519_sc_reduce ++#define x25519_scalar_mult_adx ring_core_0_17_7_x25519_scalar_mult_adx ++#define x25519_scalar_mult_generic_masked ring_core_0_17_7_x25519_scalar_mult_generic_masked ++ ++#endif ++#endif +diff --git a/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc b/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc +new file mode 100644 +index 000000000..65ce0cfaa +--- /dev/null ++++ b/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc +@@ -0,0 +1,236 @@ ++ ++%ifndef ring_core_generated_PREFIX_SYMBOLS_NASM_INC ++%define ring_core_generated_PREFIX_SYMBOLS_NASM_INC ++ ++%ifidn __OUTPUT_FORMAT__,win32 ++%define _ecp_nistz256_point_double _p256_point_double ++%define _ecp_nistz256_point_add _p256_point_add ++%define _ecp_nistz256_point_add_affine _p256_point_add_affine ++%define _ecp_nistz256_ord_mul_mont _p256_scalar_mul_mont ++%define _ecp_nistz256_ord_sqr_mont _p256_scalar_sqr_rep_mont ++%define _ecp_nistz256_mul_mont _p256_mul_mont ++%define _ecp_nistz256_sqr_mont _p256_sqr_mont ++%define _CRYPTO_memcmp _ring_core_0_17_7_CRYPTO_memcmp ++%define _CRYPTO_poly1305_finish _ring_core_0_17_7_CRYPTO_poly1305_finish ++%define _CRYPTO_poly1305_finish_neon _ring_core_0_17_7_CRYPTO_poly1305_finish_neon ++%define _CRYPTO_poly1305_init _ring_core_0_17_7_CRYPTO_poly1305_init ++%define _CRYPTO_poly1305_init_neon _ring_core_0_17_7_CRYPTO_poly1305_init_neon ++%define _CRYPTO_poly1305_update _ring_core_0_17_7_CRYPTO_poly1305_update ++%define _CRYPTO_poly1305_update_neon _ring_core_0_17_7_CRYPTO_poly1305_update_neon ++%define _ChaCha20_ctr32 _ring_core_0_17_7_ChaCha20_ctr32 ++%define _LIMBS_add_mod _ring_core_0_17_7_LIMBS_add_mod ++%define _LIMBS_are_even _ring_core_0_17_7_LIMBS_are_even ++%define _LIMBS_are_zero _ring_core_0_17_7_LIMBS_are_zero ++%define _LIMBS_equal _ring_core_0_17_7_LIMBS_equal ++%define _LIMBS_equal_limb _ring_core_0_17_7_LIMBS_equal_limb ++%define _LIMBS_less_than _ring_core_0_17_7_LIMBS_less_than ++%define _LIMBS_less_than_limb _ring_core_0_17_7_LIMBS_less_than_limb ++%define _LIMBS_reduce_once _ring_core_0_17_7_LIMBS_reduce_once ++%define _LIMBS_select_512_32 _ring_core_0_17_7_LIMBS_select_512_32 ++%define _LIMBS_shl_mod _ring_core_0_17_7_LIMBS_shl_mod ++%define _LIMBS_sub_mod _ring_core_0_17_7_LIMBS_sub_mod ++%define _LIMBS_window5_split_window _ring_core_0_17_7_LIMBS_window5_split_window ++%define _LIMBS_window5_unsplit_window _ring_core_0_17_7_LIMBS_window5_unsplit_window ++%define _LIMB_shr _ring_core_0_17_7_LIMB_shr ++%define _OPENSSL_armcap_P _ring_core_0_17_7_OPENSSL_armcap_P ++%define _OPENSSL_cpuid_setup _ring_core_0_17_7_OPENSSL_cpuid_setup ++%define _OPENSSL_ia32cap_P _ring_core_0_17_7_OPENSSL_ia32cap_P ++%define _aes_hw_ctr32_encrypt_blocks _ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks ++%define _aes_hw_encrypt _ring_core_0_17_7_aes_hw_encrypt ++%define _aes_hw_set_encrypt_key _ring_core_0_17_7_aes_hw_set_encrypt_key ++%define _aes_nohw_ctr32_encrypt_blocks _ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks ++%define _aes_nohw_encrypt _ring_core_0_17_7_aes_nohw_encrypt ++%define _aes_nohw_set_encrypt_key _ring_core_0_17_7_aes_nohw_set_encrypt_key ++%define _aesni_gcm_decrypt _ring_core_0_17_7_aesni_gcm_decrypt ++%define _aesni_gcm_encrypt _ring_core_0_17_7_aesni_gcm_encrypt ++%define _bn_from_montgomery_in_place _ring_core_0_17_7_bn_from_montgomery_in_place ++%define _bn_gather5 _ring_core_0_17_7_bn_gather5 ++%define _bn_mul_mont _ring_core_0_17_7_bn_mul_mont ++%define _bn_mul_mont_gather5 _ring_core_0_17_7_bn_mul_mont_gather5 ++%define _bn_neg_inv_mod_r_u64 _ring_core_0_17_7_bn_neg_inv_mod_r_u64 ++%define _bn_power5 _ring_core_0_17_7_bn_power5 ++%define _bn_scatter5 _ring_core_0_17_7_bn_scatter5 ++%define _bn_sqr8x_internal _ring_core_0_17_7_bn_sqr8x_internal ++%define _bn_sqrx8x_internal _ring_core_0_17_7_bn_sqrx8x_internal ++%define _bsaes_ctr32_encrypt_blocks _ring_core_0_17_7_bsaes_ctr32_encrypt_blocks ++%define _bssl_constant_time_test_conditional_memcpy _ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy ++%define _bssl_constant_time_test_conditional_memxor _ring_core_0_17_7_bssl_constant_time_test_conditional_memxor ++%define _bssl_constant_time_test_main _ring_core_0_17_7_bssl_constant_time_test_main ++%define _chacha20_poly1305_open _ring_core_0_17_7_chacha20_poly1305_open ++%define _chacha20_poly1305_seal _ring_core_0_17_7_chacha20_poly1305_seal ++%define _fiat_curve25519_adx_mul _ring_core_0_17_7_fiat_curve25519_adx_mul ++%define _fiat_curve25519_adx_square _ring_core_0_17_7_fiat_curve25519_adx_square ++%define _gcm_ghash_avx _ring_core_0_17_7_gcm_ghash_avx ++%define _gcm_ghash_clmul _ring_core_0_17_7_gcm_ghash_clmul ++%define _gcm_ghash_neon _ring_core_0_17_7_gcm_ghash_neon ++%define _gcm_gmult_clmul _ring_core_0_17_7_gcm_gmult_clmul ++%define _gcm_gmult_neon _ring_core_0_17_7_gcm_gmult_neon ++%define _gcm_init_avx _ring_core_0_17_7_gcm_init_avx ++%define _gcm_init_clmul _ring_core_0_17_7_gcm_init_clmul ++%define _gcm_init_neon _ring_core_0_17_7_gcm_init_neon ++%define _k25519Precomp _ring_core_0_17_7_k25519Precomp ++%define _limbs_mul_add_limb _ring_core_0_17_7_limbs_mul_add_limb ++%define _little_endian_bytes_from_scalar _ring_core_0_17_7_little_endian_bytes_from_scalar ++%define _ecp_nistz256_neg _ring_core_0_17_7_ecp_nistz256_neg ++%define _ecp_nistz256_select_w5 _ring_core_0_17_7_ecp_nistz256_select_w5 ++%define _ecp_nistz256_select_w7 _ring_core_0_17_7_ecp_nistz256_select_w7 ++%define _p256_mul_mont _ring_core_0_17_7_p256_mul_mont ++%define _p256_point_add _ring_core_0_17_7_p256_point_add ++%define _p256_point_add_affine _ring_core_0_17_7_p256_point_add_affine ++%define _p256_point_double _ring_core_0_17_7_p256_point_double ++%define _p256_point_mul _ring_core_0_17_7_p256_point_mul ++%define _p256_point_mul_base _ring_core_0_17_7_p256_point_mul_base ++%define _p256_point_mul_base_vartime _ring_core_0_17_7_p256_point_mul_base_vartime ++%define _p256_scalar_mul_mont _ring_core_0_17_7_p256_scalar_mul_mont ++%define _p256_scalar_sqr_rep_mont _ring_core_0_17_7_p256_scalar_sqr_rep_mont ++%define _p256_sqr_mont _ring_core_0_17_7_p256_sqr_mont ++%define _p384_elem_div_by_2 _ring_core_0_17_7_p384_elem_div_by_2 ++%define _p384_elem_mul_mont _ring_core_0_17_7_p384_elem_mul_mont ++%define _p384_elem_neg _ring_core_0_17_7_p384_elem_neg ++%define _p384_elem_sub _ring_core_0_17_7_p384_elem_sub ++%define _p384_point_add _ring_core_0_17_7_p384_point_add ++%define _p384_point_double _ring_core_0_17_7_p384_point_double ++%define _p384_point_mul _ring_core_0_17_7_p384_point_mul ++%define _p384_scalar_mul_mont _ring_core_0_17_7_p384_scalar_mul_mont ++%define _openssl_poly1305_neon2_addmulmod _ring_core_0_17_7_openssl_poly1305_neon2_addmulmod ++%define _openssl_poly1305_neon2_blocks _ring_core_0_17_7_openssl_poly1305_neon2_blocks ++%define _sha256_block_data_order _ring_core_0_17_7_sha256_block_data_order ++%define _sha512_block_data_order _ring_core_0_17_7_sha512_block_data_order ++%define _vpaes_ctr32_encrypt_blocks _ring_core_0_17_7_vpaes_ctr32_encrypt_blocks ++%define _vpaes_encrypt _ring_core_0_17_7_vpaes_encrypt ++%define _vpaes_encrypt_key_to_bsaes _ring_core_0_17_7_vpaes_encrypt_key_to_bsaes ++%define _vpaes_set_encrypt_key _ring_core_0_17_7_vpaes_set_encrypt_key ++%define _x25519_NEON _ring_core_0_17_7_x25519_NEON ++%define _x25519_fe_invert _ring_core_0_17_7_x25519_fe_invert ++%define _x25519_fe_isnegative _ring_core_0_17_7_x25519_fe_isnegative ++%define _x25519_fe_mul_ttt _ring_core_0_17_7_x25519_fe_mul_ttt ++%define _x25519_fe_neg _ring_core_0_17_7_x25519_fe_neg ++%define _x25519_fe_tobytes _ring_core_0_17_7_x25519_fe_tobytes ++%define _x25519_ge_double_scalarmult_vartime _ring_core_0_17_7_x25519_ge_double_scalarmult_vartime ++%define _x25519_ge_frombytes_vartime _ring_core_0_17_7_x25519_ge_frombytes_vartime ++%define _x25519_ge_scalarmult_base _ring_core_0_17_7_x25519_ge_scalarmult_base ++%define _x25519_ge_scalarmult_base_adx _ring_core_0_17_7_x25519_ge_scalarmult_base_adx ++%define _x25519_public_from_private_generic_masked _ring_core_0_17_7_x25519_public_from_private_generic_masked ++%define _x25519_sc_mask _ring_core_0_17_7_x25519_sc_mask ++%define _x25519_sc_muladd _ring_core_0_17_7_x25519_sc_muladd ++%define _x25519_sc_reduce _ring_core_0_17_7_x25519_sc_reduce ++%define _x25519_scalar_mult_adx _ring_core_0_17_7_x25519_scalar_mult_adx ++%define _x25519_scalar_mult_generic_masked _ring_core_0_17_7_x25519_scalar_mult_generic_masked ++ ++%else ++%define ecp_nistz256_point_double p256_point_double ++%define ecp_nistz256_point_add p256_point_add ++%define ecp_nistz256_point_add_affine p256_point_add_affine ++%define ecp_nistz256_ord_mul_mont p256_scalar_mul_mont ++%define ecp_nistz256_ord_sqr_mont p256_scalar_sqr_rep_mont ++%define ecp_nistz256_mul_mont p256_mul_mont ++%define ecp_nistz256_sqr_mont p256_sqr_mont ++%define CRYPTO_memcmp ring_core_0_17_7_CRYPTO_memcmp ++%define CRYPTO_poly1305_finish ring_core_0_17_7_CRYPTO_poly1305_finish ++%define CRYPTO_poly1305_finish_neon ring_core_0_17_7_CRYPTO_poly1305_finish_neon ++%define CRYPTO_poly1305_init ring_core_0_17_7_CRYPTO_poly1305_init ++%define CRYPTO_poly1305_init_neon ring_core_0_17_7_CRYPTO_poly1305_init_neon ++%define CRYPTO_poly1305_update ring_core_0_17_7_CRYPTO_poly1305_update ++%define CRYPTO_poly1305_update_neon ring_core_0_17_7_CRYPTO_poly1305_update_neon ++%define ChaCha20_ctr32 ring_core_0_17_7_ChaCha20_ctr32 ++%define LIMBS_add_mod ring_core_0_17_7_LIMBS_add_mod ++%define LIMBS_are_even ring_core_0_17_7_LIMBS_are_even ++%define LIMBS_are_zero ring_core_0_17_7_LIMBS_are_zero ++%define LIMBS_equal ring_core_0_17_7_LIMBS_equal ++%define LIMBS_equal_limb ring_core_0_17_7_LIMBS_equal_limb ++%define LIMBS_less_than ring_core_0_17_7_LIMBS_less_than ++%define LIMBS_less_than_limb ring_core_0_17_7_LIMBS_less_than_limb ++%define LIMBS_reduce_once ring_core_0_17_7_LIMBS_reduce_once ++%define LIMBS_select_512_32 ring_core_0_17_7_LIMBS_select_512_32 ++%define LIMBS_shl_mod ring_core_0_17_7_LIMBS_shl_mod ++%define LIMBS_sub_mod ring_core_0_17_7_LIMBS_sub_mod ++%define LIMBS_window5_split_window ring_core_0_17_7_LIMBS_window5_split_window ++%define LIMBS_window5_unsplit_window ring_core_0_17_7_LIMBS_window5_unsplit_window ++%define LIMB_shr ring_core_0_17_7_LIMB_shr ++%define OPENSSL_armcap_P ring_core_0_17_7_OPENSSL_armcap_P ++%define OPENSSL_cpuid_setup ring_core_0_17_7_OPENSSL_cpuid_setup ++%define OPENSSL_ia32cap_P ring_core_0_17_7_OPENSSL_ia32cap_P ++%define aes_hw_ctr32_encrypt_blocks ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks ++%define aes_hw_encrypt ring_core_0_17_7_aes_hw_encrypt ++%define aes_hw_set_encrypt_key ring_core_0_17_7_aes_hw_set_encrypt_key ++%define aes_nohw_ctr32_encrypt_blocks ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks ++%define aes_nohw_encrypt ring_core_0_17_7_aes_nohw_encrypt ++%define aes_nohw_set_encrypt_key ring_core_0_17_7_aes_nohw_set_encrypt_key ++%define aesni_gcm_decrypt ring_core_0_17_7_aesni_gcm_decrypt ++%define aesni_gcm_encrypt ring_core_0_17_7_aesni_gcm_encrypt ++%define bn_from_montgomery_in_place ring_core_0_17_7_bn_from_montgomery_in_place ++%define bn_gather5 ring_core_0_17_7_bn_gather5 ++%define bn_mul_mont ring_core_0_17_7_bn_mul_mont ++%define bn_mul_mont_gather5 ring_core_0_17_7_bn_mul_mont_gather5 ++%define bn_neg_inv_mod_r_u64 ring_core_0_17_7_bn_neg_inv_mod_r_u64 ++%define bn_power5 ring_core_0_17_7_bn_power5 ++%define bn_scatter5 ring_core_0_17_7_bn_scatter5 ++%define bn_sqr8x_internal ring_core_0_17_7_bn_sqr8x_internal ++%define bn_sqrx8x_internal ring_core_0_17_7_bn_sqrx8x_internal ++%define bsaes_ctr32_encrypt_blocks ring_core_0_17_7_bsaes_ctr32_encrypt_blocks ++%define bssl_constant_time_test_conditional_memcpy ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy ++%define bssl_constant_time_test_conditional_memxor ring_core_0_17_7_bssl_constant_time_test_conditional_memxor ++%define bssl_constant_time_test_main ring_core_0_17_7_bssl_constant_time_test_main ++%define chacha20_poly1305_open ring_core_0_17_7_chacha20_poly1305_open ++%define chacha20_poly1305_seal ring_core_0_17_7_chacha20_poly1305_seal ++%define fiat_curve25519_adx_mul ring_core_0_17_7_fiat_curve25519_adx_mul ++%define fiat_curve25519_adx_square ring_core_0_17_7_fiat_curve25519_adx_square ++%define gcm_ghash_avx ring_core_0_17_7_gcm_ghash_avx ++%define gcm_ghash_clmul ring_core_0_17_7_gcm_ghash_clmul ++%define gcm_ghash_neon ring_core_0_17_7_gcm_ghash_neon ++%define gcm_gmult_clmul ring_core_0_17_7_gcm_gmult_clmul ++%define gcm_gmult_neon ring_core_0_17_7_gcm_gmult_neon ++%define gcm_init_avx ring_core_0_17_7_gcm_init_avx ++%define gcm_init_clmul ring_core_0_17_7_gcm_init_clmul ++%define gcm_init_neon ring_core_0_17_7_gcm_init_neon ++%define k25519Precomp ring_core_0_17_7_k25519Precomp ++%define limbs_mul_add_limb ring_core_0_17_7_limbs_mul_add_limb ++%define little_endian_bytes_from_scalar ring_core_0_17_7_little_endian_bytes_from_scalar ++%define ecp_nistz256_neg ring_core_0_17_7_ecp_nistz256_neg ++%define ecp_nistz256_select_w5 ring_core_0_17_7_ecp_nistz256_select_w5 ++%define ecp_nistz256_select_w7 ring_core_0_17_7_ecp_nistz256_select_w7 ++%define p256_mul_mont ring_core_0_17_7_p256_mul_mont ++%define p256_point_add ring_core_0_17_7_p256_point_add ++%define p256_point_add_affine ring_core_0_17_7_p256_point_add_affine ++%define p256_point_double ring_core_0_17_7_p256_point_double ++%define p256_point_mul ring_core_0_17_7_p256_point_mul ++%define p256_point_mul_base ring_core_0_17_7_p256_point_mul_base ++%define p256_point_mul_base_vartime ring_core_0_17_7_p256_point_mul_base_vartime ++%define p256_scalar_mul_mont ring_core_0_17_7_p256_scalar_mul_mont ++%define p256_scalar_sqr_rep_mont ring_core_0_17_7_p256_scalar_sqr_rep_mont ++%define p256_sqr_mont ring_core_0_17_7_p256_sqr_mont ++%define p384_elem_div_by_2 ring_core_0_17_7_p384_elem_div_by_2 ++%define p384_elem_mul_mont ring_core_0_17_7_p384_elem_mul_mont ++%define p384_elem_neg ring_core_0_17_7_p384_elem_neg ++%define p384_elem_sub ring_core_0_17_7_p384_elem_sub ++%define p384_point_add ring_core_0_17_7_p384_point_add ++%define p384_point_double ring_core_0_17_7_p384_point_double ++%define p384_point_mul ring_core_0_17_7_p384_point_mul ++%define p384_scalar_mul_mont ring_core_0_17_7_p384_scalar_mul_mont ++%define openssl_poly1305_neon2_addmulmod ring_core_0_17_7_openssl_poly1305_neon2_addmulmod ++%define openssl_poly1305_neon2_blocks ring_core_0_17_7_openssl_poly1305_neon2_blocks ++%define sha256_block_data_order ring_core_0_17_7_sha256_block_data_order ++%define sha512_block_data_order ring_core_0_17_7_sha512_block_data_order ++%define vpaes_ctr32_encrypt_blocks ring_core_0_17_7_vpaes_ctr32_encrypt_blocks ++%define vpaes_encrypt ring_core_0_17_7_vpaes_encrypt ++%define vpaes_encrypt_key_to_bsaes ring_core_0_17_7_vpaes_encrypt_key_to_bsaes ++%define vpaes_set_encrypt_key ring_core_0_17_7_vpaes_set_encrypt_key ++%define x25519_NEON ring_core_0_17_7_x25519_NEON ++%define x25519_fe_invert ring_core_0_17_7_x25519_fe_invert ++%define x25519_fe_isnegative ring_core_0_17_7_x25519_fe_isnegative ++%define x25519_fe_mul_ttt ring_core_0_17_7_x25519_fe_mul_ttt ++%define x25519_fe_neg ring_core_0_17_7_x25519_fe_neg ++%define x25519_fe_tobytes ring_core_0_17_7_x25519_fe_tobytes ++%define x25519_ge_double_scalarmult_vartime ring_core_0_17_7_x25519_ge_double_scalarmult_vartime ++%define x25519_ge_frombytes_vartime ring_core_0_17_7_x25519_ge_frombytes_vartime ++%define x25519_ge_scalarmult_base ring_core_0_17_7_x25519_ge_scalarmult_base ++%define x25519_ge_scalarmult_base_adx ring_core_0_17_7_x25519_ge_scalarmult_base_adx ++%define x25519_public_from_private_generic_masked ring_core_0_17_7_x25519_public_from_private_generic_masked ++%define x25519_sc_mask ring_core_0_17_7_x25519_sc_mask ++%define x25519_sc_muladd ring_core_0_17_7_x25519_sc_muladd ++%define x25519_sc_reduce ring_core_0_17_7_x25519_sc_reduce ++%define x25519_scalar_mult_adx ring_core_0_17_7_x25519_scalar_mult_adx ++%define x25519_scalar_mult_generic_masked ring_core_0_17_7_x25519_scalar_mult_generic_masked ++ ++%endif ++%endif -- cgit 1.4.1 From eeaead0d2e5d756b2c4aa59e23caf99233123695 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Dec 2023 12:56:49 +0200 Subject: gnu: rust-ring-0.16: Generate more bundled files. * gnu/packages/crates-io.scm (rust-ring-0.16-sources): New variable. (rust-ring-0.16)[source]: Use rust-ring-0.16-sources. Drop patches and snippet. [arguments]: Remove custom phase generating curve25519 tables. [native-inputs]: Remove field. (rust-rustls-0.20)[native-inputs]: Remove field. * gnu/packages/rust-apps.scm (agate, alfis, maturin, rust-cargo-edit, sniffglue, spotifyd, tealdeer)[native-inputs]: Remove perl. * gnu/packages/patches/rust-ring-0.16-missing-files.patch, gnu/packages/patches/rust-ring-0.16-test-files.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. Change-Id: I919207b6aacab78602ae18123ab345a34b00863f --- gnu/local.mk | 2 - gnu/packages/crates-io.scm | 213 +- .../patches/rust-ring-0.16-missing-files.patch | 2293 -------------------- .../patches/rust-ring-0.16-test-files.patch | 54 - gnu/packages/rust-apps.scm | 15 +- 5 files changed, 183 insertions(+), 2394 deletions(-) delete mode 100644 gnu/packages/patches/rust-ring-0.16-missing-files.patch delete mode 100644 gnu/packages/patches/rust-ring-0.16-test-files.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 79cb6d8d1b..b8de8c3141 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2001,8 +2001,6 @@ dist_patch_DATA = \ %D%/packages/patches/rustc-1.54.0-src.patch \ %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \ %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ - %D%/packages/patches/rust-ring-0.16-missing-files.patch \ - %D%/packages/patches/rust-ring-0.16-test-files.patch \ %D%/packages/patches/rust-ring-0.17-ring-core.patch \ %D%/packages/patches/i3status-rust-enable-unstable-features.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index ba54d7c383..9ed7ddea97 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -64190,33 +64190,187 @@ Digital Signature Algorithm} (ECDSA).") (description "This package provided safe, fast, small crypto using Rust.") (license (list license:isc license:openssl)))) +(define rust-ring-0.16-sources + (let* ((version "0.16.20") + (upstream-source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/briansmith/ring") + (commit "9cc0d45f4d8521f467bb3a621e74b1535e118188"))) + (file-name (git-file-name "rust-ring" version)) + (sha256 + (base32 "1aps05i5308ka03968glnnqr4kdkk2x4ghlg5vrqhl78jm6ivvby"))))) + (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 + #+nasm + #+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 nasm works just fine here. + (substitute* "build.rs" + (("./target/tools/nasm") "nasm")) + ;; Files which would be deleted in a snippet: + (delete-file "crypto/curve25519/curve25519_tables.h") + (delete-file "crypto/fipsmodule/ec/ecp_nistz256_table.inl") + ;; Files to be generated in the sources: + (format #t "Generating the missing files ...~%") + (force-output) + (with-directory-excursion "crypto/curve25519" + (with-output-to-file "curve25519_tables.h" + (lambda _ (invoke "python" "make_curve25519_tables.py")))) + (with-directory-excursion "crypto/fipsmodule/ec" + (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") + + ;; 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))) + + (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/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/fipsmodule/sha/asm/sha512-x86_64.pl" + "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl")) + + (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" + "macosx" "pregenerated/sha256-x86_64-macosx.S") + + (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl" + "nasm" "pregenerated/tmp/sha256-x86_64-nasm.asm") + + (for-each + (lambda (script) + (invoke "nasm" "-o" (string-append (prefix script) "obj") + "-f" "win64" "-Xgnu" "-gcv8" script)) + (find-files "pregenerated/tmp" "\\.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/aes/asm/vpaes-armv8.pl" + "crypto/fipsmodule/bn/asm/armv8-mont.pl" + "crypto/chacha/asm/chacha-armv8.pl" + "crypto/fipsmodule/ec/asm/ecp_nistz256-armv8.pl" + "crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl" + "crypto/fipsmodule/sha/asm/sha512-armv8.pl")) + + (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl" + "ios64" "pregenerated/sha256-armv8-ios64.S") + + (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-armv8.pl" + "linux64" "pregenerated/sha256-armv8-linux64.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/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")) + + (for-each + (lambda (script) + (invoke "nasm" "-o" (string-append (prefix script) "obj") + "-f" "win32" "-Xgnu" "-gcv8" 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/bsaes-armv7.pl" + "crypto/fipsmodule/aes/asm/vpaes-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/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)))))))))))) + (define-public rust-ring-0.16 (package (inherit rust-ring-0.17) (name "rust-ring") (version "0.16.20") - (source - (origin - (method url-fetch) - (uri (crate-uri "ring" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh")) - (patches (search-patches "rust-ring-0.16-missing-files.patch" - "rust-ring-0.16-test-files.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file-recursively "pregenerated") - ;; Regenerating the curve25519_tables requires python2 and clang-format. - ;; Luckily we've added the script back in the patch. - ;; Rust doesn't provide a clear way to regenerate files located in - ;; source directories, so for now we don't remove the file here. - ;(delete-file "crypto/curve25519/curve25519_tables.h") - ;; Pretend this isn't a relase tarball. - (with-output-to-file ".git" - (lambda _ - (format #t ""))))))) + (source rust-ring-0.16-sources) (arguments `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2) @@ -64229,17 +64383,7 @@ Digital Signature Algorithm} (ECDSA).") ("rust-cc" ,rust-cc-1)) #:cargo-development-inputs (("rust-libc" ,rust-libc-0.2) - ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'generate-curve25519-tables - (lambda _ - (with-directory-excursion "crypto/curve25519" - (with-output-to-file "curve25519_tables.h" - (lambda _ - (invoke "python" "make_curve25519_tables.py"))))))))) - (native-inputs - (list clang perl python-2)) + ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)))) ;; For a mostly complete list of supported systems see: ;; https://github.com/briansmith/ring/blob/main/.github/workflows/ci.yml#L170 (supported-systems (list "aarch64-linux" "armhf-linux" @@ -67144,8 +67288,7 @@ rustc compiler.") ("rust-env-logger" ,rust-env-logger-0.9) ("rust-log" ,rust-log-0.4) ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-webpki-roots" ,rust-webpki-roots-0.22)))) - (native-inputs (list perl)))) + ("rust-webpki-roots" ,rust-webpki-roots-0.22)))))) (define-public rust-rustls-0.19 (package diff --git a/gnu/packages/patches/rust-ring-0.16-missing-files.patch b/gnu/packages/patches/rust-ring-0.16-missing-files.patch deleted file mode 100644 index fa2f94a801..0000000000 --- a/gnu/packages/patches/rust-ring-0.16-missing-files.patch +++ /dev/null @@ -1,2293 +0,0 @@ -These 4 files exist in the git repository for rust-ring, and are from -the same commit where 0.16.20 is taken from. They were not added to the -include list in Cargo.toml, so they were not added to the tarball. - ---- - crypto/curve25519/make_curve25519_tables.py | 222 +++++ - crypto/fipsmodule/aes/asm/vpaes-armv7.pl | 896 ++++++++++++++++++ - crypto/fipsmodule/aes/asm/vpaes-armv8.pl | 837 ++++++++++++++++ - .../fipsmodule/modes/asm/ghash-neon-armv8.pl | 294 ++++++ - 4 files changed, 2249 insertions(+) - create mode 100755 crypto/curve25519/make_curve25519_tables.py - create mode 100644 crypto/fipsmodule/aes/asm/vpaes-armv7.pl - create mode 100755 crypto/fipsmodule/aes/asm/vpaes-armv8.pl - create mode 100644 crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl - -diff --git a/crypto/curve25519/make_curve25519_tables.py b/crypto/curve25519/make_curve25519_tables.py -new file mode 100755 -index 0000000..50dee2a ---- /dev/null -+++ b/crypto/curve25519/make_curve25519_tables.py -@@ -0,0 +1,222 @@ -+#!/usr/bin/env python -+# coding=utf-8 -+# Copyright (c) 2020, Google Inc. -+# -+# Permission to use, copy, modify, and/or distribute this software for any -+# purpose with or without fee is hereby granted, provided that the above -+# copyright notice and this permission notice appear in all copies. -+# -+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -+# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -+# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -+# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ -+import StringIO -+import subprocess -+ -+# Base field Z_p -+p = 2**255 - 19 -+ -+def modp_inv(x): -+ return pow(x, p-2, p) -+ -+# Square root of -1 -+modp_sqrt_m1 = pow(2, (p-1) // 4, p) -+ -+# Compute corresponding x-coordinate, with low bit corresponding to -+# sign, or return None on failure -+def recover_x(y, sign): -+ if y >= p: -+ return None -+ x2 = (y*y-1) * modp_inv(d*y*y+1) -+ if x2 == 0: -+ if sign: -+ return None -+ else: -+ return 0 -+ -+ # Compute square root of x2 -+ x = pow(x2, (p+3) // 8, p) -+ if (x*x - x2) % p != 0: -+ x = x * modp_sqrt_m1 % p -+ if (x*x - x2) % p != 0: -+ return None -+ -+ if (x & 1) != sign: -+ x = p - x -+ return x -+ -+# Curve constant -+d = -121665 * modp_inv(121666) % p -+ -+# Base point -+g_y = 4 * modp_inv(5) % p -+g_x = recover_x(g_y, 0) -+ -+# Points are represented as affine tuples (x, y). -+ -+def point_add(P, Q): -+ x1, y1 = P -+ x2, y2 = Q -+ x3 = ((x1*y2 + y1*x2) * modp_inv(1 + d*x1*x2*y1*y2)) % p -+ y3 = ((y1*y2 + x1*x2) * modp_inv(1 - d*x1*x2*y1*y2)) % p -+ return (x3, y3) -+ -+# Computes Q = s * P -+def point_mul(s, P): -+ Q = (0, 1) # Neutral element -+ while s > 0: -+ if s & 1: -+ Q = point_add(Q, P) -+ P = point_add(P, P) -+ s >>= 1 -+ return Q -+ -+def to_bytes(x): -+ ret = bytearray(32) -+ for i in range(len(ret)): -+ ret[i] = x % 256 -+ x >>= 8 -+ assert x == 0 -+ return ret -+ -+def to_ge_precomp(P): -+ # typedef struct { -+ # fe_loose yplusx; -+ # fe_loose yminusx; -+ # fe_loose xy2d; -+ # } ge_precomp; -+ x, y = P -+ return ((y + x) % p, (y - x) % p, (x * y * 2 * d) % p) -+ -+def to_base_25_5(x): -+ limbs = (26, 25, 26, 25, 26, 25, 26, 25, 26, 25) -+ ret = [] -+ for l in limbs: -+ ret.append(x & ((1<>= l -+ assert x == 0 -+ return ret -+ -+def to_base_51(x): -+ ret = [] -+ for _ in range(5): -+ ret.append(x & ((1<<51) - 1)) -+ x >>= 51 -+ assert x == 0 -+ return ret -+ -+def to_literal(x): -+ ret = "{{\n#if defined(BORINGSSL_CURVE25519_64BIT)\n" -+ ret += ", ".join(map(str, to_base_51(x))) -+ ret += "\n#else\n" -+ ret += ", ".join(map(str, to_base_25_5(x))) -+ ret += "\n#endif\n}}" -+ return ret -+ -+def main(): -+ d2 = (2 * d) % p -+ -+ small_precomp = bytearray() -+ for i in range(1, 16): -+ s = (i&1) | ((i&2) << (64-1)) | ((i&4) << (128-2)) | ((i&8) << (192-3)) -+ P = point_mul(s, (g_x, g_y)) -+ small_precomp += to_bytes(P[0]) -+ small_precomp += to_bytes(P[1]) -+ -+ large_precomp = [] -+ for i in range(32): -+ large_precomp.append([]) -+ for j in range(8): -+ P = point_mul((j + 1) << (i * 8), (g_x, g_y)) -+ large_precomp[-1].append(to_ge_precomp(P)) -+ -+ bi_precomp = [] -+ for i in range(8): -+ P = point_mul(2*i + 1, (g_x, g_y)) -+ bi_precomp.append(to_ge_precomp(P)) -+ -+ -+ buf = StringIO.StringIO() -+ buf.write("""/* Copyright (c) 2020, Google Inc. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -+ -+// This file is generated from -+// ./make_curve25519_tables.py > curve25519_tables.h -+ -+ -+static const fe d = """) -+ buf.write(to_literal(d)) -+ buf.write("""; -+ -+static const fe sqrtm1 = """) -+ buf.write(to_literal(modp_sqrt_m1)) -+ buf.write("""; -+ -+static const fe d2 = """) -+ buf.write(to_literal(d2)) -+ buf.write("""; -+ -+#if defined(OPENSSL_SMALL) -+ -+// This block of code replaces the standard base-point table with a much smaller -+// one. The standard table is 30,720 bytes while this one is just 960. -+// -+// This table contains 15 pairs of group elements, (x, y), where each field -+// element is serialised with |fe_tobytes|. If |i| is the index of the group -+// element then consider i+1 as a four-bit number: (i₀, i₁, i₂, i₃) (where i₀ -+// is the most significant bit). The value of the group element is then: -+// (i₀×2^192 + i₁×2^128 + i₂×2^64 + i₃)G, where G is the generator. -+static const uint8_t k25519SmallPrecomp[15 * 2 * 32] = {""") -+ for i, b in enumerate(small_precomp): -+ buf.write("0x%02x, " % b) -+ buf.write(""" -+}; -+ -+#else -+ -+// k25519Precomp[i][j] = (j+1)*256^i*B -+static const ge_precomp k25519Precomp[32][8] = { -+""") -+ for child in large_precomp: -+ buf.write("{\n") -+ for val in child: -+ buf.write("{\n") -+ for term in val: -+ buf.write(to_literal(term) + ",\n") -+ buf.write("},\n") -+ buf.write("},\n") -+ buf.write("""}; -+ -+#endif // OPENSSL_SMALL -+ -+// Bi[i] = (2*i+1)*B -+static const ge_precomp Bi[8] = { -+""") -+ for val in bi_precomp: -+ buf.write("{\n") -+ for term in val: -+ buf.write(to_literal(term) + ",\n") -+ buf.write("},\n") -+ buf.write("""}; -+""") -+ -+ proc = subprocess.Popen(["clang-format"], stdin=subprocess.PIPE) -+ proc.communicate(buf.getvalue()) -+ -+if __name__ == "__main__": -+ main() -diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv7.pl b/crypto/fipsmodule/aes/asm/vpaes-armv7.pl -new file mode 100644 -index 0000000..d36a97a ---- /dev/null -+++ b/crypto/fipsmodule/aes/asm/vpaes-armv7.pl -@@ -0,0 +1,896 @@ -+#! /usr/bin/env perl -+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. -+# -+# Licensed under the OpenSSL license (the "License"). You may not use -+# this file except in compliance with the License. You can obtain a copy -+# in the file LICENSE in the source distribution or at -+# https://www.openssl.org/source/license.html -+ -+ -+###################################################################### -+## Constant-time SSSE3 AES core implementation. -+## version 0.1 -+## -+## By Mike Hamburg (Stanford University), 2009 -+## Public domain. -+## -+## For details see http://shiftleft.org/papers/vector_aes/ and -+## http://crypto.stanford.edu/vpaes/. -+## -+###################################################################### -+# Adapted from the original x86_64 version and 's ARMv8 -+# version. -+# -+# armv7, aarch64, and x86_64 differ in several ways: -+# -+# * x86_64 SSSE3 instructions are two-address (destination operand is also a -+# source), while NEON is three-address (destination operand is separate from -+# two sources). -+# -+# * aarch64 has 32 SIMD registers available, while x86_64 and armv7 have 16. -+# -+# * x86_64 instructions can take memory references, while ARM is a load/store -+# architecture. This means we sometimes need a spare register. -+# -+# * aarch64 and x86_64 have 128-bit byte shuffle instructions (tbl and pshufb), -+# while armv7 only has a 64-bit byte shuffle (vtbl). -+# -+# This means this armv7 version must be a mix of both aarch64 and x86_64 -+# implementations. armv7 and aarch64 have analogous SIMD instructions, so we -+# base the instructions on aarch64. However, we cannot use aarch64's register -+# allocation. x86_64's register count matches, but x86_64 is two-address. -+# vpaes-armv8.pl already accounts for this in the comments, which use -+# three-address AVX instructions instead of the original SSSE3 ones. We base -+# register usage on these comments, which are preserved in this file. -+# -+# This means we do not use separate input and output registers as in aarch64 and -+# cannot pin as many constants in the preheat functions. However, the load/store -+# architecture means we must still deviate from x86_64 in places. -+# -+# Next, we account for the byte shuffle instructions. vtbl takes 64-bit source -+# and destination and 128-bit table. Fortunately, armv7 also allows addressing -+# upper and lower halves of each 128-bit register. The lower half of q{N} is -+# d{2*N}. The upper half is d{2*N+1}. Instead of the following non-existent -+# instruction, -+# -+# vtbl.8 q0, q1, q2 @ Index each of q2's 16 bytes into q1. Store in q0. -+# -+# we write: -+# -+# vtbl.8 d0, q1, d4 @ Index each of d4's 8 bytes into q1. Store in d0. -+# vtbl.8 d1, q1, d5 @ Index each of d5's 8 bytes into q1. Store in d1. -+# -+# For readability, we write d0 and d1 as q0#lo and q0#hi, respectively and -+# post-process before outputting. (This is adapted from ghash-armv4.pl.) Note, -+# however, that destination (q0) and table (q1) registers may no longer match. -+# We adjust the register usage from x86_64 to avoid this. (Unfortunately, the -+# two-address pshufb always matched these operands, so this is common.) -+# -+# This file also runs against the limit of ARMv7's ADR pseudo-instruction. ADR -+# expands to an ADD or SUB of the pc register to find an address. That immediate -+# must fit in ARM's encoding scheme: 8 bits of constant and 4 bits of rotation. -+# This means larger values must be more aligned. -+# -+# ARM additionally has two encodings, ARM and Thumb mode. Our assembly files may -+# use either encoding (do we actually need to support this?). In ARM mode, the -+# distances get large enough to require 16-byte alignment. Moving constants -+# closer to their use resolves most of this, but common constants in -+# _vpaes_consts are used by the whole file. Affected ADR instructions must be -+# placed at 8 mod 16 (the pc register is 8 ahead). Instructions with this -+# constraint have been commented. -+# -+# For details on ARM's immediate value encoding scheme, see -+# https://alisdair.mcdiarmid.org/arm-immediate-value-encoding/ -+# -+# Finally, a summary of armv7 and aarch64 SIMD syntax differences: -+# -+# * armv7 prefixes SIMD instructions with 'v', while aarch64 does not. -+# -+# * armv7 SIMD registers are named like q0 (and d0 for the half-width ones). -+# aarch64 names registers like v0, and denotes half-width operations in an -+# instruction suffix (see below). -+# -+# * aarch64 embeds size and lane information in register suffixes. v0.16b is -+# 16 bytes, v0.8h is eight u16s, v0.4s is four u32s, and v0.2d is two u64s. -+# armv7 embeds the total size in the register name (see above) and the size of -+# each element in an instruction suffix, which may look like vmov.i8, -+# vshr.u8, or vtbl.8, depending on instruction. -+ -+use strict; -+ -+my $flavour = shift; -+my $output; -+while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} -+ -+$0 =~ m/(.*[\/\\])[^\/\\]+$/; -+my $dir=$1; -+my $xlate; -+( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or -+( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or -+die "can't locate arm-xlate.pl"; -+ -+open OUT,"| \"$^X\" $xlate $flavour $output"; -+*STDOUT=*OUT; -+ -+my $code = ""; -+ -+$code.=<<___; -+.syntax unified -+ -+.arch armv7-a -+.fpu neon -+ -+#if defined(__thumb2__) -+.thumb -+#else -+.code 32 -+#endif -+ -+.text -+ -+.type _vpaes_consts,%object -+.align 7 @ totally strategic alignment -+_vpaes_consts: -+.Lk_mc_forward: @ mc_forward -+ .quad 0x0407060500030201, 0x0C0F0E0D080B0A09 -+ .quad 0x080B0A0904070605, 0x000302010C0F0E0D -+ .quad 0x0C0F0E0D080B0A09, 0x0407060500030201 -+ .quad 0x000302010C0F0E0D, 0x080B0A0904070605 -+.Lk_mc_backward:@ mc_backward -+ .quad 0x0605040702010003, 0x0E0D0C0F0A09080B -+ .quad 0x020100030E0D0C0F, 0x0A09080B06050407 -+ .quad 0x0E0D0C0F0A09080B, 0x0605040702010003 -+ .quad 0x0A09080B06050407, 0x020100030E0D0C0F -+.Lk_sr: @ sr -+ .quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 -+ .quad 0x030E09040F0A0500, 0x0B06010C07020D08 -+ .quad 0x0F060D040B020900, 0x070E050C030A0108 -+ .quad 0x0B0E0104070A0D00, 0x0306090C0F020508 -+ -+@ -+@ "Hot" constants -+@ -+.Lk_inv: @ inv, inva -+ .quad 0x0E05060F0D080180, 0x040703090A0B0C02 -+ .quad 0x01040A060F0B0780, 0x030D0E0C02050809 -+.Lk_ipt: @ input transform (lo, hi) -+ .quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 -+ .quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 -+.Lk_sbo: @ sbou, sbot -+ .quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 -+ .quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA -+.Lk_sb1: @ sb1u, sb1t -+ .quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF -+ .quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 -+.Lk_sb2: @ sb2u, sb2t -+ .quad 0x69EB88400AE12900, 0xC2A163C8AB82234A -+ .quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD -+ -+.asciz "Vector Permutation AES for ARMv7 NEON, Mike Hamburg (Stanford University)" -+.size _vpaes_consts,.-_vpaes_consts -+.align 6 -+___ -+ -+{ -+my ($inp,$out,$key) = map("r$_", (0..2)); -+ -+my ($invlo,$invhi) = map("q$_", (10..11)); -+my ($sb1u,$sb1t,$sb2u,$sb2t) = map("q$_", (12..15)); -+ -+$code.=<<___; -+@@ -+@@ _aes_preheat -+@@ -+@@ Fills q9-q15 as specified below. -+@@ -+.type _vpaes_preheat,%function -+.align 4 -+_vpaes_preheat: -+ adr r10, .Lk_inv -+ vmov.i8 q9, #0x0f @ .Lk_s0F -+ vld1.64 {q10,q11}, [r10]! @ .Lk_inv -+ add r10, r10, #64 @ Skip .Lk_ipt, .Lk_sbo -+ vld1.64 {q12,q13}, [r10]! @ .Lk_sb1 -+ vld1.64 {q14,q15}, [r10] @ .Lk_sb2 -+ bx lr -+ -+@@ -+@@ _aes_encrypt_core -+@@ -+@@ AES-encrypt q0. -+@@ -+@@ Inputs: -+@@ q0 = input -+@@ q9-q15 as in _vpaes_preheat -+@@ [$key] = scheduled keys -+@@ -+@@ Output in q0 -+@@ Clobbers q1-q5, r8-r11 -+@@ Preserves q6-q8 so you get some local vectors -+@@ -+@@ -+.type _vpaes_encrypt_core,%function -+.align 4 -+_vpaes_encrypt_core: -+ mov r9, $key -+ ldr r8, [$key,#240] @ pull rounds -+ adr r11, .Lk_ipt -+ @ vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo -+ @ vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi -+ vld1.64 {q2, q3}, [r11] -+ adr r11, .Lk_mc_forward+16 -+ vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 # round0 key -+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 -+ vshr.u8 q0, q0, #4 @ vpsrlb \$4, %xmm0, %xmm0 -+ vtbl.8 q1#lo, {q2}, q1#lo @ vpshufb %xmm1, %xmm2, %xmm1 -+ vtbl.8 q1#hi, {q2}, q1#hi -+ vtbl.8 q2#lo, {q3}, q0#lo @ vpshufb %xmm0, %xmm3, %xmm2 -+ vtbl.8 q2#hi, {q3}, q0#hi -+ veor q0, q1, q5 @ vpxor %xmm5, %xmm1, %xmm0 -+ veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 -+ -+ @ .Lenc_entry ends with a bnz instruction which is normally paired with -+ @ subs in .Lenc_loop. -+ tst r8, r8 -+ b .Lenc_entry -+ -+.align 4 -+.Lenc_loop: -+ @ middle of middle round -+ add r10, r11, #0x40 -+ vtbl.8 q4#lo, {$sb1t}, q2#lo @ vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u -+ vtbl.8 q4#hi, {$sb1t}, q2#hi -+ vld1.64 {q1}, [r11]! @ vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] -+ vtbl.8 q0#lo, {$sb1u}, q3#lo @ vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t -+ vtbl.8 q0#hi, {$sb1u}, q3#hi -+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ vtbl.8 q5#lo, {$sb2t}, q2#lo @ vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u -+ vtbl.8 q5#hi, {$sb2t}, q2#hi -+ veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ vtbl.8 q2#lo, {$sb2u}, q3#lo @ vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t -+ vtbl.8 q2#hi, {$sb2u}, q3#hi -+ vld1.64 {q4}, [r10] @ vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] -+ vtbl.8 q3#lo, {q0}, q1#lo @ vpshufb %xmm1, %xmm0, %xmm3 # 0 = B -+ vtbl.8 q3#hi, {q0}, q1#hi -+ veor q2, q2, q5 @ vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A -+ @ Write to q5 instead of q0, so the table and destination registers do -+ @ not overlap. -+ vtbl.8 q5#lo, {q0}, q4#lo @ vpshufb %xmm4, %xmm0, %xmm0 # 3 = D -+ vtbl.8 q5#hi, {q0}, q4#hi -+ veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B -+ vtbl.8 q4#lo, {q3}, q1#lo @ vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C -+ vtbl.8 q4#hi, {q3}, q1#hi -+ @ Here we restore the original q0/q5 usage. -+ veor q0, q5, q3 @ vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D -+ and r11, r11, #~(1<<6) @ and \$0x30, %r11 # ... mod 4 -+ veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D -+ subs r8, r8, #1 @ nr-- -+ -+.Lenc_entry: -+ @ top of round -+ vand q1, q0, q9 @ vpand %xmm0, %xmm9, %xmm1 # 0 = k -+ vshr.u8 q0, q0, #4 @ vpsrlb \$4, %xmm0, %xmm0 # 1 = i -+ vtbl.8 q5#lo, {$invhi}, q1#lo @ vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k -+ vtbl.8 q5#hi, {$invhi}, q1#hi -+ veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j -+ vtbl.8 q3#lo, {$invlo}, q0#lo @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i -+ vtbl.8 q3#hi, {$invlo}, q0#hi -+ vtbl.8 q4#lo, {$invlo}, q1#lo @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j -+ vtbl.8 q4#hi, {$invlo}, q1#hi -+ veor q3, q3, q5 @ vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k -+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k -+ vtbl.8 q2#lo, {$invlo}, q3#lo @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak -+ vtbl.8 q2#hi, {$invlo}, q3#hi -+ vtbl.8 q3#lo, {$invlo}, q4#lo @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak -+ vtbl.8 q3#hi, {$invlo}, q4#hi -+ veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io -+ veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo -+ vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 -+ bne .Lenc_loop -+ -+ @ middle of last round -+ add r10, r11, #0x80 -+ -+ adr r11, .Lk_sbo -+ @ Read to q1 instead of q4, so the vtbl.8 instruction below does not -+ @ overlap table and destination registers. -+ vld1.64 {q1}, [r11]! @ vmovdqa -0x60(%r10), %xmm4 # 3 : sbou -+ vld1.64 {q0}, [r11] @ vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 -+ vtbl.8 q4#lo, {q1}, q2#lo @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou -+ vtbl.8 q4#hi, {q1}, q2#hi -+ vld1.64 {q1}, [r10] @ vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] -+ @ Write to q2 instead of q0 below, to avoid overlapping table and -+ @ destination registers. -+ vtbl.8 q2#lo, {q0}, q3#lo @ vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t -+ vtbl.8 q2#hi, {q0}, q3#hi -+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ veor q2, q2, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ @ Here we restore the original q0/q2 usage. -+ vtbl.8 q0#lo, {q2}, q1#lo @ vpshufb %xmm1, %xmm0, %xmm0 -+ vtbl.8 q0#hi, {q2}, q1#hi -+ bx lr -+.size _vpaes_encrypt_core,.-_vpaes_encrypt_core -+ -+.globl GFp_vpaes_encrypt -+.type GFp_vpaes_encrypt,%function -+.align 4 -+GFp_vpaes_encrypt: -+ @ _vpaes_encrypt_core uses r8-r11. Round up to r7-r11 to maintain stack -+ @ alignment. -+ stmdb sp!, {r7-r11,lr} -+ @ _vpaes_encrypt_core uses q4-q5 (d8-d11), which are callee-saved. -+ vstmdb sp!, {d8-d11} -+ -+ vld1.64 {q0}, [$inp] -+ bl _vpaes_preheat -+ bl _vpaes_encrypt_core -+ vst1.64 {q0}, [$out] -+ -+ vldmia sp!, {d8-d11} -+ ldmia sp!, {r7-r11, pc} @ return -+.size GFp_vpaes_encrypt,.-GFp_vpaes_encrypt -+___ -+} -+{ -+my ($inp,$bits,$out,$dir)=("r0","r1","r2","r3"); -+my ($rcon,$s0F,$invlo,$invhi,$s63) = map("q$_",(8..12)); -+ -+$code.=<<___; -+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -+@@ @@ -+@@ AES key schedule @@ -+@@ @@ -+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -+ -+@ This function diverges from both x86_64 and armv7 in which constants are -+@ pinned. x86_64 has a common preheat function for all operations. aarch64 -+@ separates them because it has enough registers to pin nearly all constants. -+@ armv7 does not have enough registers, but needing explicit loads and stores -+@ also complicates using x86_64's register allocation directly. -+@ -+@ We pin some constants for convenience and leave q14 and q15 free to load -+@ others on demand. -+ -+@ -+@ Key schedule constants -+@ -+.type _vpaes_key_consts,%object -+.align 4 -+_vpaes_key_consts: -+.Lk_rcon: @ rcon -+ .quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 -+ -+.Lk_opt: @ output transform -+ .quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 -+ .quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 -+.Lk_deskew: @ deskew tables: inverts the sbox's "skew" -+ .quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A -+ .quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 -+.size _vpaes_key_consts,.-_vpaes_key_consts -+ -+.type _vpaes_key_preheat,%function -+.align 4 -+_vpaes_key_preheat: -+ adr r11, .Lk_rcon -+ vmov.i8 $s63, #0x5b @ .Lk_s63 -+ adr r10, .Lk_inv @ Must be aligned to 8 mod 16. -+ vmov.i8 $s0F, #0x0f @ .Lk_s0F -+ vld1.64 {$invlo,$invhi}, [r10] @ .Lk_inv -+ vld1.64 {$rcon}, [r11] @ .Lk_rcon -+ bx lr -+.size _vpaes_key_preheat,.-_vpaes_key_preheat -+ -+.type _vpaes_schedule_core,%function -+.align 4 -+_vpaes_schedule_core: -+ @ We only need to save lr, but ARM requires an 8-byte stack alignment, -+ @ so save an extra register. -+ stmdb sp!, {r3,lr} -+ -+ bl _vpaes_key_preheat @ load the tables -+ -+ adr r11, .Lk_ipt @ Must be aligned to 8 mod 16. -+ vld1.64 {q0}, [$inp]! @ vmovdqu (%rdi), %xmm0 # load key (unaligned) -+ -+ @ input transform -+ @ Use q4 here rather than q3 so .Lschedule_am_decrypting does not -+ @ overlap table and destination. -+ vmov q4, q0 @ vmovdqa %xmm0, %xmm3 -+ bl _vpaes_schedule_transform -+ adr r10, .Lk_sr @ Must be aligned to 8 mod 16. -+ vmov q7, q0 @ vmovdqa %xmm0, %xmm7 -+ -+ add r8, r8, r10 -+ -+ @ encrypting, output zeroth round key after transform -+ vst1.64 {q0}, [$out] @ vmovdqu %xmm0, (%rdx) -+ -+ @ *ring*: Decryption removed. -+ -+.Lschedule_go: -+ cmp $bits, #192 @ cmp \$192, %esi -+ bhi .Lschedule_256 -+ @ 128: fall though -+ -+@@ -+@@ .schedule_128 -+@@ -+@@ 128-bit specific part of key schedule. -+@@ -+@@ This schedule is really simple, because all its parts -+@@ are accomplished by the subroutines. -+@@ -+.Lschedule_128: -+ mov $inp, #10 @ mov \$10, %esi -+ -+.Loop_schedule_128: -+ bl _vpaes_schedule_round -+ subs $inp, $inp, #1 @ dec %esi -+ beq .Lschedule_mangle_last -+ bl _vpaes_schedule_mangle @ write output -+ b .Loop_schedule_128 -+ -+@@ -+@@ .aes_schedule_256 -+@@ -+@@ 256-bit specific part of key schedule. -+@@ -+@@ The structure here is very similar to the 128-bit -+@@ schedule, but with an additional "low side" in -+@@ q6. The low side's rounds are the same as the -+@@ high side's, except no rcon and no rotation. -+@@ -+.align 4 -+.Lschedule_256: -+ vld1.64 {q0}, [$inp] @ vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) -+ bl _vpaes_schedule_transform @ input transform -+ mov $inp, #7 @ mov \$7, %esi -+ -+.Loop_schedule_256: -+ bl _vpaes_schedule_mangle @ output low result -+ vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 -+ -+ @ high round -+ bl _vpaes_schedule_round -+ subs $inp, $inp, #1 @ dec %esi -+ beq .Lschedule_mangle_last -+ bl _vpaes_schedule_mangle -+ -+ @ low round. swap xmm7 and xmm6 -+ vdup.32 q0, q0#hi[1] @ vpshufd \$0xFF, %xmm0, %xmm0 -+ vmov.i8 q4, #0 -+ vmov q5, q7 @ vmovdqa %xmm7, %xmm5 -+ vmov q7, q6 @ vmovdqa %xmm6, %xmm7 -+ bl _vpaes_schedule_low_round -+ vmov q7, q5 @ vmovdqa %xmm5, %xmm7 -+ -+ b .Loop_schedule_256 -+ -+@@ -+@@ .aes_schedule_mangle_last -+@@ -+@@ Mangler for last round of key schedule -+@@ Mangles q0 -+@@ when encrypting, outputs out(q0) ^ 63 -+@@ when decrypting, outputs unskew(q0) -+@@ -+@@ Always called right before return... jumps to cleanup and exits -+@@ -+.align 4 -+.Lschedule_mangle_last: -+ @ schedule last round key from xmm0 -+ adr r11, .Lk_deskew @ lea .Lk_deskew(%rip),%r11 # prepare to deskew -+ -+ @ encrypting -+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10),%xmm1 -+ adr r11, .Lk_opt @ lea .Lk_opt(%rip), %r11 # prepare to output transform -+ add $out, $out, #32 @ add \$32, %rdx -+ vmov q2, q0 -+ vtbl.8 q0#lo, {q2}, q1#lo @ vpshufb %xmm1, %xmm0, %xmm0 # output permute -+ vtbl.8 q0#hi, {q2}, q1#hi -+ -+.Lschedule_mangle_last_dec: -+ sub $out, $out, #16 @ add \$-16, %rdx -+ veor q0, q0, $s63 @ vpxor .Lk_s63(%rip), %xmm0, %xmm0 -+ bl _vpaes_schedule_transform @ output transform -+ vst1.64 {q0}, [$out] @ vmovdqu %xmm0, (%rdx) # save last key -+ -+ @ cleanup -+ veor q0, q0, q0 @ vpxor %xmm0, %xmm0, %xmm0 -+ veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1 -+ veor q2, q2, q2 @ vpxor %xmm2, %xmm2, %xmm2 -+ veor q3, q3, q3 @ vpxor %xmm3, %xmm3, %xmm3 -+ veor q4, q4, q4 @ vpxor %xmm4, %xmm4, %xmm4 -+ veor q5, q5, q5 @ vpxor %xmm5, %xmm5, %xmm5 -+ veor q6, q6, q6 @ vpxor %xmm6, %xmm6, %xmm6 -+ veor q7, q7, q7 @ vpxor %xmm7, %xmm7, %xmm7 -+ ldmia sp!, {r3,pc} @ return -+.size _vpaes_schedule_core,.-_vpaes_schedule_core -+ -+@@ -+@@ .aes_schedule_round -+@@ -+@@ Runs one main round of the key schedule on q0, q7 -+@@ -+@@ Specifically, runs subbytes on the high dword of q0 -+@@ then rotates it by one byte and xors into the low dword of -+@@ q7. -+@@ -+@@ Adds rcon from low byte of q8, then rotates q8 for -+@@ next rcon. -+@@ -+@@ Smears the dwords of q7 by xoring the low into the -+@@ second low, result into third, result into highest. -+@@ -+@@ Returns results in q7 = q0. -+@@ Clobbers q1-q4, r11. -+@@ -+.type _vpaes_schedule_round,%function -+.align 4 -+_vpaes_schedule_round: -+ @ extract rcon from xmm8 -+ vmov.i8 q4, #0 @ vpxor %xmm4, %xmm4, %xmm4 -+ vext.8 q1, $rcon, q4, #15 @ vpalignr \$15, %xmm8, %xmm4, %xmm1 -+ vext.8 $rcon, $rcon, $rcon, #15 @ vpalignr \$15, %xmm8, %xmm8, %xmm8 -+ veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 -+ -+ @ rotate -+ vdup.32 q0, q0#hi[1] @ vpshufd \$0xFF, %xmm0, %xmm0 -+ vext.8 q0, q0, q0, #1 @ vpalignr \$1, %xmm0, %xmm0, %xmm0 -+ -+ @ fall through... -+ -+ @ low round: same as high round, but no rotation and no rcon. -+_vpaes_schedule_low_round: -+ @ The x86_64 version pins .Lk_sb1 in %xmm13 and .Lk_sb1+16 in %xmm12. -+ @ We pin other values in _vpaes_key_preheat, so load them now. -+ adr r11, .Lk_sb1 -+ vld1.64 {q14,q15}, [r11] -+ -+ @ smear xmm7 -+ vext.8 q1, q4, q7, #12 @ vpslldq \$4, %xmm7, %xmm1 -+ veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 -+ vext.8 q4, q4, q7, #8 @ vpslldq \$8, %xmm7, %xmm4 -+ -+ @ subbytes -+ vand q1, q0, $s0F @ vpand %xmm9, %xmm0, %xmm1 # 0 = k -+ vshr.u8 q0, q0, #4 @ vpsrlb \$4, %xmm0, %xmm0 # 1 = i -+ veor q7, q7, q4 @ vpxor %xmm4, %xmm7, %xmm7 -+ vtbl.8 q2#lo, {$invhi}, q1#lo @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k -+ vtbl.8 q2#hi, {$invhi}, q1#hi -+ veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j -+ vtbl.8 q3#lo, {$invlo}, q0#lo @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i -+ vtbl.8 q3#hi, {$invlo}, q0#hi -+ veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k -+ vtbl.8 q4#lo, {$invlo}, q1#lo @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j -+ vtbl.8 q4#hi, {$invlo}, q1#hi -+ veor q7, q7, $s63 @ vpxor .Lk_s63(%rip), %xmm7, %xmm7 -+ vtbl.8 q3#lo, {$invlo}, q3#lo @ vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak -+ vtbl.8 q3#hi, {$invlo}, q3#hi -+ veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k -+ vtbl.8 q2#lo, {$invlo}, q4#lo @ vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak -+ vtbl.8 q2#hi, {$invlo}, q4#hi -+ veor q3, q3, q1 @ vpxor %xmm1, %xmm3, %xmm3 # 2 = io -+ veor q2, q2, q0 @ vpxor %xmm0, %xmm2, %xmm2 # 3 = jo -+ vtbl.8 q4#lo, {q15}, q3#lo @ vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou -+ vtbl.8 q4#hi, {q15}, q3#hi -+ vtbl.8 q1#lo, {q14}, q2#lo @ vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t -+ vtbl.8 q1#hi, {q14}, q2#hi -+ veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output -+ -+ @ add in smeared stuff -+ veor q0, q1, q7 @ vpxor %xmm7, %xmm1, %xmm0 -+ veor q7, q1, q7 @ vmovdqa %xmm0, %xmm7 -+ bx lr -+.size _vpaes_schedule_round,.-_vpaes_schedule_round -+ -+@@ -+@@ .aes_schedule_transform -+@@ -+@@ Linear-transform q0 according to tables at [r11] -+@@ -+@@ Requires that q9 = 0x0F0F... as in preheat -+@@ Output in q0 -+@@ Clobbers q1, q2, q14, q15 -+@@ -+.type _vpaes_schedule_transform,%function -+.align 4 -+_vpaes_schedule_transform: -+ vld1.64 {q14,q15}, [r11] @ vmovdqa (%r11), %xmm2 # lo -+ @ vmovdqa 16(%r11), %xmm1 # hi -+ vand q1, q0, $s0F @ vpand %xmm9, %xmm0, %xmm1 -+ vshr.u8 q0, q0, #4 @ vpsrlb \$4, %xmm0, %xmm0 -+ vtbl.8 q2#lo, {q14}, q1#lo @ vpshufb %xmm1, %xmm2, %xmm2 -+ vtbl.8 q2#hi, {q14}, q1#hi -+ vtbl.8 q0#lo, {q15}, q0#lo @ vpshufb %xmm0, %xmm1, %xmm0 -+ vtbl.8 q0#hi, {q15}, q0#hi -+ veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 -+ bx lr -+.size _vpaes_schedule_transform,.-_vpaes_schedule_transform -+ -+@@ -+@@ .aes_schedule_mangle -+@@ -+@@ Mangles q0 from (basis-transformed) standard version -+@@ to our version. -+@@ -+@@ On encrypt, -+@@ xor with 0x63 -+@@ multiply by circulant 0,1,1,1 -+@@ apply shiftrows transform -+@@ -+@@ On decrypt, -+@@ xor with 0x63 -+@@ multiply by "inverse mixcolumns" circulant E,B,D,9 -+@@ deskew -+@@ apply shiftrows transform -+@@ -+@@ -+@@ Writes out to [r2], and increments or decrements it -+@@ Keeps track of round number mod 4 in r8 -+@@ Preserves q0 -+@@ Clobbers q1-q5 -+@@ -+.type _vpaes_schedule_mangle,%function -+.align 4 -+_vpaes_schedule_mangle: -+ tst $dir, $dir -+ vmov q4, q0 @ vmovdqa %xmm0, %xmm4 # save xmm0 for later -+ adr r11, .Lk_mc_forward @ Must be aligned to 8 mod 16. -+ vld1.64 {q5}, [r11] @ vmovdqa .Lk_mc_forward(%rip),%xmm5 -+ -+ @ encrypting -+ @ Write to q2 so we do not overlap table and destination below. -+ veor q2, q0, $s63 @ vpxor .Lk_s63(%rip), %xmm0, %xmm4 -+ add $out, $out, #16 @ add \$16, %rdx -+ vtbl.8 q4#lo, {q2}, q5#lo @ vpshufb %xmm5, %xmm4, %xmm4 -+ vtbl.8 q4#hi, {q2}, q5#hi -+ vtbl.8 q1#lo, {q4}, q5#lo @ vpshufb %xmm5, %xmm4, %xmm1 -+ vtbl.8 q1#hi, {q4}, q5#hi -+ vtbl.8 q3#lo, {q1}, q5#lo @ vpshufb %xmm5, %xmm1, %xmm3 -+ vtbl.8 q3#hi, {q1}, q5#hi -+ veor q4, q4, q1 @ vpxor %xmm1, %xmm4, %xmm4 -+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 -+ veor q3, q3, q4 @ vpxor %xmm4, %xmm3, %xmm3 -+ -+.Lschedule_mangle_both: -+ @ Write to q2 so table and destination do not overlap. -+ vtbl.8 q2#lo, {q3}, q1#lo @ vpshufb %xmm1, %xmm3, %xmm3 -+ vtbl.8 q2#hi, {q3}, q1#hi -+ add r8, r8, #64-16 @ add \$-16, %r8 -+ and r8, r8, #~(1<<6) @ and \$0x30, %r8 -+ vst1.64 {q2}, [$out] @ vmovdqu %xmm3, (%rdx) -+ bx lr -+.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle -+ -+.globl GFp_vpaes_set_encrypt_key -+.type GFp_vpaes_set_encrypt_key,%function -+.align 4 -+GFp_vpaes_set_encrypt_key: -+ stmdb sp!, {r7-r11, lr} -+ vstmdb sp!, {d8-d15} -+ -+ lsr r9, $bits, #5 @ shr \$5,%eax -+ add r9, r9, #5 @ \$5,%eax -+ str r9, [$out,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; -+ -+ mov $dir, #0 @ mov \$0,%ecx -+ mov r8, #0x30 @ mov \$0x30,%r8d -+ bl _vpaes_schedule_core -+ eor r0, r0, r0 -+ -+ vldmia sp!, {d8-d15} -+ ldmia sp!, {r7-r11, pc} @ return -+.size GFp_vpaes_set_encrypt_key,.-GFp_vpaes_set_encrypt_key -+___ -+} -+ -+{ -+my ($out, $inp) = map("r$_", (0..1)); -+my ($s0F, $s63, $s63_raw, $mc_forward) = map("q$_", (9..12)); -+ -+$code .= <<___; -+ -+@ Additional constants for converting to bsaes. -+.type _vpaes_convert_consts,%object -+.align 4 -+_vpaes_convert_consts: -+@ .Lk_opt_then_skew applies skew(opt(x)) XOR 0x63, where skew is the linear -+@ transform in the AES S-box. 0x63 is incorporated into the low half of the -+@ table. This was computed with the following script: -+@ -+@ def u64s_to_u128(x, y): -+@ return x | (y << 64) -+@ def u128_to_u64s(w): -+@ return w & ((1<<64)-1), w >> 64 -+@ def get_byte(w, i): -+@ return (w >> (i*8)) & 0xff -+@ def apply_table(table, b): -+@ lo = b & 0xf -+@ hi = b >> 4 -+@ return get_byte(table[0], lo) ^ get_byte(table[1], hi) -+@ def opt(b): -+@ table = [ -+@ u64s_to_u128(0xFF9F4929D6B66000, 0xF7974121DEBE6808), -+@ u64s_to_u128(0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0), -+@ ] -+@ return apply_table(table, b) -+@ def rot_byte(b, n): -+@ return 0xff & ((b << n) | (b >> (8-n))) -+@ def skew(x): -+@ return (x ^ rot_byte(x, 1) ^ rot_byte(x, 2) ^ rot_byte(x, 3) ^ -+@ rot_byte(x, 4)) -+@ table = [0, 0] -+@ for i in range(16): -+@ table[0] |= (skew(opt(i)) ^ 0x63) << (i*8) -+@ table[1] |= skew(opt(i<<4)) << (i*8) -+@ print("\t.quad\t0x%016x, 0x%016x" % u128_to_u64s(table[0])) -+@ print("\t.quad\t0x%016x, 0x%016x" % u128_to_u64s(table[1])) -+.Lk_opt_then_skew: -+ .quad 0x9cb8436798bc4763, 0x6440bb9f6044bf9b -+ .quad 0x1f30062936192f00, 0xb49bad829db284ab -+ -+@ void GFp_vpaes_encrypt_key_to_bsaes(AES_KEY *bsaes, const AES_KEY *vpaes); -+.globl GFp_vpaes_encrypt_key_to_bsaes -+.type GFp_vpaes_encrypt_key_to_bsaes,%function -+.align 4 -+GFp_vpaes_encrypt_key_to_bsaes: -+ stmdb sp!, {r11, lr} -+ -+ @ See _vpaes_schedule_core for the key schedule logic. In particular, -+ @ _vpaes_schedule_transform(.Lk_ipt) (section 2.2 of the paper), -+ @ _vpaes_schedule_mangle (section 4.3), and .Lschedule_mangle_last -+ @ contain the transformations not in the bsaes representation. This -+ @ function inverts those transforms. -+ @ -+ @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key -+ @ representation, which does not match the other aes_nohw_* -+ @ implementations. The ARM aes_nohw_* stores each 32-bit word -+ @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the -+ @ cost of extra REV and VREV32 operations in little-endian ARM. -+ -+ vmov.i8 $s0F, #0x0f @ Required by _vpaes_schedule_transform -+ adr r2, .Lk_mc_forward @ Must be aligned to 8 mod 16. -+ add r3, r2, 0x90 @ .Lk_sr+0x10-.Lk_mc_forward = 0x90 (Apple's toolchain doesn't support the expression) -+ -+ vld1.64 {$mc_forward}, [r2] -+ vmov.i8 $s63, #0x5b @ .Lk_s63 from vpaes-x86_64 -+ adr r11, .Lk_opt @ Must be aligned to 8 mod 16. -+ vmov.i8 $s63_raw, #0x63 @ .LK_s63 without .Lk_ipt applied -+ -+ @ vpaes stores one fewer round count than bsaes, but the number of keys -+ @ is the same. -+ ldr r2, [$inp,#240] -+ add r2, r2, #1 -+ str r2, [$out,#240] -+ -+ @ The first key is transformed with _vpaes_schedule_transform(.Lk_ipt). -+ @ Invert this with .Lk_opt. -+ vld1.64 {q0}, [$inp]! -+ bl _vpaes_schedule_transform -+ vrev32.8 q0, q0 -+ vst1.64 {q0}, [$out]! -+ -+ @ The middle keys have _vpaes_schedule_transform(.Lk_ipt) applied, -+ @ followed by _vpaes_schedule_mangle. _vpaes_schedule_mangle XORs 0x63, -+ @ multiplies by the circulant 0,1,1,1, then applies ShiftRows. -+.Loop_enc_key_to_bsaes: -+ vld1.64 {q0}, [$inp]! -+ -+ @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note we cycle -+ @ r3 in the opposite direction and start at .Lk_sr+0x10 instead of 0x30. -+ @ We use r3 rather than r8 to avoid a callee-saved register. -+ vld1.64 {q1}, [r3] -+ vtbl.8 q2#lo, {q0}, q1#lo -+ vtbl.8 q2#hi, {q0}, q1#hi -+ add r3, r3, #16 -+ and r3, r3, #~(1<<6) -+ vmov q0, q2 -+ -+ @ Handle the last key differently. -+ subs r2, r2, #1 -+ beq .Loop_enc_key_to_bsaes_last -+ -+ @ Multiply by the circulant. This is its own inverse. -+ vtbl.8 q1#lo, {q0}, $mc_forward#lo -+ vtbl.8 q1#hi, {q0}, $mc_forward#hi -+ vmov q0, q1 -+ vtbl.8 q2#lo, {q1}, $mc_forward#lo -+ vtbl.8 q2#hi, {q1}, $mc_forward#hi -+ veor q0, q0, q2 -+ vtbl.8 q1#lo, {q2}, $mc_forward#lo -+ vtbl.8 q1#hi, {q2}, $mc_forward#hi -+ veor q0, q0, q1 -+ -+ @ XOR and finish. -+ veor q0, q0, $s63 -+ bl _vpaes_schedule_transform -+ vrev32.8 q0, q0 -+ vst1.64 {q0}, [$out]! -+ b .Loop_enc_key_to_bsaes -+ -+.Loop_enc_key_to_bsaes_last: -+ @ The final key does not have a basis transform (note -+ @ .Lschedule_mangle_last inverts the original transform). It only XORs -+ @ 0x63 and applies ShiftRows. The latter was already inverted in the -+ @ loop. Note that, because we act on the original representation, we use -+ @ $s63_raw, not $s63. -+ veor q0, q0, $s63_raw -+ vrev32.8 q0, q0 -+ vst1.64 {q0}, [$out] -+ -+ @ Wipe registers which contained key material. -+ veor q0, q0, q0 -+ veor q1, q1, q1 -+ veor q2, q2, q2 -+ -+ ldmia sp!, {r11, pc} @ return -+.size GFp_vpaes_encrypt_key_to_bsaes,.-GFp_vpaes_encrypt_key_to_bsaes -+___ -+} -+ -+{ -+# Register-passed parameters. -+my ($inp, $out, $len, $key) = map("r$_", 0..3); -+# Temporaries. _vpaes_encrypt_core already uses r8..r11, so overlap $ivec and -+# $tmp. $ctr is r7 because it must be preserved across calls. -+my ($ctr, $ivec, $tmp) = map("r$_", 7..9); -+ -+# void vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out, size_t len, -+# const AES_KEY *key, const uint8_t ivec[16]); -+$code .= <<___; -+.globl GFp_vpaes_ctr32_encrypt_blocks -+.type GFp_vpaes_ctr32_encrypt_blocks,%function -+.align 4 -+GFp_vpaes_ctr32_encrypt_blocks: -+ mov ip, sp -+ stmdb sp!, {r7-r11, lr} -+ @ This function uses q4-q7 (d8-d15), which are callee-saved. -+ vstmdb sp!, {d8-d15} -+ -+ cmp $len, #0 -+ @ $ivec is passed on the stack. -+ ldr $ivec, [ip] -+ beq .Lctr32_done -+ -+ @ _vpaes_encrypt_core expects the key in r2, so swap $len and $key. -+ mov $tmp, $key -+ mov $key, $len -+ mov $len, $tmp -+___ -+my ($len, $key) = ($key, $len); -+$code .= <<___; -+ -+ @ Load the IV and counter portion. -+ ldr $ctr, [$ivec, #12] -+ vld1.8 {q7}, [$ivec] -+ -+ bl _vpaes_preheat -+ rev $ctr, $ctr @ The counter is big-endian. -+ -+.Lctr32_loop: -+ vmov q0, q7 -+ vld1.8 {q6}, [$inp]! @ Load input ahead of time -+ bl _vpaes_encrypt_core -+ veor q0, q0, q6 @ XOR input and result -+ vst1.8 {q0}, [$out]! -+ subs $len, $len, #1 -+ @ Update the counter. -+ add $ctr, $ctr, #1 -+ rev $tmp, $ctr -+ vmov.32 q7#hi[1], $tmp -+ bne .Lctr32_loop -+ -+.Lctr32_done: -+ vldmia sp!, {d8-d15} -+ ldmia sp!, {r7-r11, pc} @ return -+.size GFp_vpaes_ctr32_encrypt_blocks,.-GFp_vpaes_ctr32_encrypt_blocks -+___ -+} -+ -+foreach (split("\n",$code)) { -+ s/\bq([0-9]+)#(lo|hi)/sprintf "d%d",2*$1+($2 eq "hi")/geo; -+ print $_,"\n"; -+} -+ -+close STDOUT; -diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv8.pl b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl -new file mode 100755 -index 0000000..b31bbb8 ---- /dev/null -+++ b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl -@@ -0,0 +1,837 @@ -+#! /usr/bin/env perl -+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. -+# -+# Licensed under the OpenSSL license (the "License"). You may not use -+# this file except in compliance with the License. You can obtain a copy -+# in the file LICENSE in the source distribution or at -+# https://www.openssl.org/source/license.html -+ -+ -+###################################################################### -+## Constant-time SSSE3 AES core implementation. -+## version 0.1 -+## -+## By Mike Hamburg (Stanford University), 2009 -+## Public domain. -+## -+## For details see http://shiftleft.org/papers/vector_aes/ and -+## http://crypto.stanford.edu/vpaes/. -+## -+###################################################################### -+# ARMv8 NEON adaptation by -+# -+# Reason for undertaken effort is that there is at least one popular -+# SoC based on Cortex-A53 that doesn't have crypto extensions. -+# -+# CBC enc ECB enc/dec(*) [bit-sliced enc/dec] -+# Cortex-A53 21.5 18.1/20.6 [17.5/19.8 ] -+# Cortex-A57 36.0(**) 20.4/24.9(**) [14.4/16.6 ] -+# X-Gene 45.9(**) 45.8/57.7(**) [33.1/37.6(**) ] -+# Denver(***) 16.6(**) 15.1/17.8(**) [8.80/9.93 ] -+# Apple A7(***) 22.7(**) 10.9/14.3 [8.45/10.0 ] -+# Mongoose(***) 26.3(**) 21.0/25.0(**) [13.3/16.8 ] -+# -+# (*) ECB denotes approximate result for parallelizable modes -+# such as CBC decrypt, CTR, etc.; -+# (**) these results are worse than scalar compiler-generated -+# code, but it's constant-time and therefore preferred; -+# (***) presented for reference/comparison purposes; -+ -+$flavour = shift; -+while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} -+ -+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; -+( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or -+( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or -+die "can't locate arm-xlate.pl"; -+ -+open OUT,"| \"$^X\" $xlate $flavour $output"; -+*STDOUT=*OUT; -+ -+$code.=<<___; -+#include -+ -+.section .rodata -+ -+.type _vpaes_consts,%object -+.align 7 // totally strategic alignment -+_vpaes_consts: -+.Lk_mc_forward: // mc_forward -+ .quad 0x0407060500030201, 0x0C0F0E0D080B0A09 -+ .quad 0x080B0A0904070605, 0x000302010C0F0E0D -+ .quad 0x0C0F0E0D080B0A09, 0x0407060500030201 -+ .quad 0x000302010C0F0E0D, 0x080B0A0904070605 -+.Lk_mc_backward:// mc_backward -+ .quad 0x0605040702010003, 0x0E0D0C0F0A09080B -+ .quad 0x020100030E0D0C0F, 0x0A09080B06050407 -+ .quad 0x0E0D0C0F0A09080B, 0x0605040702010003 -+ .quad 0x0A09080B06050407, 0x020100030E0D0C0F -+.Lk_sr: // sr -+ .quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 -+ .quad 0x030E09040F0A0500, 0x0B06010C07020D08 -+ .quad 0x0F060D040B020900, 0x070E050C030A0108 -+ .quad 0x0B0E0104070A0D00, 0x0306090C0F020508 -+ -+// -+// "Hot" constants -+// -+.Lk_inv: // inv, inva -+ .quad 0x0E05060F0D080180, 0x040703090A0B0C02 -+ .quad 0x01040A060F0B0780, 0x030D0E0C02050809 -+.Lk_ipt: // input transform (lo, hi) -+ .quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 -+ .quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 -+.Lk_sbo: // sbou, sbot -+ .quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 -+ .quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA -+.Lk_sb1: // sb1u, sb1t -+ .quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF -+ .quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 -+.Lk_sb2: // sb2u, sb2t -+ .quad 0x69EB88400AE12900, 0xC2A163C8AB82234A -+ .quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD -+ -+// -+// Key schedule constants -+// -+.Lk_dksd: // decryption key schedule: invskew x*D -+ .quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 -+ .quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E -+.Lk_dksb: // decryption key schedule: invskew x*B -+ .quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 -+ .quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 -+.Lk_dkse: // decryption key schedule: invskew x*E + 0x63 -+ .quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 -+ .quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 -+.Lk_dks9: // decryption key schedule: invskew x*9 -+ .quad 0xB6116FC87ED9A700, 0x4AED933482255BFC -+ .quad 0x4576516227143300, 0x8BB89FACE9DAFDCE -+ -+.Lk_rcon: // rcon -+ .quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 -+ -+.Lk_opt: // output transform -+ .quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 -+ .quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 -+.Lk_deskew: // deskew tables: inverts the sbox's "skew" -+ .quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A -+ .quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 -+ -+.asciz "Vector Permutation AES for ARMv8, Mike Hamburg (Stanford University)" -+.size _vpaes_consts,.-_vpaes_consts -+.align 6 -+ -+.text -+___ -+ -+{ -+my ($inp,$out,$key) = map("x$_",(0..2)); -+ -+my ($invlo,$invhi,$iptlo,$ipthi,$sbou,$sbot) = map("v$_.16b",(18..23)); -+my ($sb1u,$sb1t,$sb2u,$sb2t) = map("v$_.16b",(24..27)); -+my ($sb9u,$sb9t,$sbdu,$sbdt,$sbbu,$sbbt,$sbeu,$sbet)=map("v$_.16b",(24..31)); -+ -+$code.=<<___; -+## -+## _aes_preheat -+## -+## Fills register %r10 -> .aes_consts (so you can -fPIC) -+## and %xmm9-%xmm15 as specified below. -+## -+.type _vpaes_encrypt_preheat,%function -+.align 4 -+_vpaes_encrypt_preheat: -+ adrp x10, :pg_hi21:.Lk_inv -+ add x10, x10, :lo12:.Lk_inv -+ movi v17.16b, #0x0f -+ ld1 {v18.2d-v19.2d}, [x10],#32 // .Lk_inv -+ ld1 {v20.2d-v23.2d}, [x10],#64 // .Lk_ipt, .Lk_sbo -+ ld1 {v24.2d-v27.2d}, [x10] // .Lk_sb1, .Lk_sb2 -+ ret -+.size _vpaes_encrypt_preheat,.-_vpaes_encrypt_preheat -+ -+## -+## _aes_encrypt_core -+## -+## AES-encrypt %xmm0. -+## -+## Inputs: -+## %xmm0 = input -+## %xmm9-%xmm15 as in _vpaes_preheat -+## (%rdx) = scheduled keys -+## -+## Output in %xmm0 -+## Clobbers %xmm1-%xmm5, %r9, %r10, %r11, %rax -+## Preserves %xmm6 - %xmm8 so you get some local vectors -+## -+## -+.type _vpaes_encrypt_core,%function -+.align 4 -+_vpaes_encrypt_core: -+ mov x9, $key -+ ldr w8, [$key,#240] // pull rounds -+ adrp x11, :pg_hi21:.Lk_mc_forward+16 -+ add x11, x11, :lo12:.Lk_mc_forward+16 -+ // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo -+ ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key -+ and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 -+ ushr v0.16b, v7.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 -+ tbl v1.16b, {$iptlo}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 -+ // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi -+ tbl v2.16b, {$ipthi}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 -+ eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 -+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 -+ b .Lenc_entry -+ -+.align 4 -+.Lenc_loop: -+ // middle of middle round -+ add x10, x11, #0x40 -+ tbl v4.16b, {$sb1t}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u -+ ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] -+ tbl v0.16b, {$sb1u}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t -+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ tbl v5.16b, {$sb2t}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ tbl v2.16b, {$sb2u}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t -+ ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] -+ tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B -+ eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A -+ tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D -+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B -+ tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C -+ eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D -+ and x11, x11, #~(1<<6) // and \$0x30, %r11 # ... mod 4 -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D -+ sub w8, w8, #1 // nr-- -+ -+.Lenc_entry: -+ // top of round -+ and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k -+ ushr v0.16b, v0.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 # 1 = i -+ tbl v5.16b, {$invhi}, v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k -+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j -+ tbl v3.16b, {$invlo}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i -+ tbl v4.16b, {$invlo}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j -+ eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k -+ eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k -+ tbl v2.16b, {$invlo}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak -+ tbl v3.16b, {$invlo}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak -+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io -+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo -+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 -+ cbnz w8, .Lenc_loop -+ -+ // middle of last round -+ add x10, x11, #0x80 -+ // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo -+ // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 -+ tbl v4.16b, {$sbou}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou -+ ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] -+ tbl v0.16b, {$sbot}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t -+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 -+ ret -+.size _vpaes_encrypt_core,.-_vpaes_encrypt_core -+ -+.globl GFp_vpaes_encrypt -+.type GFp_vpaes_encrypt,%function -+.align 4 -+GFp_vpaes_encrypt: -+ AARCH64_SIGN_LINK_REGISTER -+ stp x29,x30,[sp,#-16]! -+ add x29,sp,#0 -+ -+ ld1 {v7.16b}, [$inp] -+ bl _vpaes_encrypt_preheat -+ bl _vpaes_encrypt_core -+ st1 {v0.16b}, [$out] -+ -+ ldp x29,x30,[sp],#16 -+ AARCH64_VALIDATE_LINK_REGISTER -+ ret -+.size GFp_vpaes_encrypt,.-GFp_vpaes_encrypt -+ -+.type _vpaes_encrypt_2x,%function -+.align 4 -+_vpaes_encrypt_2x: -+ mov x9, $key -+ ldr w8, [$key,#240] // pull rounds -+ adrp x11, :pg_hi21:.Lk_mc_forward+16 -+ add x11, x11, :lo12:.Lk_mc_forward+16 -+ // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo -+ ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key -+ and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 -+ ushr v0.16b, v14.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 -+ and v9.16b, v15.16b, v17.16b -+ ushr v8.16b, v15.16b, #4 -+ tbl v1.16b, {$iptlo}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 -+ tbl v9.16b, {$iptlo}, v9.16b -+ // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi -+ tbl v2.16b, {$ipthi}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 -+ tbl v10.16b, {$ipthi}, v8.16b -+ eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 -+ eor v8.16b, v9.16b, v16.16b -+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 -+ eor v8.16b, v8.16b, v10.16b -+ b .Lenc_2x_entry -+ -+.align 4 -+.Lenc_2x_loop: -+ // middle of middle round -+ add x10, x11, #0x40 -+ tbl v4.16b, {$sb1t}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u -+ tbl v12.16b, {$sb1t}, v10.16b -+ ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] -+ tbl v0.16b, {$sb1u}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t -+ tbl v8.16b, {$sb1u}, v11.16b -+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ eor v12.16b, v12.16b, v16.16b -+ tbl v5.16b, {$sb2t}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u -+ tbl v13.16b, {$sb2t}, v10.16b -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ eor v8.16b, v8.16b, v12.16b -+ tbl v2.16b, {$sb2u}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t -+ tbl v10.16b, {$sb2u}, v11.16b -+ ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] -+ tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B -+ tbl v11.16b, {v8.16b}, v1.16b -+ eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A -+ eor v10.16b, v10.16b, v13.16b -+ tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D -+ tbl v8.16b, {v8.16b}, v4.16b -+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B -+ eor v11.16b, v11.16b, v10.16b -+ tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C -+ tbl v12.16b, {v11.16b},v1.16b -+ eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D -+ eor v8.16b, v8.16b, v11.16b -+ and x11, x11, #~(1<<6) // and \$0x30, %r11 # ... mod 4 -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D -+ eor v8.16b, v8.16b, v12.16b -+ sub w8, w8, #1 // nr-- -+ -+.Lenc_2x_entry: -+ // top of round -+ and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k -+ ushr v0.16b, v0.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 # 1 = i -+ and v9.16b, v8.16b, v17.16b -+ ushr v8.16b, v8.16b, #4 -+ tbl v5.16b, {$invhi},v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k -+ tbl v13.16b, {$invhi},v9.16b -+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j -+ eor v9.16b, v9.16b, v8.16b -+ tbl v3.16b, {$invlo},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i -+ tbl v11.16b, {$invlo},v8.16b -+ tbl v4.16b, {$invlo},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j -+ tbl v12.16b, {$invlo},v9.16b -+ eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k -+ eor v11.16b, v11.16b, v13.16b -+ eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k -+ eor v12.16b, v12.16b, v13.16b -+ tbl v2.16b, {$invlo},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak -+ tbl v10.16b, {$invlo},v11.16b -+ tbl v3.16b, {$invlo},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak -+ tbl v11.16b, {$invlo},v12.16b -+ eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io -+ eor v10.16b, v10.16b, v9.16b -+ eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo -+ eor v11.16b, v11.16b, v8.16b -+ ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 -+ cbnz w8, .Lenc_2x_loop -+ -+ // middle of last round -+ add x10, x11, #0x80 -+ // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo -+ // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 -+ tbl v4.16b, {$sbou}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou -+ tbl v12.16b, {$sbou}, v10.16b -+ ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] -+ tbl v0.16b, {$sbot}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t -+ tbl v8.16b, {$sbot}, v11.16b -+ eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k -+ eor v12.16b, v12.16b, v16.16b -+ eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A -+ eor v8.16b, v8.16b, v12.16b -+ tbl v0.16b, {v0.16b},v1.16b // vpshufb %xmm1, %xmm0, %xmm0 -+ tbl v1.16b, {v8.16b},v1.16b -+ ret -+.size _vpaes_encrypt_2x,.-_vpaes_encrypt_2x -+___ -+} -+{ -+my ($inp,$bits,$out,$dir)=("x0","w1","x2","w3"); -+my ($invlo,$invhi,$iptlo,$ipthi,$rcon) = map("v$_.16b",(18..21,8)); -+ -+$code.=<<___; -+######################################################## -+## ## -+## AES key schedule ## -+## ## -+######################################################## -+.type _vpaes_key_preheat,%function -+.align 4 -+_vpaes_key_preheat: -+ adrp x10, :pg_hi21:.Lk_inv -+ add x10, x10, :lo12:.Lk_inv -+ movi v16.16b, #0x5b // .Lk_s63 -+ adrp x11, :pg_hi21:.Lk_sb1 -+ add x11, x11, :lo12:.Lk_sb1 -+ movi v17.16b, #0x0f // .Lk_s0F -+ ld1 {v18.2d-v21.2d}, [x10] // .Lk_inv, .Lk_ipt -+ adrp x10, :pg_hi21:.Lk_dksd -+ add x10, x10, :lo12:.Lk_dksd -+ ld1 {v22.2d-v23.2d}, [x11] // .Lk_sb1 -+ adrp x11, :pg_hi21:.Lk_mc_forward -+ add x11, x11, :lo12:.Lk_mc_forward -+ ld1 {v24.2d-v27.2d}, [x10],#64 // .Lk_dksd, .Lk_dksb -+ ld1 {v28.2d-v31.2d}, [x10],#64 // .Lk_dkse, .Lk_dks9 -+ ld1 {v8.2d}, [x10] // .Lk_rcon -+ ld1 {v9.2d}, [x11] // .Lk_mc_forward[0] -+ ret -+.size _vpaes_key_preheat,.-_vpaes_key_preheat -+ -+.type _vpaes_schedule_core,%function -+.align 4 -+_vpaes_schedule_core: -+ AARCH64_SIGN_LINK_REGISTER -+ stp x29, x30, [sp,#-16]! -+ add x29,sp,#0 -+ -+ bl _vpaes_key_preheat // load the tables -+ -+ ld1 {v0.16b}, [$inp],#16 // vmovdqu (%rdi), %xmm0 # load key (unaligned) -+ -+ // input transform -+ mov v3.16b, v0.16b // vmovdqa %xmm0, %xmm3 -+ bl _vpaes_schedule_transform -+ mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 -+ -+ adrp x10, :pg_hi21:.Lk_sr // lea .Lk_sr(%rip),%r10 -+ add x10, x10, :lo12:.Lk_sr -+ -+ add x8, x8, x10 -+ -+ // encrypting, output zeroth round key after transform -+ st1 {v0.2d}, [$out] // vmovdqu %xmm0, (%rdx) -+ -+ cmp $bits, #192 // cmp \$192, %esi -+ b.hi .Lschedule_256 -+ b.eq .Lschedule_192 -+ // 128: fall though -+ -+## -+## .schedule_128 -+## -+## 128-bit specific part of key schedule. -+## -+## This schedule is really simple, because all its parts -+## are accomplished by the subroutines. -+## -+.Lschedule_128: -+ mov $inp, #10 // mov \$10, %esi -+ -+.Loop_schedule_128: -+ sub $inp, $inp, #1 // dec %esi -+ bl _vpaes_schedule_round -+ cbz $inp, .Lschedule_mangle_last -+ bl _vpaes_schedule_mangle // write output -+ b .Loop_schedule_128 -+ -+## -+## .aes_schedule_192 -+## -+## 192-bit specific part of key schedule. -+## -+## The main body of this schedule is the same as the 128-bit -+## schedule, but with more smearing. The long, high side is -+## stored in %xmm7 as before, and the short, low side is in -+## the high bits of %xmm6. -+## -+## This schedule is somewhat nastier, however, because each -+## round produces 192 bits of key material, or 1.5 round keys. -+## Therefore, on each cycle we do 2 rounds and produce 3 round -+## keys. -+## -+.align 4 -+.Lschedule_192: -+ sub $inp, $inp, #8 -+ ld1 {v0.16b}, [$inp] // vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned) -+ bl _vpaes_schedule_transform // input transform -+ mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save short part -+ eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 # clear 4 -+ ins v6.d[0], v4.d[0] // vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros -+ mov $inp, #4 // mov \$4, %esi -+ -+.Loop_schedule_192: -+ sub $inp, $inp, #1 // dec %esi -+ bl _vpaes_schedule_round -+ ext v0.16b, v6.16b, v0.16b, #8 // vpalignr \$8,%xmm6,%xmm0,%xmm0 -+ bl _vpaes_schedule_mangle // save key n -+ bl _vpaes_schedule_192_smear -+ bl _vpaes_schedule_mangle // save key n+1 -+ bl _vpaes_schedule_round -+ cbz $inp, .Lschedule_mangle_last -+ bl _vpaes_schedule_mangle // save key n+2 -+ bl _vpaes_schedule_192_smear -+ b .Loop_schedule_192 -+ -+## -+## .aes_schedule_256 -+## -+## 256-bit specific part of key schedule. -+## -+## The structure here is very similar to the 128-bit -+## schedule, but with an additional "low side" in -+## %xmm6. The low side's rounds are the same as the -+## high side's, except no rcon and no rotation. -+## -+.align 4 -+.Lschedule_256: -+ ld1 {v0.16b}, [$inp] // vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) -+ bl _vpaes_schedule_transform // input transform -+ mov $inp, #7 // mov \$7, %esi -+ -+.Loop_schedule_256: -+ sub $inp, $inp, #1 // dec %esi -+ bl _vpaes_schedule_mangle // output low result -+ mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 -+ -+ // high round -+ bl _vpaes_schedule_round -+ cbz $inp, .Lschedule_mangle_last -+ bl _vpaes_schedule_mangle -+ -+ // low round. swap xmm7 and xmm6 -+ dup v0.4s, v0.s[3] // vpshufd \$0xFF, %xmm0, %xmm0 -+ movi v4.16b, #0 -+ mov v5.16b, v7.16b // vmovdqa %xmm7, %xmm5 -+ mov v7.16b, v6.16b // vmovdqa %xmm6, %xmm7 -+ bl _vpaes_schedule_low_round -+ mov v7.16b, v5.16b // vmovdqa %xmm5, %xmm7 -+ -+ b .Loop_schedule_256 -+ -+## -+## .aes_schedule_mangle_last -+## -+## Mangler for last round of key schedule -+## Mangles %xmm0 -+## when encrypting, outputs out(%xmm0) ^ 63 -+## when decrypting, outputs unskew(%xmm0) -+## -+## Always called right before return... jumps to cleanup and exits -+## -+.align 4 -+.Lschedule_mangle_last: -+ // schedule last round key from xmm0 -+ adrp x11, :pg_hi21:.Lk_deskew // lea .Lk_deskew(%rip),%r11 # prepare to deskew -+ add x11, x11, :lo12:.Lk_deskew -+ -+ cbnz $dir, .Lschedule_mangle_last_dec -+ -+ // encrypting -+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 -+ adrp x11, :pg_hi21:.Lk_opt // lea .Lk_opt(%rip), %r11 # prepare to output transform -+ add x11, x11, :lo12:.Lk_opt -+ add $out, $out, #32 // add \$32, %rdx -+ tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute -+ -+.Lschedule_mangle_last_dec: -+ ld1 {v20.2d-v21.2d}, [x11] // reload constants -+ sub $out, $out, #16 // add \$-16, %rdx -+ eor v0.16b, v0.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm0, %xmm0 -+ bl _vpaes_schedule_transform // output transform -+ st1 {v0.2d}, [$out] // vmovdqu %xmm0, (%rdx) # save last key -+ -+ // cleanup -+ eor v0.16b, v0.16b, v0.16b // vpxor %xmm0, %xmm0, %xmm0 -+ eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 -+ eor v2.16b, v2.16b, v2.16b // vpxor %xmm2, %xmm2, %xmm2 -+ eor v3.16b, v3.16b, v3.16b // vpxor %xmm3, %xmm3, %xmm3 -+ eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 -+ eor v5.16b, v5.16b, v5.16b // vpxor %xmm5, %xmm5, %xmm5 -+ eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 -+ eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 -+ ldp x29, x30, [sp],#16 -+ AARCH64_VALIDATE_LINK_REGISTER -+ ret -+.size _vpaes_schedule_core,.-_vpaes_schedule_core -+ -+## -+## .aes_schedule_192_smear -+## -+## Smear the short, low side in the 192-bit key schedule. -+## -+## Inputs: -+## %xmm7: high side, b a x y -+## %xmm6: low side, d c 0 0 -+## %xmm13: 0 -+## -+## Outputs: -+## %xmm6: b+c+d b+c 0 0 -+## %xmm0: b+c+d b+c b a -+## -+.type _vpaes_schedule_192_smear,%function -+.align 4 -+_vpaes_schedule_192_smear: -+ movi v1.16b, #0 -+ dup v0.4s, v7.s[3] -+ ins v1.s[3], v6.s[2] // vpshufd \$0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 -+ ins v0.s[0], v7.s[2] // vpshufd \$0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a -+ eor v6.16b, v6.16b, v1.16b // vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0 -+ eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 -+ eor v6.16b, v6.16b, v0.16b // vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a -+ mov v0.16b, v6.16b // vmovdqa %xmm6, %xmm0 -+ ins v6.d[0], v1.d[0] // vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros -+ ret -+.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear -+ -+## -+## .aes_schedule_round -+## -+## Runs one main round of the key schedule on %xmm0, %xmm7 -+## -+## Specifically, runs subbytes on the high dword of %xmm0 -+## then rotates it by one byte and xors into the low dword of -+## %xmm7. -+## -+## Adds rcon from low byte of %xmm8, then rotates %xmm8 for -+## next rcon. -+## -+## Smears the dwords of %xmm7 by xoring the low into the -+## second low, result into third, result into highest. -+## -+## Returns results in %xmm7 = %xmm0. -+## Clobbers %xmm1-%xmm4, %r11. -+## -+.type _vpaes_schedule_round,%function -+.align 4 -+_vpaes_schedule_round: -+ // extract rcon from xmm8 -+ movi v4.16b, #0 // vpxor %xmm4, %xmm4, %xmm4 -+ ext v1.16b, $rcon, v4.16b, #15 // vpalignr \$15, %xmm8, %xmm4, %xmm1 -+ ext $rcon, $rcon, $rcon, #15 // vpalignr \$15, %xmm8, %xmm8, %xmm8 -+ eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 -+ -+ // rotate -+ dup v0.4s, v0.s[3] // vpshufd \$0xFF, %xmm0, %xmm0 -+ ext v0.16b, v0.16b, v0.16b, #1 // vpalignr \$1, %xmm0, %xmm0, %xmm0 -+ -+ // fall through... -+ -+ // low round: same as high round, but no rotation and no rcon. -+_vpaes_schedule_low_round: -+ // smear xmm7 -+ ext v1.16b, v4.16b, v7.16b, #12 // vpslldq \$4, %xmm7, %xmm1 -+ eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 -+ ext v4.16b, v4.16b, v7.16b, #8 // vpslldq \$8, %xmm7, %xmm4 -+ -+ // subbytes -+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k -+ ushr v0.16b, v0.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 # 1 = i -+ eor v7.16b, v7.16b, v4.16b // vpxor %xmm4, %xmm7, %xmm7 -+ tbl v2.16b, {$invhi}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k -+ eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j -+ tbl v3.16b, {$invlo}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i -+ eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k -+ tbl v4.16b, {$invlo}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j -+ eor v7.16b, v7.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm7, %xmm7 -+ tbl v3.16b, {$invlo}, v3.16b // vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak -+ eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k -+ tbl v2.16b, {$invlo}, v4.16b // vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak -+ eor v3.16b, v3.16b, v1.16b // vpxor %xmm1, %xmm3, %xmm3 # 2 = io -+ eor v2.16b, v2.16b, v0.16b // vpxor %xmm0, %xmm2, %xmm2 # 3 = jo -+ tbl v4.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou -+ tbl v1.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t -+ eor v1.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output -+ -+ // add in smeared stuff -+ eor v0.16b, v1.16b, v7.16b // vpxor %xmm7, %xmm1, %xmm0 -+ eor v7.16b, v1.16b, v7.16b // vmovdqa %xmm0, %xmm7 -+ ret -+.size _vpaes_schedule_round,.-_vpaes_schedule_round -+ -+## -+## .aes_schedule_transform -+## -+## Linear-transform %xmm0 according to tables at (%r11) -+## -+## Requires that %xmm9 = 0x0F0F... as in preheat -+## Output in %xmm0 -+## Clobbers %xmm1, %xmm2 -+## -+.type _vpaes_schedule_transform,%function -+.align 4 -+_vpaes_schedule_transform: -+ and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 -+ ushr v0.16b, v0.16b, #4 // vpsrlb \$4, %xmm0, %xmm0 -+ // vmovdqa (%r11), %xmm2 # lo -+ tbl v2.16b, {$iptlo}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2 -+ // vmovdqa 16(%r11), %xmm1 # hi -+ tbl v0.16b, {$ipthi}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0 -+ eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 -+ ret -+.size _vpaes_schedule_transform,.-_vpaes_schedule_transform -+ -+## -+## .aes_schedule_mangle -+## -+## Mangle xmm0 from (basis-transformed) standard version -+## to our version. -+## -+## On encrypt, -+## xor with 0x63 -+## multiply by circulant 0,1,1,1 -+## apply shiftrows transform -+## -+## On decrypt, -+## xor with 0x63 -+## multiply by "inverse mixcolumns" circulant E,B,D,9 -+## deskew -+## apply shiftrows transform -+## -+## -+## Writes out to (%rdx), and increments or decrements it -+## Keeps track of round number mod 4 in %r8 -+## Preserves xmm0 -+## Clobbers xmm1-xmm5 -+## -+.type _vpaes_schedule_mangle,%function -+.align 4 -+_vpaes_schedule_mangle: -+ mov v4.16b, v0.16b // vmovdqa %xmm0, %xmm4 # save xmm0 for later -+ // vmovdqa .Lk_mc_forward(%rip),%xmm5 -+ -+ // encrypting -+ eor v4.16b, v0.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm0, %xmm4 -+ add $out, $out, #16 // add \$16, %rdx -+ tbl v4.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm4 -+ tbl v1.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm1 -+ tbl v3.16b, {v1.16b}, v9.16b // vpshufb %xmm5, %xmm1, %xmm3 -+ eor v4.16b, v4.16b, v1.16b // vpxor %xmm1, %xmm4, %xmm4 -+ ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 -+ eor v3.16b, v3.16b, v4.16b // vpxor %xmm4, %xmm3, %xmm3 -+ -+.Lschedule_mangle_both: -+ tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 -+ add x8, x8, #64-16 // add \$-16, %r8 -+ and x8, x8, #~(1<<6) // and \$0x30, %r8 -+ st1 {v3.2d}, [$out] // vmovdqu %xmm3, (%rdx) -+ ret -+.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle -+ -+.globl GFp_vpaes_set_encrypt_key -+.type GFp_vpaes_set_encrypt_key,%function -+.align 4 -+GFp_vpaes_set_encrypt_key: -+ AARCH64_SIGN_LINK_REGISTER -+ stp x29,x30,[sp,#-16]! -+ add x29,sp,#0 -+ stp d8,d9,[sp,#-16]! // ABI spec says so -+ -+ lsr w9, $bits, #5 // shr \$5,%eax -+ add w9, w9, #5 // \$5,%eax -+ str w9, [$out,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; -+ -+ mov $dir, #0 // mov \$0,%ecx -+ mov x8, #0x30 // mov \$0x30,%r8d -+ bl _vpaes_schedule_core -+ eor x0, x0, x0 -+ -+ ldp d8,d9,[sp],#16 -+ ldp x29,x30,[sp],#16 -+ AARCH64_VALIDATE_LINK_REGISTER -+ ret -+.size GFp_vpaes_set_encrypt_key,.-GFp_vpaes_set_encrypt_key -+___ -+} -+{ -+my ($inp,$out,$len,$key,$ivec) = map("x$_",(0..4)); -+my ($ctr, $ctr_tmp) = ("w6", "w7"); -+ -+# void GFp_vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out, size_t len, -+# const AES_KEY *key, const uint8_t ivec[16]); -+$code.=<<___; -+.globl GFp_vpaes_ctr32_encrypt_blocks -+.type GFp_vpaes_ctr32_encrypt_blocks,%function -+.align 4 -+GFp_vpaes_ctr32_encrypt_blocks: -+ AARCH64_SIGN_LINK_REGISTER -+ stp x29,x30,[sp,#-16]! -+ add x29,sp,#0 -+ stp d8,d9,[sp,#-16]! // ABI spec says so -+ stp d10,d11,[sp,#-16]! -+ stp d12,d13,[sp,#-16]! -+ stp d14,d15,[sp,#-16]! -+ -+ cbz $len, .Lctr32_done -+ -+ // Note, unlike the other functions, $len here is measured in blocks, -+ // not bytes. -+ mov x17, $len -+ mov x2, $key -+ -+ // Load the IV and counter portion. -+ ldr $ctr, [$ivec, #12] -+ ld1 {v7.16b}, [$ivec] -+ -+ bl _vpaes_encrypt_preheat -+ tst x17, #1 -+ rev $ctr, $ctr // The counter is big-endian. -+ b.eq .Lctr32_prep_loop -+ -+ // Handle one block so the remaining block count is even for -+ // _vpaes_encrypt_2x. -+ ld1 {v6.16b}, [$inp], #16 // Load input ahead of time -+ bl _vpaes_encrypt_core -+ eor v0.16b, v0.16b, v6.16b // XOR input and result -+ st1 {v0.16b}, [$out], #16 -+ subs x17, x17, #1 -+ // Update the counter. -+ add $ctr, $ctr, #1 -+ rev $ctr_tmp, $ctr -+ mov v7.s[3], $ctr_tmp -+ b.ls .Lctr32_done -+ -+.Lctr32_prep_loop: -+ // _vpaes_encrypt_core takes its input from v7, while _vpaes_encrypt_2x -+ // uses v14 and v15. -+ mov v15.16b, v7.16b -+ mov v14.16b, v7.16b -+ add $ctr, $ctr, #1 -+ rev $ctr_tmp, $ctr -+ mov v15.s[3], $ctr_tmp -+ -+.Lctr32_loop: -+ ld1 {v6.16b,v7.16b}, [$inp], #32 // Load input ahead of time -+ bl _vpaes_encrypt_2x -+ eor v0.16b, v0.16b, v6.16b // XOR input and result -+ eor v1.16b, v1.16b, v7.16b // XOR input and result (#2) -+ st1 {v0.16b,v1.16b}, [$out], #32 -+ subs x17, x17, #2 -+ // Update the counter. -+ add $ctr_tmp, $ctr, #1 -+ add $ctr, $ctr, #2 -+ rev $ctr_tmp, $ctr_tmp -+ mov v14.s[3], $ctr_tmp -+ rev $ctr_tmp, $ctr -+ mov v15.s[3], $ctr_tmp -+ b.hi .Lctr32_loop -+ -+.Lctr32_done: -+ ldp d14,d15,[sp],#16 -+ ldp d12,d13,[sp],#16 -+ ldp d10,d11,[sp],#16 -+ ldp d8,d9,[sp],#16 -+ ldp x29,x30,[sp],#16 -+ AARCH64_VALIDATE_LINK_REGISTER -+ ret -+.size GFp_vpaes_ctr32_encrypt_blocks,.-GFp_vpaes_ctr32_encrypt_blocks -+___ -+} -+ -+print $code; -+ -+close STDOUT or die "error closing STDOUT"; -diff --git a/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl b/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl -new file mode 100644 -index 0000000..7e52ad6 ---- /dev/null -+++ b/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl -@@ -0,0 +1,294 @@ -+#! /usr/bin/env perl -+# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. -+# -+# Licensed under the OpenSSL license (the "License"). You may not use -+# this file except in compliance with the License. You can obtain a copy -+# in the file LICENSE in the source distribution or at -+# https://www.openssl.org/source/license.html -+ -+# ==================================================================== -+# Written by Andy Polyakov for the OpenSSL -+# project. The module is, however, dual licensed under OpenSSL and -+# CRYPTOGAMS licenses depending on where you obtain it. For further -+# details see http://www.openssl.org/~appro/cryptogams/. -+# ==================================================================== -+ -+# This file was adapted to AArch64 from the 32-bit version in ghash-armv4.pl. It -+# implements the multiplication algorithm described in: -+# -+# Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software -+# Polynomial Multiplication on ARM Processors using the NEON Engine. -+# -+# http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf -+# -+# The main distinction to keep in mind between 32-bit NEON and AArch64 SIMD is -+# AArch64 cannot compute over the upper halves of SIMD registers. In 32-bit -+# NEON, the low and high halves of the 128-bit register q0 are accessible as -+# 64-bit registers d0 and d1, respectively. In AArch64, dN is the lower half of -+# vN. Where the 32-bit version would use the upper half, this file must keep -+# halves in separate registers. -+# -+# The other distinction is in syntax. 32-bit NEON embeds lane information in the -+# instruction name, while AArch64 uses suffixes on the registers. For instance, -+# left-shifting 64-bit lanes of a SIMD register in 32-bit would be written: -+# -+# vshl.i64 q0, q0, #1 -+# -+# in 64-bit, it would be written: -+# -+# shl v0.2d, v0.2d, #1 -+# -+# See Programmer's Guide for ARMv8-A, section 7 for details. -+# http://infocenter.arm.com/help/topic/com.arm.doc.den0024a/DEN0024A_v8_architecture_PG.pdf -+# -+# Finally, note the 8-bit and 64-bit polynomial multipliers in AArch64 differ -+# only by suffix. pmull vR.8h, vA.8b, vB.8b multiplies eight 8-bit polynomials -+# and is always available. pmull vR.1q, vA.1d, vB.1d multiplies a 64-bit -+# polynomial and is conditioned on the PMULL extension. This file emulates the -+# latter with the former. -+ -+use strict; -+ -+my $flavour = shift; -+my $output; -+if ($flavour=~/\w[\w\-]*\.\w+$/) { $output=$flavour; undef $flavour; } -+else { while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} } -+ -+if ($flavour && $flavour ne "void") { -+ $0 =~ m/(.*[\/\\])[^\/\\]+$/; -+ my $dir = $1; -+ my $xlate; -+ ( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or -+ ( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or -+ die "can't locate arm-xlate.pl"; -+ -+ open OUT,"| \"$^X\" $xlate $flavour $output"; -+ *STDOUT=*OUT; -+} else { -+ open OUT,">$output"; -+ *STDOUT=*OUT; -+} -+ -+my ($Xi, $Htbl, $inp, $len) = map("x$_", (0..3)); # argument block -+my ($Xl, $Xm, $Xh, $INlo, $INhi) = map("v$_", (0..4)); -+my ($Hlo, $Hhi, $Hhl) = map("v$_", (5..7)); -+# d8-d15 are callee-saved, so avoid v8-v15. AArch64 SIMD has plenty of registers -+# to spare. -+my ($t0, $t1, $t2, $t3) = map("v$_", (16..19)); -+my ($t0l_t1l, $t0h_t1h, $t2l_t3l, $t2h_t3h) = map("v$_", (20..23)); -+my ($k48_k32, $k16_k0) = map("v$_", (24..25)); -+ -+my $code = ""; -+ -+# clmul64x64 emits code which emulates pmull $r.1q, $a.1d, $b.1d. $r, $a, and $b -+# must be distinct from $t* and $k*. $t* are clobbered by the emitted code. -+sub clmul64x64 { -+my ($r, $a, $b) = @_; -+$code .= <<___; -+ ext $t0.8b, $a.8b, $a.8b, #1 // A1 -+ pmull $t0.8h, $t0.8b, $b.8b // F = A1*B -+ ext $r.8b, $b.8b, $b.8b, #1 // B1 -+ pmull $r.8h, $a.8b, $r.8b // E = A*B1 -+ ext $t1.8b, $a.8b, $a.8b, #2 // A2 -+ pmull $t1.8h, $t1.8b, $b.8b // H = A2*B -+ ext $t3.8b, $b.8b, $b.8b, #2 // B2 -+ pmull $t3.8h, $a.8b, $t3.8b // G = A*B2 -+ ext $t2.8b, $a.8b, $a.8b, #3 // A3 -+ eor $t0.16b, $t0.16b, $r.16b // L = E + F -+ pmull $t2.8h, $t2.8b, $b.8b // J = A3*B -+ ext $r.8b, $b.8b, $b.8b, #3 // B3 -+ eor $t1.16b, $t1.16b, $t3.16b // M = G + H -+ pmull $r.8h, $a.8b, $r.8b // I = A*B3 -+ -+ // Here we diverge from the 32-bit version. It computes the following -+ // (instructions reordered for clarity): -+ // -+ // veor \$t0#lo, \$t0#lo, \$t0#hi @ t0 = P0 + P1 (L) -+ // vand \$t0#hi, \$t0#hi, \$k48 -+ // veor \$t0#lo, \$t0#lo, \$t0#hi -+ // -+ // veor \$t1#lo, \$t1#lo, \$t1#hi @ t1 = P2 + P3 (M) -+ // vand \$t1#hi, \$t1#hi, \$k32 -+ // veor \$t1#lo, \$t1#lo, \$t1#hi -+ // -+ // veor \$t2#lo, \$t2#lo, \$t2#hi @ t2 = P4 + P5 (N) -+ // vand \$t2#hi, \$t2#hi, \$k16 -+ // veor \$t2#lo, \$t2#lo, \$t2#hi -+ // -+ // veor \$t3#lo, \$t3#lo, \$t3#hi @ t3 = P6 + P7 (K) -+ // vmov.i64 \$t3#hi, #0 -+ // -+ // \$kN is a mask with the bottom N bits set. AArch64 cannot compute on -+ // upper halves of SIMD registers, so we must split each half into -+ // separate registers. To compensate, we pair computations up and -+ // parallelize. -+ -+ ext $t3.8b, $b.8b, $b.8b, #4 // B4 -+ eor $t2.16b, $t2.16b, $r.16b // N = I + J -+ pmull $t3.8h, $a.8b, $t3.8b // K = A*B4 -+ -+ // This can probably be scheduled more efficiently. For now, we just -+ // pair up independent instructions. -+ zip1 $t0l_t1l.2d, $t0.2d, $t1.2d -+ zip1 $t2l_t3l.2d, $t2.2d, $t3.2d -+ zip2 $t0h_t1h.2d, $t0.2d, $t1.2d -+ zip2 $t2h_t3h.2d, $t2.2d, $t3.2d -+ eor $t0l_t1l.16b, $t0l_t1l.16b, $t0h_t1h.16b -+ eor $t2l_t3l.16b, $t2l_t3l.16b, $t2h_t3h.16b -+ and $t0h_t1h.16b, $t0h_t1h.16b, $k48_k32.16b -+ and $t2h_t3h.16b, $t2h_t3h.16b, $k16_k0.16b -+ eor $t0l_t1l.16b, $t0l_t1l.16b, $t0h_t1h.16b -+ eor $t2l_t3l.16b, $t2l_t3l.16b, $t2h_t3h.16b -+ zip1 $t0.2d, $t0l_t1l.2d, $t0h_t1h.2d -+ zip1 $t2.2d, $t2l_t3l.2d, $t2h_t3h.2d -+ zip2 $t1.2d, $t0l_t1l.2d, $t0h_t1h.2d -+ zip2 $t3.2d, $t2l_t3l.2d, $t2h_t3h.2d -+ -+ ext $t0.16b, $t0.16b, $t0.16b, #15 // t0 = t0 << 8 -+ ext $t1.16b, $t1.16b, $t1.16b, #14 // t1 = t1 << 16 -+ pmull $r.8h, $a.8b, $b.8b // D = A*B -+ ext $t3.16b, $t3.16b, $t3.16b, #12 // t3 = t3 << 32 -+ ext $t2.16b, $t2.16b, $t2.16b, #13 // t2 = t2 << 24 -+ eor $t0.16b, $t0.16b, $t1.16b -+ eor $t2.16b, $t2.16b, $t3.16b -+ eor $r.16b, $r.16b, $t0.16b -+ eor $r.16b, $r.16b, $t2.16b -+___ -+} -+ -+$code .= <<___; -+#include -+ -+.text -+ -+.global GFp_gcm_init_neon -+.type GFp_gcm_init_neon,%function -+.align 4 -+GFp_gcm_init_neon: -+ AARCH64_VALID_CALL_TARGET -+ // This function is adapted from gcm_init_v8. xC2 is t3. -+ ld1 {$t1.2d}, [x1] // load H -+ movi $t3.16b, #0xe1 -+ shl $t3.2d, $t3.2d, #57 // 0xc2.0 -+ ext $INlo.16b, $t1.16b, $t1.16b, #8 -+ ushr $t2.2d, $t3.2d, #63 -+ dup $t1.4s, $t1.s[1] -+ ext $t0.16b, $t2.16b, $t3.16b, #8 // t0=0xc2....01 -+ ushr $t2.2d, $INlo.2d, #63 -+ sshr $t1.4s, $t1.4s, #31 // broadcast carry bit -+ and $t2.16b, $t2.16b, $t0.16b -+ shl $INlo.2d, $INlo.2d, #1 -+ ext $t2.16b, $t2.16b, $t2.16b, #8 -+ and $t0.16b, $t0.16b, $t1.16b -+ orr $INlo.16b, $INlo.16b, $t2.16b // H<<<=1 -+ eor $Hlo.16b, $INlo.16b, $t0.16b // twisted H -+ st1 {$Hlo.2d}, [x0] // store Htable[0] -+ ret -+.size GFp_gcm_init_neon,.-GFp_gcm_init_neon -+ -+.global GFp_gcm_gmult_neon -+.type GFp_gcm_gmult_neon,%function -+.align 4 -+GFp_gcm_gmult_neon: -+ AARCH64_VALID_CALL_TARGET -+ ld1 {$INlo.16b}, [$Xi] // load Xi -+ ld1 {$Hlo.1d}, [$Htbl], #8 // load twisted H -+ ld1 {$Hhi.1d}, [$Htbl] -+ adrp x9, :pg_hi21:.Lmasks // load constants -+ add x9, x9, :lo12:.Lmasks -+ ld1 {$k48_k32.2d, $k16_k0.2d}, [x9] -+ rev64 $INlo.16b, $INlo.16b // byteswap Xi -+ ext $INlo.16b, $INlo.16b, $INlo.16b, #8 -+ eor $Hhl.8b, $Hlo.8b, $Hhi.8b // Karatsuba pre-processing -+ -+ mov $len, #16 -+ b .Lgmult_neon -+.size GFp_gcm_gmult_neon,.-GFp_gcm_gmult_neon -+ -+.global GFp_gcm_ghash_neon -+.type GFp_gcm_ghash_neon,%function -+.align 4 -+GFp_gcm_ghash_neon: -+ AARCH64_VALID_CALL_TARGET -+ ld1 {$Xl.16b}, [$Xi] // load Xi -+ ld1 {$Hlo.1d}, [$Htbl], #8 // load twisted H -+ ld1 {$Hhi.1d}, [$Htbl] -+ adrp x9, :pg_hi21:.Lmasks // load constants -+ add x9, x9, :lo12:.Lmasks -+ ld1 {$k48_k32.2d, $k16_k0.2d}, [x9] -+ rev64 $Xl.16b, $Xl.16b // byteswap Xi -+ ext $Xl.16b, $Xl.16b, $Xl.16b, #8 -+ eor $Hhl.8b, $Hlo.8b, $Hhi.8b // Karatsuba pre-processing -+ -+.Loop_neon: -+ ld1 {$INlo.16b}, [$inp], #16 // load inp -+ rev64 $INlo.16b, $INlo.16b // byteswap inp -+ ext $INlo.16b, $INlo.16b, $INlo.16b, #8 -+ eor $INlo.16b, $INlo.16b, $Xl.16b // inp ^= Xi -+ -+.Lgmult_neon: -+ // Split the input into $INlo and $INhi. (The upper halves are unused, -+ // so it is okay to leave them alone.) -+ ins $INhi.d[0], $INlo.d[1] -+___ -+&clmul64x64 ($Xl, $Hlo, $INlo); # H.lo·Xi.lo -+$code .= <<___; -+ eor $INlo.8b, $INlo.8b, $INhi.8b // Karatsuba pre-processing -+___ -+&clmul64x64 ($Xm, $Hhl, $INlo); # (H.lo+H.hi)·(Xi.lo+Xi.hi) -+&clmul64x64 ($Xh, $Hhi, $INhi); # H.hi·Xi.hi -+$code .= <<___; -+ ext $t0.16b, $Xl.16b, $Xh.16b, #8 -+ eor $Xm.16b, $Xm.16b, $Xl.16b // Karatsuba post-processing -+ eor $Xm.16b, $Xm.16b, $Xh.16b -+ eor $Xm.16b, $Xm.16b, $t0.16b // Xm overlaps Xh.lo and Xl.hi -+ ins $Xl.d[1], $Xm.d[0] // Xh|Xl - 256-bit result -+ // This is a no-op due to the ins instruction below. -+ // ins $Xh.d[0], $Xm.d[1] -+ -+ // equivalent of reduction_avx from ghash-x86_64.pl -+ shl $t1.2d, $Xl.2d, #57 // 1st phase -+ shl $t2.2d, $Xl.2d, #62 -+ eor $t2.16b, $t2.16b, $t1.16b // -+ shl $t1.2d, $Xl.2d, #63 -+ eor $t2.16b, $t2.16b, $t1.16b // -+ // Note Xm contains {Xl.d[1], Xh.d[0]}. -+ eor $t2.16b, $t2.16b, $Xm.16b -+ ins $Xl.d[1], $t2.d[0] // Xl.d[1] ^= t2.d[0] -+ ins $Xh.d[0], $t2.d[1] // Xh.d[0] ^= t2.d[1] -+ -+ ushr $t2.2d, $Xl.2d, #1 // 2nd phase -+ eor $Xh.16b, $Xh.16b,$Xl.16b -+ eor $Xl.16b, $Xl.16b,$t2.16b // -+ ushr $t2.2d, $t2.2d, #6 -+ ushr $Xl.2d, $Xl.2d, #1 // -+ eor $Xl.16b, $Xl.16b, $Xh.16b // -+ eor $Xl.16b, $Xl.16b, $t2.16b // -+ -+ subs $len, $len, #16 -+ bne .Loop_neon -+ -+ rev64 $Xl.16b, $Xl.16b // byteswap Xi and write -+ ext $Xl.16b, $Xl.16b, $Xl.16b, #8 -+ st1 {$Xl.16b}, [$Xi] -+ -+ ret -+.size GFp_gcm_ghash_neon,.-GFp_gcm_ghash_neon -+ -+.section .rodata -+.align 4 -+.Lmasks: -+.quad 0x0000ffffffffffff // k48 -+.quad 0x00000000ffffffff // k32 -+.quad 0x000000000000ffff // k16 -+.quad 0x0000000000000000 // k0 -+.asciz "GHASH for ARMv8, derived from ARMv4 version by " -+.align 2 -+___ -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/geo; -+ -+ print $_,"\n"; -+} -+close STDOUT or die "error closing STDOUT"; # enforce flush --- -Efraim Flashner רנשלפ םירפא -GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 -Confidentiality cannot be guaranteed on emails sent or received unencrypted - diff --git a/gnu/packages/patches/rust-ring-0.16-test-files.patch b/gnu/packages/patches/rust-ring-0.16-test-files.patch deleted file mode 100644 index dbe5c0f4ee..0000000000 --- a/gnu/packages/patches/rust-ring-0.16-test-files.patch +++ /dev/null @@ -1,54 +0,0 @@ -This file exists in the upstream repository at the commit which -corresponds to the ring-0.16.20 release, but was excluded from the -release tarball. - ---- - tests/ed25519_verify_tests.txt | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - create mode 100644 tests/ed25519_verify_tests.txt - -diff --git a/tests/ed25519_verify_tests.txt b/tests/ed25519_verify_tests.txt -new file mode 100644 -index 0000000..74c94b3 ---- /dev/null -+++ b/tests/ed25519_verify_tests.txt -@@ -0,0 +1,34 @@ -+# BoringSSL TEST(Ed25519Test Malleability) -+ -+# Control; S is in range. -+MESSAGE = 54657374 -+SIG = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d -+PUB = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa -+Result = P -+ -+# Same as above, but with the order L added to S so it is out of range. -+# BoringSSL commit 472ba2c2dd52d06a657a63b7fbf02732a6649d21 -+MESSAGE = 54657374 -+SIG = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d -+PUB = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa -+Result = F -+ -+ -+# BoringSSL commit 3094902fcdc2db2cc832fa854b9a6a8be383926c -+MESSAGE = 124e583f8b8eca58bb29c271b41d36986bbc45541f8e51f9cb0133eca447601e -+SIG = dac119d6ca87fc59ae611c157048f4d4fc932a149dbe20ec6effd1436abf83ea05c7df0fef06147241259113909bc71bd3c53ba4464ffcad3c0968f2ffffff0f -+PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86 -+Result = P -+ -+# Control. Same key as above; same message and signature as below, except S is in range. -+PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86 -+MESSAGE = 6a0bc2b0057cedfc0fa2e3f7f7d39279b30f454a69dfd1117c758d86b19d85e0 -+SIG = 0971f86d2c9c78582524a103cb9cf949522ae528f8054dc20107d999be673ff4f58ac9d20ec563133cabc6230b1db8625f8446639ede46ad4df4053000000000 -+Result = P -+ -+# Same key as above, but S is out of range. -+# BoringSSL commit 472ba2c2dd52d06a657a63b7fbf02732a6649d21 -+PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86 -+MESSAGE = 6a0bc2b0057cedfc0fa2e3f7f7d39279b30f454a69dfd1117c758d86b19d85e0 -+SIG = 0971f86d2c9c78582524a103cb9cf949522ae528f8054dc20107d999be673ff4e25ebf2f2928766b1248bec6e91697775f8446639ede46ad4df4053000000010 -+Result = F --- -Efraim Flashner רנשלפ םירפא -GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 -Confidentiality cannot be guaranteed on emails sent or received unencrypted - diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 77e4f24f50..0675fee658 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -114,8 +114,6 @@ ("rust-tokio" ,rust-tokio-1) ("rust-tokio-rustls" ,rust-tokio-rustls-0.22) ("rust-url" ,rust-url-2)))) - (native-inputs - (list perl)) (home-page "https://github.com/mbrubeck/agate") (synopsis "Very simple server for the Gemini hypertext protocol") (description @@ -192,7 +190,7 @@ low-end hardware and serving many concurrent requests.") (("rust-serde-bytes" ,rust-serde-bytes-0.11) ("rust-serde-derive" ,rust-serde-derive-1)))) (native-inputs - (list perl pkg-config)) + (list pkg-config)) (inputs (list at-spi2-core gtk @@ -1193,8 +1191,7 @@ on the terminal in a visually appealing way.") (list python-tomli)) (inputs (list bzip2)) (native-inputs - (list perl - python-wheel + (list python-wheel python-wrapper python-setuptools-rust)) (home-page "https://github.com/pyo3/maturin") @@ -1504,7 +1501,7 @@ browsers.") (substitute* "Cargo.toml" ((".*\"vendored-libgit2\".*") ""))))))) (native-inputs - (list perl pkg-config)) + (list pkg-config)) (inputs (list libgit2-1.4 libssh2 @@ -1695,8 +1692,6 @@ rebase.") (("rust-boxxy" ,rust-boxxy-0.12)))) (inputs (list libpcap libseccomp)) - (native-inputs - (list perl)) (home-page "https://github.com/kpcyrd/sniffglue") (synopsis "Secure multithreaded packet sniffer") (description @@ -2366,7 +2361,7 @@ consecutive lines and since program start.") ;"dbus_mpris" ; Conflicts with rust-chrono-0.4 version. "pulseaudio_backend" "rodio_backend"))) - (native-inputs (list perl pkg-config)) + (native-inputs (list pkg-config)) (inputs (list alsa-lib dbus pulseaudio)) (home-page "https://github.com/Spotifyd/spotifyd") (synopsis "Spotify streaming daemon with Spotify Connect support") @@ -2543,7 +2538,7 @@ daemon which executes them.") ("rust-predicates" ,rust-predicates-2) ("rust-tempfile" ,rust-tempfile-3)))) (native-inputs - (list perl pkg-config)) + (list pkg-config)) (inputs (list openssl)) (home-page "https://github.com/dbrgn/tealdeer/") -- cgit 1.4.1 From e2cf93aaa8c8ec3d58fc1661c01f9700d201ee7c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Dec 2023 09:26:04 +0200 Subject: gnu: rust-cargo-edit: Update to 0.12.2. * gnu/packages/rust-apps.scm (rust-cargo-edit): Update to 0.12.2. [source]: Add patch. [cargo-inputs]: Add rust-clap-cargo-0.12, rust-home-0.5, rust-toml-0.7. Replace rust-clap-3 with 4, rust-crates-index-0.18 with 0.19, rust-git2-0.14 with 0.17, rust-toml-edit-0.14 with 0.19. Remove rust-dirs-next-2, rust-ureq-2. [cargo-development-inputs]: Replace rust-predicates-2 with 3, rust-snapbox-0.2 with 0.4, rust-trycmd-0.13 with 0.14. [inputs]: Replace libgit2-1.4 with 1.6. * gnu/packages/patches/rust-cargo-edit-remove-ureq.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I71ac74de44e322eb9f5233262b3a989395b592ff --- gnu/local.mk | 1 + .../patches/rust-cargo-edit-remove-ureq.patch | 33 ++++++++++++++++++++++ gnu/packages/rust-apps.scm | 26 +++++++++-------- 3 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 gnu/packages/patches/rust-cargo-edit-remove-ureq.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index b8de8c3141..7dcd65e840 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2001,6 +2001,7 @@ dist_patch_DATA = \ %D%/packages/patches/rustc-1.54.0-src.patch \ %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \ %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ + %D%/packages/patches/rust-cargo-edit-remove-ureq.patch \ %D%/packages/patches/rust-ring-0.17-ring-core.patch \ %D%/packages/patches/i3status-rust-enable-unstable-features.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ diff --git a/gnu/packages/patches/rust-cargo-edit-remove-ureq.patch b/gnu/packages/patches/rust-cargo-edit-remove-ureq.patch new file mode 100644 index 0000000000..99c58103c7 --- /dev/null +++ b/gnu/packages/patches/rust-cargo-edit-remove-ureq.patch @@ -0,0 +1,33 @@ +This is modeled after the upstream commit which removes ureq as a dependency. + +diff --git a/Cargo.toml b/Cargo.toml +index 5a787e1..27171c7 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -201,26 +201,3 @@ test-external-apis = [] + upgrade = ["cli"] + vendored-libgit2 = ["git2/vendored-libgit2"] + vendored-openssl = ["git2/vendored-openssl"] +- +-[target."cfg(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\"))".dependencies.ureq] +-version = "2.7.1" +-features = [ +- "tls", +- "json", +- "socks", +- "socks-proxy", +-] +-default-features = false +- +-[target."cfg(not(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\")))".dependencies.native-tls] +-version = "^0.2" +- +-[target."cfg(not(any(target_arch = \"x86_64\", target_arch = \"arm\", target_arch = \"x86\", target_arch = \"aarch64\")))".dependencies.ureq] +-version = "2.7.1" +-features = [ +- "native-tls", +- "json", +- "socks", +- "socks-proxy", +-] +-default-features = false diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 0675fee658..f88d65d49d 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -1450,14 +1450,15 @@ browsers.") (define-public rust-cargo-edit (package (name "rust-cargo-edit") - (version "0.10.4") + (version "0.12.2") (source (origin (method url-fetch) (uri (crate-uri "cargo-edit" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "19wfjz7z4kqjfjmnq1bl6dhsvskjy6r656fqmbha9dfdspbsnmd0")))) + "03lxi7z1n9xq287lqvqnhzg5r0yv1fi3569ryw3jqcrvv8nqs0c2")) + (patches (search-patches "rust-cargo-edit-remove-ureq.patch")))) (build-system cargo-build-system) (arguments `(#:install-source? #f @@ -1466,14 +1467,15 @@ browsers.") #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1) ("rust-cargo-metadata" ,rust-cargo-metadata-0.15) - ("rust-clap" ,rust-clap-3) + ("rust-clap" ,rust-clap-4) + ("rust-clap-cargo" ,rust-clap-cargo-0.12) ("rust-concolor-control" ,rust-concolor-control-0.0.7) - ("rust-crates-index" ,rust-crates-index-0.18) - ("rust-dirs-next" ,rust-dirs-next-2) + ("rust-crates-index" ,rust-crates-index-0.19) ("rust-dunce" ,rust-dunce-1) ("rust-env-proxy" ,rust-env-proxy-0.4) - ("rust-git2" ,rust-git2-0.14) + ("rust-git2" ,rust-git2-0.17) ("rust-hex" ,rust-hex-0.4) + ("rust-home" ,rust-home-0.5) ("rust-indexmap" ,rust-indexmap-1) ("rust-native-tls" ,rust-native-tls-0.2) ("rust-pathdiff" ,rust-pathdiff-0.2) @@ -1484,15 +1486,15 @@ browsers.") ("rust-serde-json" ,rust-serde-json-1) ("rust-subprocess" ,rust-subprocess-0.2) ("rust-termcolor" ,rust-termcolor-1) - ("rust-toml-edit" ,rust-toml-edit-0.14) - ("rust-ureq" ,rust-ureq-2) + ("rust-toml" ,rust-toml-0.7) + ("rust-toml-edit" ,rust-toml-edit-0.19) ("rust-url" ,rust-url-2)) #:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-2) ("rust-assert-fs" ,rust-assert-fs-1) - ("rust-predicates" ,rust-predicates-2) - ("rust-snapbox" ,rust-snapbox-0.2) - ("rust-trycmd" ,rust-trycmd-0.13) + ("rust-predicates" ,rust-predicates-3) + ("rust-snapbox" ,rust-snapbox-0.4) + ("rust-trycmd" ,rust-trycmd-0.14) ("rust-url" ,rust-url-2)) #:phases (modify-phases %standard-phases @@ -1503,7 +1505,7 @@ browsers.") (native-inputs (list pkg-config)) (inputs - (list libgit2-1.4 + (list libgit2-1.6 libssh2 openssl zlib)) -- cgit 1.4.1 From 8f99a3e60477f8ee1a51b061ea4d969da0e24d6c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 08:19:59 +0200 Subject: gnu: rust-trash-2: Update to 2.1.5. * gnu/packages/crates-io.scm (rust-trash-2): Update to 2.1.5. [source]: Add patch. [cargo-inputs]: Replace rust-windows-0.9 with 0.44. * gnu/packages/patches/rust-trash-2-update-windows.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I707b2139800d37f3609958251893e5948e40cd34 --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 7 +- .../patches/rust-trash-2-update-windows.patch | 132 +++++++++++++++++++++ 3 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/rust-trash-2-update-windows.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 7dcd65e840..1fc05619a7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2008,6 +2008,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \ %D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \ %D%/packages/patches/rust-nettle-disable-vendor.patch \ + %D%/packages/patches/rust-trash-2-update-windows.patch \ %D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \ %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \ %D%/packages/patches/rw-igraph-0.10.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 2ce531eda0..5e8bc0e64a 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -85416,14 +85416,15 @@ be used directly. See @code{rust-trackable} for more information.") (define-public rust-trash-2 (package (name "rust-trash") - (version "2.1.3") + (version "2.1.5") (source (origin (method url-fetch) (uri (crate-uri "trash" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "14ji8b84ghwkln01v90ahhl2jkxv2qxkm0afprzphf1ln41k6nqi")))) + (base32 "0djjjvvpxhx4li3y0jp1q48xabvazzif8g7z6110rm4chikh62gy")) + (patches (search-patches "rust-trash-2-update-windows.patch")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -85434,7 +85435,7 @@ be used directly. See @code{rust-trackable} for more information.") ("rust-once-cell" ,rust-once-cell-1) ("rust-scopeguard" ,rust-scopeguard-1) ("rust-url" ,rust-url-2) - ("rust-windows" ,rust-windows-0.9)) + ("rust-windows" ,rust-windows-0.44)) #:cargo-development-inputs (("rust-chrono" ,rust-chrono-0.4) ("rust-env-logger" ,rust-env-logger-0.9) diff --git a/gnu/packages/patches/rust-trash-2-update-windows.patch b/gnu/packages/patches/rust-trash-2-update-windows.patch new file mode 100644 index 0000000000..f6b13a4658 --- /dev/null +++ b/gnu/packages/patches/rust-trash-2-update-windows.patch @@ -0,0 +1,132 @@ +This patch is taken from upstream so we can use an already packaged +version of the windows crate. + +diff --git a/Cargo.toml b/Cargo.toml +index 2c28dfe..6b61771 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -87,9 +87,8 @@ version = "0.2.7" + version = "1.0.0" + + [target."cfg(windows)".dependencies.windows] +-version = "0.37.0" ++version = "0.44.0" + features = [ +- "alloc", + "Win32_Foundation", + "Win32_System_Com_StructuredStorage", + "Win32_UI_Shell_PropertiesSystem", +diff --git a/Cargo.toml.orig b/Cargo.toml.orig +index 894a78c..c17fc02 100644 +--- a/Cargo.toml.orig ++++ b/Cargo.toml.orig +@@ -44,7 +44,7 @@ once_cell = "1.7.2" + once_cell = "1.7.2" + + [target.'cfg(windows)'.dependencies] +-windows = { version = "0.37.0", features = [ "alloc", ++windows = { version = "0.44.0", features = [ + "Win32_Foundation", + "Win32_System_Com_StructuredStorage", + "Win32_UI_Shell_PropertiesSystem", +diff --git a/src/windows.rs b/src/windows.rs +index c1379d3..3f4426b 100644 +--- a/src/windows.rs ++++ b/src/windows.rs +@@ -1,7 +1,6 @@ + use crate::{Error, TrashContext, TrashItem}; + use std::{ +- ffi::{OsStr, OsString}, +- mem::MaybeUninit, ++ ffi::{c_void, OsStr, OsString}, + os::windows::{ffi::OsStrExt, prelude::*}, + path::PathBuf, + }; +@@ -66,7 +65,7 @@ impl TrashContext { + let shi: IShellItem = + SHCreateItemFromParsingName(PCWSTR(wide_path_slice.as_ptr()), None)?; + +- pfo.DeleteItem(shi, None)?; ++ pfo.DeleteItem(&shi, None)?; + } + pfo.PerformOperations()?; + Ok(()) +@@ -78,28 +77,18 @@ pub fn list() -> Result, Error> { + ensure_com_initialized(); + unsafe { + let mut item_vec = Vec::new(); +- let mut recycle_bin = MaybeUninit::>::uninit(); + +- SHGetKnownFolderItem( +- &FOLDERID_RecycleBinFolder, +- KF_FLAG_DEFAULT, +- HANDLE::default(), +- &IShellItem::IID, +- recycle_bin.as_mut_ptr() as _, +- )?; +- +- let recycle_bin = recycle_bin.assume_init().ok_or(Error::Unknown { +- description: "SHGetKnownFolderItem gave NULL for FOLDERID_RecycleBinFolder".into(), +- })?; ++ let recycle_bin: IShellItem = ++ SHGetKnownFolderItem(&FOLDERID_RecycleBinFolder, KF_FLAG_DEFAULT, HANDLE::default())?; + + let pesi: IEnumShellItems = recycle_bin.BindToHandler(None, &BHID_EnumItems)?; +- let mut fetched: u32 = 0; + + loop { ++ let mut fetched_count: u32 = 0; + let mut arr = [None]; +- pesi.Next(&mut arr, &mut fetched)?; ++ pesi.Next(&mut arr, Some(&mut fetched_count as *mut u32))?; + +- if fetched == 0 { ++ if fetched_count == 0 { + break; + } + +@@ -145,7 +134,7 @@ where + at_least_one = true; + let id_as_wide: Vec = item.id.encode_wide().chain(std::iter::once(0)).collect(); + let parsing_name = PCWSTR(id_as_wide.as_ptr()); +- let trash_item: IShellItem = SHCreateItemFromParsingName(&parsing_name, None)?; ++ let trash_item: IShellItem = SHCreateItemFromParsingName(parsing_name, None)?; + pfo.DeleteItem(&trash_item, None)?; + } + if at_least_one { +@@ -181,7 +170,7 @@ where + for item in items.iter() { + let id_as_wide: Vec = item.id.encode_wide().chain(std::iter::once(0)).collect(); + let parsing_name = PCWSTR(id_as_wide.as_ptr()); +- let trash_item: IShellItem = SHCreateItemFromParsingName(&parsing_name, None)?; ++ let trash_item: IShellItem = SHCreateItemFromParsingName(parsing_name, None)?; + let parent_path_wide: Vec<_> = + item.original_parent.as_os_str().encode_wide().chain(std::iter::once(0)).collect(); + let orig_folder_shi: IShellItem = +@@ -191,7 +180,7 @@ where + .chain(std::iter::once(0)) + .collect(); + +- pfo.MoveItem(trash_item, orig_folder_shi, PCWSTR(name_wstr.as_ptr()), None)?; ++ pfo.MoveItem(&trash_item, &orig_folder_shi, PCWSTR(name_wstr.as_ptr()), None)?; + } + if !items.is_empty() { + pfo.PerformOperations()?; +@@ -203,7 +192,7 @@ where + unsafe fn get_display_name(psi: &IShellItem, sigdnname: SIGDN) -> Result { + let name = psi.GetDisplayName(sigdnname)?; + let result = wstr_to_os_string(name); +- CoTaskMemFree(name.0 as _); ++ CoTaskMemFree(Some(name.0 as *const c_void)); + Ok(result) + } + +@@ -257,7 +246,7 @@ impl CoInitializer { + if cfg!(feature = "coinit_speed_over_memory") { + init_mode |= COINIT_SPEED_OVER_MEMORY; + } +- let hr = unsafe { CoInitializeEx(std::ptr::null_mut(), init_mode) }; ++ let hr = unsafe { CoInitializeEx(None, init_mode) }; + if hr.is_err() { + panic!("Call to CoInitializeEx failed. HRESULT: {:?}. Consider using `trash` with the feature `coinit_multithreaded`", hr); + } -- cgit 1.4.1 From 27f4d9a2c0f85df6925a28137e15d8e585e9b6cd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 10:54:32 +0200 Subject: gnu: rust-rspec-1: Remove dependency on clippy. * gnu/packages/crates-io.scm (rust-rspec-1)[source]: Add patch. [cargo-inputs]: Remove rust-clippy-0.0.153. * gnu/packages/patches/rust-rspec-1-remove-clippy.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: Ia6cc5e2fa798986b93ccba5f8907de79676fd1b0 --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 6 +++--- gnu/packages/patches/rust-rspec-1-remove-clippy.patch | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/rust-rspec-1-remove-clippy.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1fc05619a7..db18a09f8a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2008,6 +2008,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \ %D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \ %D%/packages/patches/rust-nettle-disable-vendor.patch \ + %D%/packages/patches/rust-rspec-1-remove-clippy.patch \ %D%/packages/patches/rust-trash-2-update-windows.patch \ %D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \ %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 8d9cde1e9a..a278fde74b 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -65217,12 +65217,12 @@ can handle huge texts and memory-incoherent edits with ease.") (uri (crate-uri "rspec" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "02hfwxqjdc39ygnjysvn5qz343fahmwm16rxvxayh403d5y9wf49")))) + (base32 "02hfwxqjdc39ygnjysvn5qz343fahmwm16rxvxayh403d5y9wf49")) + (patches (search-patches "rust-rspec-1-remove-clippy.patch")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-clippy" ,rust-clippy-0.0.153) - ("rust-colored" ,rust-colored-2) + (("rust-colored" ,rust-colored-2) ("rust-derive-new" ,rust-derive-new-0.5) ("rust-derive-builder" ,rust-derive-builder-0.9) ("rust-expectest" ,rust-expectest-0.12) diff --git a/gnu/packages/patches/rust-rspec-1-remove-clippy.patch b/gnu/packages/patches/rust-rspec-1-remove-clippy.patch new file mode 100644 index 0000000000..46c994f7ee --- /dev/null +++ b/gnu/packages/patches/rust-rspec-1-remove-clippy.patch @@ -0,0 +1,16 @@ +Remove the dependency on clippy + +diff --git a/Cargo.toml b/Cargo.toml +index 177cb80..7260c34 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -39,9 +39,6 @@ version = "1.5" + + [dependencies.time] + version = "0.2" +-[build-dependencies.clippy] +-version = "0.0.153" +-optional = true + + [features] + default = [] -- cgit 1.4.1 From 495c4868bee3df666ecdb07240cfdcd28b642905 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 11:28:37 +0200 Subject: gnu: rust-git-testament-derive-0.1: Move to (gnu packages crates-vcs). * gnu/packages/crates-io.scm (rust-git-testament-derive-0.1): Move from here ... * gnu/packages/crates-vcs.scm: ... to here. Change-Id: If002423ef70413d6ced9b2f18d86d625fd5bf9ba --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 28 +----------------------- gnu/packages/crates-vcs.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 27 deletions(-) create mode 100644 gnu/packages/crates-vcs.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index db18a09f8a..7231aa898b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -204,6 +204,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/crates-io.scm \ %D%/packages/crates-graphics.scm \ %D%/packages/crates-gtk.scm \ + %D%/packages/crates-vcs.scm \ %D%/packages/cross-base.scm \ %D%/packages/cross-toolchain.scm \ %D%/packages/crypto.scm \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 03821e8656..4865585838 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages cpp) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) + #:use-module (gnu packages crates-vcs) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -30316,33 +30317,6 @@ debugging format.") (description "Record git working tree status when compiling your crate") (license license:bsd-3))) -(define-public rust-git-testament-derive-0.1 - (package - (name "rust-git-testament-derive") - (version "0.1.14") - (source (origin - (method url-fetch) - (uri (crate-uri "git-testament-derive" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1rlais0i47mgsmp3r5jcqry2agjfyg5s9paj6mgvfykchssjsy2a")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-log" ,rust-log-0.4) - ("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1) - ("rust-time" ,rust-time-0.3)) - #:cargo-development-inputs - (("rust-git-testament" ,rust-git-testament-0.2)))) - (home-page "https://github.com/kinnison/git-testament/") - (synopsis "Record git working tree status when compiling your crate") - (description - "This package provides an inner procedural macro for git-testament.") - (license license:bsd-3))) - (define-public rust-git-version-0.3 (package (name "rust-git-version") diff --git a/gnu/packages/crates-vcs.scm b/gnu/packages/crates-vcs.scm new file mode 100644 index 0000000000..f92f14eda0 --- /dev/null +++ b/gnu/packages/crates-vcs.scm @@ -0,0 +1,53 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Efraim Flashner +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-vcs) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io)) + +(define-public rust-git-testament-derive-0.1 + (package + (name "rust-git-testament-derive") + (version "0.1.14") + (source (origin + (method url-fetch) + (uri (crate-uri "git-testament-derive" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rlais0i47mgsmp3r5jcqry2agjfyg5s9paj6mgvfykchssjsy2a")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-log" ,rust-log-0.4) + ("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1) + ("rust-time" ,rust-time-0.3)) + #:cargo-development-inputs + (("rust-git-testament" ,rust-git-testament-0.2)))) + (home-page "https://github.com/kinnison/git-testament/") + (synopsis "Record git working tree status when compiling your crate") + (description + "This package provides an inner procedural macro for git-testament.") + (license license:bsd-3))) -- cgit 1.4.1 From 6851b30def30f3da7043af5e47c101b822b018bd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 13:11:37 +0200 Subject: gnu: rust-webpki: Move to (gnu packages crates-web). * gnu/packages/crates-io.scm (rust-webpki-0.22, rust-webpki-0.21, rust-webpki-0.19, rust-webpki-0.18, rust-webpki-roots-0.25, rust-webpki-roots-0.23, rust-webpki-roots-0.22, rust-webpki-roots-0.21, rust-webpki-roots-0.20, rust-webpki-roots-0.19, rust-webpki-roots-0.18, rust-webpki-roots-0.17, rust-webpki-roots-0.16, rust-webpki-roots-0.15): Move from here ... * gnu/packages/crates-web.scm: ... to here. Change-Id: I7eb05c11453bc780f4c66c2c3ac2c3c20cafcee3 --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 276 +-------------------------------------- gnu/packages/crates-web.scm | 307 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 309 insertions(+), 275 deletions(-) create mode 100644 gnu/packages/crates-web.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 7231aa898b..e0b551233f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -205,6 +205,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/crates-graphics.scm \ %D%/packages/crates-gtk.scm \ %D%/packages/crates-vcs.scm \ + %D%/packages/crates-web.scm \ %D%/packages/cross-base.scm \ %D%/packages/cross-toolchain.scm \ %D%/packages/crypto.scm \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index fc87a94143..f8cecd47da 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -75,6 +75,7 @@ #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) #:use-module (gnu packages crates-vcs) + #:use-module (gnu packages crates-web) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -86752,281 +86753,6 @@ available on a platform.") ("rust-widestring" ,rust-widestring-0.4) ("rust-winapi" ,rust-winapi-0.3)))))) -(define-public rust-webpki-0.22 - (package - (name "rust-webpki") - (version "0.22.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-ring" ,rust-ring-0.16) - ("rust-untrusted" ,rust-untrusted-0.7)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.9)))) - (home-page "https://github.com/briansmith/webpki") - (synopsis "Web PKI X.509 Certificate Verification") - (description "This package provides Web PKI X.509 Certificate -Verification.") - (license license:isc))) - -(define-public rust-webpki-0.21 - (package - (inherit rust-webpki-0.22) - (name "rust-webpki") - (version "0.21.4") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1sm4i8c5bw3bdhi7mjk0wpvwx55hvsmyn0k2lpa4cb161038rqxq")))) - (arguments - `(#:tests? #f ;; tests fail to build "missing file tests/ed25519/ee.der" - #:cargo-inputs - (("rust-ring" ,rust-ring-0.16) - ("rust-untrusted" ,rust-untrusted-0.7)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.9)))))) - -(define-public rust-webpki-0.19 - (package - (inherit rust-webpki-0.21) - (name "rust-webpki") - (version "0.19.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg")))) - (arguments - `(#:tests? #f ; tests fail to build "missing file tests/ed25519/ee.der" - #:cargo-inputs - (("rust-ring" ,rust-ring-0.14) - ("rust-untrusted" ,rust-untrusted-0.6)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.9)))))) - -(define-public rust-webpki-0.18 - (package - (inherit rust-webpki-0.19) - (name "rust-webpki") - (version "0.18.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0zx1v8afa4ig97dyqfrnlj5i7pib6dnfw88qn2iiqhfq2rrrdmqp")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t ; TODO: Fix building rust-ring-0.13 - #:cargo-inputs - (("rust-ring" ,rust-ring-0.13) - ("rust-untrusted" ,rust-untrusted-0.6)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.9)) - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-curve25519-tables - (lambda* (#:key vendor-dir #:allow-other-keys) - (with-directory-excursion - (dirname (car (find-files vendor-dir "make_curve25519_tables.py"))) - (with-output-to-file "curve25519_tables.h" - (lambda _ - (invoke "python" "make_curve25519_tables.py"))))))))))) - -(define-public rust-webpki-roots-0.25 - (package - (name "rust-webpki-roots") - (version "0.25.1") - (source (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "15piy0vccppqb74li32gnn9l5a4ysxzwh8bp3qv6z8rhr2hyvin9")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-test-flags - (list "--release" "--" - ;; This test wants network access. - "--skip=generated_code_is_fresh") - #:cargo-development-inputs - (("rust-percent-encoding" ,rust-percent-encoding-2) - ("rust-reqwest" ,rust-reqwest-0.11) - ("rust-ring" ,rust-ring-0.16) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-rustls-webpki" ,rust-rustls-webpki-0.101) - ("rust-tokio" ,rust-tokio-1)))) - (native-inputs - (list pkg-config)) - (inputs - (list openssl)) - (home-page "https://github.com/rustls/webpki-roots") - (synopsis "Mozilla's CA root certificates for use with webpki") - (description "This package provides Mozilla's CA root certificates for use -with webpki.") - (license license:mpl2.0))) - -(define-public rust-webpki-roots-0.23 - (package - (inherit rust-webpki-roots-0.25) - (name "rust-webpki-roots") - (version "0.23.1") - (source (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0f4k8nng542iilxbibh1nhrdf5wbyi9is4fr219zzrc6hgw5hc5h")))) - (arguments - `(#:cargo-inputs (("rust-rustls-webpki" ,rust-rustls-webpki-0.100)))))) - -(define-public rust-webpki-roots-0.22 - (package - (inherit rust-webpki-roots-0.25) - (name "rust-webpki-roots") - (version "0.22.2") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0jbll0ys9jakrvv3l1i216bbgj7jbxr7ad2dihw28xcm7s8fnb2m")))) - (arguments - `(#:cargo-inputs - (("rust-webpki" ,rust-webpki-0.22)))))) - -(define-public rust-webpki-roots-0.21 - (package - (inherit rust-webpki-roots-0.22) - (name "rust-webpki-roots") - (version "0.21.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0h49lkr7hrxpyr0xg1nph4m3v1l6rhg8ax9n8msvfwz48hsibgma")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-webpki" ,rust-webpki-0.21)))))) - -(define-public rust-webpki-roots-0.20 - (package - (inherit rust-webpki-roots-0.21) - (name "rust-webpki-roots") - (version "0.20.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "17qpmyym1lsi967b4nc3112nb13ism8731bhjqd9hlajafkxw80g")))) - (arguments - `(#:cargo-inputs - (("rust-webpki" ,rust-webpki-0.21)))))) - -(define-public rust-webpki-roots-0.19 - (package - (inherit rust-webpki-roots-0.20) - (name "rust-webpki-roots") - (version "0.19.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0fapdqwbfv0kncplpvbgnr0bjd5a9krlpij9jdzk0mvaa6vz9vzq")))))) - -(define-public rust-webpki-roots-0.18 - (package - (inherit rust-webpki-roots-0.19) - (name "rust-webpki-roots") - (version "0.18.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1d4ss607rgi9pj01zzqa13c1p3m35z314yh6lmjaj4kzvwv5gkci")))))) - -(define-public rust-webpki-roots-0.17 - (package - (inherit rust-webpki-roots-0.18) - (name "rust-webpki-roots") - (version "0.17.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "12vi8dh0yik0h4f0b9dnlw5i3gxyky7iblbksh6zcq4xvlvswqm2")))))) - -(define-public rust-webpki-roots-0.16 - (package - (inherit rust-webpki-roots-0.17) - (name "rust-webpki-roots") - (version "0.16.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1")))) - (arguments - `(#:cargo-inputs - (("rust-untrusted" ,rust-untrusted-0.6) - ("rust-webpki" ,rust-webpki-0.19)))))) - -(define-public rust-webpki-roots-0.15 - (package - (inherit rust-webpki-roots-0.20) - (name "rust-webpki-roots") - (version "0.15.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "webpki-roots" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1gya8j75jnvf9lz36w0l4bf2xnw8qdx6plvhia891mcgj44g9lc5")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-untrusted" ,rust-untrusted-0.6) - ("rust-webpki" ,rust-webpki-0.18)))))) - (define-public rust-webview-sys-0.6 (package (name "rust-webview-sys") diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm new file mode 100644 index 0000000000..9396fca76a --- /dev/null +++ b/gnu/packages/crates-web.scm @@ -0,0 +1,307 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2020 Arun Isaac +;;; Copyright © 2020, 2023 Efraim Flashner +;;; Copyright © 2021 Nicolas Goaziou +;;; Copyright © 2022 Aleksandr Vityazev +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-web) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls)) + +(define-public rust-webpki-0.22 + (package + (name "rust-webpki") + (version "0.22.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-ring" ,rust-ring-0.16) + ("rust-untrusted" ,rust-untrusted-0.7)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)))) + (home-page "https://github.com/briansmith/webpki") + (synopsis "Web PKI X.509 Certificate Verification") + (description "This package provides Web PKI X.509 Certificate +Verification.") + (license license:isc))) + +(define-public rust-webpki-0.21 + (package + (inherit rust-webpki-0.22) + (name "rust-webpki") + (version "0.21.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1sm4i8c5bw3bdhi7mjk0wpvwx55hvsmyn0k2lpa4cb161038rqxq")))) + (arguments + `(#:tests? #f ;; tests fail to build "missing file tests/ed25519/ee.der" + #:cargo-inputs + (("rust-ring" ,rust-ring-0.16) + ("rust-untrusted" ,rust-untrusted-0.7)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)))))) + +(define-public rust-webpki-0.19 + (package + (inherit rust-webpki-0.21) + (name "rust-webpki") + (version "0.19.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg")))) + (arguments + `(#:tests? #f ; tests fail to build "missing file tests/ed25519/ee.der" + #:cargo-inputs + (("rust-ring" ,rust-ring-0.14) + ("rust-untrusted" ,rust-untrusted-0.6)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)))))) + +(define-public rust-webpki-0.18 + (package + (inherit rust-webpki-0.19) + (name "rust-webpki") + (version "0.18.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0zx1v8afa4ig97dyqfrnlj5i7pib6dnfw88qn2iiqhfq2rrrdmqp")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ; TODO: Fix building rust-ring-0.13 + #:cargo-inputs + (("rust-ring" ,rust-ring-0.13) + ("rust-untrusted" ,rust-untrusted-0.6)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)) + #:phases + (modify-phases %standard-phases + (add-before 'build 'build-curve25519-tables + (lambda* (#:key vendor-dir #:allow-other-keys) + (with-directory-excursion + (dirname (car (find-files vendor-dir "make_curve25519_tables.py"))) + (with-output-to-file "curve25519_tables.h" + (lambda _ + (invoke "python" "make_curve25519_tables.py"))))))))))) + +(define-public rust-webpki-roots-0.25 + (package + (name "rust-webpki-roots") + (version "0.25.1") + (source (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "15piy0vccppqb74li32gnn9l5a4ysxzwh8bp3qv6z8rhr2hyvin9")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-test-flags + (list "--release" "--" + ;; This test wants network access. + "--skip=generated_code_is_fresh") + #:cargo-development-inputs + (("rust-percent-encoding" ,rust-percent-encoding-2) + ("rust-reqwest" ,rust-reqwest-0.11) + ("rust-ring" ,rust-ring-0.16) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) + ("rust-rustls-webpki" ,rust-rustls-webpki-0.101) + ("rust-tokio" ,rust-tokio-1)))) + (native-inputs + (list pkg-config)) + (inputs + (list openssl)) + (home-page "https://github.com/rustls/webpki-roots") + (synopsis "Mozilla's CA root certificates for use with webpki") + (description "This package provides Mozilla's CA root certificates for use +with webpki.") + (license license:mpl2.0))) + +(define-public rust-webpki-roots-0.23 + (package + (inherit rust-webpki-roots-0.25) + (name "rust-webpki-roots") + (version "0.23.1") + (source (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0f4k8nng542iilxbibh1nhrdf5wbyi9is4fr219zzrc6hgw5hc5h")))) + (arguments + `(#:cargo-inputs (("rust-rustls-webpki" ,rust-rustls-webpki-0.100)))))) + +(define-public rust-webpki-roots-0.22 + (package + (inherit rust-webpki-roots-0.25) + (name "rust-webpki-roots") + (version "0.22.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0jbll0ys9jakrvv3l1i216bbgj7jbxr7ad2dihw28xcm7s8fnb2m")))) + (arguments + `(#:cargo-inputs + (("rust-webpki" ,rust-webpki-0.22)))))) + +(define-public rust-webpki-roots-0.21 + (package + (inherit rust-webpki-roots-0.22) + (name "rust-webpki-roots") + (version "0.21.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0h49lkr7hrxpyr0xg1nph4m3v1l6rhg8ax9n8msvfwz48hsibgma")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-webpki" ,rust-webpki-0.21)))))) + +(define-public rust-webpki-roots-0.20 + (package + (inherit rust-webpki-roots-0.21) + (name "rust-webpki-roots") + (version "0.20.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "17qpmyym1lsi967b4nc3112nb13ism8731bhjqd9hlajafkxw80g")))) + (arguments + `(#:cargo-inputs + (("rust-webpki" ,rust-webpki-0.21)))))) + +(define-public rust-webpki-roots-0.19 + (package + (inherit rust-webpki-roots-0.20) + (name "rust-webpki-roots") + (version "0.19.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fapdqwbfv0kncplpvbgnr0bjd5a9krlpij9jdzk0mvaa6vz9vzq")))))) + +(define-public rust-webpki-roots-0.18 + (package + (inherit rust-webpki-roots-0.19) + (name "rust-webpki-roots") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1d4ss607rgi9pj01zzqa13c1p3m35z314yh6lmjaj4kzvwv5gkci")))))) + +(define-public rust-webpki-roots-0.17 + (package + (inherit rust-webpki-roots-0.18) + (name "rust-webpki-roots") + (version "0.17.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "12vi8dh0yik0h4f0b9dnlw5i3gxyky7iblbksh6zcq4xvlvswqm2")))))) + +(define-public rust-webpki-roots-0.16 + (package + (inherit rust-webpki-roots-0.17) + (name "rust-webpki-roots") + (version "0.16.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1")))) + (arguments + `(#:cargo-inputs + (("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)))))) + +(define-public rust-webpki-roots-0.15 + (package + (inherit rust-webpki-roots-0.20) + (name "rust-webpki-roots") + (version "0.15.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gya8j75jnvf9lz36w0l4bf2xnw8qdx6plvhia891mcgj44g9lc5")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.18)))))) -- cgit 1.4.1 From 123ea83f13b742fc168674c16bf7489d2b2e8962 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 13:43:35 +0200 Subject: gnu: rust-rustls: Move to (gnu packages crates-tls). * gnu/packages/crates-io.scm (rust-rustls-0.21, rust-rustls-0.20, rust-rustls-0.19, rust-rustls-0.18, rust-rustls-0.17, rust-rustls-0.16, rust-rustls-0.15, rust-rustls-0.14, rust-rustls-ffi-0.8, rust-rustls-native-certs-0.6, rust-rustls-native-certs-0.5, rust-rustls-native-certs-0.4, rust-rustls-pemfile-2, rust-rustls-pemfile-1, rust-rustls-pemfile-0.2, rust-rustls-pki-types-1, rust-rustls-webpki-0.101, rust-rustls-webpki-0.100): Move from here ... * gnu/packages/crates-tls.scm: ... to here. Change-Id: Ief4208a2f86151447337b9ca037b4b28f753a9f8 --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 460 +---------------------------------------- gnu/packages/crates-tls.scm | 494 ++++++++++++++++++++++++++++++++++++++++++++ gnu/packages/crates-web.scm | 1 + gnu/packages/rust-apps.scm | 1 + 5 files changed, 498 insertions(+), 459 deletions(-) create mode 100644 gnu/packages/crates-tls.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index e0b551233f..9e9f763bc6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -204,6 +204,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/crates-io.scm \ %D%/packages/crates-graphics.scm \ %D%/packages/crates-gtk.scm \ + %D%/packages/crates-tls.scm \ %D%/packages/crates-vcs.scm \ %D%/packages/crates-web.scm \ %D%/packages/cross-base.scm \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index c424b70ef4..113fd1da7a 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages cpp) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) + #:use-module (gnu packages crates-tls) #:use-module (gnu packages crates-vcs) #:use-module (gnu packages crates-web) #:use-module (gnu packages crypto) @@ -62448,465 +62449,6 @@ rustc compiler.") ("rust-serial-test" ,rust-serial-test-0.6) ("rust-tempfile" ,rust-tempfile-3)))))) -(define-public rust-rustls-0.21 - (package - (name "rust-rustls") - (version "0.21.10") - (source (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1fmpzk3axnhkd99saqkvraifdfms4pkyi56lkihf8n877j0sdmgr")))) - (build-system cargo-build-system) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.17) - ("rust-rustls-webpki" ,rust-rustls-webpki-0.101) - ("rust-rustversion" ,rust-rustversion-1) - ("rust-sct" ,rust-sct-0.7)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.21) - ("rust-bencher" ,rust-bencher-0.1) - ("rust-env-logger" ,rust-env-logger-0.10) - ("rust-log" ,rust-log-0.4) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-webpki-roots" ,rust-webpki-roots-0.25)))) - (home-page "https://github.com/rustls/rustls") - (synopsis "Modern TLS library written in Rust") - (description - "This package provides a modern TLS library written in Rust.") - (license (list license:asl2.0 license:isc license:expat)))) - -(define-public rust-rustls-0.20 - (package - (inherit rust-rustls-0.21) - (name "rust-rustls") - (version "0.20.8") - (source (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0bqfymq5bjs1jxg1iw2nn4ab3kzz2lrk8a1vx3s98lhp9p3qzxzz")))) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.16) - ("rust-rustversion" ,rust-rustversion-1) - ("rust-sct" ,rust-sct-0.7) - ("rust-webpki" ,rust-webpki-0.22)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.13) - ("rust-criterion" ,rust-criterion-0.3) - ("rust-env-logger" ,rust-env-logger-0.9) - ("rust-log" ,rust-log-0.4) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-webpki-roots" ,rust-webpki-roots-0.22)))))) - -(define-public rust-rustls-0.19 - (package - (inherit rust-rustls-0.20) - (name "rust-rustls") - (version "0.19.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "02wqas2pcxk75s9l9c9f1r5am7258bmqprh68pnqfvkwz0gx4kq6")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-base64" ,rust-base64-0.13) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.16) - ("rust-sct" ,rust-sct-0.6) - ("rust-webpki" ,rust-webpki-0.21)))))) - -(define-public rust-rustls-0.18 - (package - (inherit rust-rustls-0.19) - (name "rust-rustls") - (version "0.18.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "108cf3bfw5high066shz9xrfv4jz7djdmnwqs3kwx4wfypf2c4ax")))) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-base64" ,rust-base64-0.12) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.16) - ("rust-sct" ,rust-sct-0.6) - ("rust-webpki" ,rust-webpki-0.21)) - #:cargo-development-inputs - (("rust-criterion" ,rust-criterion-0.3) - ("rust-env-logger" ,rust-env-logger-0.7) - ("rust-log" ,rust-log-0.4) - ("rust-webpki-roots" ,rust-webpki-roots-0.20)))))) - -(define-public rust-rustls-0.17 - (package - (inherit rust-rustls-0.18) - (name "rust-rustls") - (version "0.17.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1q8m835viqrf4bbd2fa8rnmaj48fkd984saxf0238hb8blgs7m60")))) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-base64" ,rust-base64-0.11) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.16) - ("rust-sct" ,rust-sct-0.6) - ("rust-webpki" ,rust-webpki-0.21)) - #:cargo-development-inputs - (("rust-criterion" ,rust-criterion-0.3) - ("rust-env-logger" ,rust-env-logger-0.7) - ("rust-log" ,rust-log-0.4) - ("rust-tempfile" ,rust-tempfile-3) - ("rust-webpki-roots" ,rust-webpki-roots-0.19)))))) - -(define-public rust-rustls-0.16 - (package - (inherit rust-rustls-0.17) - (name "rust-rustls") - (version "0.16.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "17n0fx3fpkg4fhpdplrdhkissnl003kj90vzbqag11vkpyqihnmj")))) - (arguments - `(#:tests? #f ;; 1/114 tests fail (test file not found) - #:cargo-inputs - (("rust-base64" ,rust-base64-0.10) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.16) - ("rust-sct" ,rust-sct-0.6) - ("rust-webpki" ,rust-webpki-0.21)) - #:cargo-development-inputs - (("rust-criterion" ,rust-criterion-0.2) - ("rust-env-logger" ,rust-env-logger-0.6) - ("rust-log" ,rust-log-0.4) - ("rust-tempfile" ,rust-tempfile-3) - ("rust-webpki-roots" ,rust-webpki-roots-0.17)))))) - -(define-public rust-rustls-0.15 - (package - (inherit rust-rustls-0.16) - (name "rust-rustls") - (version "0.15.2") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj")))) - (arguments - `(#:tests? #f ; API tests panic - #:cargo-test-flags - '("--release" "--" - "--skip=msgs::message_test::test_read_fuzz_corpus") - #:cargo-inputs - (("rust-base64" ,rust-base64-0.10) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.14) - ("rust-sct" ,rust-sct-0.5) - ("rust-untrusted" ,rust-untrusted-0.6) - ("rust-webpki" ,rust-webpki-0.19)) - #:cargo-development-inputs - (("rust-env-logger" ,rust-env-logger-0.6) - ("rust-log" ,rust-log-0.4) - ("rust-tempfile" ,rust-tempfile-3) - ("rust-webpki-roots" ,rust-webpki-roots-0.16)))))) - -(define-public rust-rustls-0.14 - (package - (inherit rust-rustls-0.18) - (name "rust-rustls") - (version "0.14.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1nal4qca7f7mhwnvx3m824ymdj6qmzfcl64sxmrmpis32dwr2y4b")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-base64" ,rust-base64-0.9) - ("rust-log" ,rust-log-0.4) - ("rust-ring" ,rust-ring-0.13) - ("rust-sct" ,rust-sct-0.4) - ("rust-untrusted" ,rust-untrusted-0.6) - ("rust-webpki" ,rust-webpki-0.18)))))) - -(define-public rust-rustls-ffi-0.8 - (package - (name "rust-rustls-ffi") - (version "0.8.2") - (source (origin - (method url-fetch) - (uri (crate-uri "rustls-ffi" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-libc" ,rust-libc-0.2) - ("rust-log" ,rust-log-0.4) - ("rust-num-enum" ,rust-num-enum-0.5) - ("rust-rustls" ,rust-rustls-0.20) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2) - ("rust-sct" ,rust-sct-0.7) - ("rust-webpki" ,rust-webpki-0.22)) - #:cargo-development-inputs - (("rust-cbindgen" ,rust-cbindgen-0.26)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'adjust-cbindgen-requirement - ;; The Cargo.toml in the git repository doesn't specify - ;; a version requirement for cbindgen. - (lambda _ - (substitute* "Cargo.toml" - (("0\\.19\\.0") "*"))))))) - (home-page "https://github.com/rustls/rustls-ffi") - (synopsis "Rustls bindings for non-Rust languages") - (description "Rustls bindings for non-Rust languages") - (license (list license:asl2.0 license:isc license:expat)))) - -(define-public rust-rustls-native-certs-0.6 - (package - (name "rust-rustls-native-certs") - (version "0.6.3") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-native-certs" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "007zind70rd5rfsrkdcfm8vn09j8sg02phg9334kark6rdscxam9")))) - (build-system cargo-build-system) - (arguments - `(#:tests? #f ; Tests want network access. - #:cargo-inputs - (("rust-openssl-probe" ,rust-openssl-probe-0.1) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-schannel" ,rust-schannel-0.1) - ("rust-security-framework" ,rust-security-framework-2)) - #:cargo-development-inputs - (("rust-ring" ,rust-ring-0.16) - ("rust-rustls" ,rust-rustls-0.21) - ("rust-rustls-webpki" ,rust-rustls-webpki-0.100) - ("rust-serial-test" ,rust-serial-test-2) - ("rust-untrusted" ,rust-untrusted-0.7) - ("rust-webpki-roots" ,rust-webpki-roots-0.23) - ("rust-x509-parser" ,rust-x509-parser-0.15)))) - (home-page "https://github.com/ctz/rustls-native-certs") - (synopsis "Use the platform native certificate store with rustls") - (description "@code{rustls-native-certs} allows rustls to use the platform -native certificate store.") - (license - (list license:asl2.0 license:isc license:expat)))) - -(define-public rust-rustls-native-certs-0.5 - (package - (inherit rust-rustls-native-certs-0.6) - (name "rust-rustls-native-certs") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-native-certs" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "14i0bbbigk6r6262hvc51vz4dvqk1f3vg2f264wfvn2vi30vf1ss")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-openssl-probe" ,rust-openssl-probe-0.1) - ("rust-rustls" ,rust-rustls-0.19) - ("rust-schannel" ,rust-schannel-0.1) - ("rust-security-framework" ,rust-security-framework-2)))))) - -(define-public rust-rustls-native-certs-0.4 - (package - (inherit rust-rustls-native-certs-0.5) - (name "rust-rustls-native-certs") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-native-certs" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1f2rkvdkz92qcmwryyqiw9phkqkf95g4962ljpfq5nkjfsd477b2")))) - (arguments - `(#:tests? #f ; Tests want network access - #:cargo-inputs - (("rust-openssl-probe" ,rust-openssl-probe-0.1) - ("rust-rustls" ,rust-rustls-0.18) - ("rust-schannel" ,rust-schannel-0.1) - ("rust-security-framework" - ,rust-security-framework-1)) - #:cargo-development-inputs - (("rust-ring" ,rust-ring-0.16) - ("rust-untrusted" ,rust-untrusted-0.7) - ("rust-webpki" ,rust-webpki-0.21) - ("rust-webpki-roots" ,rust-webpki-roots-0.20)))))) - -(define-public rust-rustls-pemfile-2 - (package - (name "rust-rustls-pemfile") - (version "2.0.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-pemfile" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1x34xidvzn4br2vl8f8xwmhgbjv4lmlb0ggv5whlnk4yl87rir1m")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs (("rust-base64" ,rust-base64-0.21) - ("rust-rustls-pki-types" ,rust-rustls-pki-types-1)) - #:cargo-development-inputs (("rust-bencher" ,rust-bencher-0.1)))) - (home-page "https://github.com/rustls/pemfile") - (synopsis "Basic parser for PEM formatted keys and certificates") - (description "This package provides a very basic parser for the -PEM-encodings commonly used to store keys and certificates at rest.") - (license (list license:asl2.0 license:isc license:expat)))) - -(define-public rust-rustls-pemfile-1 - (package - (inherit rust-rustls-pemfile-2) - (name "rust-rustls-pemfile") - (version "1.0.3") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-pemfile" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1cplx6hgkr32nq31p3613b2sj7csrrq3zp6znx9vc1qx9c4qff9d")))) - (arguments - `(#:cargo-inputs - (("rust-base64" ,rust-base64-0.21)) - #:cargo-development-inputs - (("rust-bencher" ,rust-bencher-0.1)))))) - -(define-public rust-rustls-pemfile-0.2 - (package - (inherit rust-rustls-pemfile-1) - (name "rust-rustls-pemfile") - (version "0.2.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-pemfile" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1jfi97lqnnnnxhmfy6ygrsp0x70m8wsdpaw45svvz1qc6vmymssy")))) - (arguments - `(#:cargo-inputs - (("rust-base64" ,rust-base64-0.13)) - #:cargo-development-inputs - (("rust-criterion" ,rust-criterion-0.3)))))) - -(define-public rust-rustls-pki-types-1 - (package - (name "rust-rustls-pki-types") - (version "1.0.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "rustls-pki-types" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "16rkx6gn5l2zximxy8fx9h2vzks1hfxi5z5cd9y97r0fl853wrz7")))) - (build-system cargo-build-system) - (home-page "https://github.com/rustls/pki-types") - (synopsis "Shared types for the rustls PKI ecosystem") - (description "Shared types for the rustls PKI ecosystem.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-rustls-webpki-0.101 - (package - (name "rust-rustls-webpki") - (version "0.101.7") - (source (origin - (method url-fetch) - (uri (crate-uri "rustls-webpki" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0rapfhpkqp75552i8r0y7f4vq7csb4k7gjjans0df73sxv8paqlb")))) - (build-system cargo-build-system) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-ring" ,rust-ring-0.17) - ("rust-untrusted" ,rust-untrusted-0.9)) - #:cargo-development-inputs - (("rust-base64" ,rust-base64-0.21) - ("rust-bencher" ,rust-bencher-0.1) - ("rust-once-cell" ,rust-once-cell-1) - ("rust-rcgen" ,rust-rcgen-0.11) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1)))) - (home-page "https://github.com/rustls/webpki") - (synopsis "Web PKI X.509 Certificate Verification") - (description "Web PKI X.509 Certificate Verification.") - (license license:isc))) - -(define-public rust-rustls-webpki-0.100 - (package - (inherit rust-rustls-webpki-0.101) - (name "rust-rustls-webpki") - (version "0.100.1") - (source (origin - (method url-fetch) - (uri (crate-uri "rustls-webpki" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0sxlgpcczd1wihmnbgv5qz00jim32dap5wzq2rwcm39xxpapq86n")))) - (arguments - `(#:tests? #f ; Not all files included. - #:cargo-inputs - (("rust-ring" ,rust-ring-0.16) - ("rust-untrusted" ,rust-untrusted-0.7)) - #:cargo-development-inputs (("rust-base64" ,rust-base64-0.13)))))) - (define-public rust-rusttype-0.9 (package (name "rust-rusttype") diff --git a/gnu/packages/crates-tls.scm b/gnu/packages/crates-tls.scm new file mode 100644 index 0000000000..a6dd512547 --- /dev/null +++ b/gnu/packages/crates-tls.scm @@ -0,0 +1,494 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2020 Arun Isaac +;;; Copyright © 2020, 2023 Efraim Flashner +;;; Copyright © 2021 Nicolas Goaziou +;;; Copyright © 2021 Alexandru-Sergiu Marton +;;; Copyright © 2022 Aleksandr Vityazev +;;; Copyright © 2022 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-tls) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-web) + #:use-module (gnu packages rust-apps)) + +(define-public rust-rustls-0.21 + (package + (name "rust-rustls") + (version "0.21.10") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fmpzk3axnhkd99saqkvraifdfms4pkyi56lkihf8n877j0sdmgr")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.17) + ("rust-rustls-webpki" ,rust-rustls-webpki-0.101) + ("rust-rustversion" ,rust-rustversion-1) + ("rust-sct" ,rust-sct-0.7)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.21) + ("rust-bencher" ,rust-bencher-0.1) + ("rust-env-logger" ,rust-env-logger-0.10) + ("rust-log" ,rust-log-0.4) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) + ("rust-webpki-roots" ,rust-webpki-roots-0.25)))) + (home-page "https://github.com/rustls/rustls") + (synopsis "Modern TLS library written in Rust") + (description + "This package provides a modern TLS library written in Rust.") + (license (list license:asl2.0 license:isc license:expat)))) + +(define-public rust-rustls-0.20 + (package + (inherit rust-rustls-0.21) + (name "rust-rustls") + (version "0.20.8") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0bqfymq5bjs1jxg1iw2nn4ab3kzz2lrk8a1vx3s98lhp9p3qzxzz")))) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.16) + ("rust-rustversion" ,rust-rustversion-1) + ("rust-sct" ,rust-sct-0.7) + ("rust-webpki" ,rust-webpki-0.22)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.13) + ("rust-criterion" ,rust-criterion-0.3) + ("rust-env-logger" ,rust-env-logger-0.9) + ("rust-log" ,rust-log-0.4) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) + ("rust-webpki-roots" ,rust-webpki-roots-0.22)))))) + +(define-public rust-rustls-0.19 + (package + (inherit rust-rustls-0.20) + (name "rust-rustls") + (version "0.19.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "02wqas2pcxk75s9l9c9f1r5am7258bmqprh68pnqfvkwz0gx4kq6")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-base64" ,rust-base64-0.13) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.16) + ("rust-sct" ,rust-sct-0.6) + ("rust-webpki" ,rust-webpki-0.21)))))) + +(define-public rust-rustls-0.18 + (package + (inherit rust-rustls-0.19) + (name "rust-rustls") + (version "0.18.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "108cf3bfw5high066shz9xrfv4jz7djdmnwqs3kwx4wfypf2c4ax")))) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-base64" ,rust-base64-0.12) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.16) + ("rust-sct" ,rust-sct-0.6) + ("rust-webpki" ,rust-webpki-0.21)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-env-logger" ,rust-env-logger-0.7) + ("rust-log" ,rust-log-0.4) + ("rust-webpki-roots" ,rust-webpki-roots-0.20)))))) + +(define-public rust-rustls-0.17 + (package + (inherit rust-rustls-0.18) + (name "rust-rustls") + (version "0.17.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1q8m835viqrf4bbd2fa8rnmaj48fkd984saxf0238hb8blgs7m60")))) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-base64" ,rust-base64-0.11) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.16) + ("rust-sct" ,rust-sct-0.6) + ("rust-webpki" ,rust-webpki-0.21)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-env-logger" ,rust-env-logger-0.7) + ("rust-log" ,rust-log-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-webpki-roots" ,rust-webpki-roots-0.19)))))) + +(define-public rust-rustls-0.16 + (package + (inherit rust-rustls-0.17) + (name "rust-rustls") + (version "0.16.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "17n0fx3fpkg4fhpdplrdhkissnl003kj90vzbqag11vkpyqihnmj")))) + (arguments + `(#:tests? #f ;; 1/114 tests fail (test file not found) + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.16) + ("rust-sct" ,rust-sct-0.6) + ("rust-webpki" ,rust-webpki-0.21)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.2) + ("rust-env-logger" ,rust-env-logger-0.6) + ("rust-log" ,rust-log-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-webpki-roots" ,rust-webpki-roots-0.17)))))) + +(define-public rust-rustls-0.15 + (package + (inherit rust-rustls-0.16) + (name "rust-rustls") + (version "0.15.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj")))) + (arguments + `(#:tests? #f ; API tests panic + #:cargo-test-flags + '("--release" "--" + "--skip=msgs::message_test::test_read_fuzz_corpus") + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.14) + ("rust-sct" ,rust-sct-0.5) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-log" ,rust-log-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-webpki-roots" ,rust-webpki-roots-0.16)))))) + +(define-public rust-rustls-0.14 + (package + (inherit rust-rustls-0.18) + (name "rust-rustls") + (version "0.14.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1nal4qca7f7mhwnvx3m824ymdj6qmzfcl64sxmrmpis32dwr2y4b")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-base64" ,rust-base64-0.9) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.13) + ("rust-sct" ,rust-sct-0.4) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.18)))))) + +(define-public rust-rustls-ffi-0.8 + (package + (name "rust-rustls-ffi") + (version "0.8.2") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls-ffi" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-num-enum" ,rust-num-enum-0.5) + ("rust-rustls" ,rust-rustls-0.20) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2) + ("rust-sct" ,rust-sct-0.7) + ("rust-webpki" ,rust-webpki-0.22)) + #:cargo-development-inputs + (("rust-cbindgen" ,rust-cbindgen-0.26)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'adjust-cbindgen-requirement + ;; The Cargo.toml in the git repository doesn't specify + ;; a version requirement for cbindgen. + (lambda _ + (substitute* "Cargo.toml" + (("0\\.19\\.0") "*"))))))) + (home-page "https://github.com/rustls/rustls-ffi") + (synopsis "Rustls bindings for non-Rust languages") + (description "Rustls bindings for non-Rust languages") + (license (list license:asl2.0 license:isc license:expat)))) + +(define-public rust-rustls-native-certs-0.6 + (package + (name "rust-rustls-native-certs") + (version "0.6.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-native-certs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "007zind70rd5rfsrkdcfm8vn09j8sg02phg9334kark6rdscxam9")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Tests want network access. + #:cargo-inputs + (("rust-openssl-probe" ,rust-openssl-probe-0.1) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) + ("rust-schannel" ,rust-schannel-0.1) + ("rust-security-framework" ,rust-security-framework-2)) + #:cargo-development-inputs + (("rust-ring" ,rust-ring-0.16) + ("rust-rustls" ,rust-rustls-0.21) + ("rust-rustls-webpki" ,rust-rustls-webpki-0.100) + ("rust-serial-test" ,rust-serial-test-2) + ("rust-untrusted" ,rust-untrusted-0.7) + ("rust-webpki-roots" ,rust-webpki-roots-0.23) + ("rust-x509-parser" ,rust-x509-parser-0.15)))) + (home-page "https://github.com/ctz/rustls-native-certs") + (synopsis "Use the platform native certificate store with rustls") + (description "@code{rustls-native-certs} allows rustls to use the platform +native certificate store.") + (license + (list license:asl2.0 license:isc license:expat)))) + +(define-public rust-rustls-native-certs-0.5 + (package + (inherit rust-rustls-native-certs-0.6) + (name "rust-rustls-native-certs") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-native-certs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "14i0bbbigk6r6262hvc51vz4dvqk1f3vg2f264wfvn2vi30vf1ss")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-openssl-probe" ,rust-openssl-probe-0.1) + ("rust-rustls" ,rust-rustls-0.19) + ("rust-schannel" ,rust-schannel-0.1) + ("rust-security-framework" ,rust-security-framework-2)))))) + +(define-public rust-rustls-native-certs-0.4 + (package + (inherit rust-rustls-native-certs-0.5) + (name "rust-rustls-native-certs") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-native-certs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1f2rkvdkz92qcmwryyqiw9phkqkf95g4962ljpfq5nkjfsd477b2")))) + (arguments + `(#:tests? #f ; Tests want network access + #:cargo-inputs + (("rust-openssl-probe" ,rust-openssl-probe-0.1) + ("rust-rustls" ,rust-rustls-0.18) + ("rust-schannel" ,rust-schannel-0.1) + ("rust-security-framework" + ,rust-security-framework-1)) + #:cargo-development-inputs + (("rust-ring" ,rust-ring-0.16) + ("rust-untrusted" ,rust-untrusted-0.7) + ("rust-webpki" ,rust-webpki-0.21) + ("rust-webpki-roots" ,rust-webpki-roots-0.20)))))) + +(define-public rust-rustls-pemfile-2 + (package + (name "rust-rustls-pemfile") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-pemfile" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1x34xidvzn4br2vl8f8xwmhgbjv4lmlb0ggv5whlnk4yl87rir1m")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-base64" ,rust-base64-0.21) + ("rust-rustls-pki-types" ,rust-rustls-pki-types-1)) + #:cargo-development-inputs (("rust-bencher" ,rust-bencher-0.1)))) + (home-page "https://github.com/rustls/pemfile") + (synopsis "Basic parser for PEM formatted keys and certificates") + (description "This package provides a very basic parser for the +PEM-encodings commonly used to store keys and certificates at rest.") + (license (list license:asl2.0 license:isc license:expat)))) + +(define-public rust-rustls-pemfile-1 + (package + (inherit rust-rustls-pemfile-2) + (name "rust-rustls-pemfile") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-pemfile" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1cplx6hgkr32nq31p3613b2sj7csrrq3zp6znx9vc1qx9c4qff9d")))) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.21)) + #:cargo-development-inputs + (("rust-bencher" ,rust-bencher-0.1)))))) + +(define-public rust-rustls-pemfile-0.2 + (package + (inherit rust-rustls-pemfile-1) + (name "rust-rustls-pemfile") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-pemfile" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1jfi97lqnnnnxhmfy6ygrsp0x70m8wsdpaw45svvz1qc6vmymssy")))) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.13)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3)))))) + +(define-public rust-rustls-pki-types-1 + (package + (name "rust-rustls-pki-types") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls-pki-types" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "16rkx6gn5l2zximxy8fx9h2vzks1hfxi5z5cd9y97r0fl853wrz7")))) + (build-system cargo-build-system) + (home-page "https://github.com/rustls/pki-types") + (synopsis "Shared types for the rustls PKI ecosystem") + (description "Shared types for the rustls PKI ecosystem.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-rustls-webpki-0.101 + (package + (name "rust-rustls-webpki") + (version "0.101.7") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls-webpki" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0rapfhpkqp75552i8r0y7f4vq7csb4k7gjjans0df73sxv8paqlb")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-ring" ,rust-ring-0.17) + ("rust-untrusted" ,rust-untrusted-0.9)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.21) + ("rust-bencher" ,rust-bencher-0.1) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-rcgen" ,rust-rcgen-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1)))) + (home-page "https://github.com/rustls/webpki") + (synopsis "Web PKI X.509 Certificate Verification") + (description "Web PKI X.509 Certificate Verification.") + (license license:isc))) + +(define-public rust-rustls-webpki-0.100 + (package + (inherit rust-rustls-webpki-0.101) + (name "rust-rustls-webpki") + (version "0.100.1") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls-webpki" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sxlgpcczd1wihmnbgv5qz00jim32dap5wzq2rwcm39xxpapq86n")))) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-ring" ,rust-ring-0.16) + ("rust-untrusted" ,rust-untrusted-0.7)) + #:cargo-development-inputs (("rust-base64" ,rust-base64-0.13)))))) + diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm index 99cf1afdac..71d89bf170 100644 --- a/gnu/packages/crates-web.scm +++ b/gnu/packages/crates-web.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-gtk) + #:use-module (gnu packages crates-tls) #:use-module (gnu packages gtk) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 0b6610cd32..561c338959 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -60,6 +60,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) + #:use-module (gnu packages crates-tls) #:use-module (gnu packages crates-vcs) #:use-module (gnu packages crates-web) #:use-module (gnu packages curl) -- cgit 1.4.1 From 87630f28811526ad90f9bb6b8f6b9d5cec7a73fe Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Dec 2023 14:48:18 +0200 Subject: gnu: rust-windows: Move to (gnu packages crates-windows). * gnu/packages/crates-io.scm (rust-windows-0.48, rust-windows-0.46, rust-windows-0.44, rust-windows-0.39, rust-windows-0.32, rust-windows-0.9, rust-windows-aarch64-gnullvm-0.52, rust-windows-aarch64-gnullvm-0.48, rust-windows-aarch64-gnullvm-0.42, rust-windows-aarch64-msvc-0.52, rust-windows-aarch64-msvc-0.48, rust-windows-aarch64-msvc-0.42, rust-windows-aarch64-msvc-0.39, rust-windows-aarch64-msvc-0.36, rust-windows-aarch64-msvc-0.32, rust-windows-aarch64-msvc-0.28, rust-windows-bindgen-0.51, rust-windows-i686-gnu-0.52, rust-windows-i686-gnu-0.48, rust-windows-i686-gnu-0.42, rust-windows-i686-gnu-0.36, rust-windows-i686-gnu-0.32, rust-windows-i686-gnu-0.28, rust-windows-i686-msvc-0.52, rust-windows-i686-msvc-0.48, rust-windows-i686-msvc-0.42, rust-windows-i686-msvc-0.39, rust-windows-i686-msvc-0.36, rust-windows-i686-msvc-0.32, rust-windows-i686-msvc-0.28, rust-windows-implement-0.48, rust-windows-implement-0.46, rust-windows-implement-0.44, rust-windows-implement-0.39, rust-windows-implement-0.32, rust-windows-interface-0.48, rust-windows-interface-0.46, rust-windows-interface-0.44, rust-windows-interface-0.39, rust-windows-metadata-0.51, rust-windows-sys-0.52, rust-windows-sys-0.48, rust-windows-sys-0.45, rust-windows-sys-0.42, rust-windows-sys-0.36, rust-windows-sys-0.28, rust-windows-gen-0.9, rust-windows-macros-0.9, rust-windows-targets-0.52, rust-windows-targets-0.48, rust-windows-targets-0.42, rust-windows-targets-0.39, rust-windows-targets-0.32, rust-windows-x86-64-gnu-0.52, rust-windows-x86-64-gnu-0.48, rust-windows-x86-64-gnu-0.42, rust-windows-x86-64-gnu-0.39, rust-windows-x86-64-gnu-0.36, rust-windows-x86-64-gnu-0.32, rust-windows-x86-64-gnu-0.28, rust-windows-x86-64-gnullvm-0.52, rust-windows-x86-64-gnullvm-48, rust-windows-x86-64-gnullvm-0.42, rust-windows-x86-64-msvc-0.52, rust-windows-x86-64-msvc-0.48, rust-windows-x86-64-msvc-0.42, rust-windows-x86-64-msvc-0.39, rust-windows-x86-64-msvc-0.36, rust-windows-x86-64-msvc-0.32, rust-windows-x86-64-msvc-0.28): Move from here ... * gnu/packages/crates-windows.scm: ... to here. Change-Id: I5abaa9402ae75199d4ec26b1e37b3a7293437c93 --- gnu/local.mk | 1 + gnu/packages/crates-graphics.scm | 1 + gnu/packages/crates-io.scm | 1254 +------------------------------------ gnu/packages/crates-vcs.scm | 1 + gnu/packages/crates-windows.scm | 1286 ++++++++++++++++++++++++++++++++++++++ gnu/packages/rust-apps.scm | 1 + gnu/packages/terminals.scm | 1 + 7 files changed, 1293 insertions(+), 1252 deletions(-) create mode 100644 gnu/packages/crates-windows.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 9e9f763bc6..1588c6100c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -207,6 +207,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/crates-tls.scm \ %D%/packages/crates-vcs.scm \ %D%/packages/crates-web.scm \ + %D%/packages/crates-windows.scm \ %D%/packages/cross-base.scm \ %D%/packages/cross-toolchain.scm \ %D%/packages/crypto.scm \ diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index fdb54b435b..8f1c773607 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages assembly) #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-windows) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) #:use-module (gnu packages llvm) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 3193eb0d86..80793200f6 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023 Steve George ;;; Copyright © 2023 Sergio Pastor Pérez ;;; Copyright © 2023 VÖRÖSKŐI András +;;; Copyright © 2023 Daniel Ziltener ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +79,7 @@ #:use-module (gnu packages crates-tls) #:use-module (gnu packages crates-vcs) #:use-module (gnu packages crates-web) + #:use-module (gnu packages crates-windows) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -83276,1258 +83278,6 @@ color in a Windows console.") #:cargo-inputs (("rust-winapi" ,rust-winapi-0.3)))))) -(define-public rust-windows-0.48 - (package - (name "rust-windows") - (version "0.48.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "03vh89ilnxdxdh0n9np4ns4m10fvm93h3b0cc05ipg3qq1mqi1p6")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-windows-implement" ,rust-windows-implement-0.48) - ("rust-windows-interface" ,rust-windows-interface-0.48) - ("rust-windows-targets" ,rust-windows-targets-0.48)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Rust for Windows") - (description "The windows crate lets you call any Windows API past, -present, and future using code generated on the fly directly from the metadata -describing the API and right into your Rust package where you can call them as -if they were just another Rust module.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-0.46 - (package - (inherit rust-windows-0.48) - (name "rust-windows") - (version "0.46.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "098crdz9gxgy3614ygznqqhn28q097r498b3rg35584nd8gb9b6d")))) - (arguments - `(#:cargo-inputs - (("rust-windows-implement" ,rust-windows-implement-0.46) - ("rust-windows-interface" ,rust-windows-interface-0.46) - ("rust-windows-targets" ,rust-windows-targets-0.42)))))) - -(define-public rust-windows-0.44 - (package - (inherit rust-windows-0.48) - (name "rust-windows") - (version "0.44.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0ax1ip82dhszxz4hhsrdj3b0681xw6axahnfldxcgi506nmmsx4y")))) - (arguments - `(#:tests? #f ; Test suite only runs on Windows. - #:cargo-inputs - (("rust-windows-implement" ,rust-windows-implement-0.44) - ("rust-windows-interface" ,rust-windows-interface-0.44) - ("rust-windows-targets" ,rust-windows-targets-0.42)))))) - -(define-public rust-windows-0.39 - (package - (inherit rust-windows-0.46) - (name "rust-windows") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0jkr4rxj6jn7brqxycr1pjgvnixsimsiywl4a7v20q5ca05bvi7i")))) - (arguments - `(#:cargo-inputs (("rust-windows-implement" ,rust-windows-implement-0.39) - ("rust-windows-interface" ,rust-windows-interface-0.39) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.39) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.39) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.39) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.39) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.39)))))) - -(define-public rust-windows-0.32 - (package - (inherit rust-windows-0.46) - (name "rust-windows") - (version "0.32.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1v0h5b5g1ak2f2a6gkgjqgrqkkbdcfmf02nfmmj27g4nj3dzdvgv")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-windows-implement" ,rust-windows-implement-0.32) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.32) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.32) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.32) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.32) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.32)))))) - -(define-public rust-windows-0.9 - (package - (inherit rust-windows-0.46) - (name "rust-windows") - (version "0.9.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0zy9jmhkhmsng7l9qiznxpdh5ns303s875p5kf6a5q9ym0rka7rn")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-const-sha1" ,rust-const-sha1-0.2) - ("rust-windows-gen" ,rust-windows-gen-0.9) - ("rust-windows-macros" ,rust-windows-macros-0.9)))))) - -(define-public rust-windows-aarch64-gnullvm-0.52 - (package - (name "rust-windows-aarch64-gnullvm") - (version "0.52.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1shmn1kbdc0bpphcxz0vlph96bxz0h1jlmh93s9agf2dbpin8xyb")) - (snippet - '(delete-file "lib/libwindows.0.52.0.a")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-aarch64-gnullvm-0.48 - (package - (inherit rust-windows-aarch64-gnullvm-0.52) - (name "rust-windows-aarch64-gnullvm") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1g71yxi61c410pwzq05ld7si4p9hyx6lf5fkw21sinvr3cp5gbli")) - (snippet - '(delete-file "lib/libwindows.0.48.0.a")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-aarch64-gnullvm-0.42 - (package - (inherit rust-windows-aarch64-gnullvm-0.48) - (name "rust-windows-aarch64-gnullvm") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1y4q0qmvl0lvp7syxvfykafvmwal5hrjb4fmv04bqs0bawc52yjr")) - (snippet - '(delete-file "lib/libwindows.a")))) - (arguments - (list #:skip-build? #t)))) - -(define-public rust-windows-aarch64-msvc-0.52 - (package - (name "rust-windows-aarch64-msvc") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1vvmy1ypvzdvxn9yf0b8ygfl85gl2gpcyvsvqppsmlpisil07amv")) - (snippet - '(delete-file "lib/windows.0.52.0.lib")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description "This package provides code gen support for the windows -crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-aarch64-msvc-0.48 - (package - (inherit rust-windows-aarch64-msvc-0.52) - (name "rust-windows-aarch64-msvc") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1wvwipchhywcjaw73h998vzachf668fpqccbhrxzrz5xszh2gvxj")) - (snippet - #~(delete-file "lib/windows.0.48.0.lib")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-aarch64-msvc-0.42 - (package - (inherit rust-windows-aarch64-msvc-0.48) - (name "rust-windows-aarch64-msvc") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0hsdikjl5sa1fva5qskpwlxzpc5q9l909fpl1w6yy1hglrj8i3p0")) - (snippet - #~(delete-file "lib/windows.lib")))) - (arguments - (list #:skip-build? #t)))) - -(define-public rust-windows-aarch64-msvc-0.39 - (package - (inherit rust-windows-aarch64-msvc-0.42) - (name "rust-windows-aarch64-msvc") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1wj0nfmyli4bn5af243r4s3zncxv0n4j6dd8zyb41gcnc1k12xzc")) - (snippet - #~(delete-file "lib/windows.lib")))))) - -(define-public rust-windows-aarch64-msvc-0.36 - (package - (inherit rust-windows-aarch64-msvc-0.42) - (name "rust-windows-aarch64-msvc") - (version "0.36.1") - (source - (origin - (inherit (package-source rust-windows-aarch64-msvc-0.42)) - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v")))))) - -(define-public rust-windows-aarch64-msvc-0.32 - (package - (inherit rust-windows-aarch64-msvc-0.36) - (name "rust-windows-aarch64-msvc") - (version "0.32.0") - (source (origin - (inherit (package-source rust-windows-aarch64-msvc-0.36)) - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq")))))) - -(define-public rust-windows-aarch64-msvc-0.28 - (package - (inherit rust-windows-aarch64-msvc-0.32) - (name "rust-windows-aarch64-msvc") - (version "0.28.0") - (source (origin - (inherit (package-source rust-windows-aarch64-msvc-0.32)) - (method url-fetch) - (uri (crate-uri "windows_aarch64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj")))))) - -(define-public rust-windows-bindgen-0.51 - (package - (name "rust-windows-bindgen") - (version "0.51.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-bindgen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0xfdq4q958qal5iks8xkaanf7w3akzfxc58dxvz7amhjg2vic7xw")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-rayon" ,rust-rayon-1) - ("rust-syn" ,rust-syn-2) - ("rust-windows-metadata" ,rust-windows-metadata-0.51)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Windows metadata compiler") - (description "Windows metadata compiler.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-i686-gnu-0.52 - (package - (name "rust-windows-i686-gnu") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "04zkglz4p3pjsns5gbz85v4s5aw102raz4spj4b0lmm33z5kg1m2")) - (snippet - '(delete-file "lib/libwindows.0.52.0.a")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-i686-gnu-0.48 - (package - (inherit rust-windows-i686-gnu-0.52) - (name "rust-windows-i686-gnu") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0hd2v9kp8fss0rzl83wzhw0s5z8q1b4875m6s1phv0yvlxi1jak2")) - (snippet - #~(delete-file "lib/libwindows.0.48.0.a")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-i686-gnu-0.42 - (package - (inherit rust-windows-i686-gnu-0.48) - (name "rust-windows-i686-gnu") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0kx866dfrby88lqs9v1vgmrkk1z6af9lhaghh5maj7d4imyr47f6")) - (snippet - #~(delete-file "lib/libwindows.a")))) - (arguments - (list #:skip-build? #t)))) - -(define-public rust-windows-i686-gnu-0.39 - (package - (inherit rust-windows-i686-gnu-0.42) - (name "rust-windows-i686-gnu") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "06wynhxklmh3s1ril9bh00rhv1npppcyirsp60p09xx501qwagvn")) - (snippet - #~(delete-file "lib/libwindows.a")))))) - -(define-public rust-windows-i686-gnu-0.36 - (package - (inherit rust-windows-i686-gnu-0.42) - (name "rust-windows-i686-gnu") - (version "0.36.1") - (source (origin - (inherit (package-source rust-windows-i686-gnu-0.42)) - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq")))))) - -(define-public rust-windows-i686-gnu-0.32 - (package - (inherit rust-windows-i686-gnu-0.36) - (name "rust-windows-i686-gnu") - (version "0.32.0") - (source (origin - (inherit (package-source rust-windows-i686-gnu-0.36)) - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba")))))) - -(define-public rust-windows-i686-gnu-0.28 - (package - (inherit rust-windows-i686-gnu-0.32) - (name "rust-windows-i686-gnu") - (version "0.28.0") - (source (origin - (inherit (package-source rust-windows-i686-gnu-0.32)) - (method url-fetch) - (uri (crate-uri "windows_i686_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm")))))) - -(define-public rust-windows-i686-msvc-0.52 - (package - (name "rust-windows-i686-msvc") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "16kvmbvx0vr0zbgnaz6nsks9ycvfh5xp05bjrhq65kj623iyirgz")) - (snippet - '(delete-file "lib/windows.0.52.0.lib")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-i686-msvc-0.48 - (package - (inherit rust-windows-i686-msvc-0.52) - (name "rust-windows-i686-msvc") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "004fkyqv3if178xx9ksqc4qqv8sz8n72mpczsr2vy8ffckiwchj5")) - (snippet - #~(delete-file "lib/windows.0.48.0.lib")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-i686-msvc-0.42 - (package - (inherit rust-windows-i686-msvc-0.48) - (name "rust-windows-i686-msvc") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0q0h9m2aq1pygc199pa5jgc952qhcnf0zn688454i7v4xjv41n24")) - (snippet - #~(delete-file "lib/windows.lib")))) - (arguments - (list #:skip-build? #t)))) - -(define-public rust-windows-i686-msvc-0.39 - (package - (inherit rust-windows-i686-msvc-0.42) - (name "rust-windows-i686-msvc") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "01hiv9msxssy5iqxs7bczvf094k4mz56yi4z1bhj32c2b3zcpivv")) - (snippet - #~(delete-file "lib/windows.lib")))))) - -(define-public rust-windows-i686-msvc-0.36 - (package - (inherit rust-windows-i686-msvc-0.42) - (name "rust-windows-i686-msvc") - (version "0.36.1") - (source (origin - (inherit (package-source rust-windows-i686-msvc-0.42)) - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2")))))) - -(define-public rust-windows-i686-msvc-0.32 - (package - (inherit rust-windows-i686-msvc-0.36) - (name "rust-windows-i686-msvc") - (version "0.32.0") - (source (origin - (inherit (package-source rust-windows-i686-msvc-0.36)) - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l")))))) - -(define-public rust-windows-i686-msvc-0.28 - (package - (inherit rust-windows-i686-msvc-0.32) - (name "rust-windows-i686-msvc") - (version "0.28.0") - (source (origin - (inherit (package-source rust-windows-i686-msvc-0.32)) - (method url-fetch) - (uri (crate-uri "windows_i686_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai")))))) - -(define-public rust-windows-implement-0.48 - (package - (name "rust-windows-implement") - (version "0.48.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-implement" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1764n853zd7bb0wn94i0qxfs6kdy7wrz7v9qhdn7x7hvk64fabjy")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "The implement macro for the windows crate") - (description "This package provides the @code{implement} macro for the -windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-implement-0.46 - (package - (inherit rust-windows-implement-0.48) - (name "rust-windows-implement") - (version "0.46.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-implement" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "09kw706qcms5yy34lf714zspj34v8jirfxv7yycavpcsa9czpd69")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))))) - -(define-public rust-windows-implement-0.44 - (package - (inherit rust-windows-implement-0.48) - (name "rust-windows-implement") - (version "0.44.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-implement" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1ij5q9khlcfn43a1p3ypjbn711k50s9pc8la5bf04ys1wfl7rs3c")))) - (arguments - `(#:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))))) - -(define-public rust-windows-implement-0.39 - (package - (inherit rust-windows-implement-0.46) - (name "rust-windows-implement") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-implement" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1ryfy5sgf26xmflf33zabzqn10pp6pjrbz75yh2xrdcwa27zj0ds")))) - (arguments - `(#:cargo-inputs (("rust-syn" ,rust-syn-1) - ("rust-windows-tokens" ,rust-windows-tokens-0.39)))))) - -(define-public rust-windows-implement-0.32 - (package - (inherit rust-windows-implement-0.46) - (name "rust-windows-implement") - (version "0.32.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-implement" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0f3lnjs9rlihin9cjf9y7np1x15c0v09v0cwlw1n7c30145xmciz")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-syn" ,rust-syn-1) - ("rust-windows-tokens" ,rust-windows-tokens-0.32)))))) - -(define-public rust-windows-interface-0.48 - (package - (name "rust-windows-interface") - (version "0.48.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-interface" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1iqcilw0hfyzwhk12xfmcy40r10406sgf4xmdansijlv1kr8vyz6")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "The interface macro for the windows crate") - (description "This package provides the interface macro for the windows -crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-interface-0.46 - (package - (inherit rust-windows-interface-0.48) - (name "rust-windows-interface") - (version "0.46.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-interface" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0a87zxh3wq5ng1vvgqf7jhydsshrpc5w39pyvr0l1vyv3q5k67xc")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))))) - -(define-public rust-windows-interface-0.44 - (package - (inherit rust-windows-interface-0.48) - (name "rust-windows-interface") - (version "0.44.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-interface" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0zwwwfzjdf087gvgy48bbfq9yd0fsh1fj5wzs88gim7cj6jnjgw5")))) - (arguments - `(#:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))))) - -(define-public rust-windows-interface-0.39 - (package - (inherit rust-windows-interface-0.46) - (name "rust-windows-interface") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-interface" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "00h56znmak3p8bh28y3s48m5zv6q7dn40vnvf3dzf0sz5rszrym2")))))) - -(define-public rust-windows-metadata-0.51 - (package - (name "rust-windows-metadata") - (version "0.51.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-metadata" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "03h0c6qs1yyl0z69p4k1hdq636j868qdxnri1dy47nprjvckacbm")))) - (build-system cargo-build-system) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Windows metadata reader") - (description "Windows metadata reader.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-sys-0.52 - (package - (name "rust-windows-sys") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0gd3v4ji88490zgb6b5mq5zgbvwv7zx1ibn8v3x83rwcdbryaar8")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-windows-targets" ,rust-windows-targets-0.52)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Rust for Windows") - (description "The windows crate lets you call any Windows API past, -present, and future using code generated on the fly directly from the metadata -describing the API and right into your Rust package where you can call them as -if they were just another Rust module.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-sys-0.48 - (package - (inherit rust-windows-sys-0.52) - (name "rust-windows-sys") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1aan23v5gs7gya1lc46hqn9mdh8yph3fhxmhxlw36pn6pqc28zb7")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-windows-targets" ,rust-windows-targets-0.48)))))) - -(define-public rust-windows-sys-0.45 - (package - (inherit rust-windows-sys-0.48) - (name "rust-windows-sys") - (version "0.45.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1l36bcqm4g89pknfp8r9rl1w4bn017q6a8qlx8viv0xjxzjkna3m")))) - (arguments - (list #:skip-build? #t - #:cargo-inputs - `(("rust-windows-targets" ,rust-windows-targets-0.42)))))) - -(define-public rust-windows-sys-0.42 - (package - (inherit rust-windows-sys-0.45) - (name "rust-windows-sys") - (version "0.42.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "19waf8aryvyq9pzk0gamgfwjycgzk4gnrazpfvv171cby0h1hgjs")))) - (arguments - (list #:skip-build? #t - #:cargo-inputs - `(("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42) - ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42)))))) - -(define-public rust-windows-sys-0.36 - (package - (inherit rust-windows-sys-0.42) - (name "rust-windows-sys") - (version "0.36.1") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a")))) - (arguments - (list #:skip-build? #t - #:cargo-inputs - `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36)))))) - -(define-public rust-windows-sys-0.28 - (package - (inherit rust-windows-sys-0.36) - (name "rust-windows-sys") - (version "0.28.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1xkghf343nll9i1yvha1a4spf53mnb5knzmnqj9adgsw5mh3kjl2")))) - (arguments - (list #:skip-build? #t - #:cargo-inputs - `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28)))))) - -(define-public rust-windows-gen-0.9 - (package - (name "rust-windows-gen") - (version "0.9.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_gen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0lh492px26rrna0harikyy4p7nk520pw2lv0dczp4n2xa6y4s5al")))) - (build-system cargo-build-system) - (arguments `(#:skip-build? #t #:cargo-inputs (("rust-syn" ,rust-syn-1)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description "Code gen support for the windows crate") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-macros-0.9 - (package - (name "rust-windows-macros") - (version "0.9.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_macros" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0xivsg3lf023hs83xiab2k40fmrl11nbihcdrdkc8pc4ab398xqg")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-syn" ,rust-syn-1) ("rust-windows-gen" ,rust-windows-gen-0.9)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Macros for the windows crate") - (description "Macros for the windows crate") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-targets-0.52 - (package - (name "rust-windows-targets") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-targets" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1kg7a27ynzw8zz3krdgy6w5gbqcji27j1sz4p7xk2j5j8082064a")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.52) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.52) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.52) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.52) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.52) - ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.52) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.52)))) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-targets-0.48 - (package - (inherit rust-windows-targets-0.52) - (name "rust-windows-targets") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-targets" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1mfzg94w0c8h4ya9sva7rra77f3iy1712af9b6bwg03wrpqbc7kv")))) - (arguments - `(#:cargo-inputs - (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.48) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.48) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.48) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.48) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.48) - ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.48) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.48)))))) - -(define-public rust-windows-targets-0.42 - (package - (inherit rust-windows-targets-0.48) - (name "rust-windows-targets") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-targets" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0wfhnib2fisxlx8c507dbmh97kgij4r6kcxdi0f9nk6l1k080lcf")))) - (arguments - `(#:cargo-inputs - (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42) - ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42) - ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42) - ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42) - ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42) - ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42) - ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42)))))) - -(define-public rust-windows-tokens-0.39 - (package - (name "rust-windows-tokens") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows-tokens" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "15zmsz8ji6z7471xwznrm4hqp6j94s7pjjz7i34vmrjzw4pxwf7q")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description "This package provides code generation support for the -windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-tokens-0.32 - (package - (inherit rust-windows-tokens-0.39) - (name "rust-windows-tokens") - (version "0.32.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows-tokens" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1rrqbxjkyk6h6p6jjzbcxr0mhqbz0yfndd2s2dsgmbl75f4yy7gn")))))) - -(define-public rust-windows-x86-64-gnu-0.52 - (package - (name "rust-windows-x86-64-gnu") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1zdy4qn178sil5sdm63lm7f0kkcjg6gvdwmcprd2yjmwn8ns6vrx")) - (snippet - '(delete-file "lib/libwindows.0.52.0.a")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-x86-64-gnu-0.48 - (package - (inherit rust-windows-x86-64-gnu-0.52) - (name "rust-windows-x86-64-gnu") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1cblz5m6a8q6ha09bz4lz233dnq5sw2hpra06k9cna3n3xk8laya")) - (snippet - #~(delete-file "lib/libwindows.0.48.0.a")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-gnu-0.42 - (package - (inherit rust-windows-x86-64-gnu-0.48) - (name "rust-windows-x86-64-gnu") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0dnbf2xnp3xrvy8v9mgs3var4zq9v9yh9kv79035rdgyp2w15scd")) - (snippet - #~(delete-file "lib/libwindows.a")))) - (arguments - (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-gnu-0.39 - (package - (inherit rust-windows-x86-64-gnu-0.42) - (name "rust-windows-x86-64-gnu") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0r9b4lmapq66nn2dga7a0mkdv5sgbp184kfwx3hklrbxcdjw2s38")) - (snippet - #~(delete-file "lib/libwindows.a")))))) - -(define-public rust-windows-x86-64-gnu-0.36 - (package - (inherit rust-windows-x86-64-gnu-0.42) - (name "rust-windows-x86-64-gnu") - (version "0.36.1") - (source (origin - (inherit (package-source rust-windows-x86-64-gnu-0.42)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad")))))) - -(define-public rust-windows-x86-64-gnu-0.32 - (package - (inherit rust-windows-x86-64-gnu-0.36) - (name "rust-windows-x86-64-gnu") - (version "0.32.0") - (source (origin - (inherit (package-source rust-windows-x86-64-gnu-0.36)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9")))))) - -(define-public rust-windows-x86-64-gnu-0.28 - (package - (inherit rust-windows-x86-64-gnu-0.32) - (name "rust-windows-x86-64-gnu") - (version "0.28.0") - (source (origin - (inherit (package-source rust-windows-x86-64-gnu-0.32)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnu" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw")))))) - -(define-public rust-windows-x86-64-gnullvm-0.52 - (package - (name "rust-windows-x86-64-gnullvm") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "17lllq4l2k1lqgcnw1cccphxp9vs7inq99kjlm2lfl9zklg7wr8s")) - (snippet - '(delete-file "lib/libwindows.0.52.0.a")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-x86-64-gnullvm-0.48 - (package - (inherit rust-windows-x86-64-gnullvm-0.52) - (name "rust-windows-x86-64-gnullvm") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0lxryz3ysx0145bf3i38jkr7f9nxiym8p3syklp8f20yyk0xp5kq")) - (snippet - '(delete-file "lib/libwindows.0.48.0.a")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-gnullvm-0.42 - (package - (inherit rust-windows-x86-64-gnullvm-0.48) - (name "rust-windows-x86-64-gnullvm") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_gnullvm" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "18wl9r8qbsl475j39zvawlidp1bsbinliwfymr43fibdld31pm16")) - (snippet - '(delete-file "lib/libwindows.a")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-msvc-0.52 - (package - (name "rust-windows-x86-64-msvc") - (version "0.52.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "012wfq37f18c09ij5m6rniw7xxn5fcvrxbqd0wd8vgnl3hfn9yfz")) - (snippet - '(delete-file "lib/windows.0.52.0.lib")))) - (build-system cargo-build-system) - (arguments (list #:skip-build? #t)) - (home-page "https://github.com/microsoft/windows-rs") - (synopsis "Code gen support for the windows crate") - (description - "This package provides code gen support for the windows crate.") - (license (list license:expat license:asl2.0)))) - -(define-public rust-windows-x86-64-msvc-0.48 - (package - (inherit rust-windows-x86-64-msvc-0.52) - (name "rust-windows-x86-64-msvc") - (version "0.48.0") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "12ipr1knzj2rwjygyllfi5mkd0ihnbi3r61gag5n2jgyk5bmyl8s")) - (snippet - #~(delete-file "lib/windows.0.48.0.lib")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-msvc-0.42 - (package - (inherit rust-windows-x86-64-msvc-0.48) - (name "rust-windows-x86-64-msvc") - (version "0.42.2") - (source (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1w5r0q0yzx827d10dpjza2ww0j8iajqhmb54s735hhaj66imvv4s")) - (snippet - #~(delete-file "lib/windows.lib")))) - (arguments (list #:skip-build? #t)))) - -(define-public rust-windows-x86-64-msvc-0.39 - (package - (inherit rust-windows-x86-64-msvc-0.42) - (name "rust-windows-x86-64-msvc") - (version "0.39.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "02g8fy1sv8g0p4fi2yk62j9a5zwhcfknp9vwg1ifkjp97a440kay")) - (snippet - #~(delete-file "lib/windows.lib")))))) - -(define-public rust-windows-x86-64-msvc-0.36 - (package - (inherit rust-windows-x86-64-msvc-0.42) - (name "rust-windows-x86-64-msvc") - (version "0.36.1") - (source (origin - (inherit (package-source rust-windows-x86-64-msvc-0.42)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8")))))) - -(define-public rust-windows-x86-64-msvc-0.32 - (package - (inherit rust-windows-x86-64-msvc-0.36) - (name "rust-windows-x86-64-msvc") - (version "0.32.0") - (source (origin - (inherit (package-source rust-windows-x86-64-msvc-0.36)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh")))))) - -(define-public rust-windows-x86-64-msvc-0.28 - (package - (inherit rust-windows-x86-64-msvc-0.32) - (name "rust-windows-x86-64-msvc") - (version "0.28.0") - (source (origin - (inherit (package-source rust-windows-x86-64-msvc-0.32)) - (method url-fetch) - (uri (crate-uri "windows_x86_64_msvc" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz")))))) - (define-public rust-winnow-0.5 (package (name "rust-winnow") diff --git a/gnu/packages/crates-vcs.scm b/gnu/packages/crates-vcs.scm index beaca6aba9..8edc31f6da 100644 --- a/gnu/packages/crates-vcs.scm +++ b/gnu/packages/crates-vcs.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-windows) #:use-module (gnu packages curl) #:use-module (gnu packages llvm) #:use-module (gnu packages nettle) diff --git a/gnu/packages/crates-windows.scm b/gnu/packages/crates-windows.scm new file mode 100644 index 0000000000..279f11af7f --- /dev/null +++ b/gnu/packages/crates-windows.scm @@ -0,0 +1,1286 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Nicolas Goaziou +;;; Copyright © 2022 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2022 ( +;;; Copyright © 2022, 2023 Ricardo Wurmus +;;; Copyright © 2023 Efraim Flashner +;;; Copyright © 2023 Jaeme Sifat +;;; Copyright © 2023 Daniel Ziltener +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-windows) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io)) + +(define-public rust-windows-0.48 + (package + (name "rust-windows") + (version "0.48.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "03vh89ilnxdxdh0n9np4ns4m10fvm93h3b0cc05ipg3qq1mqi1p6")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-windows-implement" ,rust-windows-implement-0.48) + ("rust-windows-interface" ,rust-windows-interface-0.48) + ("rust-windows-targets" ,rust-windows-targets-0.48)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Rust for Windows") + (description "The windows crate lets you call any Windows API past, +present, and future using code generated on the fly directly from the metadata +describing the API and right into your Rust package where you can call them as +if they were just another Rust module.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-0.46 + (package + (inherit rust-windows-0.48) + (name "rust-windows") + (version "0.46.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "098crdz9gxgy3614ygznqqhn28q097r498b3rg35584nd8gb9b6d")))) + (arguments + `(#:cargo-inputs + (("rust-windows-implement" ,rust-windows-implement-0.46) + ("rust-windows-interface" ,rust-windows-interface-0.46) + ("rust-windows-targets" ,rust-windows-targets-0.42)))))) + +(define-public rust-windows-0.44 + (package + (inherit rust-windows-0.48) + (name "rust-windows") + (version "0.44.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0ax1ip82dhszxz4hhsrdj3b0681xw6axahnfldxcgi506nmmsx4y")))) + (arguments + `(#:tests? #f ; Test suite only runs on Windows. + #:cargo-inputs + (("rust-windows-implement" ,rust-windows-implement-0.44) + ("rust-windows-interface" ,rust-windows-interface-0.44) + ("rust-windows-targets" ,rust-windows-targets-0.42)))))) + +(define-public rust-windows-0.39 + (package + (inherit rust-windows-0.46) + (name "rust-windows") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0jkr4rxj6jn7brqxycr1pjgvnixsimsiywl4a7v20q5ca05bvi7i")))) + (arguments + `(#:cargo-inputs (("rust-windows-implement" ,rust-windows-implement-0.39) + ("rust-windows-interface" ,rust-windows-interface-0.39) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.39) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.39) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.39) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.39) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.39)))))) + +(define-public rust-windows-0.32 + (package + (inherit rust-windows-0.46) + (name "rust-windows") + (version "0.32.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1v0h5b5g1ak2f2a6gkgjqgrqkkbdcfmf02nfmmj27g4nj3dzdvgv")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-windows-implement" ,rust-windows-implement-0.32) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.32) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.32) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.32) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.32) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.32)))))) + +(define-public rust-windows-0.9 + (package + (inherit rust-windows-0.46) + (name "rust-windows") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0zy9jmhkhmsng7l9qiznxpdh5ns303s875p5kf6a5q9ym0rka7rn")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-const-sha1" ,rust-const-sha1-0.2) + ("rust-windows-gen" ,rust-windows-gen-0.9) + ("rust-windows-macros" ,rust-windows-macros-0.9)))))) + +(define-public rust-windows-aarch64-gnullvm-0.52 + (package + (name "rust-windows-aarch64-gnullvm") + (version "0.52.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1shmn1kbdc0bpphcxz0vlph96bxz0h1jlmh93s9agf2dbpin8xyb")) + (snippet + '(delete-file "lib/libwindows.0.52.0.a")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-aarch64-gnullvm-0.48 + (package + (inherit rust-windows-aarch64-gnullvm-0.52) + (name "rust-windows-aarch64-gnullvm") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1g71yxi61c410pwzq05ld7si4p9hyx6lf5fkw21sinvr3cp5gbli")) + (snippet + '(delete-file "lib/libwindows.0.48.0.a")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-aarch64-gnullvm-0.42 + (package + (inherit rust-windows-aarch64-gnullvm-0.48) + (name "rust-windows-aarch64-gnullvm") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y4q0qmvl0lvp7syxvfykafvmwal5hrjb4fmv04bqs0bawc52yjr")) + (snippet + '(delete-file "lib/libwindows.a")))) + (arguments + (list #:skip-build? #t)))) + +(define-public rust-windows-aarch64-msvc-0.52 + (package + (name "rust-windows-aarch64-msvc") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1vvmy1ypvzdvxn9yf0b8ygfl85gl2gpcyvsvqppsmlpisil07amv")) + (snippet + '(delete-file "lib/windows.0.52.0.lib")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description "This package provides code gen support for the windows +crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-aarch64-msvc-0.48 + (package + (inherit rust-windows-aarch64-msvc-0.52) + (name "rust-windows-aarch64-msvc") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wvwipchhywcjaw73h998vzachf668fpqccbhrxzrz5xszh2gvxj")) + (snippet + #~(delete-file "lib/windows.0.48.0.lib")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-aarch64-msvc-0.42 + (package + (inherit rust-windows-aarch64-msvc-0.48) + (name "rust-windows-aarch64-msvc") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hsdikjl5sa1fva5qskpwlxzpc5q9l909fpl1w6yy1hglrj8i3p0")) + (snippet + #~(delete-file "lib/windows.lib")))) + (arguments + (list #:skip-build? #t)))) + +(define-public rust-windows-aarch64-msvc-0.39 + (package + (inherit rust-windows-aarch64-msvc-0.42) + (name "rust-windows-aarch64-msvc") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1wj0nfmyli4bn5af243r4s3zncxv0n4j6dd8zyb41gcnc1k12xzc")) + (snippet + #~(delete-file "lib/windows.lib")))))) + +(define-public rust-windows-aarch64-msvc-0.36 + (package + (inherit rust-windows-aarch64-msvc-0.42) + (name "rust-windows-aarch64-msvc") + (version "0.36.1") + (source + (origin + (inherit (package-source rust-windows-aarch64-msvc-0.42)) + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v")))))) + +(define-public rust-windows-aarch64-msvc-0.32 + (package + (inherit rust-windows-aarch64-msvc-0.36) + (name "rust-windows-aarch64-msvc") + (version "0.32.0") + (source (origin + (inherit (package-source rust-windows-aarch64-msvc-0.36)) + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq")))))) + +(define-public rust-windows-aarch64-msvc-0.28 + (package + (inherit rust-windows-aarch64-msvc-0.32) + (name "rust-windows-aarch64-msvc") + (version "0.28.0") + (source (origin + (inherit (package-source rust-windows-aarch64-msvc-0.32)) + (method url-fetch) + (uri (crate-uri "windows_aarch64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj")))))) + +(define-public rust-windows-bindgen-0.51 + (package + (name "rust-windows-bindgen") + (version "0.51.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-bindgen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xfdq4q958qal5iks8xkaanf7w3akzfxc58dxvz7amhjg2vic7xw")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-rayon" ,rust-rayon-1) + ("rust-syn" ,rust-syn-2) + ("rust-windows-metadata" ,rust-windows-metadata-0.51)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Windows metadata compiler") + (description "Windows metadata compiler.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-i686-gnu-0.52 + (package + (name "rust-windows-i686-gnu") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "04zkglz4p3pjsns5gbz85v4s5aw102raz4spj4b0lmm33z5kg1m2")) + (snippet + '(delete-file "lib/libwindows.0.52.0.a")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-i686-gnu-0.48 + (package + (inherit rust-windows-i686-gnu-0.52) + (name "rust-windows-i686-gnu") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hd2v9kp8fss0rzl83wzhw0s5z8q1b4875m6s1phv0yvlxi1jak2")) + (snippet + #~(delete-file "lib/libwindows.0.48.0.a")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-i686-gnu-0.42 + (package + (inherit rust-windows-i686-gnu-0.48) + (name "rust-windows-i686-gnu") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0kx866dfrby88lqs9v1vgmrkk1z6af9lhaghh5maj7d4imyr47f6")) + (snippet + #~(delete-file "lib/libwindows.a")))) + (arguments + (list #:skip-build? #t)))) + +(define-public rust-windows-i686-gnu-0.39 + (package + (inherit rust-windows-i686-gnu-0.42) + (name "rust-windows-i686-gnu") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "06wynhxklmh3s1ril9bh00rhv1npppcyirsp60p09xx501qwagvn")) + (snippet + #~(delete-file "lib/libwindows.a")))))) + +(define-public rust-windows-i686-gnu-0.36 + (package + (inherit rust-windows-i686-gnu-0.42) + (name "rust-windows-i686-gnu") + (version "0.36.1") + (source (origin + (inherit (package-source rust-windows-i686-gnu-0.42)) + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq")))))) + +(define-public rust-windows-i686-gnu-0.32 + (package + (inherit rust-windows-i686-gnu-0.36) + (name "rust-windows-i686-gnu") + (version "0.32.0") + (source (origin + (inherit (package-source rust-windows-i686-gnu-0.36)) + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba")))))) + +(define-public rust-windows-i686-gnu-0.28 + (package + (inherit rust-windows-i686-gnu-0.32) + (name "rust-windows-i686-gnu") + (version "0.28.0") + (source (origin + (inherit (package-source rust-windows-i686-gnu-0.32)) + (method url-fetch) + (uri (crate-uri "windows_i686_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm")))))) + +(define-public rust-windows-i686-msvc-0.52 + (package + (name "rust-windows-i686-msvc") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16kvmbvx0vr0zbgnaz6nsks9ycvfh5xp05bjrhq65kj623iyirgz")) + (snippet + '(delete-file "lib/windows.0.52.0.lib")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-i686-msvc-0.48 + (package + (inherit rust-windows-i686-msvc-0.52) + (name "rust-windows-i686-msvc") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "004fkyqv3if178xx9ksqc4qqv8sz8n72mpczsr2vy8ffckiwchj5")) + (snippet + #~(delete-file "lib/windows.0.48.0.lib")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-i686-msvc-0.42 + (package + (inherit rust-windows-i686-msvc-0.48) + (name "rust-windows-i686-msvc") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0q0h9m2aq1pygc199pa5jgc952qhcnf0zn688454i7v4xjv41n24")) + (snippet + #~(delete-file "lib/windows.lib")))) + (arguments + (list #:skip-build? #t)))) + +(define-public rust-windows-i686-msvc-0.39 + (package + (inherit rust-windows-i686-msvc-0.42) + (name "rust-windows-i686-msvc") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "01hiv9msxssy5iqxs7bczvf094k4mz56yi4z1bhj32c2b3zcpivv")) + (snippet + #~(delete-file "lib/windows.lib")))))) + +(define-public rust-windows-i686-msvc-0.36 + (package + (inherit rust-windows-i686-msvc-0.42) + (name "rust-windows-i686-msvc") + (version "0.36.1") + (source (origin + (inherit (package-source rust-windows-i686-msvc-0.42)) + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2")))))) + +(define-public rust-windows-i686-msvc-0.32 + (package + (inherit rust-windows-i686-msvc-0.36) + (name "rust-windows-i686-msvc") + (version "0.32.0") + (source (origin + (inherit (package-source rust-windows-i686-msvc-0.36)) + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l")))))) + +(define-public rust-windows-i686-msvc-0.28 + (package + (inherit rust-windows-i686-msvc-0.32) + (name "rust-windows-i686-msvc") + (version "0.28.0") + (source (origin + (inherit (package-source rust-windows-i686-msvc-0.32)) + (method url-fetch) + (uri (crate-uri "windows_i686_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai")))))) + +(define-public rust-windows-implement-0.48 + (package + (name "rust-windows-implement") + (version "0.48.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-implement" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1764n853zd7bb0wn94i0qxfs6kdy7wrz7v9qhdn7x7hvk64fabjy")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "The implement macro for the windows crate") + (description "This package provides the @code{implement} macro for the +windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-implement-0.46 + (package + (inherit rust-windows-implement-0.48) + (name "rust-windows-implement") + (version "0.46.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-implement" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "09kw706qcms5yy34lf714zspj34v8jirfxv7yycavpcsa9czpd69")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + +(define-public rust-windows-implement-0.44 + (package + (inherit rust-windows-implement-0.48) + (name "rust-windows-implement") + (version "0.44.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-implement" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ij5q9khlcfn43a1p3ypjbn711k50s9pc8la5bf04ys1wfl7rs3c")))) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + +(define-public rust-windows-implement-0.39 + (package + (inherit rust-windows-implement-0.46) + (name "rust-windows-implement") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-implement" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ryfy5sgf26xmflf33zabzqn10pp6pjrbz75yh2xrdcwa27zj0ds")))) + (arguments + `(#:cargo-inputs (("rust-syn" ,rust-syn-1) + ("rust-windows-tokens" ,rust-windows-tokens-0.39)))))) + +(define-public rust-windows-implement-0.32 + (package + (inherit rust-windows-implement-0.46) + (name "rust-windows-implement") + (version "0.32.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-implement" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0f3lnjs9rlihin9cjf9y7np1x15c0v09v0cwlw1n7c30145xmciz")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-syn" ,rust-syn-1) + ("rust-windows-tokens" ,rust-windows-tokens-0.32)))))) + +(define-public rust-windows-interface-0.48 + (package + (name "rust-windows-interface") + (version "0.48.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-interface" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1iqcilw0hfyzwhk12xfmcy40r10406sgf4xmdansijlv1kr8vyz6")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "The interface macro for the windows crate") + (description "This package provides the interface macro for the windows +crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-interface-0.46 + (package + (inherit rust-windows-interface-0.48) + (name "rust-windows-interface") + (version "0.46.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-interface" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0a87zxh3wq5ng1vvgqf7jhydsshrpc5w39pyvr0l1vyv3q5k67xc")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + +(define-public rust-windows-interface-0.44 + (package + (inherit rust-windows-interface-0.48) + (name "rust-windows-interface") + (version "0.44.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-interface" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0zwwwfzjdf087gvgy48bbfq9yd0fsh1fj5wzs88gim7cj6jnjgw5")))) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + +(define-public rust-windows-interface-0.39 + (package + (inherit rust-windows-interface-0.46) + (name "rust-windows-interface") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-interface" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "00h56znmak3p8bh28y3s48m5zv6q7dn40vnvf3dzf0sz5rszrym2")))))) + +(define-public rust-windows-metadata-0.51 + (package + (name "rust-windows-metadata") + (version "0.51.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-metadata" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "03h0c6qs1yyl0z69p4k1hdq636j868qdxnri1dy47nprjvckacbm")))) + (build-system cargo-build-system) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Windows metadata reader") + (description "Windows metadata reader.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-sys-0.52 + (package + (name "rust-windows-sys") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0gd3v4ji88490zgb6b5mq5zgbvwv7zx1ibn8v3x83rwcdbryaar8")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-windows-targets" ,rust-windows-targets-0.52)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Rust for Windows") + (description "The windows crate lets you call any Windows API past, +present, and future using code generated on the fly directly from the metadata +describing the API and right into your Rust package where you can call them as +if they were just another Rust module.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-sys-0.48 + (package + (inherit rust-windows-sys-0.52) + (name "rust-windows-sys") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1aan23v5gs7gya1lc46hqn9mdh8yph3fhxmhxlw36pn6pqc28zb7")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-windows-targets" ,rust-windows-targets-0.48)))))) + +(define-public rust-windows-sys-0.45 + (package + (inherit rust-windows-sys-0.48) + (name "rust-windows-sys") + (version "0.45.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1l36bcqm4g89pknfp8r9rl1w4bn017q6a8qlx8viv0xjxzjkna3m")))) + (arguments + (list #:skip-build? #t + #:cargo-inputs + `(("rust-windows-targets" ,rust-windows-targets-0.42)))))) + +(define-public rust-windows-sys-0.42 + (package + (inherit rust-windows-sys-0.45) + (name "rust-windows-sys") + (version "0.42.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19waf8aryvyq9pzk0gamgfwjycgzk4gnrazpfvv171cby0h1hgjs")))) + (arguments + (list #:skip-build? #t + #:cargo-inputs + `(("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42) + ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42)))))) + +(define-public rust-windows-sys-0.36 + (package + (inherit rust-windows-sys-0.42) + (name "rust-windows-sys") + (version "0.36.1") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a")))) + (arguments + (list #:skip-build? #t + #:cargo-inputs + `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36)))))) + +(define-public rust-windows-sys-0.28 + (package + (inherit rust-windows-sys-0.36) + (name "rust-windows-sys") + (version "0.28.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1xkghf343nll9i1yvha1a4spf53mnb5knzmnqj9adgsw5mh3kjl2")))) + (arguments + (list #:skip-build? #t + #:cargo-inputs + `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28)))))) + +(define-public rust-windows-gen-0.9 + (package + (name "rust-windows-gen") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_gen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0lh492px26rrna0harikyy4p7nk520pw2lv0dczp4n2xa6y4s5al")))) + (build-system cargo-build-system) + (arguments `(#:skip-build? #t #:cargo-inputs (("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description "Code gen support for the windows crate") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-macros-0.9 + (package + (name "rust-windows-macros") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_macros" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xivsg3lf023hs83xiab2k40fmrl11nbihcdrdkc8pc4ab398xqg")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-syn" ,rust-syn-1) ("rust-windows-gen" ,rust-windows-gen-0.9)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Macros for the windows crate") + (description "Macros for the windows crate") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-targets-0.52 + (package + (name "rust-windows-targets") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-targets" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1kg7a27ynzw8zz3krdgy6w5gbqcji27j1sz4p7xk2j5j8082064a")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.52) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.52) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.52) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.52) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.52) + ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.52) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.52)))) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-targets-0.48 + (package + (inherit rust-windows-targets-0.52) + (name "rust-windows-targets") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-targets" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mfzg94w0c8h4ya9sva7rra77f3iy1712af9b6bwg03wrpqbc7kv")))) + (arguments + `(#:cargo-inputs + (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.48) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.48) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.48) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.48) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.48) + ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.48) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.48)))))) + +(define-public rust-windows-targets-0.42 + (package + (inherit rust-windows-targets-0.48) + (name "rust-windows-targets") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-targets" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wfhnib2fisxlx8c507dbmh97kgij4r6kcxdi0f9nk6l1k080lcf")))) + (arguments + `(#:cargo-inputs + (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42) + ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42) + ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42) + ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42) + ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42) + ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42) + ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42)))))) + +(define-public rust-windows-tokens-0.39 + (package + (name "rust-windows-tokens") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows-tokens" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "15zmsz8ji6z7471xwznrm4hqp6j94s7pjjz7i34vmrjzw4pxwf7q")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description "This package provides code generation support for the +windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-tokens-0.32 + (package + (inherit rust-windows-tokens-0.39) + (name "rust-windows-tokens") + (version "0.32.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows-tokens" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rrqbxjkyk6h6p6jjzbcxr0mhqbz0yfndd2s2dsgmbl75f4yy7gn")))))) + +(define-public rust-windows-x86-64-gnu-0.52 + (package + (name "rust-windows-x86-64-gnu") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zdy4qn178sil5sdm63lm7f0kkcjg6gvdwmcprd2yjmwn8ns6vrx")) + (snippet + '(delete-file "lib/libwindows.0.52.0.a")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-x86-64-gnu-0.48 + (package + (inherit rust-windows-x86-64-gnu-0.52) + (name "rust-windows-x86-64-gnu") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1cblz5m6a8q6ha09bz4lz233dnq5sw2hpra06k9cna3n3xk8laya")) + (snippet + #~(delete-file "lib/libwindows.0.48.0.a")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-gnu-0.42 + (package + (inherit rust-windows-x86-64-gnu-0.48) + (name "rust-windows-x86-64-gnu") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0dnbf2xnp3xrvy8v9mgs3var4zq9v9yh9kv79035rdgyp2w15scd")) + (snippet + #~(delete-file "lib/libwindows.a")))) + (arguments + (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-gnu-0.39 + (package + (inherit rust-windows-x86-64-gnu-0.42) + (name "rust-windows-x86-64-gnu") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0r9b4lmapq66nn2dga7a0mkdv5sgbp184kfwx3hklrbxcdjw2s38")) + (snippet + #~(delete-file "lib/libwindows.a")))))) + +(define-public rust-windows-x86-64-gnu-0.36 + (package + (inherit rust-windows-x86-64-gnu-0.42) + (name "rust-windows-x86-64-gnu") + (version "0.36.1") + (source (origin + (inherit (package-source rust-windows-x86-64-gnu-0.42)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad")))))) + +(define-public rust-windows-x86-64-gnu-0.32 + (package + (inherit rust-windows-x86-64-gnu-0.36) + (name "rust-windows-x86-64-gnu") + (version "0.32.0") + (source (origin + (inherit (package-source rust-windows-x86-64-gnu-0.36)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9")))))) + +(define-public rust-windows-x86-64-gnu-0.28 + (package + (inherit rust-windows-x86-64-gnu-0.32) + (name "rust-windows-x86-64-gnu") + (version "0.28.0") + (source (origin + (inherit (package-source rust-windows-x86-64-gnu-0.32)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw")))))) + +(define-public rust-windows-x86-64-gnullvm-0.52 + (package + (name "rust-windows-x86-64-gnullvm") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "17lllq4l2k1lqgcnw1cccphxp9vs7inq99kjlm2lfl9zklg7wr8s")) + (snippet + '(delete-file "lib/libwindows.0.52.0.a")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-x86-64-gnullvm-0.48 + (package + (inherit rust-windows-x86-64-gnullvm-0.52) + (name "rust-windows-x86-64-gnullvm") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0lxryz3ysx0145bf3i38jkr7f9nxiym8p3syklp8f20yyk0xp5kq")) + (snippet + '(delete-file "lib/libwindows.0.48.0.a")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-gnullvm-0.42 + (package + (inherit rust-windows-x86-64-gnullvm-0.48) + (name "rust-windows-x86-64-gnullvm") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_gnullvm" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18wl9r8qbsl475j39zvawlidp1bsbinliwfymr43fibdld31pm16")) + (snippet + '(delete-file "lib/libwindows.a")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-msvc-0.52 + (package + (name "rust-windows-x86-64-msvc") + (version "0.52.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "012wfq37f18c09ij5m6rniw7xxn5fcvrxbqd0wd8vgnl3hfn9yfz")) + (snippet + '(delete-file "lib/windows.0.52.0.lib")))) + (build-system cargo-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://github.com/microsoft/windows-rs") + (synopsis "Code gen support for the windows crate") + (description + "This package provides code gen support for the windows crate.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-windows-x86-64-msvc-0.48 + (package + (inherit rust-windows-x86-64-msvc-0.52) + (name "rust-windows-x86-64-msvc") + (version "0.48.0") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "12ipr1knzj2rwjygyllfi5mkd0ihnbi3r61gag5n2jgyk5bmyl8s")) + (snippet + #~(delete-file "lib/windows.0.48.0.lib")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-msvc-0.42 + (package + (inherit rust-windows-x86-64-msvc-0.48) + (name "rust-windows-x86-64-msvc") + (version "0.42.2") + (source (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1w5r0q0yzx827d10dpjza2ww0j8iajqhmb54s735hhaj66imvv4s")) + (snippet + #~(delete-file "lib/windows.lib")))) + (arguments (list #:skip-build? #t)))) + +(define-public rust-windows-x86-64-msvc-0.39 + (package + (inherit rust-windows-x86-64-msvc-0.42) + (name "rust-windows-x86-64-msvc") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "02g8fy1sv8g0p4fi2yk62j9a5zwhcfknp9vwg1ifkjp97a440kay")) + (snippet + #~(delete-file "lib/windows.lib")))))) + +(define-public rust-windows-x86-64-msvc-0.36 + (package + (inherit rust-windows-x86-64-msvc-0.42) + (name "rust-windows-x86-64-msvc") + (version "0.36.1") + (source (origin + (inherit (package-source rust-windows-x86-64-msvc-0.42)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8")))))) + +(define-public rust-windows-x86-64-msvc-0.32 + (package + (inherit rust-windows-x86-64-msvc-0.36) + (name "rust-windows-x86-64-msvc") + (version "0.32.0") + (source (origin + (inherit (package-source rust-windows-x86-64-msvc-0.36)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh")))))) + +(define-public rust-windows-x86-64-msvc-0.28 + (package + (inherit rust-windows-x86-64-msvc-0.32) + (name "rust-windows-x86-64-msvc") + (version "0.28.0") + (source (origin + (inherit (package-source rust-windows-x86-64-msvc-0.32)) + (method url-fetch) + (uri (crate-uri "windows_x86_64_msvc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz")))))) + diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 561c338959..df731d4b61 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages crates-tls) #:use-module (gnu packages crates-vcs) #:use-module (gnu packages crates-web) + #:use-module (gnu packages crates-windows) #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index ef187c6ced..5a4fee11a5 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -78,6 +78,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) + #:use-module (gnu packages crates-windows) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages dlang) -- cgit 1.4.1 From 6a56702df71ffebf9fceeef140876dd490974112 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 4 Jan 2024 14:21:00 +0200 Subject: gnu: rust-block: Move to (gnu packages crates-apple). * gnu/packages/crates-io.scm (rust-block-0.1, rust-block2-0.3, rust-block2-0.2, rust-block-sys-0.2, rust-block-sys-0.1): Move from here ... * gnu/packages/crates-apple.scm: ... to here. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new file. Change-Id: I278dfdb829340fba937d29691b1451401675c87b --- gnu/local.mk | 1 + gnu/packages/crates-apple.scm | 128 ++++++++++++++++++++++++++++++++++++++++++ gnu/packages/crates-io.scm | 102 +-------------------------------- 3 files changed, 130 insertions(+), 101 deletions(-) create mode 100644 gnu/packages/crates-apple.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1588c6100c..0668ad34dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -201,6 +201,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/cpp.scm \ %D%/packages/cppi.scm \ %D%/packages/cran.scm \ + %D%/packages/crates-apple.scm \ %D%/packages/crates-io.scm \ %D%/packages/crates-graphics.scm \ %D%/packages/crates-gtk.scm \ diff --git a/gnu/packages/crates-apple.scm b/gnu/packages/crates-apple.scm new file mode 100644 index 0000000000..c2275334e1 --- /dev/null +++ b/gnu/packages/crates-apple.scm @@ -0,0 +1,128 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Valentin Ignatev +;;; Copyright © 2023, 2024 Efraim Flashner +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-apple) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io)) + +(define-public rust-block-0.1 + (package + (name "rust-block") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "block" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16k9jgll25pzsq14f244q22cdv0zb4bqacldg3kx6h89d7piz30d")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-development-inputs + (("rust-objc-test-utils" ,rust-objc-test-utils-0.0)))) + (home-page "https://github.com/SSheldon/rust-block") + (synopsis "Rust interface for Apple's C language extension of blocks") + (description "This package provides a rust interface for Apple's C language +extension of blocks.") + (license license:expat))) + +(define-public rust-block2-0.3 + (package + (name "rust-block2") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "block2" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0s2ywcis2xf9444vmdgzr7ankrrkpchn8zimaw950cszm1imdd8m")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ; link kind `framework` is only supported on Apple targets + #:cargo-inputs (("rust-block-sys" ,rust-block-sys-0.2) + ("rust-objc2" ,rust-objc2-0.4)))) + (home-page "https://github.com/madsmtm/objc2") + (synopsis "Apple's C language extension of blocks") + (description "This package contains Apple's C language extension of blocks.") + (license license:expat))) + +(define-public rust-block2-0.2 + (package + (inherit rust-block2-0.3) + (name "rust-block2") + (version "0.2.0-alpha.6") + (source (origin + (method url-fetch) + (uri (crate-uri "block2" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hpcdl81rmwvhfni9413hrg1wd4xwf6vhch3yv15bxs42wyfdncd")))) + (arguments + `(#:tests? #f ; Tests require gcc-objc. + #:cargo-inputs + (("rust-block-sys" ,rust-block-sys-0.1) + ("rust-objc2-encode" ,rust-objc2-encode-2)))))) + +(define-public rust-block-sys-0.2 + (package + (name "rust-block-sys") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "block-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "14pddxc4rma833prvlbh5a22q6qwx32hhz7aqmnw1p9cj58czmrd")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ; Needs to bind to MacOS libraries. + #:cargo-inputs (("rust-objc-sys" ,rust-objc-sys-0.3)))) + (home-page "https://github.com/madsmtm/objc2") + (synopsis "Raw bindings to Apple's C language extension of blocks") + (description "This package contains raw bindings to Apple's C language +extension of blocks.") + (license license:expat))) + +(define-public rust-block-sys-0.1 + (package + (inherit rust-block-sys-0.2) + (name "rust-block-sys") + (version "0.1.0-beta.1") + (source (origin + (method url-fetch) + (uri (crate-uri "block-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0ihiar08hk0das4q0ii1gsmql975z3rslli1h13jb44hxr0mg98g")))) + (arguments + `(#:tests? #f ; Tests require gcc-objc. + #:cargo-inputs + (("rust-objc-sys" ,rust-objc-sys-0.2)))))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 7dafcc6596..6e2f5ff2e0 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages crates-apple) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) #:use-module (gnu packages crates-tls) @@ -7305,69 +7306,6 @@ storage.") (("rust-byteorder" ,rust-byteorder-1) ("rust-hex" ,rust-hex-0.3)))))) -(define-public rust-block-0.1 - (package - (name "rust-block") - (version "0.1.6") - (source - (origin - (method url-fetch) - (uri (crate-uri "block" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "16k9jgll25pzsq14f244q22cdv0zb4bqacldg3kx6h89d7piz30d")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-development-inputs - (("rust-objc-test-utils" ,rust-objc-test-utils-0.0)))) - (home-page "https://github.com/SSheldon/rust-block") - (synopsis "Rust interface for Apple's C language extension of blocks") - (description "This package provides a rust interface for Apple's C language -extension of blocks.") - (license license:expat))) - -(define-public rust-block2-0.3 - (package - (name "rust-block2") - (version "0.3.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "block2" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0s2ywcis2xf9444vmdgzr7ankrrkpchn8zimaw950cszm1imdd8m")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t ; link kind `framework` is only supported on Apple targets - #:cargo-inputs (("rust-block-sys" ,rust-block-sys-0.2) - ("rust-objc2" ,rust-objc2-0.4)))) - (home-page "https://github.com/madsmtm/objc2") - (synopsis "Apple's C language extension of blocks") - (description "This package contains Apple's C language extension of blocks.") - (license license:expat))) - -(define-public rust-block2-0.2 - (package - (inherit rust-block2-0.3) - (name "rust-block2") - (version "0.2.0-alpha.6") - (source (origin - (method url-fetch) - (uri (crate-uri "block2" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0hpcdl81rmwvhfni9413hrg1wd4xwf6vhch3yv15bxs42wyfdncd")))) - (arguments - `(#:tests? #f ; Tests require gcc-objc. - #:cargo-inputs - (("rust-block-sys" ,rust-block-sys-0.1) - ("rust-objc2-encode" ,rust-objc2-encode-2)))))) - (define-public rust-block-buffer-0.10 (package (name "rust-block-buffer") @@ -7610,44 +7548,6 @@ and block modes.") `(#:cargo-inputs (("rust-byte-tools" ,rust-byte-tools-0.3)))))) -(define-public rust-block-sys-0.2 - (package - (name "rust-block-sys") - (version "0.2.0") - (source - (origin - (method url-fetch) - (uri (crate-uri "block-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "14pddxc4rma833prvlbh5a22q6qwx32hhz7aqmnw1p9cj58czmrd")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t ; Needs to bind to MacOS libraries. - #:cargo-inputs (("rust-objc-sys" ,rust-objc-sys-0.3)))) - (home-page "https://github.com/madsmtm/objc2") - (synopsis "Raw bindings to Apple's C language extension of blocks") - (description "This package contains raw bindings to Apple's C language -extension of blocks.") - (license license:expat))) - -(define-public rust-block-sys-0.1 - (package - (inherit rust-block-sys-0.2) - (name "rust-block-sys") - (version "0.1.0-beta.1") - (source (origin - (method url-fetch) - (uri (crate-uri "block-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0ihiar08hk0das4q0ii1gsmql975z3rslli1h13jb44hxr0mg98g")))) - (arguments - `(#:tests? #f ; Tests require gcc-objc. - #:cargo-inputs - (("rust-objc-sys" ,rust-objc-sys-0.2)))))) - (define-public rust-blocking-1 (package (name "rust-blocking") -- cgit 1.4.1 From 179900942d3ad6f26947c570421a71b8666124db Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 21 Jan 2024 13:40:54 +0200 Subject: gnu: rust-botan: Move to (gnu packages crates-crypto). * gnu/packages/crates-io.scm (rust-botan-0.10, rust-botan-0.8, rust-botan-sys-0.10, rust-botan-sys-0.8, rust-botan-src-0.21903, rust-botan-src-0.21703): Move from here ... * gnu/packages/crates-crypto.scm: ... to here. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new file. Change-Id: I459c94e9f70a51bdf48020792562e57ebc2119df --- gnu/local.mk | 1 + gnu/packages/crates-crypto.scm | 146 +++++++++++++++++++++++++++++++++++++++++ gnu/packages/crates-io.scm | 115 +------------------------------- gnu/packages/sequoia.scm | 1 + 4 files changed, 149 insertions(+), 114 deletions(-) create mode 100644 gnu/packages/crates-crypto.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 0668ad34dc..917ff9db97 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -202,6 +202,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/cppi.scm \ %D%/packages/cran.scm \ %D%/packages/crates-apple.scm \ + %D%/packages/crates-crypto.scm \ %D%/packages/crates-io.scm \ %D%/packages/crates-graphics.scm \ %D%/packages/crates-gtk.scm \ diff --git a/gnu/packages/crates-crypto.scm b/gnu/packages/crates-crypto.scm new file mode 100644 index 0000000000..67de332f12 --- /dev/null +++ b/gnu/packages/crates-crypto.scm @@ -0,0 +1,146 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Efraim Flashner +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages crates-crypto) + #:use-module (guix build-system cargo) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crypto)) + +;;; +;;; Please: Try to add new module packages in alphabetic order. +;;; + +(define-public rust-botan-0.10 + (package + (name "rust-botan") + (version "0.10.3") + (source (origin + (method url-fetch) + (uri (crate-uri "botan" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1vzl5pdysh848zpphsgvj9c40zdi3ynl32zzixsd8vg4vaflhb49")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-botan-sys" ,rust-botan-sys-0.10)) + #:cargo-development-inputs + (("rust-hex" ,rust-hex-0.4) + ("rust-wycheproof" ,rust-wycheproof-0.5)))) + (inputs (list botan)) + (home-page "https://botan.randombit.net/") + (synopsis "Rust wrapper for Botan cryptography library") + (description "Rust wrapper for Botan cryptography library") + (license license:expat))) + +(define-public rust-botan-0.8 + (package + (inherit rust-botan-0.10) + (name "rust-botan") + (version "0.8.1") + (source (origin + (method url-fetch) + (uri (crate-uri "botan" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik")))) + (arguments + `(#:cargo-inputs + (("rust-botan-sys" ,rust-botan-sys-0.8) + ("rust-cstr-core" ,rust-cstr-core-0.2) + ("rust-cty" ,rust-cty-0.2)))))) + +(define-public rust-botan-sys-0.10 + (package + (name "rust-botan-sys") + (version "0.10.3") + (source (origin + (method url-fetch) + (uri (crate-uri "botan-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1cbjr44gc5dhmgl43sfiqzbsma4anfi3h26m4yzsli23yd1lmyf8")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-botan-src" ,rust-botan-src-0.21903)))) + (inputs (list botan)) + (home-page "https://botan.randombit.net/") + (synopsis "FFI wrapper for Botan cryptography library") + (description "FFI wrapper for Botan cryptography library") + (license license:expat))) + +(define-public rust-botan-sys-0.8 + (package + (inherit rust-botan-sys-0.10) + (name "rust-botan-sys") + (version "0.8.1") + (source (origin + (method url-fetch) + (uri (crate-uri "botan-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x")))) + (arguments + `(#:cargo-inputs + (("rust-botan-src" ,rust-botan-src-0.21703) + ("rust-cty" ,rust-cty-0.2)))))) + +(define-public rust-botan-src-0.21903 + (package + (name "rust-botan-src") + (version "0.21903.1") + (source (origin + (method url-fetch) + (uri (crate-uri "botan-src" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19fhll4g0v8hbyjxg8c790l9ln5xgf4r6xdcnw438mpy81hvrdxy")) + (modules '((guix build utils))) + (snippet + '(begin (delete-file-recursively "botan"))))) + (build-system cargo-build-system) + (arguments '(#:skip-build? #t)) + (home-page "https://botan.randombit.net/") + (synopsis "Sources of Botan cryptography library") + (description "Sources of Botan cryptography library") + (license license:expat))) + +(define-public rust-botan-src-0.21703 + (package + (inherit rust-botan-src-0.21903) + (name "rust-botan-src") + (version "0.21703.0") + (source (origin + (method url-fetch) + (uri (crate-uri "botan-src" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8")) + (modules '((guix build utils))) + (snippet + '(begin (delete-file-recursively "botan"))))))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index b964333984..712341a101 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -75,6 +75,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-apple) + #:use-module (gnu packages crates-crypto) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) #:use-module (gnu packages crates-tls) @@ -8103,120 +8104,6 @@ comes with a strict specification.") (description "This crate implements schema generator for @code{borsh}.") (license license:asl2.0))) -(define-public rust-botan-0.10 - (package - (name "rust-botan") - (version "0.10.3") - (source (origin - (method url-fetch) - (uri (crate-uri "botan" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1vzl5pdysh848zpphsgvj9c40zdi3ynl32zzixsd8vg4vaflhb49")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-botan-sys" ,rust-botan-sys-0.10)) - #:cargo-development-inputs - (("rust-hex" ,rust-hex-0.4) - ("rust-wycheproof" ,rust-wycheproof-0.5)))) - (inputs (list botan)) - (home-page "https://botan.randombit.net/") - (synopsis "Rust wrapper for Botan cryptography library") - (description "Rust wrapper for Botan cryptography library") - (license license:expat))) - -(define-public rust-botan-0.8 - (package - (inherit rust-botan-0.10) - (name "rust-botan") - (version "0.8.1") - (source (origin - (method url-fetch) - (uri (crate-uri "botan" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik")))) - (arguments - `(#:cargo-inputs - (("rust-botan-sys" ,rust-botan-sys-0.8) - ("rust-cstr-core" ,rust-cstr-core-0.2) - ("rust-cty" ,rust-cty-0.2)))))) - -(define-public rust-botan-sys-0.10 - (package - (name "rust-botan-sys") - (version "0.10.3") - (source (origin - (method url-fetch) - (uri (crate-uri "botan-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1cbjr44gc5dhmgl43sfiqzbsma4anfi3h26m4yzsli23yd1lmyf8")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs (("rust-botan-src" ,rust-botan-src-0.21903)))) - (inputs (list botan)) - (home-page "https://botan.randombit.net/") - (synopsis "FFI wrapper for Botan cryptography library") - (description "FFI wrapper for Botan cryptography library") - (license license:expat))) - -(define-public rust-botan-sys-0.8 - (package - (inherit rust-botan-sys-0.10) - (name "rust-botan-sys") - (version "0.8.1") - (source (origin - (method url-fetch) - (uri (crate-uri "botan-sys" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x")))) - (arguments - `(#:cargo-inputs - (("rust-botan-src" ,rust-botan-src-0.21703) - ("rust-cty" ,rust-cty-0.2)))))) - -(define-public rust-botan-src-0.21903 - (package - (name "rust-botan-src") - (version "0.21903.1") - (source (origin - (method url-fetch) - (uri (crate-uri "botan-src" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "19fhll4g0v8hbyjxg8c790l9ln5xgf4r6xdcnw438mpy81hvrdxy")) - (modules '((guix build utils))) - (snippet - '(begin (delete-file-recursively "botan"))))) - (build-system cargo-build-system) - (arguments '(#:skip-build? #t)) - (home-page "https://botan.randombit.net/") - (synopsis "Sources of Botan cryptography library") - (description "Sources of Botan cryptography library") - (license license:expat))) - -(define-public rust-botan-src-0.21703 - (package - (inherit rust-botan-src-0.21903) - (name "rust-botan-src") - (version "0.21703.0") - (source (origin - (method url-fetch) - (uri (crate-uri "botan-src" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8")) - (modules '((guix build utils))) - (snippet - '(begin (delete-file-recursively "botan"))))))) - (define-public rust-boxfnonce-0.1 (package (name "rust-boxfnonce") diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm index 0501bdaf15..067197ffc5 100644 --- a/gnu/packages/sequoia.scm +++ b/gnu/packages/sequoia.scm @@ -27,6 +27,7 @@ #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages base) ; glibc + #:use-module (gnu packages crates-crypto) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-tls) #:use-module (gnu packages crates-web) -- cgit 1.4.1 From 8a8c1f5d54d69637b62fdc401e8e5dd3027617f0 Mon Sep 17 00:00:00 2001 From: Herman Rimm Date: Tue, 30 Jan 2024 16:25:23 +0100 Subject: gnu: i3status-rust: Update to 0.32.3. * gnu/packages/rust-apps.scm (i3status-rust): Update to 0.32.3. [source]: Remove patch. Add snippet to adjust package dependencies. [arguments]: Remove features flag. Replace 'enable-unstable-features phase with 'remove-optional-icu-deps phase to skip the calendar option. [cargo-inputs]: Add rust-anyhow-1, rust-async-once-cell-0.5, rust-async-trait-0.1, rust-backon-0.4, rust-calibright-0.1, rust-clap-4, rust-clap-mangen-0.2, rust-dirs-5, rust-env-logger-0.10, rust-futures-0.3, rust-glob-0.3, rust-hyper-0.14, rust-libc-0.2, rust-log-0.4, rust-neli-0.6, rust-neli-wifi-0.6, rust-nom-7, rust-once-cell-1, rust-pandoc-0.8, rust-regex-1, rust-reqwest-0.11, rust-sensors-0.2, rust-serde-with-3, rust-shellexpand-3, rust-signal-hook-tokio-0.3, rust-smart-default-0.7, rust-swayipc-async-2, rust-thiserror-1, rust-tokio-1, rust-unicode-segmentation-1, rust-wayrs-client-1, rust-wayrs-protocols-0.13, rust-zbus-3. Replace rust-chrono-tz-0.5 with 0.8, rust-inotify-0.9 with 0.10, rust-maildir-0.5 with 0.6, rust-notmuch-0.6 with 0.8, rust-nix-0.20 with 0.27, rust-toml-0.5 with 0.8. Remove rust-curl-0.4, rust-dbus-0.9, rust-dbus-tree-0.9, rust-lazy-static-1, rust-nl80211-0.0.2, rust-progress-0.2, rust-serde-derive-1, rust-swayipc-2, rust-cpuprofiler-0.0. [cargo-development-inputs]: Remove rust-assert-fs-1. [inputs]: Switch from lm-sensors to its "lib" output. [synopsis]: Expand. * gnu/packages/patches/i3status-rust-enable-unstable-features.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. Change-Id: I84e34ee0f60c3c10a013e3b8edc42f157db5732c Signed-off-by: Efraim Flashner --- gnu/local.mk | 1 - .../i3status-rust-enable-unstable-features.patch | 20 ---- gnu/packages/rust-apps.scm | 102 ++++++++++++++------- 3 files changed, 67 insertions(+), 56 deletions(-) delete mode 100644 gnu/packages/patches/i3status-rust-enable-unstable-features.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 917ff9db97..3b1a4db9d8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2009,7 +2009,6 @@ dist_patch_DATA = \ %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ %D%/packages/patches/rust-cargo-edit-remove-ureq.patch \ %D%/packages/patches/rust-ring-0.17-ring-core.patch \ - %D%/packages/patches/i3status-rust-enable-unstable-features.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \ %D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \ diff --git a/gnu/packages/patches/i3status-rust-enable-unstable-features.patch b/gnu/packages/patches/i3status-rust-enable-unstable-features.patch deleted file mode 100644 index 535b45d865..0000000000 --- a/gnu/packages/patches/i3status-rust-enable-unstable-features.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 3006390c0058f06c255d9850327163aebcdc3b40 Mon Sep 17 00:00:00 2001 -From: Petr Hodina -Date: Mon, 11 Oct 2021 22:35:39 +0200 -Subject: [PATCH] Enable unstable features. - - -diff --git a/src/main.rs b/src/main.rs -index d9e964b..820e22e 100644 ---- a/src/main.rs -+++ b/src/main.rs -@@ -1,3 +1,6 @@ -+#![feature(bool_to_option)] -+#![feature(clamp)] -+ - #[macro_use] - mod de; - #[macro_use] --- -2.33.0 - diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index b796279fe2..f5fd0623ef 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -768,7 +768,7 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") (define-public i3status-rust (package (name "i3status-rust") - (version "0.20.1") + (version "0.32.3") (source (origin (method git-fetch) @@ -776,42 +776,73 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") (url "https://github.com/greshake/i3status-rust") (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (patches (search-patches "i3status-rust-enable-unstable-features.patch")) (sha256 - (base32 "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s")))) + (base32 "11n32kkfwlv38mj9018hp5rbg4w3d1vq9f6x8rhqahs19mm5amqa")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; This comes a few commits after the 0.32.3 tag. + (substitute* "Cargo.toml" + (("^(wayrs-client = \\{ version = \")0\\.12\"" all most) + (string-append most "1.0\"")) + (("^(wayrs-protocols = \\{ version = \")0\\.12\"" all most) + (string-append most "0.13\""))))))) (build-system cargo-build-system) (arguments - `(#:features '("pulseaudio" "libpulse-binding") - #:install-source? #f + `(#:install-source? #f #:cargo-inputs - (("rust-chrono" ,rust-chrono-0.4) - ("rust-chrono-tz" ,rust-chrono-tz-0.5) - ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) - ("rust-curl" ,rust-curl-0.4) - ("rust-dbus" ,rust-dbus-0.9) - ("rust-dbus-tree" ,rust-dbus-tree-0.9) - ("rust-lazy-static" ,rust-lazy-static-1) - ("rust-nix" ,rust-nix-0.20) - ("rust-nl80211" ,rust-nl80211-0.0.2) + (("rust-anyhow" ,rust-anyhow-1) ; Dependency of xtask. + ("rust-async-once-cell" ,rust-async-once-cell-0.5) + ("rust-async-trait" ,rust-async-trait-0.1) + ("rust-backon" ,rust-backon-0.4) + ("rust-calibright" ,rust-calibright-0.1) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-chrono-tz" ,rust-chrono-tz-0.8) + ("rust-clap" ,rust-clap-4) ; Dependency of xtask also. + ("rust-clap-mangen" ,rust-clap-mangen-0.2) ; Dependency of xtask. + ("rust-dirs" ,rust-dirs-5) + ("rust-env-logger" ,rust-env-logger-0.10) + ("rust-futures" ,rust-futures-0.3) + ("rust-glob" ,rust-glob-0.3) + ("rust-hyper" ,rust-hyper-0.14) + ("rust-inotify" ,rust-inotify-0.10) + ("rust-libc" ,rust-libc-0.2) + ("rust-libpulse-binding" ,rust-libpulse-binding-2) + ("rust-log" ,rust-log-0.4) + ("rust-maildir" ,rust-maildir-0.6) + ("rust-neli" ,rust-neli-0.6) + ("rust-neli-wifi" ,rust-neli-wifi-0.6) + ("rust-nix" ,rust-nix-0.27) + ("rust-nom" ,rust-nom-7) + ("rust-notmuch" ,rust-notmuch-0.8) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-pandoc" ,rust-pandoc-0.8) ; Dependency of xtask. + ("rust-regex" ,rust-regex-1) + ("rust-reqwest" ,rust-reqwest-0.11) + ("rust-sensors" ,rust-sensors-0.2) ("rust-serde" ,rust-serde-1) - ("rust-serde-derive" ,rust-serde-derive-1) ("rust-serde-json" ,rust-serde-json-1) + ("rust-serde-with" ,rust-serde-with-3) + ("rust-shellexpand" ,rust-shellexpand-3) ("rust-signal-hook" ,rust-signal-hook-0.3) - ("rust-swayipc" ,rust-swayipc-2) - ("rust-toml" ,rust-toml-0.5) - ("rust-cpuprofiler" ,rust-cpuprofiler-0.0) - ("rust-inotify" ,rust-inotify-0.9) - ("rust-libpulse-binding" ,rust-libpulse-binding-2) - ("rust-maildir" ,rust-maildir-0.5) - ("rust-notmuch" ,rust-notmuch-0.6) - ("rust-progress" ,rust-progress-0.2)) - #:cargo-development-inputs - (("rust-assert-fs" ,rust-assert-fs-1)) + ("rust-signal-hook-tokio" ,rust-signal-hook-tokio-0.3) + ("rust-smart-default" ,rust-smart-default-0.7) + ("rust-swayipc-async" ,rust-swayipc-async-2) + ("rust-thiserror" ,rust-thiserror-1) + ("rust-tokio" ,rust-tokio-1) + ("rust-toml" ,rust-toml-0.8) + ("rust-unicode-segmentation" ,rust-unicode-segmentation-1) + ("rust-wayrs-client" ,rust-wayrs-client-1) + ("rust-wayrs-protocols" ,rust-wayrs-protocols-0.13) + ("rust-zbus" ,rust-zbus-3)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'enable-unstable-features + (add-after 'unpack 'remove-optional-icu-deps (lambda _ - (setenv "RUSTC_BOOTSTRAP" "1"))) + (substitute* "Cargo.toml" + (("^icu_calendar.*") "") + (("^icu_datetime.*") "") + (("^icu_locid.*") "")))) (add-after 'unpack 'fix-resources-path (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -827,11 +858,12 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") (let ((out (assoc-ref outputs "out")) (paths (map (lambda (input) - (string-append (assoc-ref inputs input) "/bin")) - '("alsa-utils" "coreutils" "curl" "dbus" "ibus" "iproute" - "kdeconnect" "lm-sensors" "pulseaudio" - "openssl" - "setxkbmap" "speedtest-cli" "xdg-utils" "xrandr" + (string-append + (assoc-ref inputs input) "/bin")) + '("alsa-utils" "coreutils" "curl" "dbus" + "ibus" "iproute" "kdeconnect" "lm-sensors" + "pulseaudio" "openssl" "setxkbmap" + "speedtest-cli" "xdg-utils" "xrandr" "zlib")))) (wrap-program (string-append out "/bin/i3status-rs") `("PATH" prefix ,paths)))))))) @@ -846,7 +878,7 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") ("ibus" ,ibus) ("iproute" ,iproute) ("kdeconnect" ,kdeconnect) - ("lm-sensors" ,lm-sensors) + ("lm-sensors" ,lm-sensors "lib") ("pulseaudio" ,pulseaudio) ("openssl" ,openssl) ("setxkbmap" ,setxkbmap) @@ -854,8 +886,8 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.") ("xdg-utils" ,xdg-utils) ("xrandr" ,xrandr) ("zlib" ,zlib))) - (home-page "https://github.com/greshake/i3status-rust") - (synopsis "i3status, written in pure Rust") + (home-page "https://github.com/greshake/i3status-rust/") + (synopsis "Replacement for i3status, written in Rust") (description "@code{i3status-rs} is a feature-rich and resource-friendly replacement for i3status, written in pure Rust. It provides a way to display @code{blocks} of system information (time, battery status, volume, etc) on the i3 -- cgit 1.4.1 From 313458c58c3fd89705081e1721e7c6fe7818d813 Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Fri, 16 Feb 2024 01:34:59 +0800 Subject: gnu: git-filter-repo: Update to 2.38.0. * gnu/packages/patches/git-filter-repo-generate-doc.patch: New file. * gnu/local.mk (dist_patch_DATA): Regisiter it. * gnu/packages/version-control.scm (git-filter-repo): Update to 2.38.0. [source]: Switch to git-fetch. Use the patch. [build-system]: Switch to gnu-build-system. [native-inputs]: Add asciidoc, docbook-xsl, libxml2, xmlto. Modified-by: Hilton Chain Change-Id: I7b15975ea56c44ae580d19cfe5a9e3eb75c6db0d Signed-off-by: Hilton Chain --- gnu/local.mk | 1 + .../patches/git-filter-repo-generate-doc.patch | 88 ++++++++++++++++++++++ gnu/packages/version-control.scm | 69 +++++++++++++---- 3 files changed, 144 insertions(+), 14 deletions(-) create mode 100644 gnu/packages/patches/git-filter-repo-generate-doc.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index bed0c181e4..741c72a653 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1305,6 +1305,7 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ + %D%/packages/patches/git-filter-repo-generate-doc.patch \ %D%/packages/patches/gitg-fix-positional-argument.patch \ %D%/packages/patches/gklib-suitesparse.patch \ %D%/packages/patches/glib-appinfo-watch.patch \ diff --git a/gnu/packages/patches/git-filter-repo-generate-doc.patch b/gnu/packages/patches/git-filter-repo-generate-doc.patch new file mode 100644 index 0000000000..4535ae5bc4 --- /dev/null +++ b/gnu/packages/patches/git-filter-repo-generate-doc.patch @@ -0,0 +1,88 @@ +From 56e6857e71d2b2a2236625f3c8b112bd40a8b164 Mon Sep 17 00:00:00 2001 +From: Josselin Poiret +Date: Fri, 16 Feb 2024 00:21:06 +0800 +Subject: [PATCH] Add documentation generation. + +This requires the manpage XSL and asciidoc config files from git 2.41.0. + +Modified-by: Hilton Chain +--- + Documentation/Makefile | 34 ++++++++++++++++++++++++++++++++++ + Makefile | 17 +++-------------- + 2 files changed, 37 insertions(+), 14 deletions(-) + create mode 100644 Documentation/Makefile + +diff --git a/Documentation/Makefile b/Documentation/Makefile +new file mode 100644 +index 0000000..d81ffbe +--- /dev/null ++++ b/Documentation/Makefile +@@ -0,0 +1,34 @@ ++MAN_BASE_URL := $(prefix)/share/doc/git-doc/ ++VERSION := $(git log --pretty="%H" -n 1) ++ ++ASCIIDOC := asciidoc ++ASCIIDOC_EXTRA := ++ASCIIDOC_HTML := xhtml11 ++ASCIIDOC_DOCBOOK := docbook ++ASCIIDOC_CONF := -f asciidoc.conf ++ASCIIDOC_COMMON := $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \ ++ -amanmanual='git-filter-repo Manual' -amansource='git-filter-repo $(VERSION)' ++ASCIIDOC_DEPS := asciidoc.conf ++TXT_TO_HTML := $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML) ++TXT_TO_XML := $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK) ++MANPAGE_XSL := manpage-normal.xsl ++XMLTO := xmlto ++XMLTO_EXTRA := -m manpage-bold-literal.xsl \ ++ --stringparam man.base.url.for.relative.links='$(MAN_BASE_URL)' ++ ++manpage-prereqs := $(wildcard manpage*.xsl) ++manpage-cmd := $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man ++ ++%.xml : %.txt $(ASCIIDOC_DEPS) ++ $(TXT_TO_XML) -d manpage -o $@ $< ++ ++man1/%.1 : %.xml $(manpage-prereqs) ++ mkdir -p man1 ++ $(manpage-cmd) -o man1 $< ++ ++html/%.html : %.txt $(ASCIIDOC_DEPS) ++ mkdir -p html ++ $(TXT_TO_HTML) -d manpage -o $@ $< ++ ++man: man1/git-filter-repo.1 ++html: html/git-filter-repo.html +diff --git a/Makefile b/Makefile +index a443450..d965ae5 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,21 +20,10 @@ test: + fixup_locale: + sed -ie s%@@LOCALEDIR@@%$(localedir)% git-filter-repo + +-# People installing from tarball will already have man1/git-filter-repo.1 and +-# html/git-filter-repo.html. But let's support people installing from a git +-# clone too; for them, just cheat and snag a copy of the built docs that I +-# record in a different branch. +-snag_docs: Documentation/man1/git-filter-repo.1 Documentation/html/git-filter-repo.html ++doc: ++ $(MAKE) -C Documentation man html + +-Documentation/man1/git-filter-repo.1: +- mkdir -p Documentation/man1 +- git show origin/docs:man1/git-filter-repo.1 >Documentation/man1/git-filter-repo.1 +- +-Documentation/html/git-filter-repo.html: +- mkdir -p Documentation/html +- git show origin/docs:html/git-filter-repo.html >Documentation/html/git-filter-repo.html +- +-install: snag_docs #fixup_locale ++install: doc #fixup_locale + install -Dm0755 git-filter-repo "$(DESTDIR)/$(bindir)/git-filter-repo" + install -dm0755 "$(DESTDIR)/$(pythondir)" + ln -sf "$(bindir)/git-filter-repo" "$(DESTDIR)/$(pythondir)/git_filter_repo.py" + +base-commit: cbc6535694380d3a3bf3e5c96410d4ce7e8de94f +-- +2.41.0 + diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index cef0012645..af237ab4ee 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -50,6 +50,8 @@ ;;; Copyright © 2023 Nicolas Graves ;;; Copyright © 2023 Kjartan Oli Agustsson ;;; Copyright © 2023 Steve George +;;; Copyright © 2023 Josselin Poiret +;;; Copyright © 2024 Hilton Chain ;;; ;;; This file is part of GNU Guix. ;;; @@ -3846,25 +3848,64 @@ TkDiff is included for browsing and merging your changes.") (define-public git-filter-repo (package (name "git-filter-repo") - (version "2.29.0") + (version "2.38.0") (source (origin - ;; Use a release tarball instead of 'git-fetch' because it contains - ;; pre-compiled man-pages which are too hard to build in this context - ;; as it depends on Git's Makefile. - (method url-fetch) - (uri (string-append "https://github.com/newren/git-filter-repo/releases/" - "download/v" version - "/git-filter-repo-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/newren/git-filter-repo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb")))) - (build-system copy-build-system) + "1al43zpw1mdfy9i05w4xw178abypjwnkk52lqvmbl19lr1l47r4i")) + ;; Modified from . + ;; Used with 'unpack-git-source phase. + (patches (search-patches "git-filter-repo-generate-doc.patch")))) + (build-system gnu-build-system) (arguments - `(#:install-plan - '(("git-filter-repo" "libexec/git-core/") - ("Documentation/man1/" "share/man/man1") - ("/" "" #:include ())))) + (list + #:tests? #f ;No tests. + #:imported-modules + `(,@%gnu-build-system-modules + (guix build python-build-system)) + #:modules + '((guix build gnu-build-system) + ((guix build python-build-system) #:select (site-packages)) + (guix build utils) + (srfi srfi-26)) + #:make-flags + #~(list (string-append "prefix=" #$output) + (string-append "VERSION=" #$(package-version this-package))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'unpack-git-source + (lambda _ + (let* ((old-path (getcwd)) + (doc-source (string-append old-path "/Documentation"))) + (mkdir-p "git-source") + (chdir "git-source") + ((assoc-ref %standard-phases 'unpack) + #:source #+(package-source git)) + (for-each + (cut install-file <> doc-source) + (find-files "." "asciidoc\\.conf$|manpage.*\\.xsl$")) + (chdir old-path) + (delete-file-recursively "git-source")))) + (add-before 'build 'set-pythondir + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile" + (("(pythondir = ).*" _ pre) + (string-append pre (site-packages inputs outputs)))))) + (replace 'build + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "doc" make-flags)))))) + (native-inputs + (list asciidoc + docbook-xsl + libxml2 ;for XML_CATALOG_FILES + xmlto)) (inputs (list python)) ;for the shebang (home-page "https://github.com/newren/git-filter-repo") (synopsis "Quickly rewrite Git repository history") -- cgit 1.4.1 From 9209e93d48bd28173099ac59eb5e715aa0c7f300 Mon Sep 17 00:00:00 2001 From: Zheng Junjie Date: Sun, 25 Feb 2024 17:51:59 +0800 Subject: gnu: librime: Update to 1.10.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ibus.scm (librime): Update to 1.10.0. [source]: Remove snippet. Remove patch. [arguments]: Remove it. * gnu/packages/patches/librime-fix-build-with-gcc10.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Unregister patch. Change-Id: Ifbf1cf92baa469e87c517958e5705dec085cc413 Signed-off-by: 宋文武 --- gnu/local.mk | 3 +- gnu/packages/ibus.scm | 22 ++---------- .../patches/librime-fix-build-with-gcc10.patch | 41 ---------------------- 3 files changed, 4 insertions(+), 62 deletions(-) delete mode 100644 gnu/packages/patches/librime-fix-build-with-gcc10.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 741c72a653..15352f68d4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -56,7 +56,7 @@ # Copyright © 2022 Alex Griffin # Copyright © 2022 ( # Copyright © 2022 jgart -# Copyright © 2023 Zheng Junjie <873216071@qq.com> +# Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> # Copyright © 2023 Ivana Drazovic # Copyright © 2023 Andy Tai # Copyright © 2023 B. Wilson @@ -1514,7 +1514,6 @@ dist_patch_DATA = \ %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \ %D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \ %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ - %D%/packages/patches/librime-fix-build-with-gcc10.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/lightdm-arguments-ordering.patch \ diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 1e01bb0ea3..c821279bd3 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2021 Taiju HIGASHI ;;; Copyright © 2022, 2023 Maxim Cournoyer ;;; Copyright © 2023 Luis Felipe López Acevedo +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -454,7 +455,7 @@ Japanese language input in most graphical applications.") (define-public librime (package (name "librime") - (version "1.7.3") + (version "1.10.0") (source (origin (method git-fetch) @@ -464,25 +465,8 @@ Japanese language input in most graphical applications.") (file-name (git-file-name name version)) (sha256 (base32 - "0pqk0i3zcii3fx5laj9qzbgd58jvq6wn31j76w4zix2i4b1lqcqv")) - (patches (search-patches "librime-fix-build-with-gcc10.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file-recursively "thirdparty/src") - (delete-file-recursively "thirdparty/bin") - (delete-file-recursively "thirdparty/include/X11") - #t)))) + "0p4ybmn2syhf30vwzrd6ms77xadhl2lh7d2apq2m1yzmy42mdydm")))) (build-system cmake-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda _ - (substitute* "CMakeLists.txt" - (("include_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/include\\)") "") - (("link_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/lib\\)") "")) - #t))))) (inputs (list boost capnproto diff --git a/gnu/packages/patches/librime-fix-build-with-gcc10.patch b/gnu/packages/patches/librime-fix-build-with-gcc10.patch deleted file mode 100644 index 49ad011b57..0000000000 --- a/gnu/packages/patches/librime-fix-build-with-gcc10.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Felix Gruber -Date: Mon, 6 Sep 2021 19:38:17 +0200 -Subject: [PATCH] Add missing includes - -Fix a build failure with GCC 10 that manifests like this: - ------- -/tmp/guix-build-librime-1.7.3.drv-0/source/src/rime/gear/script_translator.cc: In member function ‘void rime::ScriptTranslation::PrepareCandidate()’: -/tmp/guix-build-librime-1.7.3.drv-0/source/src/rime/gear/script_translator.cc:490:23: error: ‘exp’ was not declared in this scope - 490 | cand->set_quality(exp(entry->weight) + - | ^~~ -/tmp/guix-build-librime-1.7.3.drv-0/source/src/rime/gear/script_translator.cc:504:23: error: ‘exp’ was not declared in this scope - 504 | cand->set_quality(exp(entry->weight) + - | ^~~ -make[2]: *** [src/CMakeFiles/rime.dir/build.make:1241: src/CMakeFiles/rime.dir/rime/gear/script_translator.cc.o] Error 1 ------- - -diff --git a/src/rime/gear/script_translator.cc b/src/rime/gear/script_translator.cc -index 4a45f05..515c8db 100644 ---- a/src/rime/gear/script_translator.cc -+++ b/src/rime/gear/script_translator.cc -@@ -7,6 +7,7 @@ - // 2011-07-10 GONG Chen - // - #include -+#include - #include - #include - #include -diff --git a/src/rime/gear/table_translator.cc b/src/rime/gear/table_translator.cc -index 162ac02..dbea76a 100644 ---- a/src/rime/gear/table_translator.cc -+++ b/src/rime/gear/table_translator.cc -@@ -4,6 +4,7 @@ - // - // 2011-07-10 GONG Chen - // -+#include - #include - #include - #include -- cgit 1.4.1 From d2159ee9d19a27b06342e2d67b7f0e085e92090a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Feb 2024 22:14:48 +0100 Subject: gnu: guile-git: Update to 0.6.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile.scm (guile-git): Update to 0.6.0. [source]: Remove ‘patches’ field. * gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove it. Change-Id: I49300461389bc24a9802fbda5e374a330ffc3715 --- gnu/local.mk | 1 - gnu/packages/guile.scm | 8 +-- .../guile-git-adjust-for-libgit2-1.2.0.patch | 78 ---------------------- 3 files changed, 3 insertions(+), 84 deletions(-) delete mode 100644 gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 15352f68d4..725093fb09 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1404,7 +1404,6 @@ dist_patch_DATA = \ %D%/packages/patches/guile-fibers-libevent-timeout.patch \ %D%/packages/patches/guile-fix-invalid-unicode-handling.patch \ %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \ - %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \ %D%/packages/patches/guile-hurd-posix-spawn.patch \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 817ec974bc..78295ab51c 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès +;;; Copyright © 2012-2024 Ludovic Courtès ;;; Copyright © 2014 Cyril Roelandt ;;; Copyright © 2014, 2016, 2018 David Thompson ;;; Copyright © 2014, 2017, 2018 Mark H Weaver @@ -830,7 +830,7 @@ type system, elevating types to first-class status.") (define-public guile-git (package (name "guile-git") - (version "0.5.2") + (version "0.6.0") (home-page "https://gitlab.com/guile-git/guile-git.git") (source (origin (method git-fetch) @@ -840,9 +840,7 @@ type system, elevating types to first-class status.") (file-name (git-file-name name version)) (sha256 (base32 - "11a51acibwi2hpaygmrpn6nwbr4lqalc87ihrgj3mhz6swbsk9n7")) - (patches (search-patches - "guile-git-adjust-for-libgit2-1.2.0.patch")))) + "0a3765chjas1dmkl0qc75y6l3hsss6n2awi82jkwzjyfslrlcrgq")))) (build-system gnu-build-system) (arguments `(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings diff --git a/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch b/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch deleted file mode 100644 index 436a11ad19..0000000000 --- a/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 107e6ca..20e9019 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2,6 +2,7 @@ dnl Guile-Git --- GNU Guile bindings of libgit2 - dnl Copyright © 2016-2018 Erik Edrosa - dnl Copyright © 2017, 2019, 2020, 2021 Ludovic Courtès - dnl Copyright © 2019 Mathieu Othacehe -+dnl Copyright © 2021 Maxim Cournoyer - dnl - dnl This file is part of Guile-Git. - dnl -@@ -43,15 +44,20 @@ AS_IF([test "x$LIBGIT2_LIBDIR" = "x"], [ - ]) - AC_SUBST([LIBGIT2_LIBDIR]) - -+dnl Does the 'git_remote_callbacks' struct have a 'remote_ready' field? -+dnl It was added in 1.2.0, obsoleting 'resolve_url'. -+AC_CHECK_MEMBER([git_remote_callbacks.remote_ready], -+ [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#true"], -+ [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#false"], -+ [[#include ]]) -+AC_SUBST([HAVE_REMOTE_CALLBACKS_REMOTE_READY]) -+ - dnl Does the 'git_remote_callbacks' struct have a 'resolve_url' field? - dnl It's missing in libgit2 0.28.5, added in 1.0. --AC_CHECK_MEMBER([git_remote_callbacks.resolve_url], [], [], -+AC_CHECK_MEMBER([git_remote_callbacks.resolve_url], -+ [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true"], -+ [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false"], - [[#include ]]) --if test "x$ac_cv_member_git_remote_callbacks_resolve_url" = "xyes"; then -- HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true" --else -- HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false" --fi - AC_SUBST([HAVE_REMOTE_CALLBACKS_RESOLVE_URL]) - - dnl Those binaries are required for ssh authentication tests. -diff --git a/git/configuration.scm.in b/git/configuration.scm.in -index c45f698..64c4360 100644 ---- a/git/configuration.scm.in -+++ b/git/configuration.scm.in -@@ -19,11 +19,17 @@ - - (define-module (git configuration) - #:export (%libgit2 -+ %have-remote-callbacks-remote-ready? - %have-remote-callbacks-resolve-url?)) - - (define %libgit2 - "@LIBGIT2_LIBDIR@/libgit2") - -+(define %have-remote-callbacks-remote-ready? -+ ;; True if the 'git_remote_callbacks' struct has a -+ ;; 'remote_ready' field. -+ @HAVE_REMOTE_CALLBACKS_REMOTE_READY@) -+ - (define %have-remote-callbacks-resolve-url? - ;; True if the 'git_remote_callbacks' struct has a 'resolve_url' field. - @HAVE_REMOTE_CALLBACKS_RESOLVE_URL@) -diff --git a/git/structs.scm b/git/structs.scm -index ca51728..be3d050 100644 ---- a/git/structs.scm -+++ b/git/structs.scm -@@ -637,6 +637,12 @@ type to 'specified for this to take effect." - (push-update-reference ,(bs:pointer uint8)) - (push-negotiation ,(bs:pointer uint8)) - (transport ,(bs:pointer uint8)) -+ -+ ;; Added in libgit2 1.2.0. -+ ,@(if %have-remote-callbacks-remote-ready? -+ `((remote-ready ,(bs:pointer uint8))) -+ '()) -+ - (payload ,(bs:pointer uint8)) - - ;; libgit2 1.0 added this field, which is missing from 0.28.5, -- cgit 1.4.1 From 23283c50e96d7812a42b1272329fa3ba05a5a6e6 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Wed, 28 Feb 2024 15:22:37 -0500 Subject: gnu: bind: Update to 9.19.21 [security fixes]. The current release fixes CVE-2023-50387 and other security issues. Previous releases fix many other security issues. * gnu/packages/dns.scm (bind): Update to 9.19.21. [source]: Remove 'patches' field. * gnu/packages/patches/bind-re-add-attr-constructor-priority.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove it. Reported-by: Felix Lechner Change-Id: I2415de88f16d9c952a1adcee5219980a3a19bb59 --- gnu/local.mk | 1 - gnu/packages/dns.scm | 8 +-- .../bind-re-add-attr-constructor-priority.patch | 57 ---------------------- 3 files changed, 4 insertions(+), 62 deletions(-) delete mode 100644 gnu/packages/patches/bind-re-add-attr-constructor-priority.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 208d74ef3e..1e3433d96d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -979,7 +979,6 @@ dist_patch_DATA = \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bc-fix-cross-compilation.patch \ %D%/packages/patches/bdb-5.3-atomics-on-gcc-9.patch \ - %D%/packages/patches/bind-re-add-attr-constructor-priority.patch \ %D%/packages/patches/brightnessctl-elogind-support.patch \ %D%/packages/patches/bsd-games-2.17-64bit.patch \ %D%/packages/patches/bsd-games-add-configure-config.patch \ diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 90a0fdf9de..84d3293c79 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -337,23 +337,23 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; When updating, check whether isc-dhcp's bundled copy should be as well. ;; The BIND release notes are available here: ;; https://www.isc.org/bind/ - (version "9.16.38") + (version "9.19.21") (source (origin (method url-fetch) (uri (string-append "https://ftp.isc.org/isc/bind9/" version "/bind-" version ".tar.xz")) (sha256 - (base32 "03y52iyc2g63lkk9x2vaizpr0jv27g1z6mcxnjw8m8l4kaflrx4d")) - (patches - (search-patches "bind-re-add-attr-constructor-priority.patch")))) + (base32 "133f1aq8acaz9z03cl0gcrj4pq0hqm6c3sm4hz67d37phndsjs1b")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs ;; It would be nice to add GeoIP and gssapi once there are packages. (list libcap + liburcu libuv libxml2 + `(,nghttp2 "lib") openssl p11-kit python diff --git a/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch b/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch deleted file mode 100644 index 33e4f183f6..0000000000 --- a/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 6361de07a35f2e9dc1d7201d6b26ca31da93ee69 Mon Sep 17 00:00:00 2001 -From: Tobias Geerinckx-Rice -Date: Thu, 9 Dec 2021 01:07:32 +0100 -Subject: [PATCH] Revert "Remove priority from attribute - constructor/destructor" - -This reverts commit 0340df46ec5897636dd071bc8b5c4272cfa7d7be. It works -around an irrelevant operating system and breaks compilation on Guix: - -mem.c:873: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&contextslock))) == 0) ? 0 : 34) == 0) failed -/gnu/store/…-bash-minimal-5.0.16/bin/bash: line 1: 13768 Aborted ./${fuzzer} - -Let's simply revert it for now---there are securities at stake! ---- - lib/isc/include/isc/util.h | 8 ++++---- - lib/isc/lib.c | 4 ++-- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/lib/isc/include/isc/util.h b/lib/isc/include/isc/util.h -index f0f7f85fa4..64c26587ac 100644 ---- a/lib/isc/include/isc/util.h -+++ b/lib/isc/include/isc/util.h -@@ -49,11 +49,11 @@ - #endif /* __GNUC__ */ - - #if HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR && HAVE_FUNC_ATTRIBUTE_DESTRUCTOR --#define ISC_CONSTRUCTOR __attribute__((constructor)) --#define ISC_DESTRUCTOR __attribute__((destructor)) -+#define ISC_CONSTRUCTOR(priority) __attribute__((constructor(priority))) -+#define ISC_DESTRUCTOR(priority) __attribute__((destructor(priority))) - #elif WIN32 --#define ISC_CONSTRUCTOR --#define ISC_DESTRUCTOR -+#define ISC_CONSTRUCTOR(priority) -+#define ISC_DESTRUCTOR(priority) - #endif - - /*% -diff --git a/lib/isc/lib.c b/lib/isc/lib.c -index f3576b2659..2a167fec21 100644 ---- a/lib/isc/lib.c -+++ b/lib/isc/lib.c -@@ -35,9 +35,9 @@ isc_lib_register(void) { - } - - void --isc__initialize(void) ISC_CONSTRUCTOR; -+isc__initialize(void) ISC_CONSTRUCTOR(101); - void --isc__shutdown(void) ISC_DESTRUCTOR; -+isc__shutdown(void) ISC_DESTRUCTOR(101); - - void - isc__initialize(void) { --- -2.34.0 - -- cgit 1.4.1 From e046d6d4436a2dd13e6faedb44622db037b7e19c Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 24 Feb 2024 08:59:28 +0100 Subject: gnu: python-telingo: Update to 2.1.3. * gnu/packages/potassco.scm (python-telingo): Update to 2.1.3. [source]: Drop obsolete patch. * gnu/packages/patches/python-telingo-fix-comparison.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 - .../patches/python-telingo-fix-comparison.patch | 19 ------------------- gnu/packages/potassco.scm | 5 ++--- 3 files changed, 2 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/python-telingo-fix-comparison.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1e3433d96d..f280b849df 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1812,7 +1812,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-sip-include-dirs.patch \ %D%/packages/patches/python-sgmllib3k-assertions.patch \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ - %D%/packages/patches/python-telingo-fix-comparison.patch \ %D%/packages/patches/python-typeguard-python3.10.patch \ %D%/packages/patches/python-uqbar-python3.10.patch \ %D%/packages/patches/python-wxwidgets-type-errors.patch \ diff --git a/gnu/packages/patches/python-telingo-fix-comparison.patch b/gnu/packages/patches/python-telingo-fix-comparison.patch deleted file mode 100644 index 6d05048dcb..0000000000 --- a/gnu/packages/patches/python-telingo-fix-comparison.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: source/telingo/transformers/head.py -=================================================================== ---- source.orig/telingo/transformers/head.py -+++ source/telingo/transformers/head.py -@@ -564,10 +564,12 @@ class HeadTransformer: - cond = [] - diff = _ast.BinaryOperation(loc, _ast.BinaryOperator.Minus, param, shift) - if lhs.ast_type != _ast.ASTType.SymbolicTerm or lhs.symbol.type != _clingo.SymbolType.Number or lhs.symbol.number > 0: -- cond.append(_ast.Literal(loc, _ast.Sign.NoSign, _ast.Comparison(_ast.ComparisonOperator.LessEqual, lhs, diff))) -+ cond.append(_ast.Literal(loc, _ast.Sign.NoSign, -+ _ast.Comparison(lhs, [_ast.Guard(_ast.ComparisonOperator.LessEqual, diff)]))) - - if rhs.ast_type != _ast.ASTType.SymbolicTerm or rhs.symbol.type != _clingo.SymbolType.Supremum: -- cond.append(_ast.Literal(loc, _ast.Sign.NoSign, _ast.Comparison(_ast.ComparisonOperator.LessEqual, diff, rhs))) -+ cond.append(_ast.Literal(loc, _ast.Sign.NoSign, -+ _ast.Comparison(diff, [_ast.Guard(_ast.ComparisonOperator.LessEqual, rhs)]))) - - elems.extend([_ast.ConditionalLiteral(loc, _ast.Literal(loc, _ast.Sign.NoSign, head), cond) for head in heads]) - diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm index 4eb0f4a2c7..43d9ea6647 100644 --- a/gnu/packages/potassco.scm +++ b/gnu/packages/potassco.scm @@ -520,17 +520,16 @@ the most probable model as well as finding all models and their probabilities.") (define-public python-telingo (package (name "python-telingo") - (version "2.1.1") + (version "2.1.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/potassco/telingo") (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (patches (search-patches "python-telingo-fix-comparison.patch")) (sha256 (base32 - "0g3khxfdzc2hc7dkiyyqhb399h6h21m5wkp6wy8w71n0m32fiy53")))) + "1q6hlh4b5hsa4n5agvmfa9rhsxfd2g6kpl4b9kfccwbmf6dh51k6")))) (build-system pyproject-build-system) (propagated-inputs (list python-clingo)) (home-page "https://potassco.org/") -- cgit 1.4.1