#10126 Broken EPEL 8 cmake macros
Closed: Fixed 2 years ago by kevin. Opened 2 years ago by ellert.

  • Describe the issue

The cmake macro overrides have been removed from the epel-rpm-macros package in EPEL 8.
The update is currently in testing:

https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-e286aec014

However, a buildroot override has also been created:

https://bodhi.fedoraproject.org/overrides/epel-rpm-macros-8-21

so this update is already in the EPEL 8 build root in koji.

This removal of the cmake macros override was done in anticipation of an update of the cmake package in RHEL 8.4, that will make the overides obsolete since the new cmake package in RHEL will have new updated macros.

But - the new cmake package from RHEL is not yet in the EPEL 8 build root!!!

So now there is the old cmake package with old macros in the build root without any EPEL override to replace them. This breaks EPEL 8 builds that expect to have the new macros to build.

Can the new epel-rpm-macros package be dropped from the build root (override removed) until the new cmake package from RHEL is present in the build root?

  • When do you need this? (YYYY/MM/DD)

Without too much delay.

  • When is this no longer needed or useful? (YYYY/MM/DD)

When the new cmake from RHEL is in the build root.

  • If we cannot complete your request, what is the impact?

Broken cmake builds in EPEL 8.


The correct fix is to fix the import of RHEL 8.4 into EPEL. It was supposed to be imported earlier this week...

ok, we fixed the sync.

As soon as https://koji.fedoraproject.org/koji/taskinfo?taskID=68425251 finishes it should be in the buildroot.

Metadata Update from @kevin:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

2 years ago

Metadata Update from @ellert:
- Issue status updated to: Open (was: Closed)

2 years ago

There are steps which still need to run after the sync so that koji can deal with EL8. I am running them but it is going slow.

Now I get

DEBUG util.py:444:  No matching package to install: 'cmake3 >= 3.1'
DEBUG util.py:446:  Package gcc-c++-8.4.1-1.el8.x86_64 is already installed.
DEBUG util.py:446:  Package make-1:4.2.1-10.el8.x86_64 is already installed.
DEBUG util.py:444:  Not all dependencies satisfied
DEBUG util.py:444:  Error: Some packages could not be found.
DEBUG util.py:598:  Child return code was: 1

It seems the "Provides: cmake3" was dropped from the new cmake package in RHEL 8.
This breaks packages that use "BuildRequires: cmake3".
:-(
I guess there is no way this can be put back quickly...

It could be repaired in EPEL by creating an empty cmake3 package that requires cmake...

Yep it looks like they dropped it. It looks like it is an upstream bug

https://bugzilla.redhat.com/show_bug.cgi?id=1960791

@ellert Sorry for the trouble, that sync was happening nightly (until it broke) so I thought it would be ok to create that override since the release happened several days ago. It was needed for some other builds. Looks to be working now.

@ellert looking at the package, they also dropped the cmake3, cpack3 and ctest3 links in the rpm so any fix rpm would need to have those somehow.

Something like this:

Name:       cmake3
Version:    3.18.2
Release:    1%{?dist}
Summary:    Compatibility cmake3 package

License:    BSD and MIT and zlib
URL:        http://www.cmake.org

Requires:   cmake >= %{version}
BuildArch:  noarch

%description
Compatibility package providing missing provides and symlinks

%prep
%build
%install
mkdir -p %{buildroot}%{_bindir}
ln -s ccmake %{buildroot}%{_bindir}/ccmake3
ln -s cmake %{buildroot}%{_bindir}/cmake3
ln -s cpack %{buildroot}%{_bindir}/cpack3
ln -s ctest %{buildroot}%{_bindir}/ctest3

%files
%{_bindir}/ccmake3
%{_bindir}/cmake3
%{_bindir}/cpack3
%{_bindir}/ctest3

%changelog
* Fri May 21 2021 Mattias Ellert <mattias.ellert@physics.uu.se>
- Compatibility package providing missing provides and symlinks

cmake3 exists as an EPEL 7 package (maintained by besser82 (Björn Esser) and sagitter (Antonio Trande). I am not sure if I can request a new branch for a package I am not the maintainer of.

Correct, Björn will need to add you as a comaintainer so you can request and epel8 branch.

Alternatively, you can switch back to standard cmake dependencies for Fedora + EPEL 8. You shouldn't rely on legacy cmake3 for EPEL8 and newer, as it'll go away eventually anyway.

The proposed cmake3 package makes sense if RHEL is planning to eventually put back the provides and symlinks in the RHEL 8 cmake package, so that packages that use cmake3 would not have to change while waiting for that. If it was a deliberate and permanent change, packages should adapt I think. From the outside it is not possible to assess what RHEL is thinking.

From the outside it is not possible to assess what RHEL is thinking.

The reported bugzilla has publicly visible Keywords: Bugfix, Regression, Triaged. I'd say that means this was not a deliberate change.

I guess releng cant do much here other than ask maintainers to fix the macros.

Leaving the ticket open since its already being tracked here.

Metadata Update from @mohanboddu:
- Issue tagged with: medium-gain, medium-trouble, ops

2 years ago

I can confirm that cmake-3.18.2-9.el8 is showing up in epel8 buildroots now. This is resolved and can be closed. The cmake3 stuff is out of scope for this issue.

Metadata Update from @kevin:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

2 years ago

Login to comment on this ticket.

Metadata
Boards 1
Ops Status: Backlog