Merge branch 'backport-ci-debian-13' into ci-debian-13

This commit is contained in:
Brad King
2025-11-12 14:44:43 -05:00
45 changed files with 134 additions and 117 deletions

View File

@@ -104,9 +104,9 @@ l:spellcheck:
- .linux_x86_64_tags
- .run_automatically
l:iwyu-debian12:
l:iwyu-debian13:
extends:
- .debian12_iwyu
- .debian13_iwyu
- .cmake_build_linux
- .linux_x86_64_tags
- .cmake_cdash_artifacts
@@ -245,9 +245,9 @@ b:centos7-aarch64:
CMAKE_CI_ARTIFACTS_NAME: "artifacts-centos7-aarch64"
CMAKE_CI_NO_MR: "true"
t:debian12-ninja:
t:debian13-ninja:
extends:
- .debian12_ninja
- .debian13_ninja
- .cmake_test_linux_release
- .linux_x86_64_tags
- .cmake_junit_artifacts
@@ -256,9 +256,9 @@ t:debian12-ninja:
variables:
CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
t:debian12-aarch64-ninja:
t:debian13-aarch64-ninja:
extends:
- .debian12_aarch64_ninja
- .debian13_aarch64_ninja
- .cmake_test_linux_release
- .linux_aarch64_tags
- .cmake_junit_artifacts
@@ -267,9 +267,9 @@ t:debian12-aarch64-ninja:
variables:
CMAKE_CI_NO_MR: "true"
t:debian12-ninja-clang:
t:debian13-ninja-clang:
extends:
- .debian12_ninja_clang
- .debian13_ninja_clang
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
@@ -277,9 +277,9 @@ t:debian12-ninja-clang:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:debian12-makefiles-clang:
t:debian13-makefiles-clang:
extends:
- .debian12_makefiles_clang
- .debian13_makefiles_clang
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
@@ -287,9 +287,9 @@ t:debian12-makefiles-clang:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:debian12-ninja-multi-symlinked:
t:debian13-ninja-multi-symlinked:
extends:
- .debian12_ninja_multi_symlinked
- .debian13_ninja_multi_symlinked
- .cmake_test_linux_release
- .linux_x86_64_tags
- .cmake_junit_artifacts
@@ -299,11 +299,11 @@ t:debian12-ninja-multi-symlinked:
CMAKE_CI_JOB_NIGHTLY: "true"
CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
t:debian12-hip-radeon:
t:debian13-hip-radeon:
extends:
- .debian12_hip_radeon
- .debian13_hip_radeon
- .cmake_test_linux_release
- .linux_x86_64_tags_rocm5.2
- .linux_x86_64_tags_rocm5.7
- .run_dependent
- .needs_centos7_x86_64
variables:
@@ -647,27 +647,27 @@ b:fedora43-makefiles-symlinked:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
b:debian12-makefiles-inplace:
b:debian13-makefiles-inplace:
extends:
- .debian12_makefiles_inplace
- .debian13_makefiles_inplace
- .cmake_build_linux_standalone
- .linux_x86_64_tags
- .run_manually
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
b:debian12-extdeps:
b:debian13-extdeps:
extends:
- .debian12_extdeps
- .debian13_extdeps
- .cmake_build_linux_standalone
- .linux_x86_64_tags
- .run_manually
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
b:debian12-aarch64-extdeps:
b:debian13-aarch64-extdeps:
extends:
- .debian12_aarch64_extdeps
- .debian13_aarch64_extdeps
- .cmake_build_linux_standalone
- .linux_aarch64_tags
- .run_manually

View File

@@ -2,6 +2,6 @@ set(CMake_RUN_IWYU ON CACHE BOOL "")
set(CMake_IWYU_OPTIONS "-DCMAKE_IWYU_FORWARD_STD_HASH" CACHE STRING "")
# Uncomment to diagnose IWYU problems as needed.
#set(CMake_IWYU_VERBOSE ON CACHE BOOL "")
set(IWYU_COMMAND "/usr/bin/include-what-you-use-15" CACHE FILEPATH "")
set(IWYU_COMMAND "/usr/bin/include-what-you-use-19" CACHE FILEPATH "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")

View File

