Accepting request 1185206 from home:mathletic:branches:devel:tools:building

- udate to 3.30.0
  * "cmake-presets(7)" files now support schema version "9".
    "include"  fields now expand all macros except "$env{}" and
    preset-specific macros, i.e., those derived from the fields
    inside a preset's definition.
  * The "Compile Features" functionality now implements support
    for the "cxx_std_26" and "cuda_std_26" meta-features to
    indicate that the compiler mode must be at least C++26.
  * The "CMAKE_<LANG>_STANDARD_LATEST" variable was added to
    describe the latest "<LANG>" language standard CMake supports
    for the selected compiler.
  * The "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION"
    environment variable were added to specify a default minimum
    TLS version for connections to "https://" URLs by the
    "file(DOWNLOAD)" and "file(UPLOAD)" commands.
  * The "GENERATED" source file property is now visible in all
    directories.  See policy "CMP0163".  Policy "CMP0118"'s
    documentation has been revised to describe its actual effects.
  * The "TARGET_PROPERTY" generator expression learned to evaluate
    custom transitive properties.
  * The "CPack WIX Generator" gained support for WiX Toolset v4.
    See the "CPACK_WIX_VERSION" variable.
  * The "FindBoost" module has been removed by policy "CMP0167".
    Port projects to upstream Boost's "BoostConfig.cmake" package
    configuration file, for which "find_package(Boost)" now
    searches.
- Add cmake-fix-test-without-git.patch to fix test #567 to be run
  conditionally when Git is found, upstream planned for 3.30.1

OBS-URL: https://build.opensuse.org/request/show/1185206
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/cmake?expand=0&rev=587
This commit is contained in:
Dirk Mueller 2024-07-04 07:04:30 +00:00 committed by Git OBS Bridge
commit e0903fafcc
18 changed files with 5306 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

14
README.SUSE Normal file
View File

@ -0,0 +1,14 @@
The package 'cmake' only ships a README.SUSE file and serves
as a meta-package.
cmake requires cmake-implementation, which inside OBS is provided by
* cmake-mini (minimal cmake variant, no especially no libcurl/libarchive)
* cmake-full (what used to be called cmake before)
This complex setup was done in order to be able to eliminate build cycles, as
more and more tools were moving to cmake as build system, but with curl in the
build chain, was making it increasingly difficult to break the cycle.
cmake-mini is not meant for installation on end-user systems (where it also would
not save a lot; as an end user, you have libcurl on your system anyway due to libzypp)
and is thus not part of the FTP Tree.

7
_constraints Normal file
View File

@ -0,0 +1,7 @@
<constraints>
<hardware>
<disk>
<size unit="G">10</size>
</disk>
</hardware>
</constraints>

5
_multibuild Normal file
View File

@ -0,0 +1,5 @@
<multibuild>
<flavor>mini</flavor>
<flavor>full</flavor>
<flavor>gui</flavor>
</multibuild>

17
cmake-3.30.0-SHA-256.txt Normal file
View File

