diff options
author | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2024-02-03 14:39:49 +0100 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2024-02-03 14:39:49 +0100 |
commit | e6c847defb6cb25c65172dec46a322e5d3d45088 (patch) | |
tree | 3d249dce1a1f58fcb3c83a41eaf9e1525d7b112e /gnu/packages/patches | |
parent | 3aef72ec5bf1027bc557daab7010848d80711a28 (diff) | |
parent | 179bb57d2532ee6b81791e078b0f782cbf88cb84 (diff) | |
download | guix-patches-e6c847defb6cb25c65172dec46a322e5d3d45088.tar guix-patches-e6c847defb6cb25c65172dec46a322e5d3d45088.tar.gz |
Merge branch 'master' into gnome-team
Diffstat (limited to 'gnu/packages/patches')
16 files changed, 655 insertions, 888 deletions
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"( +- <style> +- table { +- border-collapse: collapse; +- } +- td { +- text-align: center; +- vertical-align: middle; +- padding: 5px; +- } +- </style> +- +- <table> +- <tr> +- <td><img src=':/Images/res/heart.png' width='52' height='52'></td> +- <td> +- <span style='font-weight: bold; font-size:18pt; text-align: center;'>%1</span><br /> +- <span style='font-style: italic; font-size:8pt; text-align: center;'>%2</span> +- </td> +- </tr> +- </table> +- )") +- .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; } </layout> </widget> </item> @@ -69,25 +124,53 @@ index b2c7788..20b9d9d 100755 - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> +- <spacer name="horizontalSpacer_4"> +- <property name="orientation"> +- <enum>Qt::Horizontal</enum> +- </property> +- <property name="sizeHint" stdset="0"> +- <size> +- <width>40</width> +- <height>20</height> +- </size> +- </property> +- </spacer> +- </item> +- <item> - <widget class="QPushButton" name="pushDonatePayPal"> +- <property name="cursor"> +- <cursorShape>PointingHandCursor</cursorShape> +- </property> - <property name="text"> - <string/> - </property> -- <property name="icon"> -- <iconset resource="../resources.qrc"> -- <normaloff>:/Images/res/btn_donateCC_LG.png</normaloff>:/Images/res/btn_donateCC_LG.png</iconset> -- </property> - <property name="iconSize"> - <size> - <width>150</width> - <height>50</height> - </size> - </property> +- <property name="autoDefault"> +- <bool>false</bool> +- </property> - <property name="flat"> - <bool>true</bool> - </property> - </widget> - </item> +- <item> +- <spacer name="horizontalSpacer_5"> +- <property name="orientation"> +- <enum>Qt::Horizontal</enum> +- </property> +- <property name="sizeHint" stdset="0"> +- <size> +- <width>40</width> +- <height>20</height> +- </size> +- </property> +- </spacer> +- </item> - </layout> - </item> - </layout> @@ -141,6 +224,9 @@ index b2c7788..20b9d9d 100755 - <height>32</height> - </size> - </property> +- <property name="autoDefault"> +- <bool>false</bool> +- </property> - <property name="flat"> - <bool>true</bool> - </property> @@ -163,34 +249,27 @@ index b2c7788..20b9d9d 100755 - </item> - </layout> - </item> -- <item> -- <widget class="Line" name="line"> -- <property name="orientation"> -- <enum>Qt::Horizontal</enum> -- </property> -- </widget> -- </item> <item> - <widget class="QLabel" name="label_2"> - <property name="text"> + <widget class="Line" name="line"> + <property name="orientation"> 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; } - <string>F1</string> +@@ -1408,18 +1408,6 @@ p, li { white-space: pre-wrap; } + <string>&About</string> </property> </action> - <action name="actionDonatePaypal"> - <property name="icon"> - <iconset resource="../resources.qrc"> -- <normaloff>:/Images/res/paypal_mini.png</normaloff>:/Images/res/paypal_mini.png</iconset> +- <normaloff>:/Images/res/heart.png</normaloff>:/Images/res/heart.png</iconset> - </property> - <property name="text"> -- <string>&Donate via Paypal</string> +- <string>&Donate!</string> - </property> - <property name="toolTip"> -- <string>Donate via Paypal</string> +- <string>Donate via Paypal, Ko-Fi, Cryptocurrencies</string> - </property> - </action> <action name="actionReportBug"> 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 <goodoldpaul@autistici.org> -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/patches/emacs-shx-byte-compilation-test.patch b/gnu/packages/patches/emacs-shx-byte-compilation-test.patch new file mode 100644 index 0000000000..b0f4714a6c --- /dev/null +++ b/gnu/packages/patches/emacs-shx-byte-compilation-test.patch @@ -0,0 +1,35 @@ +From 6e8cb6f2175cd5c108de615a970a27877adfaea0 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer <maxim.cournoyer@gmail.com> +Date: Fri, 19 Jan 2024 10:49:51 -0500 +Subject: [PATCH] tests: Fix byte-compilation test. + +* test/shx-test.el (shx-test-unit-byte-compile): Simply assert on the +return value of byte-compile-file, which is non-nil when there are no +errors. + +Fixes: <https://github.com/riscy/shx-for-emacs/issues/33> +--- + test/shx-test.el | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/test/shx-test.el b/test/shx-test.el +index e18cefb..ed5aee3 100644 +--- a/test/shx-test.el ++++ b/test/shx-test.el +@@ -83,10 +83,8 @@ Example: + "Test byte-compilation against the shx.el file." + (ignore-errors (kill-buffer "*Compile-Log*")) + (let ((file (replace-regexp-in-string ".elc$" ".el" (symbol-file 'shx-mode)))) +- (byte-compile-file file) + (shx-test-assert "shx.el passes byte-compilation" +- (with-current-buffer (get-buffer-create "*Compile-Log*") +- (<= (- (point-max) (point)) 3))))) ++ (byte-compile-file file)))) + + (defun shx-test-unit-declare-function () + "Test `declare-function'." + +base-commit: b99d16f36bc278d668d8428c4bc9af77064c336a +-- +2.41.0 + 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 <phst@google.com> -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 <liliana.prikler@gmail.com> - - * 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 <joaot@siscog.pt> - ;; 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 - 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 <maxim.cournoyer@gmail.com> +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 + 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 <arjan@adriaan.se> -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 <<EOF > EXPECTED - From: Notmuch Test Suite <test_suite@notmuchmail.org> - To: Antoine Beaupré <anarcat@orangeseeds.org> - 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é <anarcat@orangeseeds.org> 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 <<EOF > EXPECTED - From: Notmuch Test Suite <test_suite@notmuchmail.org> - To: Mikhail Gusarov <dottedmag@dottedmag.net> - 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 <<EOF > EXPECTED-PRED - From: Notmuch Test Suite <test_suite@notmuchmail.org> - To: Lars Kellogg-Stedman <lars@seas.harvard.edu> - 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 <<EOF > EXPECTED-NIL - From: Notmuch Test Suite <test_suite@notmuchmail.org> - To: Lars Kellogg-Stedman <lars@seas.harvard.edu>, Mikhail Gusarov <dottedmag@dottedmag.net> - 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 <test_suite@notmuchmail.org> - To: Sean Whitton <spwhitton@spwhitton.name>, 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 <spwhitton@spwhitton.name> writes: --- -2.41.0 - diff --git a/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch new file mode 100644 index 0000000000..1af9868b9a --- /dev/null +++ b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch @@ -0,0 +1,61 @@ +From 1036d77b34a5fa15e56f516b81b9928006848cbd Mon Sep 17 00:00:00 2001 +From: Damien Miller <djm@mindrot.org> +Date: Fri, 22 Dec 2023 17:56:26 +1100 +Subject: [PATCH] better detection of broken -fzero-call-used-regs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +gcc 13.2.0 on ppc64le refuses to compile some function, including +cipher.c:compression_alg_list() with an error: + +> sorry, unimplemented: argument ‘used’ is not supportedcw +> for ‘-fzero-call-used-regs’ on this target + +This extends the autoconf will-it-work test with a similarly- +structured function that seems to catch this. + +Spotted/tested by Colin Watson; bz3645 +--- + +Taken from upsteam, and for Guix by jackhill@jackhill.us +Thanks Marcel van der Boom for noticing: https://issues.guix.gnu.org/67948#2 + +m4/openssh.m4 | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/m4/openssh.m4 b/m4/openssh.m4 +index 5d4c56280..033df501c 100644 +--- a/m4/openssh.m4 ++++ b/m4/openssh.m4 +@@ -20,18 +20,24 @@ char *f2(char *s, ...) { + va_end(args); + return strdup(ret); + } ++const char *f3(int s) { ++ return s ? "good" : "gooder"; ++} + int main(int argc, char **argv) { +- (void)argv; + char b[256], *cp; ++ const char *s; + /* Some math to catch -ftrapv problems in the toolchain */ + int i = 123 * argc, j = 456 + argc, k = 789 - argc; + float l = i * 2.1; + double m = l / 0.5; + long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; ++ (void)argv; + f(1); +- snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); ++ s = f3(f(2)); ++ snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, b, 0) == -1) exit(0); +- cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); ++ cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); ++ if (write(1, cp, 0) == -1) exit(0); + free(cp); + /* + * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does +-- +2.41.0 + 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) diff --git a/gnu/packages/patches/python-pyls-black-41.patch b/gnu/packages/patches/python-pyls-black-41.patch new file mode 100644 index 0000000000..5a1ebd2f54 --- /dev/null +++ b/gnu/packages/patches/python-pyls-black-41.patch @@ -0,0 +1,45 @@ +From ada6a999e4f5cca21a2133e449f4576dbe9a64d2 Mon Sep 17 00:00:00 2001 +From: Isaac Dadzie <4581114+idadzie@users.noreply.github.com> +Date: Fri, 4 Feb 2022 21:18:37 +0000 +Subject: [PATCH] Add support for black 22.1.0 + +Make changes to support black 22.1.0, which changed the return type +of 'find_project_root' to a tuple. + +Resolves: #40 +--- + pyls_black/plugin.py | 8 +++++++- + setup.cfg | 2 +- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/pyls_black/plugin.py b/pyls_black/plugin.py +index dc5d482..e4f4d98 100644 +--- a/pyls_black/plugin.py ++++ b/pyls_black/plugin.py +@@ -73,7 +73,13 @@ def load_config(filename: str) -> Dict: + + root = black.find_project_root((filename,)) + +- pyproject_filename = root / "pyproject.toml" ++ # Note: find_project_root returns a tuple in 22.1.0+ ++ try: ++ # Keeping this to not break backward compatibility. ++ pyproject_filename = root / "pyproject.toml" ++ except TypeError: ++ _root, _ = root ++ pyproject_filename = _root / "pyproject.toml" + + if not pyproject_filename.is_file(): + return defaults +diff --git a/setup.cfg b/setup.cfg +index 036cec2..57fbe4f 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -1,6 +1,6 @@ + [metadata] + name = pyls-black +-version = 0.4.7 ++version = 0.4.8 + author = Rupert Bedford + author_email = rupert@rupertb.com + description = Black plugin for the Python Language Server diff --git a/gnu/packages/patches/python-scikit-bio-1887.patch b/gnu/packages/patches/python-scikit-bio-1887.patch new file mode 100644 index 0000000000..7ee7518128 --- /dev/null +++ b/gnu/packages/patches/python-scikit-bio-1887.patch @@ -0,0 +1,109 @@ +From 290da0472e3a0af01b242cd1d3dd6a24588db0e5 Mon Sep 17 00:00:00 2001 +From: qiyunzhu <qiyunzhu@gmail.com> +Date: Sat, 4 Nov 2023 12:59:54 -0700 +Subject: [PATCH 1/2] removed kulsinski + +--- + CHANGELOG.md | 6 ++++++ + ci/aarch64.conda_requirements.txt | 2 +- + ci/conda_requirements.txt | 2 +- + setup.py | 2 +- + skbio/diversity/_driver.py | 2 -- + 5 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/CHANGELOG.md b/CHANGELOG.md +index 0ce69c2c6..cd9adea6c 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -2,6 +2,12 @@ + + ## Version 0.5.10 + ++### Features ++* SciPy 1.11+ is now supported. ++ ++### Backward-incompatible changes [experimental] ++* Beta diversity metric `kulsinski` was removed. This was motivated by that SciPy replaced this distance metric with `kulczynski1` in version 1.11 (see SciPy issue [#2009](https://github.com/scipy/scipy/issues/2009)), and that both metrics do not return 0 on two identical vectors. ++ + ### Bug fixes + + * Re-enabled OpenMP support, which has been mistakenly disabled in 0.5.8 ([#1874](https://github.com/biocore/scikit-bio/pull/1874)) +diff --git a/ci/aarch64.conda_requirements.txt b/ci/aarch64.conda_requirements.txt +index a329bc666..3564f4c3c 100644 +--- a/ci/aarch64.conda_requirements.txt ++++ b/ci/aarch64.conda_requirements.txt +@@ -5,5 +5,5 @@ matplotlib >= 1.4.3 + natsort >= 4.0.3 + numpy >= 1.9.2 + pandas >= 1.5.0 +-scipy <= 1.10.1 ++scipy >= 1.9.0 + h5py >= 3.6.0 +diff --git a/ci/conda_requirements.txt b/ci/conda_requirements.txt +index 4402e4ebb..0f1bd715c 100644 +--- a/ci/conda_requirements.txt ++++ b/ci/conda_requirements.txt +@@ -5,6 +5,6 @@ matplotlib >= 1.4.3 + natsort >= 4.0.3 + numpy >= 1.9.2 + pandas >= 1.5.0 +-scipy <= 1.10.1 ++scipy >= 1.9.0 + h5py >= 3.6.0 + hdmedians >= 0.14.1 +diff --git a/setup.py b/setup.py +index 36600e427..fa4d5e0a7 100644 +--- a/setup.py ++++ b/setup.py +@@ -221,7 +221,7 @@ def check_bin(ccbin, source, allow_dash): + 'natsort >= 4.0.3', + 'numpy >= 1.9.2', + 'pandas >= 1.5.0', +- 'scipy <= 1.10.1', ++ 'scipy >= 1.9.0', + 'h5py >= 3.6.0', + 'hdmedians >= 0.14.1', + ], +diff --git a/skbio/diversity/_driver.py b/skbio/diversity/_driver.py +index 016020743..1a792efb6 100644 +--- a/skbio/diversity/_driver.py ++++ b/skbio/diversity/_driver.py +@@ -296,7 +296,6 @@ def partial_beta_diversity(metric, counts, ids, id_pairs, validate=True, + "dice", + "hamming", + "jaccard", +- "kulsinski", + "mahalanobis", + "manhattan", # aliases to "cityblock" in beta_diversity + "matching", +@@ -314,7 +313,6 @@ def partial_beta_diversity(metric, counts, ids, id_pairs, validate=True, + _qualitative_beta_metrics = [ + "dice", + "jaccard", +- "kulsinski", + "matching", + "rogerstanimoto", + "russellrao", + +From 9dd9c6dd68a015f1159f884c57878b8a00fad14c Mon Sep 17 00:00:00 2001 +From: Qiyun Zhu <qiyunzhu@gmail.com> +Date: Tue, 7 Nov 2023 22:42:10 -0700 +Subject: [PATCH 2/2] fixing numpy exception + +--- + skbio/stats/tests/test_composition.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/skbio/stats/tests/test_composition.py b/skbio/stats/tests/test_composition.py +index 90921be5b..e720a594f 100644 +--- a/skbio/stats/tests/test_composition.py ++++ b/skbio/stats/tests/test_composition.py +@@ -1222,7 +1222,7 @@ def test_ancom_fail_alpha(self): + ancom(self.table1, self.cats1, alpha=1.1) + + def test_ancom_fail_multiple_groups(self): +- with self.assertRaises(TypeError): ++ with self.assertRaises((TypeError, np.AxisError)): + ancom(self.table4, self.cats4, + significance_test=scipy.stats.ttest_ind) + 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 <dbpercival@gmail.com> +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"); + 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 <ldionne.2@gmail.com> -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<T*> is a user-defined -specialization, which isn't the case. This is due to MSVC's -iterator_traits<T*> 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<typename I> - char is_std_iterator_traits_specialized_impl_(void *); - #elif defined(_LIBCPP_VERSION) -- template<typename I, bool B> -- char ( -- &is_std_iterator_traits_specialized_impl_(std::__iterator_traits<I, B> *))[2]; -+ // In older versions of libc++, the base template inherits from std::__iterator_traits<typename, bool>. -+ template<template<typename, bool> class IteratorTraitsBase, typename I, bool B> -+ char (&libcpp_iterator_traits_base_impl(IteratorTraitsBase<I, B> *))[2]; -+ template<template<typename, bool> 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<template<typename> class, typename I> -+ char (&libcpp_iterator_traits_base_impl(typename std::iterator_traits<I>::__primary_template *))[2]; -+ template<template<typename> class, typename I> -+ char libcpp_iterator_traits_base_impl(void *); -+ - template<typename I> -- char is_std_iterator_traits_specialized_impl_(void *); -+ auto is_std_iterator_traits_specialized_impl_(std::iterator_traits<I>* traits) -+ -> decltype(libcpp_iterator_traits_base_impl<std::__iterator_traits, I>(traits)); - #elif defined(_MSVC_STL_VERSION) - template<typename I> - 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_<I>( - static_cast<std::iterator_traits<I> *>(nullptr))); -- -+#endif - // The standard iterator_traits<T *> 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<typename T> - RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v<T *> = - 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 <cstddef> -+#include <iterator> -+#include <range/v3/iterator.hpp> -+ -+struct X { }; -+ -+namespace std { -+ template<> struct iterator_traits<X> { }; -+} -+ -+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<X>, ""); -+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<Y>, ""); -+static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<int*>, ""); -+ -+int main() -+{ -+} 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 <andreas@enge.fr> +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 <mpfr.h> + #include <mpc.h> + +-#include <arb.h> +-#include <acb.h> +-#include <acb_hypgeom.h> +-#include <acb_elliptic.h> ++#include <flint/arb.h> ++#include <flint/acb.h> ++#include <flint/acb_hypgeom.h> ++#include <flint/acb_elliptic.h> + + #define WITH_GMP 1 + #include "s7.h" +-- +2.41.0 + diff --git a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch index 708ed81e93..9201f9a51d 100644 --- a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch +++ b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch @@ -8,7 +8,8 @@ This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac. Addendum 2022-12-08, Ricardo Wurmus: This patch has been updated to introduce CONFIG_FIT_PRELOAD to remove fit_pre_load_data, which depends on openssl. -Addendum 2023-10-17, Herman Rimm: Update patch for u-boot v2023.10. +Addendum 2024-01-18, Herman Rimm: Patch updated to leave out upstreamed +diffs with CONFIG_FIT_PRELOAD. diff --git a/tools/kwbimage.c b/tools/kwbimage.c index 4dce495ff0..976174ae77 100644 @@ -145,64 +146,3 @@ index 4dce495ff0..976174ae77 100644 /* Calculate and set the header checksum */ main_hdr->checksum = image_checksum8(main_hdr, headersz); ---- a/tools/image-host.c -+++ b/tools/image-host.c -@@ -14,8 +14,10 @@ - #include <image.h> - #include <version.h> - -+#ifdef CONFIG_FIT_PRELOAD - #include <openssl/pem.h> - #include <openssl/evp.h> -+#endif - - /** - * fit_set_hash_value - set hash value in requested has node -@@ -1119,6 +1121,7 @@ static int fit_config_add_verification_data(const char *keydir, - return 0; - } - -+#ifdef CONFIG_FIT_PRELOAD - /* - * 0) open file (open) - * 1) read certificate (PEM_read_X509) -@@ -1227,6 +1230,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) - out: - return ret; - } -+#endif - - int fit_cipher_data(const char *keydir, void *keydest, void *fit, - const char *comment, int require_keys, ---- a/tools/fit_image.c -+++ b/tools/fit_image.c -@@ -61,9 +61,10 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, - ret = fit_set_timestamp(ptr, 0, time); - } - -+#ifdef CONFIG_FIT_PRELOAD - if (!ret) - ret = fit_pre_load_data(params->keydir, dest_blob, ptr); -- -+#endif - if (!ret) { - ret = fit_cipher_data(params->keydir, dest_blob, ptr, - params->comment, ---- a/include/image.h -+++ b/include/image.h -@@ -1182,6 +1182,7 @@ int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value, - - int fit_set_timestamp(void *fit, int noffset, time_t timestamp); - -+#ifdef CONFIG_FIT_PRELOAD - /** - * fit_pre_load_data() - add public key to fdt blob - * -@@ -1196,6 +1197,7 @@ int fit_set_timestamp(void *fit, int noffset, time_t timestamp); - * < 0, on failure - */ - int fit_pre_load_data(const char *keydir, void *keydest, void *fit); -+#endif - - int fit_cipher_data(const char *keydir, void *keydest, void *fit, - const char *comment, int require_keys, diff --git a/gnu/packages/patches/u-boot-build-without-libcrypto.patch b/gnu/packages/patches/u-boot-build-without-libcrypto.patch new file mode 100644 index 0000000000..d56588941c --- /dev/null +++ b/gnu/packages/patches/u-boot-build-without-libcrypto.patch @@ -0,0 +1,123 @@ +From 03e598263e3878b6f5d58f5525577903edadc644 Mon Sep 17 00:00:00 2001 +From: Paul-Erwan Rio <paulerwan.rio@gmail.com> +Date: Thu, 21 Dec 2023 08:26:11 +0100 +Subject: [PATCH] tools: fix build without LIBCRYPTO support + +Commit cb9faa6f98ae ("tools: Use a single target-independent config to +enable OpenSSL") introduced a target-independent configuration to build +crypto features in host tools. + +But since commit 2c21256b27d7 ("hash: Use Kconfig to enable hashing in +host tools and SPL") the build without OpenSSL is broken, due to FIT +signature/encryption features. Add missing conditional compilation +tokens to fix this. + +Signed-off-by: Paul-Erwan Rio <paulerwan.rio@gmail.com> +Tested-by: Alexander Dahl <ada@thorsis.com> +Cc: Simon Glass <sjg@chromium.org> +Reviewed-by: Tom Rini <trini@konsulko.com> +Reviewed-by: Simon Glass <sjg@chromium.org> +--- + include/image.h | 2 +- + tools/Kconfig | 1 + + tools/fit_image.c | 2 +- + tools/image-host.c | 4 ++++ + tools/mkimage.c | 5 +++-- + 5 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/include/image.h b/include/image.h +index 432ec927b1..21de70f0c9 100644 +--- a/include/image.h ++++ b/include/image.h +@@ -1465,7 +1465,7 @@ int calculate_hash(const void *data, int data_len, const char *algo, + * device + */ + #if defined(USE_HOSTCC) +-# if defined(CONFIG_FIT_SIGNATURE) ++# if CONFIG_IS_ENABLED(FIT_SIGNATURE) + # define IMAGE_ENABLE_SIGN 1 + # define FIT_IMAGE_ENABLE_VERIFY 1 + # include <openssl/evp.h> +diff --git a/tools/Kconfig b/tools/Kconfig +index f8632cd59d..f01ed783e6 100644 +--- a/tools/Kconfig ++++ b/tools/Kconfig +@@ -51,6 +51,7 @@ config TOOLS_FIT_RSASSA_PSS + Support the rsassa-pss signature scheme in the tools builds + + config TOOLS_FIT_SIGNATURE ++ depends on TOOLS_LIBCRYPTO + def_bool y + help + Enable signature verification of FIT uImages in the tools builds +diff --git a/tools/fit_image.c b/tools/fit_image.c +index 71e031c855..beef1fa86e 100644 +--- a/tools/fit_image.c ++++ b/tools/fit_image.c +@@ -61,7 +61,7 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, + ret = fit_set_timestamp(ptr, 0, time); + } + +- if (!ret) ++ if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret) + ret = fit_pre_load_data(params->keydir, dest_blob, ptr); + + if (!ret) { +diff --git a/tools/image-host.c b/tools/image-host.c +index ca4950312f..90bc9f905f 100644 +--- a/tools/image-host.c ++++ b/tools/image-host.c +@@ -14,8 +14,10 @@ + #include <image.h> + #include <version.h> + ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + #include <openssl/pem.h> + #include <openssl/evp.h> ++#endif + + /** + * fit_set_hash_value - set hash value in requested has node +@@ -1131,6 +1133,7 @@ static int fit_config_add_verification_data(const char *keydir, + return 0; + } + ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + /* + * 0) open file (open) + * 1) read certificate (PEM_read_X509) +@@ -1239,6 +1242,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) + out: + return ret; + } ++#endif + + int fit_cipher_data(const char *keydir, void *keydest, void *fit, + const char *comment, int require_keys, +diff --git a/tools/mkimage.c b/tools/mkimage.c +index 6dfe3e1d42..ac62ebbde9 100644 +--- a/tools/mkimage.c ++++ b/tools/mkimage.c +@@ -115,7 +115,7 @@ static void usage(const char *msg) + " -B => align size in hex for FIT structure and header\n" + " -b => append the device tree binary to the FIT\n" + " -t => update the timestamp in the FIT\n"); +-#ifdef CONFIG_FIT_SIGNATURE ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + fprintf(stderr, + "Signing / verified boot options: [-k keydir] [-K dtb] [ -c <comment>] [-p addr] [-r] [-N engine]\n" + " -k => set directory containing private keys\n" +@@ -130,8 +130,9 @@ static void usage(const char *msg) + " -o => algorithm to use for signing\n"); + #else + fprintf(stderr, +- "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)\n"); ++ "Signing / verified boot not supported (CONFIG_TOOLS_FIT_SIGNATURE undefined)\n"); + #endif ++ + fprintf(stderr, " %s -V ==> print version information and exit\n", + params.cmdname); + fprintf(stderr, "Use '-T list' to see a list of available image types\n"); +-- +2.41.0 + diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch deleted file mode 100644 index 354aee2755..0000000000 --- a/gnu/packages/patches/u-boot-patman-change-id.patch +++ /dev/null @@ -1,232 +0,0 @@ -Upstream status: https://patchwork.ozlabs.org/project/uboot/patch/20231013030633.7191-1-maxim.cournoyer@gmail.com/ - -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@gmail.com> -Date: Thu, 12 Oct 2023 17:04:25 -0400 -Subject: [PATCH] patman: Add a 'keep_change_id' setting - -A Change-Id can be useful for traceability purposes, and some projects -may wish to have them preserved. This change makes it configurable -via a new 'keep_change_id' setting. - -Series-version: 2 -Series-changes: 2 -- Add missing argument to send parser ---- - tools/patman/__main__.py | 2 ++ - tools/patman/control.py | 12 +++++++++--- - tools/patman/patchstream.py | 17 ++++++++++++----- - tools/patman/patman.rst | 11 ++++++----- - tools/patman/test_checkpatch.py | 16 ++++++++++++++++ - 5 files changed, 45 insertions(+), 13 deletions(-) - -diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py -index 8eba5d3486..197ac1aad1 100755 ---- a/tools/patman/__main__.py -+++ b/tools/patman/__main__.py -@@ -103,6 +103,8 @@ send.add_argument('--no-signoff', action='store_false', dest='add_signoff', - default=True, help="Don't add Signed-off-by to patches") - send.add_argument('--smtp-server', type=str, - help="Specify the SMTP server to 'git send-email'") -+send.add_argument('--keep-change-id', action='store_true', -+ help='Preserve Change-Id tags in patches to send.') - - send.add_argument('patchfiles', nargs='*') - -diff --git a/tools/patman/control.py b/tools/patman/control.py -index 916ddf8fcf..b292da9dc2 100644 ---- a/tools/patman/control.py -+++ b/tools/patman/control.py -@@ -16,11 +16,14 @@ from patman import gitutil - from patman import patchstream - from u_boot_pylib import terminal - -+ - def setup(): - """Do required setup before doing anything""" - gitutil.setup() - --def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): -+ -+def prepare_patches(col, branch, count, start, end, ignore_binary, signoff, -+ keep_change_id=False): - """Figure out what patches to generate, then generate them - - The patch files are written to the current directory, e.g. 0001_xxx.patch -@@ -35,6 +38,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - end (int): End patch to use (0=last one in series, 1=one before that, - etc.) - ignore_binary (bool): Don't generate patches for binary files -+ keep_change_id (bool): Preserve the Change-Id tag. - - Returns: - Tuple: -@@ -59,11 +63,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - branch, start, to_do, ignore_binary, series, signoff) - - # Fix up the patch files to our liking, and insert the cover letter -- patchstream.fix_patches(series, patch_files) -+ patchstream.fix_patches(series, patch_files, keep_change_id) - if cover_fname and series.get('cover'): - patchstream.insert_cover_letter(cover_fname, series, to_do) - return series, cover_fname, patch_files - -+ - def check_patches(series, patch_files, run_checkpatch, verbose, use_tree): - """Run some checks on a set of patches - -@@ -166,7 +171,8 @@ def send(args): - col = terminal.Color() - series, cover_fname, patch_files = prepare_patches( - col, args.branch, args.count, args.start, args.end, -- args.ignore_binary, args.add_signoff) -+ args.ignore_binary, args.add_signoff, -+ keep_change_id=args.keep_change_id) - ok = check_patches(series, patch_files, args.check_patch, - args.verbose, args.check_patch_use_tree) - -diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py -index f91669a940..e2e2a83e67 100644 ---- a/tools/patman/patchstream.py -+++ b/tools/patman/patchstream.py -@@ -68,6 +68,7 @@ STATE_PATCH_SUBJECT = 1 # In patch subject (first line of log for a commit) - STATE_PATCH_HEADER = 2 # In patch header (after the subject) - STATE_DIFFS = 3 # In the diff part (past --- line) - -+ - class PatchStream: - """Class for detecting/injecting tags in a patch or series of patches - -@@ -76,7 +77,7 @@ class PatchStream: - unwanted tags or inject additional ones. These correspond to the two - phases of processing. - """ -- def __init__(self, series, is_log=False): -+ def __init__(self, series, is_log=False, keep_change_id=False): - self.skip_blank = False # True to skip a single blank line - self.found_test = False # Found a TEST= line - self.lines_after_test = 0 # Number of lines found after TEST= -@@ -86,6 +87,7 @@ class PatchStream: - self.section = [] # The current section...END section - self.series = series # Info about the patch series - self.is_log = is_log # True if indent like git log -+ self.keep_change_id = keep_change_id # True to keep Change-Id tags - self.in_change = None # Name of the change list we are in - self.change_version = 0 # Non-zero if we are in a change list - self.change_lines = [] # Lines of the current change -@@ -452,6 +454,8 @@ class PatchStream: - - # Detect Change-Id tags - elif change_id_match: -+ if self.keep_change_id: -+ out = [line] - value = change_id_match.group(1) - if self.is_log: - if self.commit.change_id: -@@ -763,7 +767,7 @@ def get_metadata_for_test(text): - pst.finalise() - return series - --def fix_patch(backup_dir, fname, series, cmt): -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=False): - """Fix up a patch file, by adding/removing as required. - - We remove our tags from the patch file, insert changes lists, etc. -@@ -776,6 +780,7 @@ def fix_patch(backup_dir, fname, series, cmt): - fname (str): Filename to patch file to process - series (Series): Series information about this patch set - cmt (Commit): Commit object for this patch file -+ keep_change_id (bool): Keep the Change-Id tag. - - Return: - list: A list of errors, each str, or [] if all ok. -@@ -783,7 +788,7 @@ def fix_patch(backup_dir, fname, series, cmt): - handle, tmpname = tempfile.mkstemp() - outfd = os.fdopen(handle, 'w', encoding='utf-8') - infd = open(fname, 'r', encoding='utf-8') -- pst = PatchStream(series) -+ pst = PatchStream(series, keep_change_id=keep_change_id) - pst.commit = cmt - pst.process_stream(infd, outfd) - infd.close() -@@ -795,7 +800,7 @@ def fix_patch(backup_dir, fname, series, cmt): - shutil.move(tmpname, fname) - return cmt.warn - --def fix_patches(series, fnames): -+def fix_patches(series, fnames, keep_change_id=False): - """Fix up a list of patches identified by filenames - - The patch files are processed in place, and overwritten. -@@ -803,6 +808,7 @@ def fix_patches(series, fnames): - Args: - series (Series): The Series object - fnames (:type: list of str): List of patch files to process -+ keep_change_id (bool): Keep the Change-Id tag. - """ - # Current workflow creates patches, so we shouldn't need a backup - backup_dir = None #tempfile.mkdtemp('clean-patch') -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): - cmt = series.commits[count] - cmt.patch = fname - cmt.count = count -- result = fix_patch(backup_dir, fname, series, cmt) -+ result = fix_patch(backup_dir, fname, series, cmt, -+ keep_change_id=keep_change_id) - if result: - print('%d warning%s for %s:' % - (len(result), 's' if len(result) > 1 else '', fname)) -diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst -index 038b651ee8..a8b317eed6 100644 ---- a/tools/patman/patman.rst -+++ b/tools/patman/patman.rst -@@ -371,11 +371,12 @@ Series-process-log: sort, uniq - Separate each tag with a comma. - - Change-Id: -- This tag is stripped out but is used to generate the Message-Id -- of the emails that will be sent. When you keep the Change-Id the -- same you are asserting that this is a slightly different version -- (but logically the same patch) as other patches that have been -- sent out with the same Change-Id. -+ This tag is used to generate the Message-Id of the emails that -+ will be sent. When you keep the Change-Id the same you are -+ asserting that this is a slightly different version (but logically -+ the same patch) as other patches that have been sent out with the -+ same Change-Id. The Change-Id tag line is removed from outgoing -+ patches, unless the `keep_change_id` settings is set to `True`. - - Various other tags are silently removed, like these Chrome OS and - Gerrit tags:: -diff --git a/tools/patman/test_checkpatch.py b/tools/patman/test_checkpatch.py -index a8bb364e42..59a53ef8ca 100644 ---- a/tools/patman/test_checkpatch.py -+++ b/tools/patman/test_checkpatch.py -@@ -160,6 +160,22 @@ Signed-off-by: Simon Glass <sjg@chromium.org> - - rc = os.system('diff -u %s %s' % (inname, expname)) - self.assertEqual(rc, 0) -+ os.remove(inname) -+ -+ # Test whether the keep_change_id settings works. -+ inhandle, inname = tempfile.mkstemp() -+ infd = os.fdopen(inhandle, 'w', encoding='utf-8') -+ infd.write(data) -+ infd.close() -+ -+ patchstream.fix_patch(None, inname, series.Series(), com, -+ keep_change_id=True) -+ -+ with open(inname, 'r') as f: -+ content = f.read() -+ self.assertIn( -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', -+ content) - - os.remove(inname) - os.remove(expname) - -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df --- -2.41.0 - |