Backport some upstream patches which will be included in rc3

This commit is contained in:
Björn Esser 2023-06-19 21:23:30 +02:00
parent a6a357b9e1
commit 4065822b5e
No known key found for this signature in database
GPG Key ID: F52E98007594C21D
11 changed files with 524 additions and 1 deletions

View File

@ -0,0 +1,29 @@
From 5de805bea21af6c20f35afcbb925b1856d643bbe Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,60 @@
From 1f39a3cd1a5b397d26cb9dfa1242573c1ee45143 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,44 @@
From 0c2610bd300218165e72524b87e998fd06d86ef5 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,36 @@
From 15d9d591bd8560284ec8b82b022ba0135ae58f82 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,35 @@
From acce355673b97cdf2d6841fddb338a6ab2eeaa43 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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 <GenEx Path Transformations>` operations learned
to process :ref:`lists <CMake Language 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

View File

@ -0,0 +1,80 @@
From 4bd1beded48dfa5150f13ed81df15035bce000d3 Mon Sep 17 00:00:00 2001
From: Matthew Woehlke <matthew.woehlke@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,67 @@
From 528cdc75519987a2004db94d1e7b0e445b1fb158 Mon Sep 17 00:00:00 2001
From: Matthew Woehlke <matthew.woehlke@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,33 @@
From a8679c997d05dffda9f0e892221da244177ee502 Mon Sep 17 00:00:00 2001
From: Markus Ferrell <markus.ferrell@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,38 @@
From 80ba2cccfc32f4c317a1a4d715344ee602f976e8 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <besser82@fedoraproject.org>
---
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

View File

@ -0,0 +1,86 @@
From 1cfaed0684e7e26687a3a0a607925456dc656c57 Mon Sep 17 00:00:00 2001
From: Marc Chevrier <marc.chevrier@gmail.com>
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

View File

@ -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 <besser82@fedoraproject.org> - 3.27.0~rc2-2
- Backport some upstream patches which will be included in rc3
* Mon Jun 12 2023 Björn Esser <besser82@fedoraproject.org> - 3.27.0~rc2-1
- cmake-3.27.0-rc2