From Fedora Project Wiki

Removal of the glibc-headers package

Summary

It was always the intent that on Fedora for x86-64, only the glibc-headers.x86_64 was installed and available from composes. However, due to compose tool limitations, the glibc-headers.i686 package sometimes leaks into the compose, and end users my install it, causing future upgrade problems.

Owner

Current status

  • Targeted release: Fedora 33
  • Last updated: 2020-04-06
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

If glibc-headers.i686 is installed for some reason and it vanishes again from the compose, the system cannot be updated anymore using dnf update.

We cannot remove the glibc-headers.i686 package from the build because the i686 buildroot needs it. The current solution is to provide a glibc-headers-x86.noarch package on i686 and x86_64. Since it is a noarch package, the existing compose tool is no longer a problem.

releng issue #8337 contains further background information.

Benefit to Fedora

System upgrades will work more reliably.

Scope

  • Proposal owners: Implement the glibc changes and remove some of the build dependencies on glibc-headers.
  • Other developers: Help with the removal of glibc-headers dependencies will be appreciated.
  • Release engineering: #9384 (a check of an impact with Release Engineering is needed)
  • Policies and guidelines: The packaging guidelines already recommend a dependency on gcc or gcc-c++ for the appropriate compiler, so they do not need changing.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

The goal is more seamless in-place upgrades.

The removal of glibc-headers dependencies is optional because there are compatibility Provides:.

How To Test

Regular system upgrades of rawhide will implicitly test this change, and so will upgrades from previous Fedora versions.

User Experience

There is no change in user experience.

Dependencies

This change can be implemented on its own.

Contingency Plan

  • Contingency mechanism: Revert the change and bring back the glibc-headers package as it exists today.
  • Contingency deadline: before Beta
  • Blocks release? no
  • Blocks product? no

Documentation

No documentation update is needed.

Release Notes

The removal of the glibc-headers package should be mentioned, and that build-time dependencies should be on the compiler packages (or glibc-devel, if that makes more sense for some reason.)