@@ -1,4 +1,4 @@
set(CMake_TEST_ASM_NASM "ON" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_debian13_ninja_common.cmake")
set(CMake_TEST_UseSWIG "ON" CACHE BOOL "")

View File

@@ -90,7 +90,7 @@ set(CMake_TEST_FindPython3 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_IronPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
#set(CMake_TEST_FindRuby_RBENV "ON" CACHE BOOL "") # fails because system and rbenv versions are same
set(CMake_TEST_FindRuby_RBENV "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
set(CMake_TEST_FindSDL "ON" CACHE BOOL "")
set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "")

View File

@@ -3,5 +3,5 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_debian13_ninja_common.cmake")
set(CMake_TEST_UseSWIG "OFF" CACHE BOOL "")

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=arm64v8/debian:12
ARG BASE_IMAGE=arm64v8/debian:13
FROM ${BASE_IMAGE} AS cuda-keyring
ADD https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb /root/

View File

@@ -20,7 +20,7 @@ libzstd-dev
zlib1g-dev
# Install iwyu runtime deps.
clang-15
clang-19
libncurses6
# Tools needed for the test suite.
@@ -79,7 +79,7 @@ libopenal-dev
libopenmpi-dev openmpi-bin
libosp-dev
libpng-dev
libpq-dev postgresql-server-dev-15
libpq-dev postgresql-server-dev-17
libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc
libsdl1.2-dev
libsqlite3-dev
@@ -91,7 +91,7 @@ libxalan-c-dev
libxerces-c-dev
libxml2-dev libxml2-utils
libxslt-dev xsltproc
openjdk-17-jdk
openjdk-25-jdk
python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv
qtbase5-dev qtbase5-dev-tools
ruby ruby-dev

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=debian:12
ARG BASE_IMAGE=debian:13
FROM ${BASE_IMAGE} AS apt-cache
# Populate APT cache w/ the fresh metadata and prefetch packages.
@@ -58,7 +58,7 @@ RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \
RUN --mount=type=bind,from=iwyu-build,source=/root,target=/root \
tar -C / -xf /root/iwyu.tar \
&& ln -s /usr/lib/llvm-15/bin/include-what-you-use /usr/bin/include-what-you-use-15
&& ln -s /usr/lib/llvm-19/bin/include-what-you-use /usr/bin/include-what-you-use-19
RUN --mount=type=bind,from=rvm-build,source=/root,target=/root \
tar -C /usr/local -xf /root/rvm.tar

View File

@@ -20,7 +20,7 @@ libzstd-dev
zlib1g-dev
# Install iwyu runtime deps.
clang-15
clang-19
libncurses6
# Tools needed for the test suite.
@@ -38,9 +38,6 @@ nasm
# Install HIP language toolchain.
hipcc
# Install swift runtime deps.
libncurses5
# Install IAR compiler package dependencies.
libusb-1.0-0
udev
@@ -90,7 +87,7 @@ libopenal-dev
libopenmpi-dev openmpi-bin
libosp-dev
libpng-dev
libpq-dev postgresql-server-dev-15
libpq-dev postgresql-server-dev-17
libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc
libsdl1.2-dev
libsqlite3-dev
@@ -102,7 +99,7 @@ libxalan-c-dev
libxerces-c-dev
libxml2-dev libxml2-utils
libxslt-dev xsltproc
openjdk-17-jdk
openjdk-25-jdk
python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv
qtbase5-dev qtbase5-dev-tools
rbenv ruby-build

View File

@@ -8,7 +8,7 @@ apt-get install -y $(grep '^[^#]\+$' /root/iwyu_packages.lst)
cd /root
git clone "https://github.com/include-what-you-use/include-what-you-use.git"
cd include-what-you-use
readonly llvm_version="$( clang-15 --version | head -n1 | cut -d' ' -f4 | cut -d. -f-1 )"
readonly llvm_version="$( clang-19 --version | head -n1 | cut -d' ' -f4 | cut -d. -f-1 )"
git checkout "clang_$llvm_version"
mkdir build
cd build

View File

@@ -1,7 +1,7 @@
# Install development tools.
clang-15
libclang-15-dev
llvm-15-dev
clang-19
libclang-19-dev
llvm-19-dev
libz-dev
g++
cmake

View File

@@ -11,7 +11,7 @@ libc6-dev
libffi-dev
libgdbm-dev
libgmp-dev
libncurses5-dev
libncurses-dev
libreadline-dev
libsqlite3-dev
libssl-dev

View File

@@ -1,9 +0,0 @@
export HIPCXX=/usr/bin/clang++-15
export HIPFLAGS='--rocm-path=/usr --rocm-device-lib-path=/usr/lib/x86_64-linux-gnu/amdgcn/bitcode'
# FIXME(debian): Clang is supposed to automatically parse a HIP version file.
# The ROCm installer places it at '$prefix/bin/.hipVersion', but the package
# on Debian moves it to '$prefix/share/hip/version'. llvm-toolchain package
# version 15.0.7-4 has 'debian/patches/amdgpu/usr-search-paths.patch' for this,
# but Debian 12 currently provides version 15.0.6-4 without the patch.
export HIPFLAGS="$HIPFLAGS --hip-version=5.2"

View File

@@ -0,0 +1 @@
export HIPCXX=/usr/bin/clang++-17

View File

@@ -4,5 +4,5 @@ if test "$CMAKE_CI_NIGHTLY" = "true"; then
source .gitlab/ci/emsdk-env.sh
fi
export CC=/usr/bin/clang-15
export CXX=/usr/bin/clang++-15
export CC=/usr/bin/clang-19
export CXX=/usr/bin/clang++-19

View File

@@ -4,5 +4,5 @@ if test "$CMAKE_CI_NIGHTLY" = "true"; then
source .gitlab/ci/emsdk-env.sh
fi
export CC=/usr/bin/clang-15
export CXX=/usr/bin/clang++-15
export CC=/usr/bin/clang-19
export CXX=/usr/bin/clang++-19

View File

@@ -1,7 +1,7 @@
curl -L -O "https://download.swift.org/swift-5.7.1-release/ubuntu1804/swift-5.7.1-RELEASE/swift-5.7.1-RELEASE-ubuntu18.04.tar.gz"
echo '2b30f9efc969d9e96f0836d0871130dffb369822a3823ee6f3db44c29c1698e3 swift-5.7.1-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum
curl -L -O "https://download.swift.org/swift-6.2.1-release/debian12/swift-6.2.1-RELEASE/swift-6.2.1-RELEASE-debian12.tar.gz"
echo 'd6405e4fb7f092cbb9973a892ce8410837b4335f67d95bf8607baef1f69939e4 swift-6.2.1-RELEASE-debian12.tar.gz' > swift.sha256sum
sha256sum --check swift.sha256sum
mkdir /opt/swift
tar xzf swift-5.7.1-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2
rm swift-5.7.1-RELEASE-ubuntu18.04.tar.gz swift.sha256sum
tar xzf swift-6.2.1-RELEASE-debian12.tar.gz -C /opt/swift --strip-components=2
rm swift-6.2.1-RELEASE-debian12.tar.gz swift.sha256sum
export SWIFTC="/opt/swift/bin/swiftc"

View File

@@ -5,9 +5,9 @@ set -e
case "$(uname -s)-$(uname -m)" in
Linux-x86_64)
shatool="sha256sum"
sha256sum="c69ac58e403b82eac1c407cc67b35fab5d95c5d8db75b019095f9412aacff27d"
filename="ti_cgt_armllvm_3.2.1.LTS_linux-x64_installer.bin"
dirname="ti-cgt-armllvm_3.2.1.LTS"
sha256sum="98c60ecc259a07a54be6fcc0f55990332f493bfe5dad460c0ba83963f5dcb06f"
filename="ti_cgt_armllvm_4.0.4.LTS_linux-x64_installer.bin"
dirname="ti-cgt-armllvm_4.0.4.LTS"
;;
*)
echo "Unrecognized platform $(uname -s)-$(uname -m)"