@ -0,0 +1,17 @@
249f4cd4367b5e48e8b45f2ab1f5ef80a081f7604d2fa9b4ac0684a66cb644ee cmake-3.30.0-files-v1.json
daa89552fd9102fb70399b31b5605c4f61125023bbbed947757a7b53ce36c4d0 cmake-3.30.0-linux-aarch64.sh
3db7f12dadc91be9b30f0e5a71038c51d7f5b7cc03e32625621a052e9996bef0 cmake-3.30.0-linux-aarch64.tar.gz
1a5969fe81fea6e5220d053d9d3e3754cbc85be07d2d428bebdcfe87137971a9 cmake-3.30.0-linux-x86_64.sh
09846a3858583f38189b59177586adf125a08c15f3cddcaf7d7d7081ac86969f cmake-3.30.0-linux-x86_64.tar.gz
adae71da754bb32f2ff9fad17f26e4a1aaeafd589f39bf50945e932f3c3ec160 cmake-3.30.0-macos-universal.dmg
5fd0550f6a1ce1b88276a6d828483e8ddbf5e14053b32a0e534e95294ba3a2e3 cmake-3.30.0-macos-universal.tar.gz
7050c658978b524d00a87bb93cd8ef660e13624c2b0c01499fc8bc4ee26b571a cmake-3.30.0-macos10.10-universal.dmg
54f237212362efa3f192508eeb25d98f2150779ed45c46a77fe356597c3d2749 cmake-3.30.0-macos10.10-universal.tar.gz
5a02a7d0a6a97cc7d8b52efecafc969a6e114cfbf452e65c80e7dad5bb39f736 cmake-3.30.0-windows-arm64.msi
cb8fb65a8f523daa0ce6c531407ae10fcab8d0eefe18a6ef9fb718c54307d6e3 cmake-3.30.0-windows-arm64.zip
7252c7c4059bf99707f284ca58b46c7ecf8d9cc8d0e82a74dcbe90b870ae44d2 cmake-3.30.0-windows-i386.msi
8c7eeafdc58ff7220ab9d69fc90464ac6b7ce5a2d563beacdf42e1e63d201d3c cmake-3.30.0-windows-i386.zip
4ac685654408439f0af2e3bb9d1e8eda9d5a9ac1508870f2c93e31028aee9a9e cmake-3.30.0-windows-x86_64.msi
f8d2da0eaf3bab9cf065e97bd6d8e1819886f8671d3d4c7bb93cb774123fa448 cmake-3.30.0-windows-x86_64.zip
157e5be6055c154c34f580795fe5832f260246506d32954a971300ed7899f579 cmake-3.30.0.tar.gz
6340b67c9b902ab43ca0906305c3a6fd85edb47dae7236e5a0365af6defb12b9 cmake-3.30.0.zip

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEExsJlMku+vcNQtRPQLSzvEDSSFoQFAmaEGUIACgkQLSzvEDSS
FoTkSBAAjCAqnyn4VB1U1wnH3LDGAbWFKyq0hlDLZ4NDzr/78AmfxQzDmOC8wdpC
3pXYTBF7QtIZLe/a4UL8ZzPHXLbpKjSers2fpDhSodAYBND/k8xdElynssnZaxyc
zF2AzRTcn3vv2yEDfSMVq0j4fvme8JBAx5Gn2rek+M5Rv+nyKAdur8CQeN7RThy9
M/7RZArO+NF85V4UqIoVEQvxpQ7AxDcSDr5hGAAPckTIAp/fNXzK/nG3w0tu22iG
dGQdeZOv1caYOaxyxz3xeVlWpmI6A4DxBmeNn3KSxjO3nRVbS9gLZaTXUx89T6AG
g7zNiR+TuJOglZW8VjMtu7jqm+2lWIAjAnB7VobuIlyf7Pmjy1iv0sn3sCVA/KUH
vqDAcY2LrNyDDDA2YfhJqDQg+P58g/2gzpqmhCDEvh3Vd9LbkEMFHhlGdm/jBSS1
mNSasULiRiLlq85tqkaBCrn+jhvQMukAqe5NKrfxsHVTjrMeS+Nn2AqtAPOMdKaO
AACXxnAyV/seRFwrd1fG1Ua6CyziDHAGTfstbDgruhMUAsCFpFog7eTE+tFYeiFG
M+ZorxK893CAv4nS/jRVx62NxyBqdOBqsxbdNELCSdi7eJsK1nDfyfINMrYi5jaU
8QIQA8IKXJ0uIUHMaLLQXzx3Tp4K5RA08+U3KVivEBpTp800FTY=
=QJbX
-----END PGP SIGNATURE-----

3
cmake-3.30.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:157e5be6055c154c34f580795fe5832f260246506d32954a971300ed7899f579
size 11500060

13
cmake-fix-ruby-test.patch Normal file
View File

@ -0,0 +1,13 @@
Index: cmake-3.26.2/Modules/FindRuby.cmake
===================================================================
--- cmake-3.26.2.orig/Modules/FindRuby.cmake
+++ cmake-3.26.2/Modules/FindRuby.cmake
@@ -313,7 +313,7 @@ if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_
_RUBY_CONFIG_VAR("sitelibdir" Ruby_SITELIB_DIR)
# vendor_ruby available ?
- execute_process(COMMAND ${Ruby_EXECUTABLE} -r vendor-specific -e "print 'true'"
+ execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print 'true' unless RbConfig::CONFIG['vendorarchdir'].nil?"
OUTPUT_VARIABLE Ruby_HAS_VENDOR_RUBY ERROR_QUIET)
if(Ruby_HAS_VENDOR_RUBY)

