Bug 1756974

Summary: Please package a newer version of CMake (currently 3.15) into EPEL 8
Product: [Fedora] Fedora EPEL Reporter: Alexander Korsunsky <a.korsunsky>
Component: cmakeAssignee: Björn 'besser82' Esser <besser82>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel8CC: besser82, bugzilla, carl, dbranchini, denis.arnaud_fedora, jreznik, junghans, orion, quent.haas, rdieter, trpost, walter.pete
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-26 04:08:20 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1759510, 1816874, 1830748    
Bug Blocks:    

Description Alexander Korsunsky 2019-09-30 11:05:14 UTC
The CMake version in RHEL 8 and CentOS 8 is 3.11.4, which is 1.5 years old. The current version of CMake is 3.15.3. 

I am unsure what the policy is for creating newer versions of packages that already exist upstream, or whether that's possible at all.

If it is, however, I would kindly request to package CMake version 3.15 or 3.14 (like in Fedora or EPEL 8).

Comment 1 Orion Poplawski 2019-10-01 00:52:48 UTC
I'm not really sure what the best options are here.  We could certainly package a cmake3.14 or cmake 3.15.  But that would presumably lead to a squence of packages.  I'm unclear if the current cmake package in RHEL8 is a module or not - it doesn't seem to be, but some kind of cmake-latest module seems like the best way to go long term.  But modules will not be ready for EPEL8 until at least RHEL8.1 and perhaps later.

Personally, I don't have a burning need for the latest cmake so I'm probably not going to do any packaging work on this myself.

Comment 2 Frank Büttner 2020-04-29 12:04:21 UTC
The situation is very ugly, because the older RHEL7 comes with 3.14.7 via EPEL.
And the newer RHEL8 comes with 3.11.4 by default.

Comment 3 Antonio T. (sagitter) 2020-04-29 16:10:05 UTC
New CMake-3.17.* build is failing on EPEL8 for a failed test (RunCMake.PrecompileHeaders) and i have not idea why happens:

https://kojipkgs.fedoraproject.org//work/tasks/511/43880511/build.log

Comment 4 Frank Büttner 2020-04-29 16:31:15 UTC
I think, this is the problem:
lddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [ 83%] Building C object CMakeFiles/foobar.dir/foobar.c.o
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [100%] Linking C executable foobar
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [100%] Built target foobar
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Expected stderr to match:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    expect-err> ^$
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Actual stderr:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-err> cc1: warning: /builddir/build/BUILD/cmake-3.17.1/build/Tests/RunCMake/PrecompileHeaders/PchInterface-build/CMakeFiles/foo.dir/cmake_pch.h.gch: had text segment at different address
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-err> cc1: warning: /builddir/build/BUILD/cmake-3.17.1/build/Tests/RunCMake/PrecompileHeaders/PchInterface-build/CMakeFiles/foobar.dir/cmake_pch.h.gch: had text segment at different address
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: Call Stack (most recent call first):
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/RunCMake.cmake:205 (run_cmake)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake:10 (run_cmake_command)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake:17 (run_test)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 

And later:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: CMake Error at /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/RunCMake.cmake:191 (message):
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   SkipPrecompileHeaders-build - FAILED:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   stderr does not match that expected.
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Command was:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    command> "/builddir/build/BUILD/cmake-3.17.1/build/bin/cmake3" "--build" "." "--config" "Debug"
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Actual stdout:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> Scanning dependencies of target pch-test
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [ 25%] Building CXX object CMakeFiles/pch-test.dir/cmake_pch.hxx.gch
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [ 50%] Building CXX object CMakeFiles/pch-test.dir/main.cpp.o
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [ 75%] Building CXX object CMakeFiles/pch-test.dir/non-pch.cpp.o
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [100%] Linking CXX executable pch-test
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-out> [100%] Built target pch-test
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Expected stderr to match:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    expect-err> ^$
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   Actual stderr:
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:    actual-err> cc1plus: warning: /builddir/build/BUILD/cmake-3.17.1/build/Tests/RunCMake/PrecompileHeaders/SkipPrecompileHeaders-build/CMakeFiles/pch-test.dir/cmake_pch.hxx.gch: had text segment at different address
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: Call Stack (most recent call first):
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/RunCMake.cmake:205 (run_cmake)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake:10 (run_cmake_command)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496:   /builddir/build/BUILD/cmake-3.17.1/Tests/RunCMake/PrecompileHeaders/RunCMakeTest.cmake:19 (run_test)
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: 
/builddir/build/BUILD/cmake-3.17.1/Source/CTest/cmCTestRunTest.cxx:42 496: -- SkipPrecompileHeaders-test - PASSED