View File

@@ -58,23 +58,23 @@
### Debian
.debian12:
image: "kitware/cmake:ci-debian12-x86_64-2025-03-31"
.debian13:
image: "kitware/cmake:ci-debian13-x86_64-2025-11-11"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
CMAKE_ARCH: x86_64
.debian12_iwyu:
extends: .debian12
.debian13_iwyu:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_iwyu
CMAKE_CONFIGURATION: debian13_iwyu
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_CI_NO_INSTALL: 1
.debian12_aarch64:
image: "kitware/cmake:ci-debian12-aarch64-2025-03-31"
.debian13_aarch64:
image: "kitware/cmake:ci-debian13-aarch64-2025-11-11"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -169,54 +169,54 @@
#### Build and test
.debian12_ninja:
extends: .debian12
.debian13_ninja:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_ninja
CMAKE_CONFIGURATION: debian13_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
.debian12_aarch64_ninja:
extends: .debian12_aarch64
.debian13_aarch64_ninja:
extends: .debian13_aarch64
variables:
CMAKE_CONFIGURATION: debian12_aarch64_ninja
CMAKE_CONFIGURATION: debian13_aarch64_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
.debian12_makefiles_inplace:
extends: .debian12
.debian13_makefiles_inplace:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_makefiles_inplace
CMAKE_CONFIGURATION: debian13_makefiles_inplace
CMAKE_GENERATOR: "Unix Makefiles"
CMAKE_CI_BOOTSTRAP: 1
CMAKE_CI_INPLACE: 1
CMAKE_CI_NO_INSTALL: 1
CTEST_NO_WARNINGS_ALLOWED: 1
.debian12_ninja_multi_symlinked:
extends: .debian12
.debian13_ninja_multi_symlinked:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_ninja_multi_symlinked
CMAKE_CONFIGURATION: debian13_ninja_multi_symlinked
CMAKE_GENERATOR: "Ninja Multi-Config"
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_CI_IN_SYMLINK_TREE: 1
CMAKE_CI_BUILD_DIR: "real_work/work/build"
.debian12_extdeps:
extends: .debian12
.debian13_extdeps:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_extdeps
CMAKE_CONFIGURATION: debian13_extdeps
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
.debian12_aarch64_extdeps:
extends: .debian12_aarch64
.debian13_aarch64_extdeps:
extends: .debian13_aarch64
variables:
CMAKE_CONFIGURATION: debian12_aarch64_extdeps
CMAKE_CONFIGURATION: debian13_aarch64_extdeps
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
@@ -272,18 +272,18 @@
### Clang Compiler
.debian12_makefiles_clang:
extends: .debian12
.debian13_makefiles_clang:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_makefiles_clang
CMAKE_CONFIGURATION: debian13_makefiles_clang
CMAKE_GENERATOR: "Unix Makefiles"
.debian12_ninja_clang:
extends: .debian12
.debian13_ninja_clang:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_ninja_clang
CMAKE_CONFIGURATION: debian13_ninja_clang
.fedora43_makefiles_clang:
extends: .fedora43
@@ -563,11 +563,11 @@
CMAKE_CONFIGURATION: hip6.3_radeon
CMAKE_GENERATOR: "Ninja Multi-Config"
.debian12_hip_radeon:
extends: .debian12
.debian13_hip_radeon:
extends: .debian13
variables:
CMAKE_CONFIGURATION: debian12_hip_radeon
CMAKE_CONFIGURATION: debian13_hip_radeon
CTEST_LABELS: "HIP"
.fedora43_hip_radeon:
@@ -689,11 +689,11 @@
- docker
- linux-x86_64
.linux_x86_64_tags_rocm5.2:
.linux_x86_64_tags_rocm5.7:
tags:
- cmake
- radeon
- rocm-5.2
- rocm-5.7
- docker
- linux-x86_64