View File

@ -0,0 +1,43 @@
From fe8dc3012eca70ed1ecc1774466c7eb5bee6e8c1 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Wed, 3 Jul 2024 10:40:07 -0400
Subject: [PATCH] Tests: Fix RunCMake.ExternalProject when git is not available
Move Git-dependent test cases added by commit 2ef3bd9186
(ExternalProject: Add TLS version options for https connections,
2024-02-26, v3.30.0-rc1~471^2) into the block of cases that run only
when Git is found.
Fixes: #26104
---
Tests/RunCMake/ExternalProject/RunCMakeTest.cmake | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake
index 3c7cd68e7e7..98e3996c892 100644
--- a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake
@@ -15,9 +15,6 @@ endif()
run_cmake(BadIndependentStep1)
run_cmake(BadIndependentStep2)
-run_cmake(TLSVersionBadArg)
-run_cmake(TLSVersionBadVar)
-run_cmake(TLSVersionBadEnv)
run_cmake(NoOptions)
run_cmake(SourceEmpty)
run_cmake(SourceMissing)
@@ -256,5 +253,9 @@ if(GIT_EXECUTABLE)
# on some platforms. It may go to stdout or stderr, so force it to be merged.
set(RunCMake_TEST_OUTPUT_MERGE TRUE)
run_cmake(FetchGitRefs)
- set(RunCMake_TEST_OUTPUT_MERGE FALSE)
+ unset(RunCMake_TEST_OUTPUT_MERGE)
+
+ run_cmake(TLSVersionBadArg)
+ run_cmake(TLSVersionBadVar)
+ run_cmake(TLSVersionBadEnv)
endif()
--
GitLab

10
cmake-zerojvm.patch Normal file
View File

@ -0,0 +1,10 @@
--- cmake-3.28.1/Modules/FindJNI.cmake 2024-02-14 13:10:42.173018608 +0100
+++ cmake-3.28.1/Modules/FindJNI.cmake 2024-02-14 17:43:00.956527142 +0100
@@ -344,6 +344,7 @@
"${dir}"
"${dir}/client"
"${dir}/server"
+ "${dir}/zero"
# IBM SDK, Java Technology Edition, specific paths
"${dir}/j9vm"
"${dir}/default"

2
cmake.attr Normal file
View File

@ -0,0 +1,2 @@
%__cmake_provides %{_rpmconfigdir}/cmake.prov
%__cmake_path ^/usr/(share|lib(64)?)/cmake/.*/.*(Config\.cmake|-config\.cmake)$

4311
cmake.changes Normal file

File diff suppressed because it is too large Load Diff

358
cmake.keyring Normal file
View File

@ -0,0 +1,358 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
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
=64Tb
-----END PGP PUBLIC KEY BLOCK-----

82
cmake.macros Normal file
View File