Comment 5 Antonio T. (sagitter) 2020-04-29 18:25:53 UTC
(In reply to Antonio T. (sagitter) from comment #3)
> New CMake-3.17.* build is failing on EPEL8 for a failed test
> (RunCMake.PrecompileHeaders) and i have not idea why happens:
> 
> https://kojipkgs.fedoraproject.org//work/tasks/511/43880511/build.log

Quoting https://bugzilla.redhat.com/show_bug.cgi?id=1721553#c4:

"The "had text segment at different address" error is about having the PCH file generated with a compiler that is different from the compiler that is trying to read it,
the test checks if a function pointer saved in the PCH file matches the corresponding function pointer in the cc1 or cc1plus binary.  If it is different, any saved function pointers would need relocation and gcc isn't prepared to do that.
So, the possibilities are either that the compiler is built with PIE (but that is not the case of gcc in the distro), or say that cc1plus was used to write it and cc1 to read it, or vice versa, or slightly different gcc revision was used to save it vs. read it etc.
The commands e.g. in #c1 can't be trusted, /usr/bin/gcc /usr/bin/gcc ... would surely error out."

I'm going to skip this test, hoping this issue does not invalidate the CMake usage really.

Comment 6 Orion Poplawski 2020-04-30 01:42:19 UTC
I'm afraid I don't have any insight.

Comment 7 Fedora Update System 2020-04-30 19:37:34 UTC
FEDORA-EPEL-2020-ad02b27ee3 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-ad02b27ee3

Comment 8 Fedora Update System 2020-05-01 11:14:18 UTC
FEDORA-EPEL-2020-ad02b27ee3 has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-ad02b27ee3

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Alexander Korsunsky 2020-05-11 10:08:43 UTC
Please do NOT mark this as fixed, the suggested package fails to install, as discussed on https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-ad02b27ee3 .

There should not be a `cmake3` package in EPEL that supersedes the `cmake` package in RHEL/CentOS. The right move is to create a module and override the EPEL/CentOS pacakge.

This should be possible, now that #1759510 is fixed.

Comment 10 Antonio T. (sagitter) 2020-05-11 10:25:53 UTC
(In reply to Alexander Korsunsky from comment #9)
> Please do NOT mark this as fixed, the suggested package fails to install, as
> discussed on
> https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-ad02b27ee3 .
> 

Fixed? Where this ticket is marked as fixed?

Comment 11 Alexander Korsunsky 2020-05-11 11:10:51 UTC
Not fixed, but "ON_QA", sorry. Does the package progress into stable if it does not get enough negative Karma?

Comment 12 Antonio T. (sagitter) 2020-05-11 12:16:57 UTC
(In reply to Alexander Korsunsky from comment #11)
> Not fixed, but "ON_QA", sorry. Does the package progress into stable if it
> does not get enough negative Karma?

No.

Comment 13 Quentin Haas 2020-07-14 15:13:19 UTC
EPEL7 is now on 3.17, EL8's appstream is still on 3.11.

Having newer versions of cmake (e.g. 3.14+) available for EL8 is helpful for modern CUDA development, nvidia likes to change paths/files around.  I'm running into a number of issues with MAGMA, UE4 and other projects that require me to deploy newer versions of cmake than 3.11.

Appreciate the community's interest in this, would help productivity.

Comment 14 Carl George 🤠 2020-09-26 04:08:20 UTC
A non-modular cmake-3.18.2-7.el8 has been pushed to git.centos.org [0].  This is planned to be included in RHEL 8.4, and will be published in CentOS Stream soon.  Adding any kind of modular or non-modular cmake to EPEL 8 doesn't make any sense at this point, so I'm going to go ahead and close this bug out.

https://git.centos.org/rpms/cmake/c/09b85a86fd26251b569658b4ecb5db9ace298606?branch=c8s