View File

@@ -298,23 +298,29 @@ function(_ImageMagick_GetVersion)
)
foreach(dir IN LISTS ImageMagick_INCLUDE_DIRS)
if(EXISTS ${dir}/magick/version.h)
file(STRINGS "${dir}/magick/version.h" results REGEX "${regex}")
foreach(subdir IN ITEMS MagickCore magick)
if(EXISTS ${dir}/${subdir}/version.h)
file(STRINGS "${dir}/${subdir}/version.h" results REGEX "${regex}")
foreach(line ${results})
if(line MATCHES "${regex}")
if(DEFINED version)
string(APPEND version "${CMAKE_MATCH_2}")
else()
set(version "${CMAKE_MATCH_2}")
endif()
foreach(line ${results})
if(line MATCHES "${regex}")
if(DEFINED version)
string(APPEND version "${CMAKE_MATCH_2}")
else()
set(version "${CMAKE_MATCH_2}")
endif()
if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum")
break()
if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum")
break()
endif()
endif()
endif()
endforeach()
endif()
endforeach()
endif()
if(DEFINED version)
break()
endif()
endforeach()
if(DEFINED version)
break()

View File

@@ -385,6 +385,11 @@ set(_JNI_JAVA_DIRECTORIES_BASE
# Arch Linux specific paths for default JVM
/usr/lib/jvm/default
# Ubuntu specific paths for default JVM
/usr/lib/jvm/java-26-openjdk-{libarch}
/usr/lib/jvm/java-25-openjdk-{libarch} # Ubuntu 24.04 LTS
/usr/lib/jvm/java-24-openjdk-{libarch}
/usr/lib/jvm/java-23-openjdk-{libarch}
/usr/lib/jvm/java-22-openjdk-{libarch}
/usr/lib/jvm/java-21-openjdk-{libarch} # Ubuntu 23.04
/usr/lib/jvm/java-20-openjdk-{libarch} # Ubuntu 22.10
/usr/lib/jvm/java-19-openjdk-{libarch} # Ubuntu 22.04 LTS

View File

@@ -131,6 +131,7 @@ indicated by preprocessor macros in the ``libpq-fe.h`` header (e.g.
# 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:
# "17"
# "16" "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:
@@ -180,6 +181,7 @@ set(PostgreSQL_ROOT_DIR_MESSAGE "Set the PostgreSQL_ROOT system variable to wher
set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
"17"
"16" "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.

View File

@@ -181,3 +181,9 @@ void cmDocumentationFormatter::PrintSection(
this->TextIndent = savedIndent;
}
void cmDocumentationFormatter::PrintFormatted(std::ostream& os,
std::string const& text) const
{
os << this->Format(text);
}

View File

@@ -18,10 +18,7 @@ class cmDocumentationFormatter
public:
std::string Format(cm::string_view text) const;
void PrintSection(std::ostream& os, cmDocumentationSection const& section);
void PrintFormatted(std::ostream& os, std::string const& text) const
{
os << this->Format(text);
}
void PrintFormatted(std::ostream& os, std::string const& text) const;
void SetIndent(std::size_t indent) { this->TextIndent = indent; }
static constexpr std::size_t TEXT_WIDTH = 77u;

View File

@@ -14,4 +14,7 @@ add_test(NAME test_magick++ COMMAND test_magick++)
add_executable(test_magick_wand main_magick_wand.c)
target_link_libraries(test_magick_wand ImageMagick::MagickWand)
if(ImageMagick_VERSION VERSION_GREATER_EQUAL 7)
target_compile_definitions(test_magick_wand PRIVATE TEST_IMAGE_MAGICK_7)
endif()
add_test(NAME test_magick_wand COMMAND test_magick_wand)

View File

@@ -1,4 +1,8 @@
#include <wand/MagickWand.h>
#ifdef TEST_IMAGE_MAGICK_7
# include <MagickWand/MagickWand.h>
#else
# include <wand/MagickWand.h>
#endif
int main(void)
{

View File

@@ -6,6 +6,10 @@ set (CMAKE_CXX_VISIBILITY_PRESET hidden)
find_package (JNI REQUIRED)
find_package (Java REQUIRED COMPONENTS Runtime Development)
if(Java_VERSION VERSION_GREATER_EQUAL 24)
set(enable_native_access --enable-native-access=ALL-UNNAMED)
endif()
add_library (MinimalTgt MODULE minimal.cxx)
target_link_libraries (MinimalTgt PRIVATE JNI::JNI)
@@ -24,6 +28,7 @@ foreach (test MinimalTgt MinimalVar)
add_test (NAME ${test} COMMAND ${Java_JAVA_EXECUTABLE}
-cp ${TestMinimal_SOURCE_DIR}
-Djava.library.path=$<TARGET_FILE_DIR:${test}>
${enable_native_access}
${test}
)