From 4065822b5e5685e1ac83e7c1ec154ea6ba35c7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 19 Jun 2023 21:23:30 +0200 Subject: [PATCH] Backport some upstream patches which will be included in rc3 --- ...-Fix-flake8-E124-diagnostic-in-cmake.patch | 29 +++++++ ...-Restore-explicit-check-for-Sphinx-2.patch | 60 +++++++++++++ ...XECUTABLE-early-enough-to-use-in-all.patch | 44 ++++++++++ ...-git-to-enable-RunCMake.CMP0150-test.patch | 36 ++++++++ ...lease-note-for-TARGET_RUNTIME_DLL_DI.patch | 35 ++++++++ ...ties-Sphinx-Don-t-ignore-flake8-E402.patch | 80 +++++++++++++++++ ...lities-Sphinx-Fix-some-flake8-gripes.patch | 67 +++++++++++++++ ...literal-include-to-contain-full-code.patch | 33 +++++++ ...ostgreSQL-Add-support-for-version-15.patch | 38 ++++++++ 0010-list-restore-SUBLIST-behavior.patch | 86 +++++++++++++++++++ cmake.spec | 17 +++- 11 files changed, 524 insertions(+), 1 deletion(-) create mode 100644 0001-Utilities-Sphinx-Fix-flake8-E124-diagnostic-in-cmake.patch create mode 100644 0002-Utilities-Sphinx-Restore-explicit-check-for-Sphinx-2.patch create mode 100644 0003-Tests-Find-GIT_EXECUTABLE-early-enough-to-use-in-all.patch create mode 100644 0004-Tests-Require-git-to-enable-RunCMake.CMP0150-test.patch create mode 100644 0005-Help-Add-3.27-release-note-for-TARGET_RUNTIME_DLL_DI.patch create mode 100644 0006-Utilities-Sphinx-Don-t-ignore-flake8-E402.patch create mode 100644 0007-Utilities-Sphinx-Fix-some-flake8-gripes.patch create mode 100644 0008-Tutorial-Extend-literal-include-to-contain-full-code.patch create mode 100644 0009-FindPostgreSQL-Add-support-for-version-15.patch create mode 100644 0010-list-restore-SUBLIST-behavior.patch diff --git a/0001-Utilities-Sphinx-Fix-flake8-E124-diagnostic-in-cmake.patch b/0001-Utilities-Sphinx-Fix-flake8-E124-diagnostic-in-cmake.patch new file mode 100644 index 0000000..e39f550 --- /dev/null +++ b/0001-Utilities-Sphinx-Fix-flake8-E124-diagnostic-in-cmake.patch @@ -0,0 +1,29 @@ +From 5de805bea21af6c20f35afcbb925b1856d643bbe Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Mon, 12 Jun 2023 17:33:59 -0400 +Subject: [PATCH 1/9] Utilities/Sphinx: Fix flake8 E124 diagnostic in cmake.py +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Björn Esser +--- + Utilities/Sphinx/cmake.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py +index ffef5b36a2..faca2eda7f 100644 +--- a/Utilities/Sphinx/cmake.py ++++ b/Utilities/Sphinx/cmake.py +@@ -514,7 +514,7 @@ class CMakeReferenceRole: + class Class(parent): + def __call__(self, name: str, rawtext: str, text: str, + *args, **kwargs +- ) -> Tuple[List[Node], List[system_message]]: ++ ) -> Tuple[List[Node], List[system_message]]: + text = CMakeReferenceRole._escape_angle_brackets(text) + return super().__call__(name, rawtext, text, *args, **kwargs) + return Class +-- +2.41.0 + diff --git a/0002-Utilities-Sphinx-Restore-explicit-check-for-Sphinx-2.patch b/0002-Utilities-Sphinx-Restore-explicit-check-for-Sphinx-2.patch new file mode 100644 index 0000000..5117772 --- /dev/null +++ b/0002-Utilities-Sphinx-Restore-explicit-check-for-Sphinx-2.patch @@ -0,0 +1,60 @@ +From 1f39a3cd1a5b397d26cb9dfa1242573c1ee45143 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Mon, 12 Jun 2023 17:37:13 -0400 +Subject: [PATCH 2/9] Utilities/Sphinx: Restore explicit check for Sphinx 2.x + or later +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Refactoring in commit adbc8c982d (Utilities/Sphinx: Fix flake8 gripes in +cmake.py, 2023-03-13, v3.27.0-rc1~317^2) moved the assertion added by +commit cef51925a4 (Utilities/Sphinx: Require Sphinx 2.x or later, +2023-03-13, v3.27.0-rc1~317^2~2) to after imports, which is too late to +clearly reject older Sphinx versions. + +Signed-off-by: Björn Esser +--- + Utilities/Sphinx/.flake8 | 3 +++ + Utilities/Sphinx/cmake.py | 8 +++++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + create mode 100644 Utilities/Sphinx/.flake8 + +diff --git a/Utilities/Sphinx/.flake8 b/Utilities/Sphinx/.flake8 +new file mode 100644 +index 0000000000..7218008fed +--- /dev/null ++++ b/Utilities/Sphinx/.flake8 +@@ -0,0 +1,3 @@ ++[flake8] ++per-file-ignores = ++ cmake.py: E402 +diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py +index faca2eda7f..d3eb94814c 100644 +--- a/Utilities/Sphinx/cmake.py ++++ b/Utilities/Sphinx/cmake.py +@@ -11,6 +11,11 @@ from typing import Any, List, Tuple, Type, cast + + import sphinx + ++# Require at least Sphinx 2.x. ++# flake8 issues E402 for imports after this, but the purpose of this ++# check is to fail more clearly if the imports below will fail. ++assert sphinx.version_info >= (2,) ++ + from docutils.utils.code_analyzer import Lexer, LexerError + from docutils.parsers.rst import Directive, directives + from docutils.transforms import Transform +@@ -110,9 +115,6 @@ CMakeLexer.tokens["root"] = [ + + # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +-# Require at least Sphinx 2.x. +-assert sphinx.version_info >= (2,) +- + logger = logging.getLogger(__name__) + + # RE to split multiple command signatures. +-- +2.41.0 + diff --git a/0003-Tests-Find-GIT_EXECUTABLE-early-enough-to-use-in-all.patch b/0003-Tests-Find-GIT_EXECUTABLE-early-enough-to-use-in-all.patch new file mode 100644 index 0000000..aae107b --- /dev/null +++ b/0003-Tests-Find-GIT_EXECUTABLE-early-enough-to-use-in-all.patch @@ -0,0 +1,44 @@ +From 0c2610bd300218165e72524b87e998fd06d86ef5 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Mon, 12 Jun 2023 17:53:20 -0400 +Subject: [PATCH 3/9] Tests: Find GIT_EXECUTABLE early enough to use in all + tests +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some tests work only if a `git` executable is available. + +Signed-off-by: Björn Esser +--- + Tests/CMakeLists.txt | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt +index 5ef77fda62..53bb1e654b 100644 +--- a/Tests/CMakeLists.txt ++++ b/Tests/CMakeLists.txt +@@ -142,6 +142,9 @@ if(BUILD_TESTING) + ) + endif() + ++ # Look for git to use for tests. ++ find_program(GIT_EXECUTABLE NAMES git) ++ + # Look for rpmbuild to use for tests. + # The tool does not work with spaces in the path. + if(NOT CMAKE_CURRENT_BINARY_DIR MATCHES " ") +@@ -2688,10 +2691,6 @@ if(BUILD_TESTING) + endif() + + # Test CTest Update with GIT +- if(NOT DEFINED CMake_TEST_CTestUpdate_GIT OR CMake_TEST_CTestUpdate_GIT) +- find_program(GIT_EXECUTABLE NAMES git) +- mark_as_advanced(GIT_EXECUTABLE) +- endif() + if(NOT DEFINED CMake_TEST_CTestUpdate_GIT AND GIT_EXECUTABLE + AND (UNIX OR NOT "${GIT_EXECUTABLE}" MATCHES "cygwin")) + set(CMake_TEST_CTestUpdate_GIT 1) +-- +2.41.0 + diff --git a/0004-Tests-Require-git-to-enable-RunCMake.CMP0150-test.patch b/0004-Tests-Require-git-to-enable-RunCMake.CMP0150-test.patch new file mode 100644 index 0000000..a49c3e2 --- /dev/null +++ b/0004-Tests-Require-git-to-enable-RunCMake.CMP0150-test.patch @@ -0,0 +1,36 @@ +From 15d9d591bd8560284ec8b82b022ba0135ae58f82 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Mon, 12 Jun 2023 17:56:53 -0400 +Subject: [PATCH 4/9] Tests: Require git to enable RunCMake.CMP0150 test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The test added by commit 550f63447d (ExternalProject/FetchContent: +Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) covers +Git-specific functionality, and requires a `git` tool to be available. + +Signed-off-by: Björn Esser +--- + Tests/RunCMake/CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt +index d4f3341a15..f089a963cd 100644 +--- a/Tests/RunCMake/CMakeLists.txt ++++ b/Tests/RunCMake/CMakeLists.txt +@@ -160,7 +160,10 @@ endif() + add_RunCMake_test(CMP0132) + add_RunCMake_test(CMP0135) + add_RunCMake_test(CMP0139) +-add_RunCMake_test(CMP0150) ++ ++if(GIT_EXECUTABLE) ++ add_RunCMake_test(CMP0150) ++endif() + + # The test for Policy 65 requires the use of the + # CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS variable, which both the VS and Xcode +-- +2.41.0 + diff --git a/0005-Help-Add-3.27-release-note-for-TARGET_RUNTIME_DLL_DI.patch b/0005-Help-Add-3.27-release-note-for-TARGET_RUNTIME_DLL_DI.patch new file mode 100644 index 0000000..640283c --- /dev/null +++ b/0005-Help-Add-3.27-release-note-for-TARGET_RUNTIME_DLL_DI.patch @@ -0,0 +1,35 @@ +From acce355673b97cdf2d6841fddb338a6ab2eeaa43 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Tue, 13 Jun 2023 10:57:09 -0400 +Subject: [PATCH 5/9] Help: Add 3.27 release note for TARGET_RUNTIME_DLL_DIRS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This was accidentally left out of commit 2ce3d62ffb (Help: add +documentation for the new TARGET_RUNTIME_DLL_DIRS genex, 2023-02-26, +v3.27.0-rc1~400^2~2). + +Signed-off-by: Björn Esser +--- + Help/release/3.27.rst | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Help/release/3.27.rst b/Help/release/3.27.rst +index dadd7a60a6..930a0dc13c 100644 +--- a/Help/release/3.27.rst ++++ b/Help/release/3.27.rst +@@ -157,6 +157,10 @@ Generator Expressions + :ref:`transformation ` operations learned + to process :ref:`lists ` of paths element-wise. + ++* The :genex:`TARGET_RUNTIME_DLL_DIRS` generator expression was added. ++ It expands to a list of the directories containing DLLs in ++ :genex:`TARGET_RUNTIME_DLLS`. ++ + Autogen + ------- + +-- +2.41.0 + diff --git a/0006-Utilities-Sphinx-Don-t-ignore-flake8-E402.patch b/0006-Utilities-Sphinx-Don-t-ignore-flake8-E402.patch new file mode 100644 index 0000000..7895532 --- /dev/null +++ b/0006-Utilities-Sphinx-Don-t-ignore-flake8-E402.patch @@ -0,0 +1,80 @@ +From 4bd1beded48dfa5150f13ed81df15035bce000d3 Mon Sep 17 00:00:00 2001 +From: Matthew Woehlke +Date: Tue, 13 Jun 2023 11:25:14 -0400 +Subject: [PATCH 6/9] Utilities/Sphinx: Don't ignore flake8 E402 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Refactor commit 1f39a3cd1a (Utilities/Sphinx: Restore explicit check for +Sphinx 2.x or later) to avoid needing to suppress flake8 E402. While +ignoring it with respect to the docutils/sphinx imports and the sphinx +version check was correct, the need to disable it for the whole file was +suboptimal. + +Signed-off-by: Björn Esser +--- + Utilities/Sphinx/.flake8 | 3 --- + Utilities/Sphinx/cmake.py | 36 ++++++++++++++++++------------------ + 2 files changed, 18 insertions(+), 21 deletions(-) + delete mode 100644 Utilities/Sphinx/.flake8 + +diff --git a/Utilities/Sphinx/.flake8 b/Utilities/Sphinx/.flake8 +deleted file mode 100644 +index 7218008fed..0000000000 +--- a/Utilities/Sphinx/.flake8 ++++ /dev/null +@@ -1,3 +0,0 @@ +-[flake8] +-per-file-ignores = +- cmake.py: E402 +diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py +index d3eb94814c..e6c2266938 100644 +--- a/Utilities/Sphinx/cmake.py ++++ b/Utilities/Sphinx/cmake.py +@@ -11,24 +11,24 @@ from typing import Any, List, Tuple, Type, cast + + import sphinx + +-# Require at least Sphinx 2.x. +-# flake8 issues E402 for imports after this, but the purpose of this +-# check is to fail more clearly if the imports below will fail. +-assert sphinx.version_info >= (2,) +- +-from docutils.utils.code_analyzer import Lexer, LexerError +-from docutils.parsers.rst import Directive, directives +-from docutils.transforms import Transform +-from docutils.nodes import Element, Node, TextElement, system_message +-from docutils import io, nodes +- +-from sphinx.directives import ObjectDescription, nl_escape_re +-from sphinx.domains import Domain, ObjType +-from sphinx.roles import XRefRole +-from sphinx.util.docutils import ReferenceRole +-from sphinx.util.nodes import make_refnode +-from sphinx.util import logging, ws_re +-from sphinx import addnodes ++# The following imports may fail if we don't have Sphinx 2.x or later. ++if sphinx.version_info >= (2,): ++ from docutils.utils.code_analyzer import Lexer, LexerError ++ from docutils.parsers.rst import Directive, directives ++ from docutils.transforms import Transform ++ from docutils.nodes import Element, Node, TextElement, system_message ++ from docutils import io, nodes ++ ++ from sphinx.directives import ObjectDescription, nl_escape_re ++ from sphinx.domains import Domain, ObjType ++ from sphinx.roles import XRefRole ++ from sphinx.util.docutils import ReferenceRole ++ from sphinx.util.nodes import make_refnode ++ from sphinx.util import logging, ws_re ++ from sphinx import addnodes ++else: ++ # Sphinx 2.x is required. ++ assert sphinx.version_info >= (2,) + + # END imports + +-- +2.41.0 + diff --git a/0007-Utilities-Sphinx-Fix-some-flake8-gripes.patch b/0007-Utilities-Sphinx-Fix-some-flake8-gripes.patch new file mode 100644 index 0000000..5110241 --- /dev/null +++ b/0007-Utilities-Sphinx-Fix-some-flake8-gripes.patch @@ -0,0 +1,67 @@ +From 528cdc75519987a2004db94d1e7b0e445b1fb158 Mon Sep 17 00:00:00 2001 +From: Matthew Woehlke +Date: Tue, 13 Jun 2023 11:39:48 -0400 +Subject: [PATCH 7/9] Utilities/Sphinx: Fix some flake8 gripes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reorder some imports to better conform to what flake8 wants. + +Signed-off-by: Björn Esser +--- + Utilities/Sphinx/cmake.py | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py +index e6c2266938..0afd705a9e 100644 +--- a/Utilities/Sphinx/cmake.py ++++ b/Utilities/Sphinx/cmake.py +@@ -5,7 +5,6 @@ + + import os + import re +- + from dataclasses import dataclass + from typing import Any, List, Tuple, Type, cast + +@@ -13,19 +12,19 @@ import sphinx + + # The following imports may fail if we don't have Sphinx 2.x or later. + if sphinx.version_info >= (2,): +- from docutils.utils.code_analyzer import Lexer, LexerError ++ from docutils import io, nodes ++ from docutils.nodes import Element, Node, TextElement, system_message + from docutils.parsers.rst import Directive, directives + from docutils.transforms import Transform +- from docutils.nodes import Element, Node, TextElement, system_message +- from docutils import io, nodes ++ from docutils.utils.code_analyzer import Lexer, LexerError + ++ from sphinx import addnodes + from sphinx.directives import ObjectDescription, nl_escape_re + from sphinx.domains import Domain, ObjType + from sphinx.roles import XRefRole ++ from sphinx.util import logging, ws_re + from sphinx.util.docutils import ReferenceRole + from sphinx.util.nodes import make_refnode +- from sphinx.util import logging, ws_re +- from sphinx import addnodes + else: + # Sphinx 2.x is required. + assert sphinx.version_info >= (2,) +@@ -47,10 +46,10 @@ else: + # - manual/cmake-buildsystem.7.html + # (with nested $<..>; relative and absolute paths, "::") + ++from pygments.lexer import bygroups # noqa I100 + from pygments.lexers import CMakeLexer + from pygments.token import (Comment, Name, Number, Operator, Punctuation, + String, Text, Whitespace) +-from pygments.lexer import bygroups + + # Notes on regular expressions below: + # - [\.\+-] are needed for string constants like gtk+-2.0 +-- +2.41.0 + diff --git a/0008-Tutorial-Extend-literal-include-to-contain-full-code.patch b/0008-Tutorial-Extend-literal-include-to-contain-full-code.patch new file mode 100644 index 0000000..ccdbdb9 --- /dev/null +++ b/0008-Tutorial-Extend-literal-include-to-contain-full-code.patch @@ -0,0 +1,33 @@ +From a8679c997d05dffda9f0e892221da244177ee502 Mon Sep 17 00:00:00 2001 +From: Markus Ferrell +Date: Wed, 14 Jun 2023 19:34:41 -0400 +Subject: [PATCH 8/9] Tutorial: Extend literal include to contain full code + changes in solution +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The solution for step 7 todo 5 did not include all of the code changes. +Modify it to include the needed `#endif` code change. + +Signed-off-by: Björn Esser +--- + Help/guide/tutorial/Adding System Introspection.rst | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Help/guide/tutorial/Adding System Introspection.rst b/Help/guide/tutorial/Adding System Introspection.rst +index b3147736a3..117b2306d9 100644 +--- a/Help/guide/tutorial/Adding System Introspection.rst ++++ b/Help/guide/tutorial/Adding System Introspection.rst +@@ -156,7 +156,7 @@ compute the square root in the ``mysqrt`` function. The ``mysqrt`` function in + :name: MathFunctions/mysqrt.cxx-ifdef + :language: c++ + :start-after: // if we have both log and exp then use them +- :end-before: // do ten iterations ++ :end-before: return result; + + .. raw:: html + +-- +2.41.0 + diff --git a/0009-FindPostgreSQL-Add-support-for-version-15.patch b/0009-FindPostgreSQL-Add-support-for-version-15.patch new file mode 100644 index 0000000..0be05d5 --- /dev/null +++ b/0009-FindPostgreSQL-Add-support-for-version-15.patch @@ -0,0 +1,38 @@ +From 80ba2cccfc32f4c317a1a4d715344ee602f976e8 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Mon, 12 Jun 2023 11:13:15 -0400 +Subject: [PATCH 9/9] FindPostgreSQL: Add support for version 15 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Björn Esser +--- + Modules/FindPostgreSQL.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Modules/FindPostgreSQL.cmake b/Modules/FindPostgreSQL.cmake +index c92fbdcd22..6e970e8432 100644 +--- a/Modules/FindPostgreSQL.cmake ++++ b/Modules/FindPostgreSQL.cmake +@@ -53,7 +53,7 @@ is set regardless of the presence of the ``Server`` component in find_package ca + # In Windows the default installation of PostgreSQL uses that as part of the path. + # E.g C:\Program Files\PostgreSQL\8.4. + # Currently, the following version numbers are known to this module: +-# "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0" ++# "15" "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0" + # + # To use this variable just do something like this: + # set(PostgreSQL_ADDITIONAL_VERSIONS "9.2" "8.4.4") +@@ -102,7 +102,7 @@ set(PostgreSQL_ROOT_DIR_MESSAGE "Set the PostgreSQL_ROOT system variable to wher + + + set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS} +- "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0") ++ "15" "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0") + + # Define additional search paths for root directories. + set( PostgreSQL_ROOT_DIRECTORIES +-- +2.41.0 + diff --git a/0010-list-restore-SUBLIST-behavior.patch b/0010-list-restore-SUBLIST-behavior.patch new file mode 100644 index 0000000..10968d9 --- /dev/null +++ b/0010-list-restore-SUBLIST-behavior.patch @@ -0,0 +1,86 @@ +From 1cfaed0684e7e26687a3a0a607925456dc656c57 Mon Sep 17 00:00:00 2001 +From: Marc Chevrier +Date: Fri, 16 Jun 2023 15:09:57 +0200 +Subject: [PATCH] list(): restore SUBLIST behavior + +Fixes: #25002 +--- + Source/cmList.h | 2 +- + Tests/RunCMake/list/SUBLIST.cmake | 51 +++++++++++++++++++++++++++++++ + 2 files changed, 52 insertions(+), 1 deletion(-) + +diff --git a/Source/cmList.h b/Source/cmList.h +index d9ce9510c6b..eba0400c934 100644 +--- a/Source/cmList.h ++++ b/Source/cmList.h +@@ -322,7 +322,7 @@ public: + // extract sublist in range [first, last) + cmList sublist(const_iterator first, const_iterator last) const + { +- return cmList{ first, last }; ++ return cmList{ first, last, ExpandElements::No, EmptyElements::Yes }; + } + // Extract sublist in range [first, last) + // Throw std::out_of_range if pos is invalid +diff --git a/Tests/RunCMake/list/SUBLIST.cmake b/Tests/RunCMake/list/SUBLIST.cmake +index fd15c28447d..6a33addc846 100644 +--- a/Tests/RunCMake/list/SUBLIST.cmake ++++ b/Tests/RunCMake/list/SUBLIST.cmake +@@ -44,3 +44,54 @@ list(SUBLIST mylist 1 -1 result) + if (NOT result STREQUAL "bravo;charlie;delta") + message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \"bravo;charlie;delta\"") + endif() ++ ++ ++set(mylist ";;") ++ ++unset(result) ++list(SUBLIST mylist 0 0 result) ++ ++if (NOT result STREQUAL "") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \"\"") ++endif() ++ ++unset(result) ++list(SUBLIST mylist 0 1 result) ++ ++if (NOT result STREQUAL "") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \"\"") ++endif() ++ ++unset(result) ++list(SUBLIST mylist 0 2 result) ++ ++if (NOT result STREQUAL ";") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \";\"") ++endif() ++ ++unset(result) ++list(SUBLIST mylist 0 3 result) ++ ++if (NOT result STREQUAL ";;") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \";;\"") ++endif() ++ ++ ++set(mylist [[a\;b;c\;d;e]]) ++ ++unset(result) ++list(SUBLIST mylist 1 2 result) ++ ++if (NOT result STREQUAL "c;d;e") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \"c;d;e\"") ++endif() ++ ++ ++set(mylist [[a\;b;c\\;d;e;f;g;h]]) ++ ++unset(result) ++list(SUBLIST mylist 1 -1 result) ++ ++if (NOT result STREQUAL "c\\;d;e;f;g;h") ++ message (FATAL_ERROR "SUBLIST is \"${result}\", expected is \"c\\;d;e;f;g;h\"") ++endif() +-- +GitLab + diff --git a/cmake.spec b/cmake.spec index d7523c9..7517b85 100644 --- a/cmake.spec +++ b/cmake.spec @@ -69,7 +69,7 @@ %global patch_version 0 # For handling bump release by rpmdev-bumpspec and mass rebuild -%global baserelease 1 +%global baserelease 2 # Set to RC version if building RC, else comment out. %global rcsuf rc2 @@ -115,6 +115,18 @@ Source5: %{name}.req # https://bugzilla.redhat.com/show_bug.cgi?id=822796 Patch100: %{name}-findruby.patch +# Upstream +Patch1001: 0001-Utilities-Sphinx-Fix-flake8-E124-diagnostic-in-cmake.patch +Patch1002: 0002-Utilities-Sphinx-Restore-explicit-check-for-Sphinx-2.patch +Patch1003: 0003-Tests-Find-GIT_EXECUTABLE-early-enough-to-use-in-all.patch +Patch1004: 0004-Tests-Require-git-to-enable-RunCMake.CMP0150-test.patch +Patch1005: 0005-Help-Add-3.27-release-note-for-TARGET_RUNTIME_DLL_DI.patch +Patch1006: 0006-Utilities-Sphinx-Don-t-ignore-flake8-E402.patch +Patch1007: 0007-Utilities-Sphinx-Fix-some-flake8-gripes.patch +Patch1008: 0008-Tutorial-Extend-literal-include-to-contain-full-code.patch +Patch1009: 0009-FindPostgreSQL-Add-support-for-version-15.patch +Patch1010: https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8569.patch#/0010-list-restore-SUBLIST-behavior.patch + # Patch for renaming on EPEL %if 0%{?name_suffix:1} Patch1: %{name}-rename.patch @@ -553,6 +565,9 @@ popd %changelog +* Mon Jun 19 2023 Björn Esser - 3.27.0~rc2-2 +- Backport some upstream patches which will be included in rc3 + * Mon Jun 12 2023 Björn Esser - 3.27.0~rc2-1 - cmake-3.27.0-rc2