Den tors 23 juli 2026 kl 17:08 skrev Branko Čibej <[email protected]>:

> On 23. 7. 2026 16:59, Ivan Zhakov wrote:
>
> I would like to discuss CMake minimum required version for trunk and
> 1.15.x.
>
> Currently Subversion requires CMake version >= 3.14
>
> We have two workarounds to support CMake < 3.18 [1, 2]. And one workaround
> to support CMake < 3.20 [3]
>
> Compatibility with versions of CMake older than 3.10 is deprecated in
> CMake 3.31 [4].
> Compatibility with versions of CMake older than 3.5 is removed in CMake
> 4.0 [4].
>
> Information about bundled CMake versions in different distributions and
> toolsets:
> - Visual Studio 2017     (supported until Apr 2027): CMake 3.6
> - Visual Studio 2019     (supported until Apr 2029): CMake 3.20
> - Visual Studio 2022     (supported until Jan 2032): CMake 3.31
> - Visual Studio 2026     (supported until Nov 2028): CMake 4.3
> - Debian 11 "bullseye"   (supported until Aug 2026): CMake 3.18
> - Debian 12 "bookworm"   (supported until Jun 2028): CMake 3.25
> - Debian 13 "trixie"     (supported until Aug 2030): CMake 3.31
> - Ubuntu 22.04 LTS       (supported until May 2027): CMake 3.22
> - Ubuntu 24.04 LTS       (supported until May 2029): CMake 3.28
> - Ubuntu 26.04 LTS       (supported until May 2031): CMake 4.2
> - RHEL 8                 (supported until May 2029): CMake 3.26
> - RHEL 9                 (supported until May 2032): CMake 3.31
> - RHEL 10                (supported until May 2035): CMake 3.31
>
> The same information sorted by CMake version:
> - Visual Studio 2017     (supported until Apr 2027): CMake 3.6
> - Debian 11 "bullseye"   (supported until Aug 2026): CMake 3.18
> - Visual Studio 2019     (supported until Apr 2029): CMake 3.20
> - Ubuntu 22.04 LTS       (supported until May 2027): CMake 3.22
> - Debian 12 "bookworm"   (supported until Jun 2028): CMake 3.25
> - RHEL 8                 (supported until May 2029): CMake 3.26
> - Ubuntu 24.04 LTS       (supported until May 2029): CMake 3.28
> - Visual Studio 2022     (supported until Jan 2032): CMake 3.31
> - RHEL 9                 (supported until May 2032): CMake 3.31
> - RHEL 10                (supported until May 2035): CMake 3.31
> - Debian 13 "trixie"     (supported until Aug 2030): CMake 3.31
> - Ubuntu 26.04 LTS       (supported until May 2031): CMake 4.2
> - Visual Studio 2026     (supported until Nov 2028): CMake 4.3
>
> Based on these tables, I think we can make CMake 3.20 the minimum required
> version. This would support building Subversion with bundled CMake in
> Visual Studio 2019 and would allow us to remove the three workarounds.
>
>
>
> I assume that the bundled version can be ignored/updated by a separate
> installation of CMake? If not, we should explicitly say in the release
> notes that we do not support building with CMake with VS 2017. That's a
> build environment that's less than 10 years old. Well, we still support it
> in the vcxproj generator.
>
>
> The other close option is CMake 3.18 (for Debian 11 support), but I would
> say it's not exactly worth it, since Debian 11 becomes unsupported in Aug
> 2026.
>
>
>
> Unix distros will use the autotools build. We should ignore them for this
> discussion. I don't see the distros switching to CMake given that they've
> used autotools for decades.
>
>
> So I propose that we bump the minimum required version to 3.20 and
> backport this change to 1.15.x branch.
>
>

Thanks for doing the digging out all cmake versions! Really helps this
discussion!

When I saw the list, I also started thinking about this issue. I came to
the same conclusion as you did - let's update the minimum requirement to
3.20 with the arguments you have provided above. Debian 11 can still build
with autoconf.

If someone would provide a convincing argument for updating even further, I
would be inclined to listen. If we for example "only" support the latest
two versions of a given tool I think that is acceptable for trunk if that
lets us do something we otherwise have to jump through hoops to do.
(Especially if it is technically possible to install a newer version just
for building).

Cheers,
Daniel


>
> Thoughts?
>
> [1]:
> https://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?revision=1936525&pathrev=1936525&view=markup#l725
> [2]:
> https://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?revision=1936525&pathrev=1936525&view=markup#l1042
>
> [3]:
> https://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?revision=1936525&pathrev=1936525&view=markup#l459
> [4]:
> https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html#policy-version
>
> --
> Ivan Zhakov
>
>
>

Reply via email to