@ -0,0 +1,82 @@
#
# Macros for cmake
#
%__cmake %{_bindir}/cmake
%__ctest %{_bindir}/ctest
%__builddir build
%__builder %__make
%__sourcedir .
%__cmake_make_prefix_relative() %{lua:print((string.gsub((rpm.expand("%1")), ((rpm.expand("%{_prefix}")) .. "/"), "", 1)))}
%__cmake_make_root_relative() %{lua:print((string.gsub((rpm.expand("%1")), "/", "", 1)))}
%cmake \
find %__sourcedir -type f -name CMakeLists.txt \\\
-exec sed -i -re '/^[[:blank:]]*[sS][eE][tT][[:blank:]]*\\\([[:blank:]]*(CMAKE_BUILD_TYPE|CMAKE_COLOR_MAKEFILE|CMAKE_INSTALL_PREFIX|CMAKE_VERBOSE_MAKEFILE).*\\\)/{s/^/#IGNORE /}' {} + \
mkdir -p %__builddir \
cd %__builddir \
%__cmake $OLDPWD/%__sourcedir \\\
%if "%__builder" == "%__make" \
-G"Unix Makefiles" \\\
%else \
-GNinja \\\
%endif \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \\\
-DCMAKE_INSTALL_BINDIR:PATH=%{__cmake_make_prefix_relative %{_bindir}} \\\
-DCMAKE_INSTALL_SBINDIR:PATH=%{__cmake_make_prefix_relative %{_sbindir}} \\\
-DCMAKE_INSTALL_LIBEXECDIR:PATH=%{__cmake_make_prefix_relative %{_libexecdir}} \\\
-DCMAKE_INSTALL_SYSCONFDIR:PATH=%{__cmake_make_root_relative %{_sysconfdir}} \\\
-DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=%{_sharedstatedir} \\\
-DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{__cmake_make_root_relative %{_localstatedir}} \\\
-DCMAKE_INSTALL_RUNSTATEDIR:PATH=%{__cmake_make_root_relative %{_rundir}} \\\
-DCMAKE_INSTALL_LIBDIR:PATH=%{__cmake_make_prefix_relative %{_libdir}} \\\
-DCMAKE_INSTALL_INCLUDEDIR:PATH=%{__cmake_make_prefix_relative %{_includedir}} \\\
-DCMAKE_INSTALL_DATAROOTDIR:PATH=%{__cmake_make_prefix_relative %{_datadir}} \\\
-DCMAKE_INSTALL_DOCDIR:PATH=%{__cmake_make_prefix_relative %{_docdir}/%{name}} \\\
-DCMAKE_INSTALL_MANDIR:PATH=%{__cmake_make_prefix_relative %{_mandir}} \\\
-DCMAKE_INSTALL_INFODIR:PATH=%{__cmake_make_prefix_relative %{_infodir}} \\\
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\
-DLIB_INSTALL_DIR:PATH=%{_libdir} \\\
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\
-DCMAKE_BUILD_TYPE=RelWithDebInfo \\\
-DCMAKE_C_FLAGS="${CFLAGS:-%optflags}" \\\
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-%optflags}" \\\
-DCMAKE_Fortran_FLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" \\\
-DCMAKE_EXE_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now" \\\
-DCMAKE_MODULE_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed" \\\
-DCMAKE_SHARED_LINKER_FLAGS="%{?build_ldflags} -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now" \\\
%if "%{?_lib}" == "lib64" \
-DLIB_SUFFIX=64 \\\
%endif \
%if %suse_version <= 1500 \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \\\
%endif \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\
-DBUILD_SHARED_LIBS:BOOL=ON \\\
-DBUILD_STATIC_LIBS:BOOL=OFF \\\
-DCMAKE_COLOR_MAKEFILE:BOOL=OFF \\\
-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \\\
-DCMAKE_MODULES_INSTALL_DIR=%{_libdir}/cmake/%{name}
%__builder_verbose \
%if "%__builder" == "%__make" \
%{?_make_output_sync} VERBOSE=1 \\\
%else \
-v \\\
%endif \
%{nil}
%cmake_build %__builder \\%__builder_verbose %{?_smp_mflags}
%make_jobs \
echo "Deprecated %%make_jobs macro used, please use %%cmake_build" \
%cmake_build
%cmake_install \
DESTDIR=%{buildroot} %__builder install -C %__builddir
%ctest(:-:) \
cd %__builddir \
%__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %** \
cd ..

86
cmake.prov Normal file
View File

