From 121de47decc1029c06f6e46e5f06d7fefe8e85ec Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 21 Jan 2024 15:48:36 +0100 Subject: gnu: converseen: Update to 0.12.0.2. * gnu/packages/image.scm (converseen): Update to 0.12.0.2. [arguments]<#:configure-flags>: Use Qt6. [native-inputs, inputs]: Use Qt6. * gnu/packages/patches/converseen-hide-non-free-pointers.patch: Update patch. Change-Id: I6b6dc200b1b98115400854b2ff77cc805df45078 --- .../converseen-hide-non-free-pointers.patch | 147 ++++++++++++++++----- 1 file changed, 113 insertions(+), 34 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/converseen-hide-non-free-pointers.patch b/gnu/packages/patches/converseen-hide-non-free-pointers.patch index b4994733cd..9c27cdafe3 100644 --- a/gnu/packages/patches/converseen-hide-non-free-pointers.patch +++ b/gnu/packages/patches/converseen-hide-non-free-pointers.patch @@ -2,10 +2,10 @@ Remove pointers to PayPal and Facebook. Upstream status: Guix-specific, not forwarded upstream. diff --git a/src/dialoginfo.cpp b/src/dialoginfo.cpp -index 3302f55..b64f414 100755 +index 52dd628..b37c413 100755 --- a/src/dialoginfo.cpp +++ b/src/dialoginfo.cpp -@@ -31,7 +31,6 @@ DialogInfo::DialogInfo(QWidget *parent) : +@@ -33,7 +33,6 @@ DialogInfo::DialogInfo(QWidget *parent) : setupUi(this); connect(pushClose, SIGNAL(clicked()), this, SLOT(close())); @@ -13,44 +13,99 @@ index 3302f55..b64f414 100755 QString appVersion; QString magickVersion; -@@ -63,8 +62,3 @@ void DialogInfo::openFacebookPage() - QDesktopServices::openUrl(QUrl("https://www.facebook.com/converseen", QUrl::TolerantMode)); +@@ -66,62 +65,4 @@ DialogInfo::DialogInfo(QWidget *parent) : + .arg(qtVersionStrTr) + .arg(QT_VERSION_STR); + labelQtVersion->setText(qt_versionString); +- +- // This section generates a Text + Png pixmap icon for the donazion button! +- +- QString donateText = tr("Make a Donation!"); +- QString donateDescriptionText = tr("Donate using PayPal, Ko-Fi or Cryptocurrencies."); +- +- QString htmlDonationText = QString(R"( +- +- +- +- +- +- +- +-
+- %1
+- %2 +-
+- )") +- .arg(donateText, donateDescriptionText); +- +- QTextDocument donateHtmlText; +- donateHtmlText.setHtml(htmlDonationText); +- +- QPixmap pixmapDonationText(donateHtmlText.size().width(), donateHtmlText.size().height()); +- pixmapDonationText.fill( Qt::transparent ); +- +- QPainter painter( &pixmapDonationText ); +- painter.setRenderHint(QPainter::Antialiasing, true); +- +- donateHtmlText.drawContents(&painter, pixmapDonationText.rect()); +- +- QIcon donateButtonIcon(pixmapDonationText); +- pushDonatePayPal->setIcon(donateButtonIcon); +- pushDonatePayPal->setIconSize(pixmapDonationText.rect().size()); +- +- adjustSize(); +- this->resize(512, 800); +-} +- +-void DialogInfo::openFacebookPage() +-{ +- QDesktopServices::openUrl(QUrl("https://www.facebook.com/converseen", QUrl::TolerantMode)); } - +- -void DialogInfo::on_pushDonatePayPal_clicked() -{ -- QDesktopServices::openUrl(QUrl("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HQA6TBT5354FC", QUrl::TolerantMode)); +- QDesktopServices::openUrl(QUrl("https://converseen.fasterland.net/donate/", QUrl::TolerantMode)); -} - diff --git a/src/dialoginfo.h b/src/dialoginfo.h -index 4c13776..f1b7ea3 100755 +index 4d8ba15..ef6afa9 100755 --- a/src/dialoginfo.h +++ b/src/dialoginfo.h -@@ -33,7 +33,6 @@ public: +@@ -32,8 +32,6 @@ public: + DialogInfo(QWidget *parent = 0); private slots: - void openFacebookPage(); +- void openFacebookPage(); - void on_pushDonatePayPal_clicked(); }; #endif // DIALOGINFO_H diff --git a/src/mainwindowimpl.cpp b/src/mainwindowimpl.cpp -index 83a365f..9a44492 100755 +index 71ddc2c..bd4294b 100755 --- a/src/mainwindowimpl.cpp +++ b/src/mainwindowimpl.cpp -@@ -162,7 +162,6 @@ void MainWindowImpl::createActions() +@@ -163,7 +163,6 @@ void MainWindowImpl::createActions() connect(actionConvert, SIGNAL(triggered()), this, SLOT(elabora())); connect(actionInfo, SIGNAL(triggered()), this, SLOT(about())); - connect(actionDonatePaypal, SIGNAL(triggered()), this, SLOT(openPaypalLink())); connect(actionReportBug, SIGNAL(triggered()), this, SLOT(bugReport())); - } - + connect(actionCheckForUpdates, SIGNAL(triggered()), this, SLOT(checkForUpdates())); + connect(actionHelp, SIGNAL(triggered()), this, SLOT(onlineHelp())); diff --git a/ui/dialoginfo.ui b/ui/dialoginfo.ui -index b2c7788..20b9d9d 100755 +index 2878670..0535a85 100755 --- a/ui/dialoginfo.ui +++ b/ui/dialoginfo.ui -@@ -254,122 +254,6 @@ p, li { white-space: pre-wrap; } +@@ -273,146 +273,6 @@ p, li { white-space: pre-wrap; } @@ -69,25 +124,53 @@ index b2c7788..20b9d9d 100755 - - - +- +- +- Qt::Horizontal +- +- +- +- 40 +- 20 +- +- +- +- +- - +- +- PointingHandCursor +- - - - -- -- -- :/Images/res/btn_donateCC_LG.png:/Images/res/btn_donateCC_LG.png -- - - - 150 - 50 - - +- +- false +- - - true - - - +- +- +- +- Qt::Horizontal +- +- +- +- 40 +- 20 +- +- +- +- - - - @@ -141,6 +224,9 @@ index b2c7788..20b9d9d 100755 - 32 - - +- +- false +- - - true - @@ -162,35 +248,28 @@ index b2c7788..20b9d9d 100755 - - - -- -- -- -- -- Qt::Horizontal -- -- - - - + + diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui -index 28df8cc..0ee7f37 100755 +index 24bda6f..e8a072d 100755 --- a/ui/mainwindow.ui +++ b/ui/mainwindow.ui -@@ -1334,18 +1334,6 @@ p, li { white-space: pre-wrap; } - F1 +@@ -1408,18 +1408,6 @@ p, li { white-space: pre-wrap; } + &About - - - -- :/Images/res/paypal_mini.png:/Images/res/paypal_mini.png +- :/Images/res/heart.png:/Images/res/heart.png - - -- &Donate via Paypal +- &Donate! - - -- Donate via Paypal +- Donate via Paypal, Ko-Fi, Cryptocurrencies - - -- cgit v1.2.3 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 - gnu/packages/mail.scm | 7 +- .../patches/notmuch-emacs-test-output.patch | 89 ---------------------- 3 files changed, 2 insertions(+), 95 deletions(-) delete mode 100644 gnu/packages/patches/notmuch-emacs-test-output.patch (limited to 'gnu/packages/patches') 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 \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 4466e5e6d9..4fe3673a72 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1373,17 +1373,14 @@ (define-public notifymuch (define-public notmuch (package (name "notmuch") - (version "0.37") + (version "0.38.2") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.xz")) (sha256 - (base32 "1xl64xh0ijfkx265lcj9cqv1wkzha8gsn9jn4fw4xgvqigr6sxhf")) - (patches - ;; Output for some tests varies slightly in Emacs 29. - (search-patches "notmuch-emacs-test-output.patch")))) + (base32 "0zll3s39s065pl9228xpklkjklllkyb3bf1szh0fw0rbfkjfp0jj")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/patches/notmuch-emacs-test-output.patch b/gnu/packages/patches/notmuch-emacs-test-output.patch deleted file mode 100644 index 3c6d472d6b..0000000000 --- a/gnu/packages/patches/notmuch-emacs-test-output.patch +++ /dev/null @@ -1,89 +0,0 @@ -From e9e779ead4d703ad423e46c23abd0c9afd7d5ed2 Mon Sep 17 00:00:00 2001 -From: Arjan Adriaanse -Date: Tue, 15 Aug 2023 00:00:05 +0200 -Subject: [PATCH] test: fix expected output for Emacs 29 - ---- - test/T453-emacs-reply.sh | 1 - - test/T454-emacs-dont-reply-names.sh | 9 +++------ - .../notmuch-reply-duplicate-4 | 1 - - 3 files changed, 3 insertions(+), 8 deletions(-) - -diff --git a/test/T453-emacs-reply.sh b/test/T453-emacs-reply.sh -index 0a27d066..de400b85 100755 ---- a/test/T453-emacs-reply.sh -+++ b/test/T453-emacs-reply.sh -@@ -17,7 +17,6 @@ cat < EXPECTED - From: Notmuch Test Suite - To: Antoine Beaupré - Subject: Re: bug: "no top level messages" crash on Zen email loops --In-Reply-To: <874llc2bkp.fsf@curie.anarc.at> - Fcc: MAIL_DIR/sent - --text follows this line-- - Antoine Beaupré writes: -diff --git a/test/T454-emacs-dont-reply-names.sh b/test/T454-emacs-dont-reply-names.sh -index 3a770177..9ed4f18b 100755 ---- a/test/T454-emacs-dont-reply-names.sh -+++ b/test/T454-emacs-dont-reply-names.sh -@@ -17,13 +17,12 @@ test_emacs '(let ((message-dont-reply-to-names "notmuchmail\\|noreply\\|harvard" - (test-visible-output "OUTPUT-FULL.raw"))' - - notmuch_dir_sanitize < OUTPUT-FULL.raw > OUTPUT-FULL --head -6 OUTPUT-FULL > OUTPUT -+head -5 OUTPUT-FULL > OUTPUT - - cat < EXPECTED - From: Notmuch Test Suite - To: Mikhail Gusarov - Subject: Re: [notmuch] Working with Maildir storage? --In-Reply-To: <20091117203301.GV3165@dottiness.seas.harvard.edu> - Fcc: MAIL_DIR/sent - --text follows this line-- - EOF -@@ -38,14 +37,13 @@ test_emacs '(let ((message-dont-reply-to-names - (test-visible-output "OUTPUT-FULL-PRED.raw"))' - - notmuch_dir_sanitize < OUTPUT-FULL-PRED.raw > OUTPUT-FULL-PRED --head -7 OUTPUT-FULL-PRED > OUTPUT-PRED -+head -6 OUTPUT-FULL-PRED > OUTPUT-PRED - - cat < EXPECTED-PRED - From: Notmuch Test Suite - To: Lars Kellogg-Stedman - Cc: notmuch@notmuchmail.org - Subject: Re: [notmuch] Working with Maildir storage? --In-Reply-To: <20091117203301.GV3165@dottiness.seas.harvard.edu> - Fcc: MAIL_DIR/sent - --text follows this line-- - EOF -@@ -59,14 +57,13 @@ test_emacs '(let ((message-dont-reply-to-names nil)) - (test-visible-output "OUTPUT-FULL-NIL.raw"))' - - notmuch_dir_sanitize < OUTPUT-FULL-NIL.raw > OUTPUT-FULL-NIL --head -7 OUTPUT-FULL-NIL > OUTPUT-NIL -+head -6 OUTPUT-FULL-NIL > OUTPUT-NIL - - cat < EXPECTED-NIL - From: Notmuch Test Suite - To: Lars Kellogg-Stedman , Mikhail Gusarov - Cc: notmuch@notmuchmail.org - Subject: Re: [notmuch] Working with Maildir storage? --In-Reply-To: <20091117203301.GV3165@dottiness.seas.harvard.edu> - Fcc: MAIL_DIR/sent - --text follows this line-- - EOF -diff --git a/test/emacs-reply.expected-output/notmuch-reply-duplicate-4 b/test/emacs-reply.expected-output/notmuch-reply-duplicate-4 -index 836f77b1..44b8c7a6 100644 ---- a/test/emacs-reply.expected-output/notmuch-reply-duplicate-4 -+++ b/test/emacs-reply.expected-output/notmuch-reply-duplicate-4 -@@ -1,7 +1,6 @@ - From: Notmuch Test Suite - To: Sean Whitton , 916811@bugs.debian.org, 916805@bugs.debian.org, 916807@bugs.debian.org, 916808@bugs.debian.org, 916809@bugs.debian.org, 916811@bugs.debian.org, 916867@bugs.debian.org, 916869@bugs.debian.org, 916872@bugs.debian.org, 916875@bugs.debian.org, 916876@bugs.debian.org - Subject: Re: [Pkg-emacsen-addons] Bug#916811: Increase severity to 'serious' --In-Reply-To: <87r2ecrr6x.fsf@zephyr.silentflame.com> - Fcc: MAIL_DIR/sent - --text follows this line-- - Sean Whitton writes: --- -2.41.0 - -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public emacs-tempel-collection (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 v1.2.3 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/packages/patches') 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 @@ (define-public asmjit (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 @@ (define-public range-v3 (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 v1.2.3 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/packages/patches') 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 @@ (define-public s7-bootstrap (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 @@ (define-public s7-bootstrap (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 @@ (define-public s7-bootstrap (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 v1.2.3 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/packages/patches') 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 @@ (define-public arb (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 @@ (define-public python-flint (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 v1.2.3 From 4802adbbf09b87841522b006ea5d4d3af01c30ec Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sun, 14 Jan 2024 15:13:53 +0100 Subject: gnu: dynaconf: Update to 3.2.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/dynaconf-unvendor-deps.patch: Update accordingly. * gnu/packages/python-xyz.scm (dynaconf): Update to 3.2.4; [source]; https://github.com/rochacbruno/dynaconf now permanently redirects to https://github.com/dynaconf/dynaconf ; : update unvendoring and lower coverage quality gate for unit tests; [build-system]: switch to pyproject-build-system; [arguments]: disable tests that require Click 7 instead of Click 8; : comply with #:test-flags argument from pyproject-build-system; [propagated-inputs]: add python-tomli. Change-Id: I96597ec39d7aa2d3c3c169147640de19eaefe0b4 Signed-off-by: Ludovic Courtès --- gnu/packages/patches/dynaconf-unvendor-deps.patch | 172 ++++++++++------------ gnu/packages/python-xyz.scm | 39 +++-- 2 files changed, 108 insertions(+), 103 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/dynaconf-unvendor-deps.patch b/gnu/packages/patches/dynaconf-unvendor-deps.patch index 550e311363..f816264f4a 100644 --- a/gnu/packages/patches/dynaconf-unvendor-deps.patch +++ b/gnu/packages/patches/dynaconf-unvendor-deps.patch @@ -1,45 +1,46 @@ -From 3f7b48195500cbbbbecd3cac2f5308c64004479b Mon Sep 17 00:00:00 2001 +From d3252748b0f9036cb31f4697ebb5c6a494aceaca Mon Sep 17 00:00:00 2001 From: Giacomo Leidi -Date: Sun, 29 Aug 2021 23:39:27 +0200 +Date: Sun, 14 Jan 2024 12:05:49 +0100 Subject: [PATCH] Use system site dependencies. -Box was not unvendored because it appears to be heavily patched. +* Box was not unvendored because it appears to be heavily patched. +* Tomllib seems to be a backport from Python 3.11, as such it wasn't unvendored. --- - dynaconf/cli.py | 4 ++-- - dynaconf/default_settings.py | 2 +- - dynaconf/loaders/env_loader.py | 2 +- - dynaconf/loaders/toml_loader.py | 2 +- - dynaconf/loaders/yaml_loader.py | 2 +- - dynaconf/utils/parse_conf.py | 2 +- - dynaconf/vendor/box/converters.py | 4 ++-- - dynaconf/vendor/box/from_file.py | 4 ++-- - dynaconf/vendor_src/box/converters.py | 4 ++-- - dynaconf/vendor_src/box/from_file.py | 4 ++-- - tests/test_cli.py | 2 +- - 11 files changed, 16 insertions(+), 16 deletions(-) + dynaconf/cli.py | 4 ++-- + dynaconf/default_settings.py | 2 +- + dynaconf/loaders/env_loader.py | 2 +- + dynaconf/loaders/toml_loader.py | 2 +- + dynaconf/loaders/yaml_loader.py | 2 +- + dynaconf/utils/inspect.py | 2 +- + dynaconf/utils/parse_conf.py | 2 +- + dynaconf/vendor/box/converters.py | 2 +- + dynaconf/vendor/box/from_file.py | 2 +- + tests/test_cli.py | 2 +- + tests/test_inspect.py | 2 +- + 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dynaconf/cli.py b/dynaconf/cli.py -index 5bb8316..1341a95 100644 +index c0fd489..5739e79 100644 --- a/dynaconf/cli.py +++ b/dynaconf/cli.py -@@ -20,8 +20,8 @@ from dynaconf.utils.functional import empty - from dynaconf.utils.parse_conf import parse_conf_data +@@ -24,8 +24,8 @@ from dynaconf.utils.parse_conf import parse_conf_data + from dynaconf.utils.parse_conf import unparse_conf_data from dynaconf.validator import ValidationError from dynaconf.validator import Validator -from dynaconf.vendor import click -from dynaconf.vendor import toml +import click +import toml + from dynaconf.vendor import tomllib - CWD = Path.cwd() diff --git a/dynaconf/default_settings.py b/dynaconf/default_settings.py -index 66601b0..9605fc5 100644 +index 7e8c222..526b01e 100644 --- a/dynaconf/default_settings.py +++ b/dynaconf/default_settings.py -@@ -8,7 +8,7 @@ from dynaconf.utils import upperfy - from dynaconf.utils import warn_deprecations +@@ -11,7 +11,7 @@ from dynaconf.utils import warn_deprecations from dynaconf.utils.files import find_file + from dynaconf.utils.parse_conf import boolean_fix from dynaconf.utils.parse_conf import parse_conf_data -from dynaconf.vendor.dotenv import load_dotenv +from dotenv import load_dotenv @@ -47,36 +48,36 @@ index 66601b0..9605fc5 100644 def try_renamed(key, value, older_key, current_key): diff --git a/dynaconf/loaders/env_loader.py b/dynaconf/loaders/env_loader.py -index e7b13bd..b034c8a 100644 +index a563b4e..91ac3ae 100644 --- a/dynaconf/loaders/env_loader.py +++ b/dynaconf/loaders/env_loader.py -@@ -2,7 +2,7 @@ from os import environ +@@ -11,7 +11,7 @@ from dynaconf.utils.parse_conf import parse_conf_data - from dynaconf.utils import upperfy - from dynaconf.utils.parse_conf import parse_conf_data --from dynaconf.vendor.dotenv import cli as dotenv_cli -+from dotenv import cli as dotenv_cli + DOTENV_IMPORTED = False + with suppress(ImportError, FileNotFoundError): +- from dynaconf.vendor.dotenv import cli as dotenv_cli ++ from dotenv import cli as dotenv_cli + DOTENV_IMPORTED = True - IDENTIFIER = "env" diff --git a/dynaconf/loaders/toml_loader.py b/dynaconf/loaders/toml_loader.py -index 07b973f..d81d675 100644 +index 42db7b3..ba0188b 100644 --- a/dynaconf/loaders/toml_loader.py +++ b/dynaconf/loaders/toml_loader.py -@@ -5,7 +5,7 @@ from dynaconf import default_settings +@@ -7,7 +7,7 @@ from dynaconf import default_settings from dynaconf.constants import TOML_EXTENSIONS from dynaconf.loaders.base import BaseLoader from dynaconf.utils import object_merge --from dynaconf.vendor import toml -+import toml +-from dynaconf.vendor import toml # Backwards compatibility with uiri/toml ++import toml # Backwards compatibility with uiri/toml + from dynaconf.vendor import tomllib # New tomllib stdlib on py3.11 - def load(obj, env=None, silent=True, key=None, filename=None): diff --git a/dynaconf/loaders/yaml_loader.py b/dynaconf/loaders/yaml_loader.py -index 33c6532..3ef419a 100644 +index 5721681..ab628c2 100644 --- a/dynaconf/loaders/yaml_loader.py +++ b/dynaconf/loaders/yaml_loader.py -@@ -7,7 +7,7 @@ from dynaconf.constants import YAML_EXTENSIONS +@@ -10,7 +10,7 @@ from dynaconf.constants import YAML_EXTENSIONS from dynaconf.loaders.base import BaseLoader from dynaconf.utils import object_merge from dynaconf.utils.parse_conf import try_to_encode @@ -85,95 +86,84 @@ index 33c6532..3ef419a 100644 # Add support for Dynaconf Lazy values to YAML dumper yaml.SafeDumper.yaml_representers[ +diff --git a/dynaconf/utils/inspect.py b/dynaconf/utils/inspect.py +index 21d724e..2933b8f 100644 +--- a/dynaconf/utils/inspect.py ++++ b/dynaconf/utils/inspect.py +@@ -18,7 +18,7 @@ from dynaconf.loaders.base import SourceMetadata + from dynaconf.utils.boxing import DynaBox + from dynaconf.utils.functional import empty + from dynaconf.vendor.box.box_list import BoxList +-from dynaconf.vendor.ruamel.yaml import YAML ++from ruamel.yaml import YAML + + if TYPE_CHECKING: # pragma: no cover + from dynaconf.base import LazySettings, Settings diff --git a/dynaconf/utils/parse_conf.py b/dynaconf/utils/parse_conf.py -index c42b07a..01ccdae 100644 +index 882110e..a262864 100644 --- a/dynaconf/utils/parse_conf.py +++ b/dynaconf/utils/parse_conf.py -@@ -9,7 +9,7 @@ from dynaconf.utils import isnamedtupleinstance - from dynaconf.utils import multi_replace +@@ -12,7 +12,7 @@ from dynaconf.utils import multi_replace from dynaconf.utils import recursively_evaluate_lazy_format from dynaconf.utils.boxing import DynaBox + from dynaconf.utils.functional import empty -from dynaconf.vendor import toml +import toml + from dynaconf.vendor import tomllib try: - from jinja2 import Environment diff --git a/dynaconf/vendor/box/converters.py b/dynaconf/vendor/box/converters.py -index 93cdcfb..e34c7dc 100644 +index 08694fe..4e84930 100644 --- a/dynaconf/vendor/box/converters.py +++ b/dynaconf/vendor/box/converters.py -@@ -7,9 +7,9 @@ _B='utf-8' - _A=None - import csv,json,sys,warnings - from pathlib import Path --import dynaconf.vendor.ruamel.yaml as yaml -+import ruamel.yaml as yaml - from dynaconf.vendor.box.exceptions import BoxError,BoxWarning --from dynaconf.vendor import toml -+import toml - BOX_PARAMETERS='default_box','default_box_attr','conversion_box','frozen_box','camel_killer_box','box_safe_prefix','box_duplicates','ordered_box','default_box_none_transform','box_dots','modify_tuples_box','box_intact_types','box_recast' - def _exists(filename,create=_E): - A=filename;B=Path(A) -diff --git a/dynaconf/vendor/box/from_file.py b/dynaconf/vendor/box/from_file.py -index daa1137..d75940b 100644 ---- a/dynaconf/vendor/box/from_file.py -+++ b/dynaconf/vendor/box/from_file.py -@@ -1,8 +1,8 @@ - from json import JSONDecodeError - from pathlib import Path - from typing import Union --from dynaconf.vendor.toml import TomlDecodeError --from dynaconf.vendor.ruamel.yaml import YAMLError -+from toml import TomlDecodeError -+from ruamel.yaml import YAMLError - from .exceptions import BoxError - from .box import Box - from .box_list import BoxList -diff --git a/dynaconf/vendor_src/box/converters.py b/dynaconf/vendor_src/box/converters.py -index c9a2293..ae42bf6 100644 ---- a/dynaconf/vendor_src/box/converters.py -+++ b/dynaconf/vendor_src/box/converters.py -@@ -9,9 +9,9 @@ import sys +@@ -9,7 +9,7 @@ import sys import warnings from pathlib import Path -import dynaconf.vendor.ruamel.yaml as yaml +import ruamel.yaml as yaml from dynaconf.vendor.box.exceptions import BoxError, BoxWarning --from dynaconf.vendor import toml -+import toml - + from dynaconf.vendor import tomllib as toml - BOX_PARAMETERS = ('default_box', 'default_box_attr', 'conversion_box', -diff --git a/dynaconf/vendor_src/box/from_file.py b/dynaconf/vendor_src/box/from_file.py -index 2e2a6ad..3f76819 100644 ---- a/dynaconf/vendor_src/box/from_file.py -+++ b/dynaconf/vendor_src/box/from_file.py -@@ -3,8 +3,8 @@ - from json import JSONDecodeError +diff --git a/dynaconf/vendor/box/from_file.py b/dynaconf/vendor/box/from_file.py +index a82ac96..cd01f13 100644 +--- a/dynaconf/vendor/box/from_file.py ++++ b/dynaconf/vendor/box/from_file.py +@@ -4,7 +4,7 @@ from json import JSONDecodeError from pathlib import Path from typing import Union --from dynaconf.vendor.toml import TomlDecodeError + from dynaconf.vendor.tomllib import TOMLDecodeError -from dynaconf.vendor.ruamel.yaml import YAMLError -+from toml import TomlDecodeError +from ruamel.yaml import YAMLError from .exceptions import BoxError diff --git a/tests/test_cli.py b/tests/test_cli.py -index 6693701..df44409 100644 +index c679ae5..9df5f7f 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py -@@ -11,7 +11,7 @@ from dynaconf.cli import main +@@ -15,7 +15,7 @@ from dynaconf.cli import main from dynaconf.cli import read_file_in_root_directory from dynaconf.cli import WRITERS from dynaconf.utils.files import read_file -from dynaconf.vendor.click.testing import CliRunner +from click.testing import CliRunner + settings = LazySettings(OPTION_FOR_TESTS=True, environments=True) - runner = CliRunner() - -base-commit: ebf7b17cffd5e08b212948bd8036d580718d5bf8 +diff --git a/tests/test_inspect.py b/tests/test_inspect.py +index 0819715..96638c1 100644 +--- a/tests/test_inspect.py ++++ b/tests/test_inspect.py +@@ -18,7 +18,7 @@ from dynaconf.utils.inspect import inspect_settings + from dynaconf.utils.inspect import KeyNotFoundError + from dynaconf.utils.inspect import OutputFormatError + from dynaconf.validator import Validator +-from dynaconf.vendor.ruamel import yaml ++from ruamel import yaml + + + def create_file(filename: str, data: str) -> str: -- -2.32.0 +2.41.0 + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6149807e77..87391b4806 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -63,7 +63,7 @@ ;;; Copyright © 2019, 2020 Alex Griffin ;;; Copyright © 2019, 2020, 2021, 2022, 2023 Pierre Langlois ;;; Copyright © 2019 Jacob MacDonald -;;; Copyright © 2019-2021, 2023 Giacomo Leidi +;;; Copyright © 2019-2021, 2023, 2024 Giacomo Leidi ;;; Copyright © 2019 Wiktor Żelazny ;;; Copyright © 2019, 2020, 2021, 2022 Tanguy Le Carrour ;;; Copyright © 2019, 2021-2023 Mădălin Ionel Patrașcu @@ -33162,30 +33162,40 @@ (define-public python-orgparse (define-public dynaconf (package (name "dynaconf") - (version "3.1.7") + (version "3.2.4") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rochacbruno/dynaconf") + (url "https://github.com/dynaconf/dynaconf") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0pjyjsdzairpn5vq8nzddhxwxmr18grn272nj31wcy2ipwdl3c3h")) + "0fj2ffvzfvjf4d7f672h5x5fzq26f8hax9j3dfsix158fwm0212w")) (patches (search-patches "dynaconf-unvendor-deps.patch")) (modules '((guix build utils))) (snippet '(begin ;; Remove vendored dependencies (let ((unvendor '("click" "dotenv" "ruamel" "toml"))) (with-directory-excursion "dynaconf/vendor" - (for-each delete-file-recursively unvendor)) - (with-directory-excursion "dynaconf/vendor_src" - (for-each delete-file-recursively unvendor))))))) - (build-system python-build-system) + (for-each delete-file-recursively unvendor))) + ;; Lower coverage quality gate for unit tests + (substitute* ".coveragerc" + (("fail_under = 95") "fail_under = 50")))))) + (build-system pyproject-build-system) (arguments - `(#:phases + `(#:test-flags + '("-k" + ,(let ((click-tests '("test_negative_get" + "test_inspect_invalid_format"))) + ;; Disable integration tests + (string-append "not integration and not " + ;; These tests fail because we use Click 8.* instead of + ;; Click 7 + (string-join click-tests " and not ")))) + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-for-click-8 (lambda _ @@ -33193,14 +33203,19 @@ (define-public dynaconf (("click.get_os_args\\()") ;deprecated from Click 8.1+ "sys.argv[1:]")))) (replace 'check - (lambda* (#:key tests? outputs #:allow-other-keys) + (lambda* (#:key tests? test-flags #:allow-other-keys) (when tests? ;; These tests depend on hvac and a live Vault process. (delete-file "tests/test_vault.py") - (invoke "make" "test_only"))))))) + (apply invoke + `("py.test" ,@test-flags "-v" + "--cov-config" ".coveragerc" + "--cov=dynaconf" + "-l" "--tb=short" + "--maxfail=1" "tests/")))))))) (propagated-inputs (list python-click python-configobj python-dotenv-0.13.0 - python-ruamel.yaml python-toml)) + python-ruamel.yaml python-toml python-tomli)) (native-inputs (list python-django python-flask python-pytest python-pytest-cov python-pytest-mock)) -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public lugaru (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 @@ (define-public lugaru 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 v1.2.3 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/packages/patches') 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 @@ (define-module (gnu packages cran) #: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 @@ (define-public r-sapa (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 v1.2.3 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/packages/patches') 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 @@ (define-public multitail (define-public spdlog (package (name "spdlog") - (version "1.12.0") + (version "1.13.0") (source (origin (method git-fetch) @@ -221,9 +221,8 @@ (define-public spdlog (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 v1.2.3 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/packages/patches') 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 @@ (define-public libgeotiff (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 v1.2.3 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/packages/patches') 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 @@ (define-module (gnu packages coq) #: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 @@ (define-module (gnu packages coq) #: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 @@ (define-public coq-core (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 @@ (define-public coq-core ;; 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 @@ (define-public coq-ide `(#: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 @@ (define-public coq-autosubst (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 @@ (define-public coq-mathcomp-finmap "/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 @@ (define-public coq-mathcomp-bigenough ;; 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 @@ (define-public coq-mathcomp-bigenough "/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 v1.2.3 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/packages/patches') 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 @@ (define-public ocaml-mccs (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 @@ (define-public ocaml-dose3 (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 @@ (define-public ocaml-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 @@ (define ocaml-opam-core (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 @@ (define-public opam (("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 @@ (define-public opam ("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 @@ (define-public ocaml-base64 (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 @@ (define-public ocaml-base64 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 @@ (define-public ocaml-uuidm (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 v1.2.3 From ac9044699afa46bbb2c4220a700b03816a107065 Mon Sep 17 00:00:00 2001 From: Dominic Martinez Date: Sun, 11 Feb 2024 19:28:23 +0100 Subject: gnu: Add go-github-com-skip2-go-qrcode. * gnu/packages/golang-xyz.scm (go-github-com-skip2-go-qrcode): New variable. Signed-off-by: Sharlatan Hellseher Change-Id: I3510982cdbc7b540281c0b0f074c1cb140ce249b --- gnu/packages/golang-xyz.scm | 21 ++++++++++++ .../go-github-com-skip2-go-qrcode-fix-tests.patch | 37 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch (limited to 'gnu/packages/patches') diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index dd08f19b92..186c0e87a3 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -322,6 +322,27 @@ (define-public go-github-com-nbrownus-go-metrics-prometheus updates the registry.") (license license:asl2.0))) +(define-public go-github-com-skip2-go-qrcode + (package + (name "go-github-com-skip2-go-qrcode") + (version "0.0.0-20200617195104-da1b6568686e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skip2/go-qrcode") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pghd6y2x8a5fqy4rjn4d8j5jcslb236naycdza5an7vyvinsgs9")) + (patches (search-patches "go-github-com-skip2-go-qrcode-fix-tests.patch")))) + (build-system go-build-system) + (arguments '(#:import-path "github.com/skip2/go-qrcode")) + (home-page "https://github.com/skip2/go-qrcode") + (synopsis "QR code encoder") + (description "This package provides a QR code encoder for the Goloang.") + (license license:expat))) + (define-public go-github-com-songgao-water (package (name "go-github-com-songgao-water") diff --git a/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch new file mode 100644 index 0000000000..631cb0cdab --- /dev/null +++ b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch @@ -0,0 +1,37 @@ +From dd203f29a36bf518deacbc03e8562b0195c8345f Mon Sep 17 00:00:00 2001 +From: Dominic Martinez +Date: Mon, 4 Apr 2022 12:06:03 -0400 +Subject: [PATCH] Fix failing qr decode test + +First convert integers into runes before performing a string conversion. +--- + qrcode_decode_test.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qrcode_decode_test.go b/qrcode_decode_test.go +index 1f4b1d3..2b0756b 100644 +--- a/qrcode_decode_test.go ++++ b/qrcode_decode_test.go +@@ -122,7 +122,7 @@ func TestDecodeAllCharacters(t *testing.T) { + + // zbarimg has trouble with null bytes, hence start from ASCII 1. + for i := 1; i < 256; i++ { +- content += string(i) ++ content += string(rune(i)) + } + + q, err := New(content, Low) +@@ -154,7 +154,7 @@ func TestDecodeFuzz(t *testing.T) { + for j := 0; j < len; j++ { + // zbarimg seems to have trouble with special characters, test printable + // characters only for now. +- content += string(32 + r.Intn(94)) ++ content += string(rune(32 + r.Intn(94))) + } + + for _, level := range []RecoveryLevel{Low, Medium, High, Highest} { + +base-commit: da1b6568686e89143e94f980a98bc2dbd5537f13 +-- +2.34.0 + -- cgit v1.2.3 From 5a8079e219e9052b036bc5d29be9692640d415dd Mon Sep 17 00:00:00 2001 From: David Elsing Date: Sun, 28 Jan 2024 23:01:54 +0000 Subject: gnu: tinydir: Update to 1.2.6. * gnu/packages/c.scm (tinydir): Update to 1.2.6. * gnu/packages/patches/tinydir-fix-cbehave-test.patch: Adjust patch. Signed-off-by: Christopher Baines --- gnu/packages/c.scm | 6 +++--- gnu/packages/patches/tinydir-fix-cbehave-test.patch | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 1346605c71..b558145ea0 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2022 Antero Mejr ;;; Copyright © 2023 zamfofex ;;; Copyright © 2023 Foundation Devices, Inc. -;;; Copyright © 2023 David Elsing +;;; Copyright © 2023, 2024 David Elsing ;;; ;;; This file is part of GNU Guix. ;;; @@ -1349,7 +1349,7 @@ (define target-machine #$(and=> (%current-target-system) (define-public tinydir (package (name "tinydir") - (version "1.2.5") + (version "1.2.6") (source (origin (method git-fetch) (uri (git-reference @@ -1358,7 +1358,7 @@ (define-public tinydir (file-name (git-file-name name version)) (sha256 (base32 - "1nprgdfx4i8wzc1idw6chan4fjfa75b5ll8kghdc0q2278pny259")) + "143n6yabznxk032gv5g2k8glf0kzicarg9cx0714zsbfmzj8lr07")) (patches (search-patches "tinydir-fix-cbehave-test.patch")) (modules '((guix build utils))) (snippet '(delete-file-recursively "tests/cbehave")))) diff --git a/gnu/packages/patches/tinydir-fix-cbehave-test.patch b/gnu/packages/patches/tinydir-fix-cbehave-test.patch index 84ecee12c2..1cad42c7a0 100644 --- a/gnu/packages/patches/tinydir-fix-cbehave-test.patch +++ b/gnu/packages/patches/tinydir-fix-cbehave-test.patch @@ -2,10 +2,22 @@ Make test work with upstream cbehave (tinydir bundles a modified version) diff --git a/tests/file_open_test.c b/tests/file_open_test.c -index 3e659bc..9f6f88d 100644 +index 09b856e..92b13ca 100644 --- a/tests/file_open_test.c +++ b/tests/file_open_test.c -@@ -19,4 +19,7 @@ FEATURE(file_open, "File open") +@@ -4,6 +4,11 @@ + #include "cbehave.h" + #include "util.h" + ++#define ASSERT(cond, ret) \ ++if (!(cond)) {\ ++ cbehave_feature_return(__FILE__, __LINE__, ret, _state); \ ++ goto _feature_over; \ ++}\ + + FEATURE(file_open, "File open") + SCENARIO("Open file in current directory") +@@ -34,4 +39,7 @@ FEATURE(file_open, "File open") SCENARIO_END FEATURE_END -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public yaehmop (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 v1.2.3 From e5bfc462dd695a570fe88c4c6d6efee808fd1a56 Mon Sep 17 00:00:00 2001 From: David Elsing Date: Sun, 28 Jan 2024 23:02:02 +0000 Subject: gnu: rdkit: Update to 2023.09.4. * gnu/packages/chemistry.scm (rdkit): Update to 2023.09.4. [arguments]: Skip testConrec test in check phase. [native-inputs]: Replace catch2 with catch2-3. * gnu/packages/patches/rdkit-unbundle-external-dependencies.patch: Adjust patch. [supported-systems]: New field. Signed-off-by: Christopher Baines --- gnu/packages/chemistry.scm | 15 +- .../rdkit-unbundle-external-dependencies.patch | 208 ++++++++++++--------- 2 files changed, 126 insertions(+), 97 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 98141737ac..bd27bfad7a 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -1073,7 +1073,7 @@ (define-public ringdecomposerlib (define-public rdkit (package (name "rdkit") - (version "2022.03.5") + (version "2023.09.4") (source (origin (method git-fetch) (uri (git-reference @@ -1084,7 +1084,7 @@ (define-public rdkit (file-name (git-file-name name version)) (sha256 (base32 - "19idgilabh04cbr1qj6zgrgsfjm248mmfz6fsr0smrd68d0xnml9")) + "1lgcgijlzzwpfxndsdlx13npdfk7hcii11zg25cvpmzhbpn6vyn8")) (patches (search-patches "rdkit-unbundle-external-dependencies.patch")) (modules '((guix build utils))) @@ -1183,7 +1183,10 @@ (define-public rdkit "substructLibraryTest" "pyFeatures" "pythonTestDirML" "pythonTestDirChem" ;; Catching Python exception fails - "pyRanker") "|") + "pyRanker" + ;; Flaky test depending on floating point rounding + "testConrec" + ) "|") ")"))))))))) (inputs (list avalon-toolkit @@ -1200,7 +1203,7 @@ (define-public rdkit (native-inputs (list bison boost - catch2 + catch2-3 eigen flex freesasa @@ -1214,4 +1217,8 @@ (define-public rdkit (description "RDKit is a C++ and Python library for cheminformatics, which includes (among other things) the analysis and modification of molecules in 2D and 3D and descriptor generation for machine learning.") + ;; For 32 bit systems, there is a bug in Boost.Python: + ;; https://github.com/boostorg/python/issues/312. Additionally, several + ;; other test fail. + (supported-systems %64bit-supported-systems) (license license:bsd-3))) diff --git a/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch b/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch index 8ee0611d3b..e22ff57ee0 100644 --- a/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch +++ b/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch @@ -58,99 +58,82 @@ diff --git a/External/AvalonTools/CMakeLists.txt b/External/AvalonTools/CMakeLis index 3e31195fc..314ba35b5 100644 --- a/External/AvalonTools/CMakeLists.txt +++ b/External/AvalonTools/CMakeLists.txt -@@ -2,107 +2,14 @@ if(NOT RDK_BUILD_AVALON_SUPPORT) +@@ -2,90 +2,8 @@ if(NOT RDK_BUILD_AVALON_SUPPORT) return() endif(NOT RDK_BUILD_AVALON_SUPPORT) +-set(AVALON_VERSION "2.0.5-pre.3") -if(NOT DEFINED AVALONTOOLS_DIR) -- set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution") -- set(fileToPatch "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution/common/reaccsio.c") +- set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ava-formake-AvalonToolkit_${AVALON_VERSION}") +- set(fileToCheck "${AVALONTOOLS_DIR}/src/main/C/common/reaccsio.c") - set(needDownload "TRUE") -- if(EXISTS "${fileToPatch}") -- file(READ "${fileToPatch}" buffer) -- if("${buffer}" MATCHES "//MyFree\\(\\(char \\*\\)tempdir\\);") -- set(needDownload "FALSE") -- endif() +- if(EXISTS "${fileToCheck}") +- set(needDownload "FALSE") - endif() -else() - string(REGEX REPLACE "\\\\" "/" AVALONTOOLS_DIR ${AVALONTOOLS_DIR}) - set(needDownload "FALSE") -endif() - --set(AVALON_SRC_PATH ${AVALONTOOLS_DIR}/common) +-set(AVALON_SRC_PATH "${AVALONTOOLS_DIR}/src/main/C") +-set(AVALON_COMMON_PATH "${AVALON_SRC_PATH}/common") +-set(AVALON_INCLUDE_PATH "${AVALON_SRC_PATH}/include") +-set(AVALON_PROGRAMS_PATH "${AVALON_SRC_PATH}/programs") - -if(needDownload) - if(NOT DEFINED AVALONTOOLS_URL) -- set(AVALONTOOLS_URL "https://sourceforge.net/projects/avalontoolkit/files/AvalonToolkit_1.2/AvalonToolkit_1.2.0.source.tar") +- set(AVALONTOOLS_URL "https://github.com/rdkit/ava-formake/archive/refs/tags/AvalonToolkit_${AVALON_VERSION}.tar.gz") - endif() - if(NOT DEFINED AVALONTOOLS_MD5SUM) -- set(AVALONTOOLS_MD5SUM "092a94f421873f038aa67d4a6cc8cb54") +- set(AVALONTOOLS_MD5SUM "7a20c25a7e79f3344e0f9f49afa03351") - endif() - if(NOT DEFINED AVALONTOOLS_BASE) - string(REGEX REPLACE "^.*/" "" AVALONTOOLS_BASE "${AVALONTOOLS_URL}") - endif() - downloadAndCheckMD5(${AVALONTOOLS_URL} "${CMAKE_CURRENT_SOURCE_DIR}/${AVALONTOOLS_BASE}" ${AVALONTOOLS_MD5SUM}) -- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf -- ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_1.2.0.source.tar +- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf +- ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_${AVALON_VERSION}.tar.gz - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -- # apply patch to AvalonTools -- configure_file("${fileToPatch}" "${fileToPatch}.orig" COPYONLY) -- file(READ "${fileToPatch}" buffer) -- string(REGEX REPLACE "MyFree\\(\\(char \\*\\)tempdir\\);" -- "//MyFree((char *)tempdir);" buffer "${buffer}") -- file(WRITE "${fileToPatch}" "${buffer}") --endif() - - if (MSVC) - add_definitions("/D_CRT_SECURE_NO_WARNINGS") - add_compile_options(/wd4224 /wd4101 /wd4018 /wd4996 /wd4244 /wd4305 /wd4013 /wd4146 /wd4334 /wd4715 /wd4715 /nologo) - endif(MSVC) - --set(avalon_clib_srcs ${AVALON_SRC_PATH}/layout.c -- ${AVALON_SRC_PATH}/symboltable.c -- ${AVALON_SRC_PATH}/patclean.c -- ${AVALON_SRC_PATH}/utilities.c -- ${AVALON_SRC_PATH}/symbol_lists.c -- ${AVALON_SRC_PATH}/stereo.c -- ${AVALON_SRC_PATH}/set.c -- ${AVALON_SRC_PATH}/perceive.c -- ${AVALON_SRC_PATH}/local.c -- ${AVALON_SRC_PATH}/graph.c -- ${AVALON_SRC_PATH}/geometry.c -- ${AVALON_SRC_PATH}/forio.c -- ${AVALON_SRC_PATH}/depictutil.c -- ${AVALON_SRC_PATH}/denormal.c -- ${AVALON_SRC_PATH}/casutils.c -- ${AVALON_SRC_PATH}/ssmatch.c -- ${AVALON_SRC_PATH}/rtutils.c -- ${AVALON_SRC_PATH}/smi2mol.c -- ${AVALON_SRC_PATH}/didepict.c -- ${AVALON_SRC_PATH}/pattern.c -- ${AVALON_SRC_PATH}/canonizer.c -- ${AVALON_SRC_PATH}/aacheck.c -- ${AVALON_SRC_PATH}/fixcharges.c -- ${AVALON_SRC_PATH}/struchk.c -- ${AVALON_SRC_PATH}/reaccsio.c -- ${AVALON_SRC_PATH}/hashcode.c -- ) -- --# we need this to ensure that builds continue --# to work on linux systems with older versions --# of glibc when we're building with gcc-4.1. --# Without this flag, we'll endup requiring --# glibc 2.7. --if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -- add_definitions(-D_GNU_SOURCE=1) -endif() - --if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-return-type -Wno-implicit-function-declaration -Wno-absolute-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-dangling-else -Wno-format") +-if(CMAKE_C_COMPILER_ID STREQUAL "GNU") +- add_compile_options(-Wno-format-security -Wformat=0 -Wstringop-overflow=0 -Wformat-overflow=0 -Wno-unused-result ) -endif() --if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-result -Wformat-overflow=0 -Wformat=0 -Wno-format-security -Wno-implicit-function-declaration") +-if(CMAKE_C_COMPILER_ID STREQUAL "Clang") +- add_compile_options(-Wno-absolute-value -Wno-return-type -Wno-tautological-overlap-compare) -endif() +-if (MSVC) +- add_definitions("/D_CRT_SECURE_NO_WARNINGS") +- add_compile_options(/wd4018 /wd4101 /wd4146 /wd4334 /wd4477 /wd4715 /wd4716 /wd4996 /nologo) +-endif(MSVC) - -- +-set(avalon_clib_srcs ${AVALON_COMMON_PATH}/layout.c +- ${AVALON_COMMON_PATH}/symboltable.c +- ${AVALON_COMMON_PATH}/patclean.c +- ${AVALON_COMMON_PATH}/utilities.c +- ${AVALON_COMMON_PATH}/symbol_lists.c +- ${AVALON_COMMON_PATH}/stereo.c +- ${AVALON_COMMON_PATH}/set.c +- ${AVALON_COMMON_PATH}/perceive.c +- ${AVALON_COMMON_PATH}/local.c +- ${AVALON_COMMON_PATH}/graph.c +- ${AVALON_COMMON_PATH}/geometry.c +- ${AVALON_COMMON_PATH}/forio.c +- ${AVALON_COMMON_PATH}/depictutil.c +- ${AVALON_COMMON_PATH}/denormal.c +- ${AVALON_COMMON_PATH}/casutils.c +- ${AVALON_COMMON_PATH}/ssmatch.c +- ${AVALON_COMMON_PATH}/rtutils.c +- ${AVALON_COMMON_PATH}/smi2mol.c +- ${AVALON_COMMON_PATH}/didepict.c +- ${AVALON_COMMON_PATH}/pattern.c +- ${AVALON_COMMON_PATH}/canonizer.c +- ${AVALON_COMMON_PATH}/aacheck.c +- ${AVALON_COMMON_PATH}/fixcharges.c +- ${AVALON_PROGRAMS_PATH}/struchk.c +- ${AVALON_COMMON_PATH}/reaccsio.c +- ${AVALON_COMMON_PATH}/hashcode.c +- ) - -rdkit_library(avalon_clib ${avalon_clib_srcs}) -target_compile_definitions(avalon_clib PRIVATE RDKIT_AVALONLIB_BUILD) @@ -159,11 +142,11 @@ index 3e31195fc..314ba35b5 100644 -endif() - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) --include_directories(${AVALON_SRC_PATH}) +-include_directories(${AVALON_INCLUDE_PATH}) - rdkit_library(AvalonLib AvalonTools.cpp SHARED - LINK_LIBRARIES avalon_clib SubstructMatch FileParsers SmilesParse GraphMol DataStructs ) -+ LINK_LIBRARIES -lavalontoolkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs ) ++ LINK_LIBRARIES -lavalon4rdkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs ) target_compile_definitions(AvalonLib PRIVATE RDKIT_AVALONLIB_BUILD) rdkit_headers(AvalonTools.h DEST GraphMol) rdkit_test(testAvalonLib1 test1.cpp @@ -278,7 +261,7 @@ diff --git a/External/RingFamilies/CMakeLists.txt b/External/RingFamilies/CMakeL index 08dd1fe04..66ecd5834 100644 --- a/External/RingFamilies/CMakeLists.txt +++ b/External/RingFamilies/CMakeLists.txt -@@ -1,47 +1,6 @@ +@@ -1,47 +1,7 @@ -add_custom_target(ringdecomposerlib_support ALL) - if(NOT RDK_USE_URF) @@ -324,10 +307,9 @@ index 08dd1fe04..66ecd5834 100644 -rdkit_headers(${URFLIB_DIR}/RingDecomposerLib.h DEST "") - - --set(RDK_URF_LIBS RingDecomposerLib -- CACHE STRING "the libraries for the URF calculation" FORCE) +rdkit_library(RingDecomposerLib dummy.cpp SHARED LINK_LIBRARIES -lRingDecomposerLib) -+set(RDK_URF_LIBS RingDecomposerLib CACHE STRING "" FORCE) + set(RDK_URF_LIBS RingDecomposerLib + CACHE STRING "the libraries for the URF calculation" FORCE) diff --git a/External/RingFamilies/dummy.cpp b/External/RingFamilies/dummy.cpp new file mode 100644 index 000000000..e69de29bb @@ -335,40 +317,60 @@ diff --git a/External/YAeHMOP/CMakeLists.txt b/External/YAeHMOP/CMakeLists.txt index f1027b3bd..8bee2f910 100644 --- a/External/YAeHMOP/CMakeLists.txt +++ b/External/YAeHMOP/CMakeLists.txt -@@ -18,32 +18,8 @@ endif() +@@ -4,52 +4,7 @@ endif(NOT RDK_BUILD_YAEHMOP_SUPPORT) - include_directories( ${RDKit_ExternalDir}/YAeHMOP ) + add_definitions(-DRDK_BUILD_YAEHMOP_SUPPORT) --ExternalProject_Add(yaehmop_project -- GIT_REPOSITORY https://github.com/greglandrum/yaehmop.git -- GIT_TAG master -- UPDATE_COMMAND "" -- PATCH_COMMAND "" -- PREFIX ${CMAKE_CURRENT_SOURCE_DIR} -- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop" -- SOURCE_SUBDIR "tightbind" -- CMAKE_ARGS -DUSE_BLAS_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -- TEST_COMMAND "") -- --include_directories(${PROJECT_BINARY_DIR}/include) --link_directories(${PROJECT_BINARY_DIR}/lib) --link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build) +-if(NOT DEFINED YAEHMOP_DIR) +- set(YAEHMOP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop") +-endif() +- +-if(NOT EXISTS "${YAEHMOP_DIR}/tightbind/bind.h") +- set(RELEASE_NO "2023.03.1") +- set(MD5 "e6450f13e02c54d024233b993c3c7ff6") +- downloadAndCheckMD5("https://github.com/greglandrum/yaehmop/archive/refs/tags/v${RELEASE_NO}.tar.gz" +- "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz" ${MD5}) +- execute_process(COMMAND ${CMAKE_COMMAND} -E tar zxf +- ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +- +- file(RENAME "yaehmop-${RELEASE_NO}" "${YAEHMOP_DIR}") +-else() +- message("-- Found YAeHMOP source in ${YAEHMOP_DIR}") +-endif() +- +-set(yaehmop_INCLUDE_DIRS ${YAEHMOP_DIR}/.. +- CACHE STRING "yaehmop Include File" FORCE) +-include_directories(${yaehmop_INCLUDE_DIRS}) +- +-if(CMAKE_COMPILER_IS_GNUCXX AND NOT CYGWIN) +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") +-endif() +-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") +-endif() +- +-# bring in the eHT code, but skip the targets (we'll get yaehmop_eht anyway because it's a dependency) +-add_subdirectory(yaehmop/tightbind EXCLUDE_FROM_ALL True) +- +-# set install dir for the yaehmop library: +-INSTALL(TARGETS yaehmop_eht EXPORT rdkit-targets +- DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST} +- COMPONENT runtime ) +- +- +- - -set(EHT_PARAM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop/tightbind/eht_parms.dat ) -install(FILES ${EHT_PARAM_FILE} - DESTINATION ${RDKit_ShareDir}/Data - COMPONENT data) - --message("YAeHMOP include_dirs: ${PROJECT_BINARY_DIR}/include") --message("YAeHMOP link_dirs: ${PROJECT_BINARY_DIR}/lib ${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build") -- -rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES yaehmop_eht GraphMol ) +rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES -lyaehmop_eht GraphMol ) target_compile_definitions(EHTLib PRIVATE RDKIT_EHTLIB_BUILD) --add_dependencies(EHTLib yaehmop_project) rdkit_headers(EHTTools.h DEST GraphMol) rdkit_catch_test(testEHTLib1 test1.cpp - LINK_LIBRARIES EHTLib FileParsers SmilesParse ) diff --git a/External/YAeHMOP/EHTTools.cpp b/External/YAeHMOP/EHTTools.cpp index 7a229f51f..71033dc5c 100644 --- a/External/YAeHMOP/EHTTools.cpp @@ -382,3 +384,23 @@ index 7a229f51f..71033dc5c 100644 } namespace RDKit { +@@ -160,4 +160,4 @@ bool runMol(const ROMol &mol, EHTResults &results, int confId, + } + + } // end of namespace EHTTools +-} // end of namespace RDKit +\ No newline at end of file ++} // end of namespace RDKit +diff --git a/External/YAeHMOP/Wrap/CMakeLists.txt b/External/YAeHMOP/Wrap/CMakeLists.txt +index 759a9f360..114d24532 100644 +--- a/External/YAeHMOP/Wrap/CMakeLists.txt ++++ b/External/YAeHMOP/Wrap/CMakeLists.txt +@@ -4,6 +4,8 @@ rdkit_python_extension(rdEHTTools + DEST Chem + LINK_LIBRARIES + EHTLib ) ++ ++target_include_directories(rdEHTTools PRIVATE ${RDKit_ExternalDir}/YAeHMOP) + + add_pytest(pyEHTTools + ${CMAKE_CURRENT_SOURCE_DIR}/testEHTTools.py) -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public vinci (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 @@ (define-public arpack-ng (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 v1.2.3 From 95f3db691075ab716e1e6471b34b01d671e3be86 Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 12 Feb 2024 10:51:41 -0500 Subject: gnu: sdcc: Update to 4.4.0. * gnu/packages/embedded.scm (sdcc): Update to 4.4.0. * gnu/packages/patches/sdcc-disable-non-free-code.patch: Update to match new version. Change-Id: Ie35c590a7f3004bc9f081d99b7ce019ac66cf3c0 Signed-off-by: Ricardo Wurmus --- gnu/packages/embedded.scm | 4 +- .../patches/sdcc-disable-non-free-code.patch | 244 ++++++++++----------- 2 files changed, 124 insertions(+), 124 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 313675814a..b758e445af 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1637,7 +1637,7 @@ (define-public ucsim (define-public sdcc (package (name "sdcc") - (version "4.3.0") + (version "4.4.0") (source (origin (method url-fetch) (uri (string-append @@ -1645,7 +1645,7 @@ (define-public sdcc "/" version "/sdcc-src-" version ".tar.bz2")) (sha256 (base32 - "1kckr20jqa4rp4qcw38lwagmw3yfm3z0xb4kygd0608847qc0vra")) + "0xbaj3vx5cp3na1kmyhy4jvhcqwrg648scjbykgq0xmibqb1535f")) (modules '((guix build utils))) (snippet #~(begin diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch index 7602ead9af..6dcfbee1ab 100644 --- a/gnu/packages/patches/sdcc-disable-non-free-code.patch +++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch @@ -15,10 +15,10 @@ remove instructions that encourage the use of SDCC with non-free software. diff --git a/Makefile.common.in b/Makefile.common.in -index 9cd116c..6bbe9fb 100644 +index 8469079..174ed91 100644 --- a/Makefile.common.in +++ b/Makefile.common.in -@@ -77,7 +77,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@ +@@ -78,7 +78,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@ OPT_DISABLE_SDBINUTILS = @OPT_DISABLE_SDBINUTILS@ OPT_DISABLE_SDCPP = @OPT_DISABLE_SDCPP@ OPT_DISABLE_UCSIM = @OPT_DISABLE_UCSIM@ @@ -27,10 +27,10 @@ index 9cd116c..6bbe9fb 100644 SLIB = $(top_builddir)/support/util diff --git a/Makefile.in b/Makefile.in -index 6d035ec..12f1fad 100644 +index 3287e30..69511e1 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -105,9 +105,6 @@ endif +@@ -104,9 +104,6 @@ endif ifeq ($(OPT_DISABLE_DEVICE_LIB), 0) TARGETS += sdcc-device-lib PKGS += device/lib @@ -40,7 +40,7 @@ index 6d035ec..12f1fad 100644 endif ifeq ($(OPT_DISABLE_PACKIHX), 0) -@@ -128,9 +125,6 @@ endif +@@ -127,9 +124,6 @@ endif TARGETS += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts PKGS += $(SDCC_LIBS) src device/include @@ -50,7 +50,7 @@ index 6d035ec..12f1fad 100644 PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS) PORTS = $(shell cat ports.build) -@@ -168,21 +162,12 @@ sdcc-sdbinutils: +@@ -167,21 +161,12 @@ sdcc-sdbinutils: sdcc-device-inc: $(MAKE) -C device/include @@ -73,7 +73,7 @@ index 6d035ec..12f1fad 100644 # doc depends on latex and latex2html diff --git a/configure b/configure -index 9de81c6..2620e3c 100755 +index b509c84..c7ce7fc 100755 --- a/configure +++ b/configure @@ -659,7 +659,6 @@ LATEX @@ -84,7 +84,7 @@ index 9de81c6..2620e3c 100755 OPT_DISABLE_SDBINUTILS OPT_DISABLE_SDCDB OPT_DISABLE_SDCPP -@@ -692,10 +691,7 @@ OPT_DISABLE_Z80 +@@ -693,10 +692,7 @@ OPT_DISABLE_Z80 OPT_DISABLE_MCS51 SVN_REVISION GIT_REVISION @@ -95,7 +95,7 @@ index 9de81c6..2620e3c 100755 include_dir_suffix inclib_dir_suffix LIB_TYPE -@@ -824,7 +820,6 @@ enable_packihx +@@ -828,7 +824,6 @@ enable_packihx enable_sdcpp enable_sdcdb enable_sdbinutils @@ -103,7 +103,7 @@ index 9de81c6..2620e3c 100755 enable_doc enable_libgc ' -@@ -845,10 +840,7 @@ sdccconf_h_dir_separator +@@ -849,10 +844,7 @@ sdccconf_h_dir_separator LIB_TYPE inclib_dir_suffix include_dir_suffix @@ -114,7 +114,7 @@ index 9de81c6..2620e3c 100755 docdir' ac_subdirs_all='support/cpp support/packihx -@@ -856,9 +848,7 @@ sim/ucsim +@@ -860,9 +852,7 @@ sim/ucsim debugger/mcs51 support/sdbinutils device/lib/pic14 @@ -125,7 +125,7 @@ index 9de81c6..2620e3c 100755 # Initialize some variables set by options. ac_init_help= -@@ -1512,7 +1502,6 @@ Optional Features: +@@ -1517,7 +1507,6 @@ Optional Features: --disable-sdcpp Disables building sdcpp --disable-sdcdb Disables building sdcdb --disable-sdbinutils Disables configuring and building of sdbinutils @@ -133,7 +133,7 @@ index 9de81c6..2620e3c 100755 --enable-doc Enables building the documentation --enable-libgc Use the Bohem memory allocator. Lower runtime footprint. -@@ -1541,16 +1530,8 @@ Some influential environment variables: +@@ -1551,16 +1540,8 @@ Some influential environment variables: appended to datadir to define SDCC's include/lib directory include_dir_suffix appended to datadir to define SDCC's include directory @@ -150,7 +150,7 @@ index 9de81c6..2620e3c 100755 docdir documentation installation directory Use these variables to override the choices made by `configure' or to help -@@ -7426,19 +7407,6 @@ if test "${include_dir_suffix}" = ""; then +@@ -7869,19 +7850,6 @@ if test "${include_dir_suffix}" = ""; then include_dir_suffix="${inclib_dir_suffix}/include" fi @@ -170,7 +170,7 @@ index 9de81c6..2620e3c 100755 # lib_dir_suffix: # *nix default: "sdcc/lib" -@@ -7446,13 +7414,6 @@ if test "${lib_dir_suffix}" = ""; then +@@ -7889,13 +7857,6 @@ if test "${lib_dir_suffix}" = ""; then lib_dir_suffix="${inclib_dir_suffix}/lib" fi @@ -184,7 +184,7 @@ index 9de81c6..2620e3c 100755 # docdir: # *nix default: "${datadir}/sdcc/doc" -@@ -7605,22 +7566,6 @@ esac +@@ -8048,22 +8009,6 @@ esac printf "%s\n" "#define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_inc_dir_suffix}\"" >>confdefs.h @@ -207,7 +207,7 @@ index 9de81c6..2620e3c 100755 norm_lib_dir_suffix=${lib_dir_suffix} case ":$norm_lib_dir_suffix:" in -@@ -7638,22 +7583,6 @@ esac +@@ -8081,22 +8026,6 @@ esac printf "%s\n" "#define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_lib_dir_suffix}\"" >>confdefs.h @@ -230,7 +230,7 @@ index 9de81c6..2620e3c 100755 # relative paths for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do -@@ -8769,27 +8698,6 @@ printf "%s\n" "#define OPT_DISABLE_SDBINUTILS $OPT_DISABLE_SDBINUTILS" >>confdef +@@ -9237,27 +9166,6 @@ printf "%s\n" "#define OPT_DISABLE_SDBINUTILS $OPT_DISABLE_SDBINUTILS" >>confdef @@ -258,7 +258,7 @@ index 9de81c6..2620e3c 100755 # Check whether --enable-doc was given. if test ${enable_doc+y} -@@ -9217,20 +9125,12 @@ if test $OPT_DISABLE_PIC14 = 0; then +@@ -9685,20 +9593,12 @@ if test $OPT_DISABLE_PIC14 = 0; then test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14" @@ -278,8 +278,8 @@ index 9de81c6..2620e3c 100755 - fi - if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then -@@ -9307,8 +9207,6 @@ fi + if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0 || test $OPT_DISABLE_R800 = 0; then +@@ -9775,8 +9675,6 @@ fi test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile" @@ -288,7 +288,7 @@ index 9de81c6..2620e3c 100755 ac_config_files="$ac_config_files main.mk:main_in.mk bin/Makefile src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/regression/cases/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in" -@@ -9324,10 +9222,6 @@ ac_config_files="$ac_config_files bin/sdranlib" +@@ -9792,10 +9690,6 @@ ac_config_files="$ac_config_files bin/sdranlib" ac_config_files="$ac_config_files bin/sdobjcopy" @@ -299,7 +299,7 @@ index 9de81c6..2620e3c 100755 cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure -@@ -10068,7 +9962,6 @@ do +@@ -10538,7 +10432,6 @@ do "device/lib/pdk15-stack-auto/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/pdk15-stack-auto/Makefile" ;; "sdas/aspdk16/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/aspdk16/Makefile" ;; "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;; @@ -307,7 +307,7 @@ index 9de81c6..2620e3c 100755 "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;; "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; -@@ -10088,7 +9981,6 @@ do +@@ -10558,7 +10451,6 @@ do "bin/sdnm") CONFIG_FILES="$CONFIG_FILES bin/sdnm" ;; "bin/sdranlib") CONFIG_FILES="$CONFIG_FILES bin/sdranlib" ;; "bin/sdobjcopy") CONFIG_FILES="$CONFIG_FILES bin/sdobjcopy" ;; @@ -315,7 +315,7 @@ index 9de81c6..2620e3c 100755 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac -@@ -10905,54 +10797,6 @@ esac +@@ -11375,54 +11267,6 @@ esac incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'` @@ -370,7 +370,7 @@ index 9de81c6..2620e3c 100755 libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'` case ":$libPath1:" in -@@ -11002,54 +10846,6 @@ esac +@@ -11472,54 +11316,6 @@ esac libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'` @@ -425,7 +425,7 @@ index 9de81c6..2620e3c 100755 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: sdcc ${VERSION} is now configured for -@@ -11091,7 +10887,6 @@ sdcc ${VERSION} is now configured for +@@ -11562,7 +11358,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -433,7 +433,7 @@ index 9de81c6..2620e3c 100755 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -11106,9 +10901,6 @@ sdcc ${VERSION} is now configured for +@@ -11577,9 +11372,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -443,7 +443,7 @@ index 9de81c6..2620e3c 100755 documentation: ${docdir} prefix: ${prefix} -@@ -11120,15 +10912,9 @@ sdcc ${VERSION} is now configured for +@@ -11591,15 +11383,9 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[0])${incPath2} ${incPath3} @@ -459,7 +459,7 @@ index 9de81c6..2620e3c 100755 " >&5 printf "%s\n" " sdcc ${VERSION} is now configured for -@@ -11171,7 +10957,6 @@ sdcc ${VERSION} is now configured for +@@ -11643,7 +11429,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -467,7 +467,7 @@ index 9de81c6..2620e3c 100755 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -11186,9 +10971,6 @@ sdcc ${VERSION} is now configured for +@@ -11658,9 +11443,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -477,7 +477,7 @@ index 9de81c6..2620e3c 100755 documentation: ${docdir} prefix: ${prefix} -@@ -11200,15 +10982,9 @@ sdcc ${VERSION} is now configured for +@@ -11672,15 +11454,9 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[0])${incPath2} ${incPath3} @@ -494,10 +494,10 @@ index 9de81c6..2620e3c 100755 # End of configure/configure.in diff --git a/configure.ac b/configure.ac -index ead779c..a3578fe 100644 +index adf5060..bd5a036 100644 --- a/configure.ac +++ b/configure.ac -@@ -564,19 +564,6 @@ if test "${include_dir_suffix}" = ""; then +@@ -542,19 +542,6 @@ if test "${include_dir_suffix}" = ""; then include_dir_suffix="${inclib_dir_suffix}/include" fi @@ -517,7 +517,7 @@ index ead779c..a3578fe 100644 # lib_dir_suffix: # *nix default: "sdcc/lib" AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory]) -@@ -584,13 +571,6 @@ if test "${lib_dir_suffix}" = ""; then +@@ -562,13 +549,6 @@ if test "${lib_dir_suffix}" = ""; then lib_dir_suffix="${inclib_dir_suffix}/lib" fi @@ -531,7 +531,7 @@ index ead779c..a3578fe 100644 # docdir: # *nix default: "${datadir}/sdcc/doc" AC_ARG_VAR([docdir], [documentation installation directory]) -@@ -631,19 +611,11 @@ norm_inc_dir_suffix=${include_dir_suffix} +@@ -609,19 +589,11 @@ norm_inc_dir_suffix=${include_dir_suffix} adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator]) AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX, DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX]) @@ -551,7 +551,7 @@ index ead779c..a3578fe 100644 # relative paths adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir]) -@@ -836,7 +808,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx]) +@@ -815,7 +787,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx]) AC_DO_DISABLER(sdcpp, SDCPP, [Disables building sdcpp]) AC_DO_DISABLER(sdcdb, SDCDB, [Disables building sdcdb]) AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils]) @@ -559,7 +559,7 @@ index ead779c..a3578fe 100644 AC_DO_ENABLER(doc, DOC, [Enables building the documentation]) AC_CHECK_PROG([LYX], [lyx], [lyx], [:]) -@@ -915,16 +886,10 @@ if test $OPT_DISABLE_PIC14 = 0; then +@@ -895,16 +866,10 @@ if test $OPT_DISABLE_PIC14 = 0; then AC_CONFIG_FILES(src/pic14/Makefile) test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14) fi @@ -574,9 +574,9 @@ index ead779c..a3578fe 100644 - test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic16) -fi - if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then + if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0 || test $OPT_DISABLE_R800 = 0; then AC_CONFIG_FILES([src/z80/Makefile]) -@@ -988,7 +953,6 @@ fi +@@ -969,7 +934,6 @@ fi test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile]) @@ -584,7 +584,7 @@ index ead779c..a3578fe 100644 AC_CONFIG_FILES([main.mk:main_in.mk bin/Makefile -@@ -1010,9 +974,6 @@ AC_CONFIG_FILES([bin/sdar], [chmod +x bin/sdar]) +@@ -991,9 +955,6 @@ AC_CONFIG_FILES([bin/sdar], [chmod +x bin/sdar]) AC_CONFIG_FILES([bin/sdnm], [chmod +x bin/sdnm]) AC_CONFIG_FILES([bin/sdranlib], [chmod +x bin/sdranlib]) AC_CONFIG_FILES([bin/sdobjcopy], [chmod +x bin/sdobjcopy]) @@ -594,7 +594,7 @@ index ead779c..a3578fe 100644 AC_OUTPUT # I found no better place -@@ -1030,16 +991,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [ +@@ -1011,16 +972,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [ adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch]) adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix}, [incPath2], [$dirch]) adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch]) @@ -611,7 +611,7 @@ index ead779c..a3578fe 100644 AC_MSG_RESULT([ sdcc ${VERSION} is now configured for -@@ -1082,7 +1037,6 @@ sdcc ${VERSION} is now configured for +@@ -1064,7 +1019,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -619,7 +619,7 @@ index ead779c..a3578fe 100644 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -1097,9 +1051,6 @@ sdcc ${VERSION} is now configured for +@@ -1079,9 +1033,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -629,7 +629,7 @@ index ead779c..a3578fe 100644 documentation: ${docdir} prefix: ${prefix} -@@ -1111,14 +1062,8 @@ sdcc ${VERSION} is now configured for +@@ -1093,14 +1044,8 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[[0]])${incPath2} ${incPath3} @@ -1003,7 +1003,7 @@ index db0d421..9e90d7a 100644 .SUFFIXES: diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in -index ae76fdd..75fc04a 100644 +index 74147d2..bed548b 100644 --- a/device/lib/pic16/libc/Makefile.in +++ b/device/lib/pic16/libc/Makefile.in @@ -88,10 +88,7 @@ PRE_UNINSTALL = : @@ -1018,7 +1018,7 @@ index ae76fdd..75fc04a 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -383,8 +380,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \ +@@ -384,8 +381,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \ string/strpbrk.c string/strrchr.c string/strspn.c \ string/strstr.c string/strtok.c string/strupr.c \ utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S @@ -1028,7 +1028,7 @@ index ae76fdd..75fc04a 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -398,11 +394,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -399,11 +395,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1248,7 +1248,7 @@ index 5c2fce7..8d70807 100644 .SUFFIXES: diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt -index 3711c71..9e500a2 100644 +index 8dfadb6..dd17528 100644 --- a/doc/INSTALL.txt +++ b/doc/INSTALL.txt @@ -18,9 +18,7 @@ To install: @@ -1282,7 +1282,7 @@ index 3711c71..9e500a2 100644 You can test the install by entering: diff --git a/doc/README.txt b/doc/README.txt -index cd1ef3f..5a0d0a8 100644 +index e62177b..4d09afb 100644 --- a/doc/README.txt +++ b/doc/README.txt @@ -37,10 +37,9 @@ Exception are pic device libraries and header files which are derived @@ -1300,10 +1300,10 @@ index cd1ef3f..5a0d0a8 100644 However: Many think that the Microchip requirement is not legally enforceable, arguing that the header files only contain noncopyrightable facts. diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx -index a57bf15..d6f30c7 100644 +index efaf738..0ad1ba7 100644 --- a/doc/sdccman.lyx +++ b/doc/sdccman.lyx -@@ -1150,54 +1150,9 @@ A possible exception are pic device libraries and header files which are +@@ -1151,54 +1151,9 @@ A possible exception are pic device libraries and header files which are to be used with authentic Microchip devices" which makes them incompatible with the GPL, if Microchip has any copyright in them (which might depend on local copyright laws). @@ -1361,7 +1361,7 @@ index a57bf15..d6f30c7 100644 \end_layout \begin_layout Itemize -@@ -1260,23 +1215,6 @@ makebin: +@@ -1261,23 +1216,6 @@ makebin: zlib/libpng License \end_layout @@ -1385,7 +1385,7 @@ index a57bf15..d6f30c7 100644 \end_deeper \begin_layout Itemize libraries: -@@ -3062,18 +3000,6 @@ include_dir_suffix environment variable, see table below +@@ -3194,18 +3132,6 @@ include_dir_suffix environment variable, see table below \end_inset @@ -1404,7 +1404,7 @@ index a57bf15..d6f30c7 100644 \begin_inset space ~ \end_inset -@@ -3086,22 +3012,6 @@ lib_dir_suffix environment variable, see table below +@@ -3218,22 +3144,6 @@ lib_dir_suffix environment variable, see table below \end_inset @@ -1427,7 +1427,7 @@ index a57bf15..d6f30c7 100644 \begin_inset space ~ \end_inset -@@ -3600,7 +3510,7 @@ These defaults are: +@@ -3876,7 +3786,7 @@ These defaults are: \begin_layout Standard \align center \begin_inset Tabular @@ -1436,7 +1436,7 @@ index a57bf15..d6f30c7 100644 -@@ -3884,68 +3794,6 @@ sdcc/include +@@ -4160,68 +4070,6 @@ sdcc/include include \end_layout @@ -1505,7 +1505,7 @@ index a57bf15..d6f30c7 100644 \end_inset -@@ -3956,7 +3804,7 @@ lib +@@ -4232,7 +4080,7 @@ lib \begin_layout Plain Layout \emph on @@ -1514,7 +1514,7 @@ index a57bf15..d6f30c7 100644 \end_layout \end_inset -@@ -3965,7 +3813,7 @@ NON_FREE_LIB_DIR_SUFFIX +@@ -4241,7 +4089,7 @@ NON_FREE_LIB_DIR_SUFFIX \begin_inset Text \begin_layout Plain Layout @@ -1523,7 +1523,7 @@ index a57bf15..d6f30c7 100644 \end_layout \end_inset -@@ -3974,7 +3822,7 @@ sdcc/non-free/lib +@@ -4250,7 +4098,7 @@ sdcc/non-free/lib \begin_inset Text \begin_layout Plain Layout @@ -1532,7 +1532,7 @@ index a57bf15..d6f30c7 100644 \end_layout \end_inset -@@ -4373,20 +4221,6 @@ include +@@ -4649,20 +4497,6 @@ include \end_inset @@ -1553,7 +1553,7 @@ index a57bf15..d6f30c7 100644 \backslash \begin_inset Newline newline -@@ -4401,20 +4235,6 @@ lib +@@ -4677,20 +4511,6 @@ lib \end_inset @@ -1574,7 +1574,7 @@ index a57bf15..d6f30c7 100644 \backslash \begin_inset Newline newline -@@ -4595,20 +4415,6 @@ include +@@ -4871,20 +4691,6 @@ include \end_inset @@ -1595,7 +1595,7 @@ index a57bf15..d6f30c7 100644 \backslash \begin_inset Newline newline -@@ -4623,20 +4429,6 @@ lib +@@ -4899,20 +4705,6 @@ lib \end_inset @@ -1616,7 +1616,7 @@ index a57bf15..d6f30c7 100644 \backslash \begin_inset Newline newline -@@ -4733,7 +4525,7 @@ Install paths +@@ -5009,7 +4801,7 @@ Install paths \begin_layout Standard \align center \begin_inset Tabular @@ -1625,7 +1625,7 @@ index a57bf15..d6f30c7 100644 -@@ -4889,64 +4681,6 @@ include +@@ -5165,64 +4957,6 @@ include \begin_inset Text @@ -1690,7 +1690,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Plain Layout Library file** \end_layout -@@ -4996,64 +4730,6 @@ sdcc +@@ -5272,64 +5006,6 @@ sdcc lib \end_layout @@ -1755,7 +1755,7 @@ index a57bf15..d6f30c7 100644 \end_inset -@@ -5376,7 +5052,7 @@ $PATH +@@ -5652,7 +5328,7 @@ $PATH \begin_layout Standard \align center \begin_inset Tabular @@ -1764,7 +1764,7 @@ index a57bf15..d6f30c7 100644 -@@ -5654,203 +5330,13 @@ include +@@ -5930,203 +5606,13 @@ include @@ -1969,7 +1969,7 @@ index a57bf15..d6f30c7 100644 \end_inset -@@ -5866,21 +5352,13 @@ $DATADIR/ +@@ -6142,21 +5628,13 @@ $DATADIR/ \end_inset @@ -1992,7 +1992,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Text \begin_layout Plain Layout -@@ -5888,7 +5366,7 @@ $INCLUDE_DIR_SUFFIX +@@ -6164,7 +5642,7 @@ $INCLUDE_DIR_SUFFIX \begin_inset Newline newline \end_inset @@ -2001,7 +2001,7 @@ index a57bf15..d6f30c7 100644 \end_layout \end_inset -@@ -5986,7 +5464,7 @@ model +@@ -6262,7 +5740,7 @@ model \begin_layout Standard \align center \begin_inset Tabular @@ -2010,7 +2010,7 @@ index a57bf15..d6f30c7 100644 -@@ -6266,7 +5744,7 @@ lib +@@ -6542,7 +6020,7 @@ lib @@ -2019,7 +2019,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6275,7 +5753,7 @@ lib +@@ -6551,7 +6029,7 @@ lib \end_inset @@ -2028,7 +2028,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6306,7 +5784,7 @@ $LIB_DIR_SUFFIX/ +@@ -6582,7 +6060,7 @@ $LIB_DIR_SUFFIX/ \end_inset @@ -2037,7 +2037,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6321,7 +5799,7 @@ lib/ +@@ -6597,7 +6075,7 @@ lib/ \end_inset @@ -2046,7 +2046,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6344,308 +5822,6 @@ lib +@@ -6620,308 +6098,6 @@ lib \end_layout @@ -2355,7 +2355,7 @@ index a57bf15..d6f30c7 100644 \end_inset -@@ -8923,14 +8099,6 @@ In /share/sdcc/include +@@ -9201,14 +8377,6 @@ In /share/sdcc/include the include files \end_layout @@ -2370,7 +2370,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Standard In /share/sdcc/lib \end_layout -@@ -8939,14 +8107,6 @@ In /share/sdcc/lib +@@ -9217,14 +8385,6 @@ In /share/sdcc/lib the src and target subdirectories with the precompiled relocatables. \end_layout @@ -2385,7 +2385,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Standard In /share/sdcc/doc \end_layout -@@ -16096,66 +15256,6 @@ splint +@@ -16452,66 +15612,6 @@ splint myprogram.c \end_layout @@ -2452,7 +2452,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Subsection Linker Options \begin_inset Index idx -@@ -45880,66 +44980,9 @@ http://sourceforge.net/projects/gputils +@@ -46758,66 +45858,9 @@ http://sourceforge.net/projects/gputils Pic device specific header and c source files are automatically generated from MPLAB include files, which are published by Microchip with a special requirement that they are only to be used with authentic Microchip devices. @@ -2522,7 +2522,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Newline newline \end_inset -@@ -45993,7 +45036,7 @@ Makefile +@@ -46871,7 +45914,7 @@ Makefile \begin_inset space ~ \end_inset @@ -2531,7 +2531,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Newline newline \end_inset -@@ -46087,7 +45130,7 @@ Makefile +@@ -46965,7 +46008,7 @@ Makefile \begin_inset space ~ \end_inset @@ -2540,7 +2540,7 @@ index a57bf15..d6f30c7 100644 \begin_inset Newline newline \end_inset -@@ -46369,47 +45412,6 @@ status collapsed +@@ -47247,47 +46290,6 @@ status collapsed \begin_layout Plain Layout @@ -2588,7 +2588,7 @@ index a57bf15..d6f30c7 100644 \backslash / \end_layout -@@ -47282,47 +46284,6 @@ status collapsed +@@ -48160,47 +47162,6 @@ status collapsed -all-callee-saves \end_layout @@ -2636,7 +2636,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Subsection Port Specific Options \begin_inset Index idx -@@ -48599,188 +47560,6 @@ Linker +@@ -49477,188 +48438,6 @@ Linker \end_inset @@ -2825,7 +2825,7 @@ index a57bf15..d6f30c7 100644 \end_layout \begin_layout Subsection -@@ -49476,66 +48255,9 @@ name "subsec:PIC16_Header-Files-and-Libraries" +@@ -50354,66 +49133,9 @@ name "subsec:PIC16_Header-Files-and-Libraries" Pic device specific header and c source files are automatically generated from MPLAB include files, which are published by Microchip with a special requirement that they are only to be used with authentic Microchip devices. @@ -2895,7 +2895,7 @@ index a57bf15..d6f30c7 100644 \end_layout \begin_layout Subsection -@@ -49781,195 +48503,6 @@ vfprintf.c +@@ -50659,195 +49381,6 @@ vfprintf.c should also work, but is untested. \end_layout @@ -3091,7 +3091,7 @@ index a57bf15..d6f30c7 100644 \begin_layout Subsection Memory Models \end_layout -@@ -74714,6 +73247,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC +@@ -75717,6 +74250,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC developers. \end_layout @@ -3105,7 +3105,7 @@ index a57bf15..d6f30c7 100644 All product names mentioned herein may be trademarks \begin_inset Index idx diff --git a/sdcc.spec b/sdcc.spec -index b784cbc..f180b51 100644 +index ccb3217..292b642 100644 --- a/sdcc.spec +++ b/sdcc.spec @@ -89,9 +89,7 @@ rm -rf $RPM_BUILD_ROOT @@ -3118,7 +3118,7 @@ index b784cbc..f180b51 100644 %files doc %defattr(-,root,root) -@@ -102,6 +100,8 @@ rm -rf $RPM_BUILD_ROOT +@@ -104,6 +102,8 @@ rm -rf $RPM_BUILD_ROOT - version updated to 4.2.0 * Sat Feb 20 2021 - pkk AT spth.de - version updated to 4.0.0 @@ -3141,7 +3141,7 @@ index 8cf401b..19f5113 100644 #define BIN2DATA_DIR "\\.." #define PREFIX2BIN_DIR "\\bin" diff --git a/sdccconf_in.h b/sdccconf_in.h -index ca8d69f..980af8d 100644 +index 9e6e3c7..8681ceb 100644 --- a/sdccconf_in.h +++ b/sdccconf_in.h @@ -100,12 +100,6 @@ @@ -3168,10 +3168,10 @@ index ca8d69f..980af8d 100644 #undef OPT_DISABLE_PACKIHX diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h -index 87981f4..e2701f2 100644 +index 9f0e52a..02a5fb8 100644 --- a/src/SDCCglobl.h +++ b/src/SDCCglobl.h -@@ -287,7 +287,6 @@ struct options +@@ -290,7 +290,6 @@ struct options int stack_size; /* MCS51/DS390 - Tells the linker to allocate this space for stack */ int acall_ajmp; /* MCS51 - Use acall/ajmp instead of lcall/ljmp */ int no_ret_without_call; /* MCS51 - Do not use ret independent of acall/lcall */ @@ -3180,7 +3180,7 @@ index 87981f4..e2701f2 100644 int xstack_loc; /* initial location of external stack */ int stack_loc; /* initial value of internal stack pointer */ diff --git a/src/SDCCmain.c b/src/SDCCmain.c -index 6b50572..089c42f 100644 +index e7e8bd6..3b25061 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c @@ -143,7 +143,6 @@ char buffer[PATH_MAX * 2]; @@ -3191,15 +3191,15 @@ index 6b50572..089c42f 100644 #define OPTION_PEEP_RETURN "--peep-return" #define OPTION_NO_PEEP_RETURN "--no-peep-return" #define OPTION_NO_OPTSDCC_IN_ASM "--no-optsdcc-in-asm" -@@ -193,7 +192,6 @@ static const OPTION optionsTable[] = { - {0, OPTION_STD, NULL, "Determine the language standard (c89, c99, c11, c2x, sdcc89 etc.)"}, +@@ -195,7 +194,6 @@ static const OPTION optionsTable[] = { + {0, OPTION_STD, NULL, "Determine the language standard (c89, c99, c11, c23, sdcc89 etc.)"}, {0, OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"}, {0, OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"}, - {0, OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"}, {0, NULL, NULL, "Code generation options"}, {'m', NULL, NULL, "Set the port to use e.g. -mz80."}, -@@ -2207,10 +2205,6 @@ preProcess (char **envp) +@@ -2231,10 +2229,6 @@ preProcess (char **envp) else addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED")); @@ -3210,7 +3210,7 @@ index 6b50572..089c42f 100644 /* set the macro for large model */ switch (options.model) { -@@ -2454,12 +2448,6 @@ setIncludePath (void) +@@ -2478,12 +2472,6 @@ setIncludePath (void) * 6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX * 7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX * 8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix) @@ -3223,7 +3223,7 @@ index 6b50572..089c42f 100644 */ if (!options.nostdinc) -@@ -2475,17 +2463,6 @@ setIncludePath (void) +@@ -2499,17 +2487,6 @@ setIncludePath (void) includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL); mergeSets (&includeDirsSet, tempSet); @@ -3241,7 +3241,7 @@ index 6b50572..089c42f 100644 if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL) { struct dbuf_s dbuf; -@@ -2510,9 +2487,6 @@ setLibPath (void) +@@ -2534,9 +2511,6 @@ setLibPath (void) * 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/ * 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/ * 5. - DATADIR/LIB_DIR_SUFFIX/ (only on *nix) @@ -3251,7 +3251,7 @@ index 6b50572..089c42f 100644 */ if (!options.nostdlib) -@@ -2529,13 +2503,6 @@ setLibPath (void) +@@ -2553,13 +2527,6 @@ setLibPath (void) dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname); libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL); @@ -3266,7 +3266,7 @@ index 6b50572..089c42f 100644 { addSetHead (&libDirsSet, Safe_strdup (p)); diff --git a/src/pic14/main.c b/src/pic14/main.c -index ab4bcdf..1747fd6 100644 +index 304c79b..9cbb9e8 100644 --- a/src/pic14/main.c +++ b/src/pic14/main.c @@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] = @@ -3319,7 +3319,7 @@ index 41a1b79..9c642e3 100644 extern pic16_options_t pic16_options; diff --git a/src/pic16/main.c b/src/pic16/main.c -index 8809e2c..53c700e 100644 +index 9557a10..d650e66 100644 --- a/src/pic16/main.c +++ b/src/pic16/main.c @@ -660,7 +660,6 @@ OPTION pic16_optionsTable[]= { @@ -3404,10 +3404,10 @@ index b0b0867..2d5cdd3 100644 OBJEXT = .o diff --git a/support/regression/ports/pic16/spec.mk b/support/regression/ports/pic16/spec.mk -index 541608a..6e7238f 100644 +index 15b4028..3b79cfe 100644 --- a/support/regression/ports/pic16/spec.mk +++ b/support/regression/ports/pic16/spec.mk -@@ -12,13 +12,9 @@ endif +@@ -16,13 +16,9 @@ EMU_INPUT = -c $(PORTS_DIR)/pic16/gpsim.cmd ifndef SDCC_BIN_PATH ifndef CROSSCOMPILING @@ -3423,7 +3423,7 @@ index 541608a..6e7238f 100644 endif ifdef CROSSCOMPILING -@@ -27,7 +23,6 @@ endif +@@ -31,7 +27,6 @@ endif SDCCFLAGS += -mpic16 -pp18f452 --less-pedantic -Wl,-q SDCCFLAGS += --no-peep @@ -3541,10 +3541,10 @@ index 6db417a..4b35225 100755 ); diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi -index 8309df1..c0cc223 100644 +index 37393d7..997b2fe 100644 --- a/support/scripts/sdcc.nsi +++ b/support/scripts/sdcc.nsi -@@ -491,11 +491,6 @@ ${Section} "SDCC include files" SEC05 +@@ -487,11 +487,6 @@ ${Section} "SDCC include files" SEC05 SetOutPath "$INSTDIR\include" File "${DEV_ROOT}\include\*.h" @@ -3556,7 +3556,7 @@ index 8309df1..c0cc223 100644 ${SectionEnd} ${Section} "SDCC DS390 library" SEC06 -@@ -593,18 +588,12 @@ ${Section} "SDCC PIC16 library" SEC21 +@@ -589,18 +584,12 @@ ${Section} "SDCC PIC16 library" SEC21 SetOutPath "$INSTDIR\lib\pic16" File "${DEV_ROOT}\lib\pic16\*.o" File "${DEV_ROOT}\lib\pic16\*.lib" @@ -3575,7 +3575,7 @@ index 8309df1..c0cc223 100644 ${SectionEnd} ${Section} "SDCC STM8 medium model library" SEC23 -@@ -713,10 +702,6 @@ ${Section} "SDCC library sources" SEC25 +@@ -709,10 +698,6 @@ ${Section} "SDCC library sources" SEC25 File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc" # File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile" @@ -3586,7 +3586,7 @@ index 8309df1..c0cc223 100644 SetOutPath "$INSTDIR\lib\src\pic14\libm" # File "${DEV_ROOT}\lib\src\pic14\libm\*.c" -@@ -768,10 +753,6 @@ ${Section} "SDCC library sources" SEC25 +@@ -764,10 +749,6 @@ ${Section} "SDCC library sources" SEC25 File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S" # File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile" @@ -3597,7 +3597,7 @@ index 8309df1..c0cc223 100644 SetOutPath "$INSTDIR\lib\src\pic16\libio" File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore" # File "${DEV_ROOT}\lib\src\pic16\libio\Makefile" -@@ -1137,13 +1118,9 @@ ${Section} Uninstall SECUNINSTALL +@@ -1169,13 +1150,9 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\lib\pic14\*.lib" @@ -3611,7 +3611,7 @@ index 8309df1..c0cc223 100644 Delete "$INSTDIR\lib\hc08\*.lib" Delete "$INSTDIR\lib\s08\*.lib" -@@ -1219,9 +1196,7 @@ ${Section} Uninstall SECUNINSTALL +@@ -1259,9 +1236,7 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\include\pic14\*.h" Delete "$INSTDIR\include\pic14\*.txt" Delete "$INSTDIR\include\pic14\*.inc" @@ -3621,7 +3621,7 @@ index 8309df1..c0cc223 100644 Delete "$INSTDIR\include\pic16\*.txt" Delete "$INSTDIR\include\mcs51\*.h" Delete "$INSTDIR\include\hc08\*.h" -@@ -1298,9 +1273,7 @@ ${Section} Uninstall SECUNINSTALL +@@ -1334,9 +1309,7 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\uninstall.exe" RMDir /r "$INSTDIR\lib\src\pic14" @@ -3631,9 +3631,9 @@ index 8309df1..c0cc223 100644 RMDir "$INSTDIR\lib\src\small" RMDir "$INSTDIR\lib\src\medium" RMDir "$INSTDIR\lib\src\large" -@@ -1328,12 +1301,9 @@ ${Section} Uninstall SECUNINSTALL - RMDir "$INSTDIR\lib\src\mos6502" - RMDir "$INSTDIR\lib\src\z80n" +@@ -1367,12 +1340,9 @@ ${Section} Uninstall SECUNINSTALL + RMDir "$INSTDIR\lib\src\mos65c02" + RMDir "$INSTDIR\lib\src\s08-stack-auto" RMDir "$INSTDIR\lib\src" - RMDir "$INSTDIR\non-free\lib\src" @@ -3644,9 +3644,9 @@ index 8309df1..c0cc223 100644 RMDir "$INSTDIR\lib\z80" RMDir "$INSTDIR\lib\z180" RMDir "$INSTDIR\lib\r2k" -@@ -1361,15 +1331,12 @@ ${Section} Uninstall SECUNINSTALL - RMDir "$INSTDIR\lib\mos6502" - RMDir "$INSTDIR\lib\z80n" +@@ -1403,15 +1373,12 @@ ${Section} Uninstall SECUNINSTALL + RMDir "$INSTDIR\lib\mos65c02" + RMDir "$INSTDIR\lib\s08-stack-auto" RMDir "$INSTDIR\lib" - RMDir "$INSTDIR\non-free\lib" @@ -3660,7 +3660,7 @@ index 8309df1..c0cc223 100644 RMDir "$INSTDIR\include\asm\mcs51" RMDir "$INSTDIR\include\asm\sm83" RMDir "$INSTDIR\include\asm\ds390" -@@ -1378,17 +1345,12 @@ ${Section} Uninstall SECUNINSTALL +@@ -1420,17 +1387,12 @@ ${Section} Uninstall SECUNINSTALL RMDir "$INSTDIR\include\asm" RMDir "$INSTDIR\include\z180" RMDir "$INSTDIR\include\pic14" -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public fail2ban 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 v1.2.3 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/packages/patches') 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 @@ (define-public r-sgloptim (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 v1.2.3 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/packages/patches') 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 @@ (define-public cage (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 @@ (define-public fnott 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 @@ (define-public dwl (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 @@ (define-public polybar (define-public wlroots (package (name "wlroots") - (version "0.16.2") + (version "0.17.1") (source (origin (method git-fetch) @@ -1685,7 +1686,9 @@ (define-public wlroots (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 @@ (define-public wlroots (propagated-inputs (list ;; As required by wlroots.pc. eudev + libdisplay-info libinput-minimal libxkbcommon mesa @@ -1731,6 +1735,23 @@ (define-public wlroots 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 @@ (define-public sway 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 @@ (define-public cagebreak (("/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 @@ (define-public hikari 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 @@ (define-public river scdoc wayland wayland-protocols - wlroots)) + wlroots-0.16)) (home-page "https://github.com/riverwm/river") (synopsis "Dynamic tiling Wayland compositor") (description -- cgit v1.2.3 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/packages/patches') 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 @@ (define-module (gnu packages crates-io) #: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 @@ (define-module (gnu packages crates-io) #: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 @@ (define-public rust-rfc6979-0.4 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 @@ (define-public rust-ring-0.16 (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 @@ (define-public rust-ring-0.16 (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 v1.2.3 From 04b2a8d2a798169b10004c34fa74631a1a94062f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Dec 2023 10:13:32 +0200 Subject: gnu: maturin: Update to 1.4.0. * gnu/packages/rust-apps.scm (maturin): Update to 1.4.0. [source]: Add snippet to fix compilation. [cargo-inputs]: Add rust-path-slash-0.2. Replace rust-cargo-options-0.6 with 0.7, rust-cargo-metadata-0.16 with 0.18, rust-cbindgen-0.24 with 0.26, rust-dialoguer-0.10 with 0.11, rust-goblin-0.6 with 0.7, rust-indexmap-1 with 2, rust-itertools-0.10 with 0.12, rust-minijinja-0.34 with 1, rust-pyproject-toml-0.6 with 0.8, rust-python-pkginfo-0.5 with 0.6, rust-rustls-0.20 with 0.21, rust-rustls-pemfile-1 with 2, rust-toml-0.7 with 0.8, rust-toml-edit-0.19 with 0.21. Remove rust-same-file-1. [cargo-development-inputs]: Add rust-expect-test-1. Replace rust-which-4 with 5. * gnu/packages/patches/maturin-no-cross-compile.patch: Refresh patch. Change-Id: I1c943ad1a9a3cb315e5baa287f7ba5bc7bc15413 --- .../patches/maturin-no-cross-compile.patch | 20 ++++----- gnu/packages/rust-apps.scm | 51 ++++++++++++---------- 2 files changed, 39 insertions(+), 32 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/maturin-no-cross-compile.patch b/gnu/packages/patches/maturin-no-cross-compile.patch index 7394d0854e..98af33d3c7 100644 --- a/gnu/packages/patches/maturin-no-cross-compile.patch +++ b/gnu/packages/patches/maturin-no-cross-compile.patch @@ -2,27 +2,27 @@ Remove dependencies on xwin and zig. We're not offering cross-compilation options using these crates. diff --git a/Cargo.toml b/Cargo.toml -index 6cbdca3..22ea5ef 100644 +index 6704e46..ff126a9 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -76,16 +76,6 @@ version = "0.1.4" +@@ -83,16 +83,6 @@ version = "0.1.16" [dependencies.cargo-options] - version = "0.6.0" + version = "0.7.2" -[dependencies.cargo-xwin] --version = "0.14.3" +-version = "0.16.2" -optional = true -default-features = false - -[dependencies.cargo-zigbuild] --version = "0.16.10" +-version = "0.18.0" -optional = true -default-features = false - [dependencies.cargo_metadata] - version = "0.15.3" + version = "0.18.0" -@@ -310,8 +300,6 @@ version = "4.3.0" +@@ -321,8 +311,6 @@ version = "5.0.0" [features] cli-completion = ["dep:clap_complete_command"] cross-compile = [ @@ -31,7 +31,7 @@ index 6cbdca3..22ea5ef 100644 ] default = [ "full", -@@ -330,7 +318,6 @@ log = ["tracing-subscriber"] +@@ -341,7 +329,6 @@ log = ["tracing-subscriber"] native-tls = [ "dep:native-tls", "ureq?/native-tls", @@ -39,7 +39,7 @@ index 6cbdca3..22ea5ef 100644 "dep:rustls-pemfile", ] password-storage = [ -@@ -340,7 +327,6 @@ password-storage = [ +@@ -351,7 +338,6 @@ password-storage = [ rustls = [ "dep:rustls", "ureq?/tls", @@ -47,7 +47,7 @@ index 6cbdca3..22ea5ef 100644 "dep:rustls-pemfile", ] scaffolding = [ -@@ -358,5 +344,3 @@ upload = [ +@@ -369,5 +355,3 @@ upload = [ "wild", "dep:dirs", ] diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 4454178624..77e4f24f50 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -1037,15 +1037,21 @@ (define-public macchina (define-public maturin (package (name "maturin") - (version "1.1.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (crate-uri "maturin" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0asdljd396kdsvnx9kbsr5s0x6w73b59kdpx732333dhm13qgn03")) - (patches (search-patches "maturin-no-cross-compile.patch")))) + "1ia5xziazpcpc1wwg8jlz5nmza87cz7nb039gg38jgw3704p4dls")) + (patches (search-patches "maturin-no-cross-compile.patch")) + (snippet + #~(begin (use-modules (guix build utils)) + ;; Remove support for x86_64h-apple-darwin. + ;; This target causes maturin to fail to build. + (substitute* "src/target.rs" + (("\\| Architecture::X86_64h ") "")))))) (build-system cargo-build-system) (arguments `(#:modules ((guix build cargo-build-system) @@ -1073,44 +1079,44 @@ (define-public maturin ("rust-base64" ,rust-base64-0.21) ("rust-bytesize" ,rust-bytesize-1) ("rust-cargo-config2" ,rust-cargo-config2-0.1) - ("rust-cargo-options" ,rust-cargo-options-0.6) - ;("rust-cargo-xwin" ,rust-cargo-xwin-0.14) - ;("rust-cargo-zigbuild" ,rust-cargo-zigbuild-0.16) - ("rust-cargo-metadata" ,rust-cargo-metadata-0.15) - ("rust-cbindgen" ,rust-cbindgen-0.24) + ("rust-cargo-options" ,rust-cargo-options-0.7) + ;("rust-cargo-xwin" ,rust-cargo-xwin-0.16) + ;("rust-cargo-zigbuild" ,rust-cargo-zigbuild-0.18) + ("rust-cargo-metadata" ,rust-cargo-metadata-0.18) + ("rust-cbindgen" ,rust-cbindgen-0.26) ("rust-cc" ,rust-cc-1) ("rust-clap" ,rust-clap-4) ("rust-clap-complete-command" ,rust-clap-complete-command-0.5) ("rust-configparser" ,rust-configparser-3) ("rust-console" ,rust-console-0.15) - ("rust-dialoguer" ,rust-dialoguer-0.10) + ("rust-dialoguer" ,rust-dialoguer-0.11) ("rust-dirs" ,rust-dirs-5) ("rust-dunce" ,rust-dunce-1) ("rust-fat-macho" ,rust-fat-macho-0.4) ("rust-flate2" ,rust-flate2-1) ("rust-fs-err" ,rust-fs-err-2) ("rust-glob" ,rust-glob-0.3) - ("rust-goblin" ,rust-goblin-0.6) + ("rust-goblin" ,rust-goblin-0.7) ("rust-ignore" ,rust-ignore-0.4) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-itertools" ,rust-itertools-0.10) + ("rust-indexmap" ,rust-indexmap-2) + ("rust-itertools" ,rust-itertools-0.12) ("rust-keyring" ,rust-keyring-2) ("rust-lddtree" ,rust-lddtree-0.3) - ("rust-minijinja" ,rust-minijinja-0.34) + ("rust-minijinja" ,rust-minijinja-1) ("rust-multipart" ,rust-multipart-0.18) ("rust-native-tls" ,rust-native-tls-0.2) ("rust-normpath" ,rust-normpath-1) ("rust-once-cell" ,rust-once-cell-1) + ("rust-path-slash" ,rust-path-slash-0.2) ("rust-pep440-rs" ,rust-pep440-rs-0.3) ("rust-pep508-rs" ,rust-pep508-rs-0.2) ("rust-platform-info" ,rust-platform-info-2) - ("rust-pyproject-toml" ,rust-pyproject-toml-0.6) - ("rust-python-pkginfo" ,rust-python-pkginfo-0.5) + ("rust-pyproject-toml" ,rust-pyproject-toml-0.8) + ("rust-python-pkginfo" ,rust-python-pkginfo-0.6) ("rust-regex" ,rust-regex-1) ("rust-rustc-version" ,rust-rustc-version-0.4) - ("rust-rustls" ,rust-rustls-0.20) - ("rust-rustls-pemfile" ,rust-rustls-pemfile-1) - ("rust-same-file" ,rust-same-file-1) + ("rust-rustls" ,rust-rustls-0.21) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-2) ("rust-semver" ,rust-semver-1) ("rust-serde" ,rust-serde-1) ("rust-serde-json" ,rust-serde-json-1) @@ -1121,8 +1127,8 @@ (define-public maturin ("rust-textwrap" ,rust-textwrap-0.16) ("rust-thiserror" ,rust-thiserror-1) ("rust-time" ,rust-time-0.3) - ("rust-toml" ,rust-toml-0.7) - ("rust-toml-edit" ,rust-toml-edit-0.19) + ("rust-toml" ,rust-toml-0.8) + ("rust-toml-edit" ,rust-toml-edit-0.21) ("rust-tracing" ,rust-tracing-0.1) ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3) ("rust-ureq" ,rust-ureq-2) @@ -1130,12 +1136,13 @@ (define-public maturin ("rust-wild" ,rust-wild-2) ("rust-zip" ,rust-zip-0.6)) #:cargo-development-inputs - (("rust-indoc" ,rust-indoc-2) + (("rust-expect-test" ,rust-expect-test-1) + ("rust-indoc" ,rust-indoc-2) ("rust-pretty-assertions" ,rust-pretty-assertions-1) ("rust-rustversion" ,rust-rustversion-1) ("rust-time" ,rust-time-0.3) ("rust-trycmd" ,rust-trycmd-0.14) - ("rust-which" ,rust-which-4)) + ("rust-which" ,rust-which-5)) #:phases (modify-phases %standard-phases (add-after 'build 'build-python-module -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public rust-ring-0.17 (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 @@ (define-public rust-ring-0.16 ("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 @@ (define-public rust-rustls-0.20 ("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 @@ (define-public agate ("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 @@ (define-public alfis (("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 @@ (define-public maturin (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 @@ (define-public rust-cargo-edit (substitute* "Cargo.toml" ((".*\"vendored-libgit2\".*") ""))))))) (native-inputs - (list perl pkg-config)) + (list pkg-config)) (inputs (list libgit2-1.4 libssh2 @@ -1695,8 +1692,6 @@ (define-public sniffglue (("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 @@ (define-public spotifyd ;"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 @@ (define-public tealdeer ("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 v1.2.3 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/packages/patches') 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 @@ (define-deprecated rust-swc-1 rust-swc) (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 @@ (define-public rust-cargo-edit #: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 @@ (define-public rust-cargo-edit ("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 @@ (define-public rust-cargo-edit (native-inputs (list pkg-config)) (inputs - (list libgit2-1.4 + (list libgit2-1.6 libssh2 openssl zlib)) -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public rust-traitobject-0.1 (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 @@ (define-public rust-trash-2 ("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 v1.2.3 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/packages/patches') 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 @@ (define-public rust-rspec-1 (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 v1.2.3 From 4c60c6e412cdc788f0f49872fbbe61deea66ccc8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 10 Jan 2024 11:25:25 +0200 Subject: gnu: mrustc: Update to 0.10.1. * gnu/packages/rust.scm (%mrustc-commit, %mrustc-source): Update. [snippet]: Adjust snippet to make sure to get all the '-g' flags. (rust-bootstrap)[arguments]: Remove substitution adjusting the number of parallel builds. Remove unneeded substitution. * gnu/packages/patches/rustc-1.54.0-src.patch: Refresh from upstream. Change-Id: I6f806ee89dcb8e95e8bd2d443328844079ee533e --- gnu/packages/patches/rustc-1.54.0-src.patch | 237 +++++++++++++++++++++++++--- gnu/packages/rust.scm | 20 +-- 2 files changed, 220 insertions(+), 37 deletions(-) (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/rustc-1.54.0-src.patch b/gnu/packages/patches/rustc-1.54.0-src.patch index d075dce39b..d322fd0d49 100644 --- a/gnu/packages/patches/rustc-1.54.0-src.patch +++ b/gnu/packages/patches/rustc-1.54.0-src.patch @@ -28,51 +28,111 @@ rustc_data_structures::static_assert_size!(ForeignItemKind, 72); impl From for ItemKind { + --- compiler/rustc_hir/src/hir.rs +++ compiler/rustc_hir/src/hir.rs -@@ -3050,3 +3050,3 @@ +@@ -3048,7 +3048,7 @@ impl<'hir> Node<'hir> { + } + // Some nodes are used a lot. Make sure they don't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[cfg(all(not(rust_compiler="mrustc"),target_arch = "x86_64", target_pointer_width = "64"))] mod size_asserts { + rustc_data_structures::static_assert_size!(super::Block<'static>, 48); + rustc_data_structures::static_assert_size!(super::Expr<'static>, 64); + --- compiler/rustc_middle/src/mir/interpret/error.rs +++ compiler/rustc_middle/src/mir/interpret/error.rs -@@ -452,2 +452,2 @@ +@@ -449,7 +449,7 @@ impl dyn MachineStopType { + } + } + -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] static_assert_size!(InterpError<'_>, 64); + + pub enum InterpError<'tcx> { + --- compiler/rustc_middle/src/mir/mod.rs +++ compiler/rustc_middle/src/mir/mod.rs -@@ -2203,2 +2203,2 @@ +@@ -2200,7 +2200,7 @@ pub enum AggregateKind<'tcx> { + Generator(DefId, SubstsRef<'tcx>, hir::Movability), + } + -#[cfg(target_arch = "x86_64")] +#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64"))] static_assert_size!(AggregateKind<'_>, 48); + + #[derive(Copy, Clone, Debug, PartialEq, PartialOrd, Eq, TyEncodable, TyDecodable, Hash, HashStable)] + --- compiler/rustc_middle/src/thir.rs +++ compiler/rustc_middle/src/thir.rs -@@ -147,2 +147,2 @@ +@@ -144,7 +144,7 @@ pub enum StmtKind<'tcx> { + } + + // `Expr` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[cfg(all(not(rust_compiler="mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] rustc_data_structures::static_assert_size!(Expr<'_>, 144); ---- compiler/rustc_mir/src/interpret/place.rs -+++ compiler/rustc_mir/src/interpret/place.rs -@@ -91,2 +91,2 @@ --#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] - rustc_data_structures::static_assert_size!(Place, 64); -@@ -100,2 +100,2 @@ --#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -+#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] - rustc_data_structures::static_assert_size!(PlaceTy<'_>, 80); + + /// The Thir trait implementor lowers their expressions (`&'tcx H::Expr`) + --- compiler/rustc_mir/src/interpret/operand.rs +++ compiler/rustc_mir/src/interpret/operand.rs -@@ -35,2 +35,2 @@ +@@ -32,7 +32,7 @@ pub enum Immediate { + ScalarPair(ScalarMaybeUninit, ScalarMaybeUninit), + } + -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] rustc_data_structures::static_assert_size!(Immediate, 56); -@@ -90,2 +90,2 @@ + + impl From> for Immediate { +@@ -87,7 +87,7 @@ pub struct ImmTy<'tcx, Tag = ()> { + pub layout: TyAndLayout<'tcx>, + } + -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] rustc_data_structures::static_assert_size!(ImmTy<'_>, 72); + + impl std::fmt::Display for ImmTy<'tcx, Tag> { + +--- compiler/rustc_mir/src/interpret/place.rs ++++ compiler/rustc_mir/src/interpret/place.rs +@@ -88,7 +88,7 @@ pub enum Place { + Local { frame: usize, local: mir::Local }, + } + +-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] ++#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] + rustc_data_structures::static_assert_size!(Place, 64); + + #[derive(Copy, Clone, Debug)] +@@ -97,7 +97,7 @@ pub struct PlaceTy<'tcx, Tag = ()> { + pub layout: TyAndLayout<'tcx>, + } + +-#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] ++#[cfg(all(not(rust_compiler = "mrustc"), target_arch = "x86_64", target_pointer_width = "64"))] + rustc_data_structures::static_assert_size!(PlaceTy<'_>, 80); + + impl<'tcx, Tag> std::ops::Deref for PlaceTy<'tcx, Tag> { + +# +# Disable std_detect's detection logic (use the same logic as miri) +# +--- library/stdarch/crates/std_detect/src/detect/mod.rs ++++ library/stdarch/crates/std_detect/src/detect/mod.rs +@@ -86,7 +86,7 @@ mod bit; + mod cache; + + cfg_if! { +- if #[cfg(miri)] { ++ if #[cfg(any(miri, rust_compiler = "mrustc"))] { + // When running under miri all target-features that are not enabled at + // compile-time are reported as disabled at run-time. + // # # Disable crc32fast's use of stdarch @@ -88,19 +148,145 @@ ))] { # -# Disable std_detect's detection logic (use the same logic as miri) +# Backport which is required to support arm64 on macOS 12 +# See: https://github.com/alexcrichton/curl-rust/commit/0aea09c428b9bc2bcf46da0fc33959fe3f03c74a # ---- library/stdarch/crates/std_detect/src/detect/mod.rs -+++ library/stdarch/crates/std_detect/src/detect/mod.rs -@@ -88,2 +88,2 @@ - cfg_if! { -- if #[cfg(miri)] { -+ if #[cfg(any(miri, rust_compiler = "mrustc"))] { +--- vendor/curl/src/lib.rs ++++ vendor/curl/src/lib.rs +@@ -82,6 +82,9 @@ pub mod easy; + pub mod multi; + mod panic; + ++#[cfg(test)] ++static INITIALIZED: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); ++ + /// Initializes the underlying libcurl library. + /// + /// The underlying libcurl library must be initialized before use, and must be +@@ -102,46 +105,62 @@ pub fn init() { + /// Used to prevent concurrent or duplicate initialization. + static INIT: Once = Once::new(); + +- /// An exported constructor function. On supported platforms, this will be +- /// invoked automatically before the program's `main` is called. +- #[cfg_attr( +- any(target_os = "linux", target_os = "freebsd", target_os = "android"), +- link_section = ".init_array" +- )] +- #[cfg_attr(target_os = "macos", link_section = "__DATA,__mod_init_func")] +- #[cfg_attr(target_os = "windows", link_section = ".CRT$XCU")] +- static INIT_CTOR: extern "C" fn() = init_inner; ++ INIT.call_once(|| { ++ #[cfg(need_openssl_init)] ++ openssl_probe::init_ssl_cert_env_vars(); ++ #[cfg(need_openssl_init)] ++ openssl_sys::init(); ++ ++ unsafe { ++ assert_eq!(curl_sys::curl_global_init(curl_sys::CURL_GLOBAL_ALL), 0); ++ } ++ ++ #[cfg(test)] ++ { ++ INITIALIZED.store(true, std::sync::atomic::Ordering::SeqCst); ++ } ++ ++ // Note that we explicitly don't schedule a call to ++ // `curl_global_cleanup`. The documentation for that function says ++ // ++ // > You must not call it when any other thread in the program (i.e. a ++ // > thread sharing the same memory) is running. This doesn't just mean ++ // > no other thread that is using libcurl. ++ // ++ // We can't ever be sure of that, so unfortunately we can't call the ++ // function. ++ }); ++} + ++/// An exported constructor function. On supported platforms, this will be ++/// invoked automatically before the program's `main` is called. This is done ++/// for the convenience of library users since otherwise the thread-safety rules ++/// around initialization can be difficult to fulfill. ++/// ++/// This is a hidden public item to ensure the symbol isn't optimized away by a ++/// rustc/LLVM bug: https://github.com/rust-lang/rust/issues/47384. As long as ++/// any item in this module is used by the final binary (which `init` will be) ++/// then this symbol should be preserved. ++#[used] ++#[doc(hidden)] ++#[cfg_attr( ++ any(target_os = "linux", target_os = "freebsd", target_os = "android"), ++ link_section = ".init_array" ++)] ++#[cfg_attr(target_os = "macos", link_section = "__DATA,__mod_init_func")] ++#[cfg_attr(target_os = "windows", link_section = ".CRT$XCU")] ++pub static INIT_CTOR: extern "C" fn() = { + /// This is the body of our constructor function. + #[cfg_attr( + any(target_os = "linux", target_os = "android"), + link_section = ".text.startup" + )] +- extern "C" fn init_inner() { +- INIT.call_once(|| { +- #[cfg(need_openssl_init)] +- openssl_sys::init(); +- +- unsafe { +- assert_eq!(curl_sys::curl_global_init(curl_sys::CURL_GLOBAL_ALL), 0); +- } +- +- // Note that we explicitly don't schedule a call to +- // `curl_global_cleanup`. The documentation for that function says +- // +- // > You must not call it when any other thread in the program (i.e. +- // > a thread sharing the same memory) is running. This doesn't just +- // > mean no other thread that is using libcurl. +- // +- // We can't ever be sure of that, so unfortunately we can't call the +- // function. +- }); ++ extern "C" fn init_ctor() { ++ init(); + } + +- // We invoke our init function through our static to ensure the symbol isn't +- // optimized away by a bug: https://github.com/rust-lang/rust/issues/47384 +- INIT_CTOR(); +-} ++ init_ctor ++}; + + unsafe fn opt_str<'a>(ptr: *const libc::c_char) -> Option<&'a str> { + if ptr.is_null() { +@@ -158,3 +177,20 @@ fn cvt(r: curl_sys::CURLcode) -> Result<(), Error> { + Err(Error::new(r)) + } + } ++ ++#[cfg(test)] ++mod tests { ++ use super::*; ++ ++ #[test] ++ #[cfg(any( ++ target_os = "linux", ++ target_os = "macos", ++ target_os = "windows", ++ target_os = "freebsd", ++ target_os = "android" ++ ))] ++ fn is_initialized_before_main() { ++ assert!(INITIALIZED.load(std::sync::atomic::Ordering::SeqCst)); ++ } ++} # PPV-Lite also needs to know that we're pretending to be miri --- vendor/ppv-lite86/src/lib.rs +++ vendor/ppv-lite86/src/lib.rs -@@ -12,9 +12,9 @@ +@@ -9,14 +9,14 @@ mod soft; + mod types; + pub use self::types::*; + -#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri)))] +#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri), not(rust_compiler = "mrustc")))] pub mod x86_64; @@ -114,4 +300,5 @@ -#[cfg(any(miri, not(all(feature = "simd", any(target_arch = "x86_64")))))] +#[cfg(any(miri, rust_compiler = "mrustc", not(all(feature = "simd", any(target_arch = "x86_64")))))] use self::generic as arch; - + + pub use self::arch::{vec128_storage, vec256_storage, vec512_storage}; diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 15d63be14d..e3cad4e585 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Nikita ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017, 2018 Nikolai Merinov -;;; Copyright © 2017, 2019-2023 Efraim Flashner +;;; Copyright © 2017, 2019-2024 Efraim Flashner ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2019 Ivan Petkov @@ -121,27 +121,28 @@ (define* (rust-bootstrapped-package base-rust version checksum) ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed ;;; to be used in source form. -(define %mrustc-commit "597593aba86fa2edbea80c6e09f0b1b2a480722d") +(define %mrustc-commit "b6754f574f8846eb842feba4ccbeeecb10bdfacc") (define %mrustc-source - (let* ((version "0.10") + (let* ((version "0.10.1") (commit %mrustc-commit) - (revision "2") + (revision "1") (name "mrustc")) (origin (method git-fetch) (uri (git-reference (url "https://github.com/thepowersgang/mrustc") - (commit commit))) - (file-name (git-file-name name (git-version version revision commit))) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "09rvm3zgx1d86gippl8qzh13m641ynbw9q0zsc90g0h1khd3z3b6")) + "0rqiif7rb5hg6ik3i1flldj311f014q4n9z8wb50cs8kspjz32di")) (modules '((guix build utils))) (snippet '(begin ;; Drastically reduces memory and build time requirements ;; by disabling debug by default. (substitute* (find-files "." "Makefile") + (("LINKFLAGS := -g") "LINKFLAGS :=") (("-g ") ""))))))) ;;; Rust 1.54 is special in that it is built with mrustc, which shortens the @@ -260,11 +261,6 @@ (define-public rust-bootstrap (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)") "$(MINICARGO)")) (substitute* "run_rustc/Makefile" - (("[$]Vtime ") - "$V ") - ;; Unlock the number of parallel jobs for cargo. - (("-j [[:digit:]]+ ") - "") ;; Patch the shebang of a generated wrapper for rustc (("#!/bin/sh") (string-append "#!" (which "sh")))) -- cgit v1.2.3 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/packages/patches') 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 @@ (define-public hyperfine (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 @@ (define-public i3status-rust (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 @@ (define-public i3status-rust (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 @@ (define-public i3status-rust ("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 @@ (define-public i3status-rust ("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 v1.2.3 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/packages/patches') 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 @@ (define-public qgit (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 v1.2.3 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/packages/patches') 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 @@ (define-public ibus-anthy (define-public librime (package (name "librime") - (version "1.7.3") + (version "1.10.0") (source (origin (method git-fetch) @@ -464,25 +465,8 @@ (define-public librime (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 v1.2.3 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/packages/patches') 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 @@ (define-public guile2.2-bytestructures (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 @@ (define-public guile-git (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 v1.2.3 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/packages/patches') 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 @@ (define-public isc-bind ;; 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 v1.2.3 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/packages/patches') 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 @@ (define-public python-plingo (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 v1.2.3