mbox series

[v2,0/3] cmake: Major version bump to 4.0.3

Message ID 20250630104104.4093207-1-Moritz.Haase@bmw.de
Headers show
Series cmake: Major version bump to 4.0.3 | expand

Message

Haase Moritz, JD-62 June 30, 2025, 10:41 a.m. UTC
This patch series bumps CMake to 4.0.3, the most current of the 4.x releases.
That bump allows us to drop all of the upstreamable patches for CMake itself
that we currently carry, which was the motivation for the update as suggested by
Alex Kanavin in [0].

Following the preparatory merge of [1] and [2], there are only two components
that require patches to build with the new CMake version. For both createrepo-c
and libcomps, those patches have already been merged upstream, but there have
been no subsequent releases yet. Thus, backports of the patches are included. They are to be merged

changes in v2:
- Re-ordered / squashed commits to keep bisectability (see [3], [4])
- Fixed patchtest findings

[0]: https://lists.openembedded.org/g/openembedded-core/message/219113
[1]: https://git.openembedded.org/openembedded-core/commit/?id=c3efca7495889f3682225af8c9e01ceb094b1bb7
[2]: https://git.openembedded.org/openembedded-core/commit/?id=cb5234acdab200bd43b89416d8d7e9df91af58cc
[3]: https://lists.openembedded.org/g/openembedded-core/message/219403
[4]: https://lists.openembedded.org/g/openembedded-core/message/219425

CC: alex.kanavin@gmail.com
CC: quentin.schulz@cherry.de

Moritz Haase (3):
  libcomps: Backport patch to support builds with CMake 4+
  createrepo-c: Backport patches to support builds with CMake 4+
  cmake: upgrade 3.31.6 -> 4.0.3

 ...native_3.31.6.bb => cmake-native_4.0.3.bb} |   6 +-
 meta/recipes-devtools/cmake/cmake.inc         |   8 +-
 ...mpilerABI-Strip-pipe-from-compile-fl.patch |  63 -----
 ...xt2fs-ext2_fs.h-by-cmake-s-internal.patch} |   4 +-
 ...ng-undocumented-type-for-CURLOPT_NET.patch |  30 ---
 ...trary-characters-in-test-names-of-CT.patch | 202 ----------------
 ...-CMakeLists.txt-disable-USE_NGHTTP2.patch} |   6 +-
 .../cmake/{cmake_3.31.6.bb => cmake_4.0.3.bb} |   1 -
 .../0001-Fix-libname-of-Libs.private.patch    |  22 ++
 ...ED_TARGET-for-3rd-party-dependencies.patch | 226 ++++++++++++++++++
 ...-imported-targets-of-turned-off-depe.patch |  53 ++++
 ...ds-without-Doxygen-being-present-wit.patch |  50 ++++
 .../createrepo-c/createrepo-c_1.2.1.bb        |   4 +
 ...libcomps-Support-builds-with-CMake-4.patch | 132 ++++++++++
 .../libcomps/libcomps_0.1.21.bb               |   1 +
 15 files changed, 499 insertions(+), 309 deletions(-)
 rename meta/recipes-devtools/cmake/{cmake-native_3.31.6.bb => cmake-native_4.0.3.bb} (90%)
 delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch
 rename meta/recipes-devtools/cmake/cmake/{0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch => 0001-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal.patch} (90%)
 delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-cmCurl-Avoid-using-undocumented-type-for-CURLOPT_NET.patch
 delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch
 rename meta/recipes-devtools/cmake/cmake/{0001-CMakeLists.txt-disable-USE_NGHTTP2.patch => 0002-CMakeLists.txt-disable-USE_NGHTTP2.patch} (83%)
 rename meta/recipes-devtools/cmake/{cmake_3.31.6.bb => cmake_4.0.3.bb} (96%)
 create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-libname-of-Libs.private.patch
 create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0002-Use-IMPORTED_TARGET-for-3rd-party-dependencies.patch
 create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0003-Don-t-try-to-use-imported-targets-of-turned-off-depe.patch
 create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0004-cmake-Allow-builds-without-Doxygen-being-present-wit.patch
 create mode 100644 meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch

Comments

