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 > > >