@ -0,0 +1,86 @@
#!/usr/bin/python3
# -*- coding:utf-8 -*-
#
# Copyright (C) 2015 Daniel Vrátil <dvratil@redhat.com>
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
import sys
import re
import glob
class CMakeParser:
def __init__(self, filelist = None):
if filelist == None:
filelist = sys.stdin
paths = map(lambda x: x.rstrip(), filelist.readlines())
for path in paths:
for (modulePath, cmakeModule, lowercase) in self.parseCmakeModuleConfig(path):
version = self.resolveCMakeModuleVersion(modulePath, cmakeModule, lowercase)
if version:
print("cmake(%s) = %s" % (cmakeModule, version))
else:
print("cmake(%s)" % cmakeModule)
def parseCmakeModuleConfig(self, configFile):
paths = configFile.rsplit("/", 3)
modulePath = "%s/cmake/%s" % (paths[0], paths[2])
result = []
for configFile in glob.glob("%s/*Config.cmake" % modulePath):
moduleName = configFile[len(modulePath) + 1:-len("Config.cmake")]
result.append( (modulePath, moduleName, False) )
for configFile in glob.glob("%s/*-config.cmake" % modulePath):
moduleName = configFile[len(modulePath) + 1:-len("-config.cmake")]
if (modulePath, moduleName, False) not in result:
result.append( (modulePath, moduleName, True) )
return result
def resolveCMakeModuleVersion(self, modulePath, cmakeModule, lowercase):
# Qt >= 6.2.2 defines 'PACKAGE_VERSION' in *ConfigVersionImpl.cmake
versionFile = f"{modulePath}/{cmakeModule}ConfigVersionImpl.cmake" if "Qt6" in f"{cmakeModule}" else ""
try:
f = open(versionFile, 'r')
except:
versionFile = ("%s/%s-config-version.cmake" if lowercase else "%s/%sConfigVersion.cmake") % (modulePath, cmakeModule)
try:
f = open(versionFile, 'r')
except:
return None
for line in f:
line = line.strip()
# set(PACKAGE_VERSION <version>)
version = re.match(r"^set[\ ]*\([\ ]*PACKAGE_VERSION[\ ]+[\"]*([0-9\.]+)[\"]*[\ ]*[.]*\)", line)
if version:
_version = version.groups(1)[0]
if _version == '..':
sys.stderr.write("error: Version pattern found without values - '%s' was created incorrectly\n" % versionFile)
return _version
return None
if __name__ == "__main__":
parser = CMakeParser()

299
cmake.spec Normal file
View File