Antonin Godard June 30, 2025, 2:57 p.m. UTC | #1
On Mon Jun 30, 2025 at 12:41 PM CEST, Moritz Haase via lists.openembedded.org wrote:
> This patch series bumps CMake to 4.0.3, the most current of the 4.x releases.
> That bump allows us to drop all of the upstreamable patches for CMake itself
> that we currently carry, which was the motivation for the update as suggested by
> Alex Kanavin in [0].
>
> Following the preparatory merge of [1] and [2], there are only two components
> that require patches to build with the new CMake version. For both createrepo-c
> and libcomps, those patches have already been merged upstream, but there have
> been no subsequent releases yet. Thus, backports of the patches are included. They are to be merged
>
> changes in v2:
> - Re-ordered / squashed commits to keep bisectability (see [3], [4])
> - Fixed patchtest findings
>
> [0]: https://lists.openembedded.org/g/openembedded-core/message/219113
> [1]: https://git.openembedded.org/openembedded-core/commit/?id=c3efca7495889f3682225af8c9e01ceb094b1bb7
> [2]: https://git.openembedded.org/openembedded-core/commit/?id=cb5234acdab200bd43b89416d8d7e9df91af58cc
> [3]: https://lists.openembedded.org/g/openembedded-core/message/219403
> [4]: https://lists.openembedded.org/g/openembedded-core/message/219425
>
> CC: alex.kanavin@gmail.com
> CC: quentin.schulz@cherry.de
>
> Moritz Haase (3):
>   libcomps: Backport patch to support builds with CMake 4+
>   createrepo-c: Backport patches to support builds with CMake 4+
>   cmake: upgrade 3.31.6 -> 4.0.3
>
>  ...native_3.31.6.bb => cmake-native_4.0.3.bb} |   6 +-
>  meta/recipes-devtools/cmake/cmake.inc         |   8 +-
>  ...mpilerABI-Strip-pipe-from-compile-fl.patch |  63 -----
>  ...xt2fs-ext2_fs.h-by-cmake-s-internal.patch} |   4 +-
>  ...ng-undocumented-type-for-CURLOPT_NET.patch |  30 ---
>  ...trary-characters-in-test-names-of-CT.patch | 202 ----------------
>  ...-CMakeLists.txt-disable-USE_NGHTTP2.patch} |   6 +-
>  .../cmake/{cmake_3.31.6.bb => cmake_4.0.3.bb} |   1 -
>  .../0001-Fix-libname-of-Libs.private.patch    |  22 ++
>  ...ED_TARGET-for-3rd-party-dependencies.patch | 226 ++++++++++++++++++
>  ...-imported-targets-of-turned-off-depe.patch |  53 ++++
>  ...ds-without-Doxygen-being-present-wit.patch |  50 ++++
>  .../createrepo-c/createrepo-c_1.2.1.bb        |   4 +
>  ...libcomps-Support-builds-with-CMake-4.patch | 132 ++++++++++
>  .../libcomps/libcomps_0.1.21.bb               |   1 +
>  15 files changed, 499 insertions(+), 309 deletions(-)
>  rename meta/recipes-devtools/cmake/{cmake-native_3.31.6.bb => cmake-native_4.0.3.bb} (90%)
>  delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch
>  rename meta/recipes-devtools/cmake/cmake/{0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch => 0001-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal.patch} (90%)
>  delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-cmCurl-Avoid-using-undocumented-type-for-CURLOPT_NET.patch
>  delete mode 100644 meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch
>  rename meta/recipes-devtools/cmake/cmake/{0001-CMakeLists.txt-disable-USE_NGHTTP2.patch => 0002-CMakeLists.txt-disable-USE_NGHTTP2.patch} (83%)
>  rename meta/recipes-devtools/cmake/{cmake_3.31.6.bb => cmake_4.0.3.bb} (96%)
>  create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-libname-of-Libs.private.patch
>  create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0002-Use-IMPORTED_TARGET-for-3rd-party-dependencies.patch
>  create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0003-Don-t-try-to-use-imported-targets-of-turned-off-depe.patch
>  create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0004-cmake-Allow-builds-without-Doxygen-being-present-wit.patch
>  create mode 100644 meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch

Hi,

Some builds are failing on the Autobuilder after applying this patchset.

Some recipes fail to configure with this updated version of CMake. For example:

