kernel-headers and kernel-tools-libs-devel both contain /usr/include/ynl/devlink-user.h

When building kernel RPMs with YNL support enabled, there is a file conflict between two packages:

  • kernel-headers
  • kernel-tools-libs-devel

Both packages claim ownership of all YNL-generated header files in /usr/include/ynl/ (including devlink-user.h)

See: osci.installability downgrade

The issue is in redhat/kernel.spec.template where the %files sections for both packages overlap:

kernel-headers (lines 3944-3947)

  %if %{with_headers}
  %files headers
  /usr/include/*
  %exclude %{_includedir}/cpufreq.h
  %endif

kernel-tools-libs-devel (lines 4089-4099)

  %files -n %{package_name}-tools-libs-devel
  %ifarch %{cpupowerarchs}
  %{_libdir}/libcpupower.so
  %{_includedir}/cpufreq.h
  %{_includedir}/cpuidle.h
  %{_includedir}/powercap.h
  %endif
  %if %{with_ynl}
  %{_libdir}/libynl*
  %{_includedir}/ynl
  %endif

Proposed Solution

Exclude the ynl directory from kernel-headers package since it's already explicitly included in kernel-tools-libs-devel:

   %if %{with_headers}
   %files headers
   /usr/include/*
   %exclude %{_includedir}/cpufreq.h
  +%exclude %{_includedir}/ynl
   %endif

Jira: CKI-79

Edited by CKI Bot