@ -0,0 +1,299 @@
#
# spec file for package cmake
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
# Flavor gui
%if "%{flavor}" == "gui"
%define psuffix -ui
%bcond_without gui
%else
%bcond_with gui
%endif
# Where available, the gui-flavor also enables qhelp docs
%if "%{flavor}" == "gui" && 0%{?suse_version} > 1500
%bcond_without qhelp
%else
%bcond_with qhelp
%endif
# Flavor mini
%if "%{flavor}" == "mini"
%define psuffix -mini
%bcond_without mini
%else
%bcond_with mini
%endif
# Flavor full
%if "%{flavor}" == "full"
%define psuffix -full
%bcond_without full
%else
%bcond_with full
%endif
%define shortversion 3.30
%if 0%{?suse_version} && 0%{?suse_version} <= 1500
%define pyver 311
%else
%define pyver 3
%endif
Name: cmake%{?psuffix}
Version: 3.30.0
Release: 0
Summary: Cross-platform make system
License: BSD-3-Clause
URL: https://www.cmake.org/
Source0: https://www.cmake.org/files/v%{shortversion}/cmake-%{version}.tar.gz
Source1: cmake.macros
# bnc#947585 - Let CMake produces automatic RPM provides
Source3: cmake.attr
Source4: cmake.prov
Source5: https://www.cmake.org/files/v%{shortversion}/cmake-%{version}-SHA-256.txt
Source6: https://www.cmake.org/files/v%{shortversion}/cmake-%{version}-SHA-256.txt.asc
Source7: cmake.keyring
Source99: README.SUSE
Patch0: cmake-fix-ruby-test.patch
# Search for python interpreters from newest to oldest rather then picking up /usr/bin/python as first choice
Patch1: feature-suse-python-interp-search-order.patch
Patch2: cmake-zerojvm.patch
# Fix test #567 to be run conditionally when Git is found, upstream, planned for 3.30.1
Patch3: cmake-fix-test-without-git.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: rhash-devel
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} > 1500
BuildRequires: pkgconfig(libuv) >= 1.28
# Needs a rebuild as libuv will otherwise abort the program with:
# fatal error: libuv version too new: running with libuv 1.X+1 when compiled with libuv 1.X will lead to libuv failures
%requires_eq libuv1
%endif
%if "%{flavor}" == ""
Requires: cmake-implementation = %{version}
%endif
%if %{with full} || %{with mini}
Requires: make
# bnc#953842 - A python file is shipped so require python base so it can be run.
Requires: python3-base
Conflicts: cmake-implementation
Provides: cmake-implementation = %{version}
%endif
%if %{with mini}
Requires: this-is-only-for-build-envs
%endif
%if %{with full} || %{with gui}
BuildRequires: pkgconfig(jsoncpp) >= 1.4.1
BuildRequires: pkgconfig(libarchive) >= 3.3.3
BuildRequires: pkgconfig(libcurl)
%endif
%if %{with gui}
BuildRequires: python%{pyver}-Sphinx
BuildRequires: python%{pyver}-base
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Widgets)
%endif
%if %{with qhelp}
BuildRequires: libqt5-qttools-qhelpgenerator
%endif
%description
CMake is a cross-platform build system.
%package -n cmake-man
Summary: Manual pages for cmake, a cross-platform make system
Supplements: cmake
%description -n cmake-man
Manual pages for cmake, a cross-platform make system.
%package -n cmake-gui
Summary: CMake graphical user interface
Requires: cmake
%description -n cmake-gui
This is a Graphical User Interface for CMake, a cross-platform
build system.
%package -n cmake-doc-qhelp
Summary: CMake documentation for offline reading - qhelp version
%description -n cmake-doc-qhelp
CMake documentation for offline reading - qhelp version.
%prep
# The publisher doesn't sign the source tarball, but a signatures file containing multiple hashes.
# Verify hashes in that file against source tarball.
echo "`grep cmake-%{version}.tar.gz %{SOURCE5} | grep -Eo '^[0-9a-f]+'` %{SOURCE0}" | sha256sum -c
%autosetup -p1 -n cmake-%{version}
%build
cp -p %{SOURCE99} .
%if %{with mini}
# this is serial, so it takes too much time for the mini package
%define _find_debuginfo_dwz_opts %{nil}
%define _lto_cflags %{nil}
%endif
export CFLAGS="%{optflags}"
export CXXFLAGS="$CFLAGS"
%if "%{flavor}" != ""
# This is not autotools configure
./configure \
--prefix=%{_prefix} \
--datadir=/share/cmake \
--docdir=/share/doc/packages/cmake \
--mandir=/share/man \
--system-libs \
--no-system-cppdap \
%if %{with mini}
--no-system-curl \
--no-system-nghttp2 \
--no-system-jsoncpp \
--no-system-libarchive \
%endif
--parallel=0%{jobs} \
--verbose \
%if 0%{?suse_version} > 1500
--system-libuv \
%else
--no-system-libuv \
%endif
%if %{with qhelp}
--sphinx-qthelp \
%endif
%if %{with gui}
--qt-gui \
--sphinx-man \
%else
--no-qt-gui \
%endif
%{nil}
%make_build
%endif
%install
%if "%{flavor}" != ""
%make_install
mkdir -p %{buildroot}%{_libdir}/cmake
%if %{with gui}
%suse_update_desktop_file -r cmake-gui CMake Development IDE Tools Qt
# delete files that belong to the 'cmake' package
rm -rf %{buildroot}%{_bindir}/{cpack,cmake,ctest,ccmake}
rm -rf %{buildroot}%{_datadir}/cmake
rm -rf %{buildroot}%{_datadir}/aclocal/cmake.m4
rm -rf %{buildroot}%{_datadir}/bash-completion/completions/{cmake,cpack,ctest}
rm -rf %{buildroot}%{_datadir}/emacs/site-lisp/cmake-mode.el
rm -rf %{buildroot}%{_datadir}/vim/
# delete docdir but preserve qhelp if applicable
find %{buildroot}%{_docdir}/cmake -mindepth 1 -not -name "CMake.qch" -delete
rmdir %{buildroot}%{_docdir}/cmake || true
%else
find %{buildroot}%{_datadir}/cmake -type f -print0 | xargs -0 chmod 644
# rpm macros
install -m644 %{SOURCE1} -D %{buildroot}%{_rpmconfigdir}/macros.d/macros.cmake
# RPM auto provides
install -p -m0644 -D %{SOURCE3} %{buildroot}%{_fileattrsdir}/cmake.attr
install -p -m0755 -D %{SOURCE4} %{buildroot}%{_rpmconfigdir}/cmake.prov
sed -i -e "1s@#!.*python.*@#!$(realpath %{_bindir}/python3)@" %{buildroot}%{_rpmconfigdir}/cmake.prov
# fix: W: files-duplicate (%%license covers already)
rm %{buildroot}%{_docdir}/cmake/Copyright.txt
%fdupes %{buildroot}%{_datadir}/cmake
%endif
%endif
%if "%{flavor}" == "full"
%check
# Excluded tests:
# TestUpload: uses internet connection
# SimpleInstall: seems to fail due to RPATH strictness
# if any other app installs then this test is bogus
# suse specific brp-25-symlink cramps the symlinks, hence the CPackComponentsForAll-RPM-(default|OnePackPerGroup|IgnoreGroup|AllInOne) fail
./bin/ctest --force-new-ctest-process --output-on-failure %{?_smp_mflags} \
-E "(TestUpload|SimpleInstall|SimpleInstall-Stage2|CPackComponentsForAll-RPM-(default|OnePackPerGroup|IgnoreGroup|AllInOne)|CPack_RPM)"
%endif
%if %{with qhelp}
%files -n cmake-doc-qhelp
%license Copyright.txt
%{_docdir}/cmake/CMake.qch
%endif
%if %{with gui}
%files -n cmake-gui
%license Copyright.txt
%{_bindir}/cmake-gui
%{_datadir}/applications/cmake-gui.desktop
%{_datadir}/mime/packages/cmakecache.xml
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/*
%dir %{_datadir}/icons/hicolor/*/*
%{_datadir}/icons/hicolor/128x128/apps/CMakeSetup.png
%{_datadir}/icons/hicolor/32x32/apps/CMakeSetup.png
%files -n cmake-man
%license Copyright.txt
%{_mandir}/man7/*
%{_mandir}/man1/*
%else
%files
%if "%{flavor}" == ""
%doc README.SUSE
%else
%license Copyright.txt
%doc README.rst
%{_rpmconfigdir}/macros.d/macros.cmake
%{_fileattrsdir}/cmake.attr
%{_rpmconfigdir}/cmake.prov
%{_bindir}/cpack
%{_bindir}/cmake
%{_bindir}/ctest
%{_bindir}/ccmake
%{_datadir}/cmake
%{_libdir}/cmake
%dir %{_datadir}/aclocal
%{_datadir}/aclocal/cmake.m4
%doc %{_docdir}/cmake
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/{cmake,cpack,ctest}
%dir %{_datadir}/emacs
%dir %{_datadir}/emacs/site-lisp
%{_datadir}/emacs/site-lisp/cmake-mode.el
%dir %{_datadir}/vim
%dir %{_datadir}/vim/vimfiles
%dir %{_datadir}/vim/vimfiles/indent
%{_datadir}/vim/vimfiles/indent/cmake.vim
%dir %{_datadir}/vim/vimfiles/syntax
%{_datadir}/vim/vimfiles/syntax/cmake.vim
%endif
%endif
%changelog

View File

@ -0,0 +1,16 @@
Index: cmake-3.27.7/Modules/FindPythonInterp.cmake
===================================================================
--- cmake-3.27.7.orig/Modules/FindPythonInterp.cmake
+++ cmake-3.27.7/Modules/FindPythonInterp.cmake
@@ -105,8 +105,9 @@ if(DEFINED PYTHONLIBS_VERSION_STRING)
list(GET _PYTHONLIBS_VERSION 1 _PYTHONLIBS_VERSION_MINOR)
list(APPEND _Python_VERSIONS ${_PYTHONLIBS_VERSION_MAJOR}.${_PYTHONLIBS_VERSION_MINOR})
endif()
-# Search for the current active python version first
-list(APPEND _Python_VERSIONS ";")
+
+# Search python versions from newest to oldest as python3 is the default and
+# /usr/bin/python doesn't mean the systemd on SUSE / openSUSE systems
list(APPEND _Python_VERSIONS ${_PYTHON_FIND_OTHER_VERSIONS})
unset(_PYTHON_FIND_OTHER_VERSIONS)