| DEBUG: Executing shell function do_configure
| -- The C compiler identification is GNU 15.1.0
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /srv/pokybuild/yocto-worker/musl-qemux86/build/build/tmp/work/core2-32-poky-linux-musl/musl-locales/1.0+git/recipe-sysroot-native/usr/bin/i686-poky-linux-musl/i686-poky-linux-musl-gcc - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| CMake Error at CMakeLists.txt:2 (cmake_minimum_required):
|   Compatibility with CMake < 3.5 has been removed from CMake.
| 
|   Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
|   to tell CMake that the project requires at least <min> but has been updated
|   to work with policies introduced by <max> or earlier.
| 
|   Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
| 
| 
| -- Configuring incomplete, errors occurred!

| ERROR: Task (/srv/pokybuild/yocto-worker/musl-qemux86/build/meta/recipes-core/musl/musl-locales_git.bb:do_configure) failed with exit code '1'

An overview of the errors can be found here:
https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2837629/raw_inline

Antonin
Haase Moritz, JD-62 July 1, 2025, 7:10 a.m. UTC | #2
Hi Antonin,

> Some builds are failing on the Autobuilder after applying this patchset.
> [...]
> An overview of the errors can be found here:
> [...]

thanks! I've been able to reproduce most of those locally (via a 'bitbake
world') and they are easily fixable / there are backportable patches by
upstream. I'll add those to the series and post an updated version.

The musl-locales failure I couldn't reproduce yet (I guess since my local build
isn't set up to use musl). Is there an easy way to replicate an autobuilder
build config locally? I couldn't tell from the docs I found at [0].

@Alex: Thanks for clarifying expectations re. the patch series in the other
thread. If I can replicate build issues locally without much overhead, I'm happy
to continue to support in adding required patches for affected components to the
build.

Moritz

[0]: https://docs.yoctoproject.org/test-manual/understand-autobuilder.html
Marko, Peter July 1, 2025, 8:05 a.m. UTC | #3
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-
> core@lists.openembedded.org> On Behalf Of Moritz Haase via
> lists.openembedded.org
> Sent: Tuesday, July 1, 2025 9:10
> To: Antonin Godard <antonin.godard@bootlin.com>; openembedded-
> core@lists.openembedded.org
> Cc: alex.kanavin@gmail.com; quentin.schulz@cherry.de
> Subject: Re: [OE-core] [PATCH v2 0/3] cmake: Major version bump to 4.0.3
> 
> Hi Antonin,
> 
> > Some builds are failing on the Autobuilder after applying this patchset.
> > [...]
> > An overview of the errors can be found here:
> > [...]
> 
> thanks! I've been able to reproduce most of those locally (via a 'bitbake
> world') and they are easily fixable / there are backportable patches by
> upstream. I'll add those to the series and post an updated version.
> 
> The musl-locales failure I couldn't reproduce yet (I guess since my local build
> isn't set up to use musl). Is there an easy way to replicate an autobuilder
> build config locally? I couldn't tell from the docs I found at [0].

Putting TCLIBC = "musl" to your local.conf will switch from glibc to musl.

Peter

> 
> @Alex: Thanks for clarifying expectations re. the patch series in the other
> thread. If I can replicate build issues locally without much overhead, I'm happy
> to continue to support in adding required patches for affected components to the
> build.
> 
> Moritz
> 
> [0]: https://docs.yoctoproject.org/test-manual/understand-autobuilder.html
Antonin Godard July 1, 2025, 8:07 a.m. UTC | #4
On Tue Jul 1, 2025 at 9:10 AM CEST, JD-62 Haase Moritz wrote:
> Hi Antonin,
>
>> Some builds are failing on the Autobuilder after applying this patchset.
>> [...]
>> An overview of the errors can be found here:
>> [...]
>
> thanks! I've been able to reproduce most of those locally (via a 'bitbake
> world') and they are easily fixable / there are backportable patches by
> upstream. I'll add those to the series and post an updated version.
>
> The musl-locales failure I couldn't reproduce yet (I guess since my local build
> isn't set up to use musl). Is there an easy way to replicate an autobuilder
> build config locally? I couldn't tell from the docs I found at [0].

There's some container configuration here:
https://git.yoctoproject.org/yocto-autobuilder2/tree/docker

But it isn't trivial to setup, and the amount of build and resources it uses is
non-negligible. I'd say the easiest would be to try to reproduce the build
locally, for that use can read to get more insights on what's going on for a
specific build:
https://git.yoctoproject.org/yocto-autobuilder-helper/tree/config.json

Thanks!
Antonin