Problem
Currently, Linux kernel headers are bundled inside the glibc and glibc-32 packages. This creates tight coupling: glibc owns files under /usr/include that really belong to the kernel. Updating headers or glibc independently is messy, and file conflicts are inevitable if we try to split them abruptly.
Goal
Create a dedicated linux-headers package to provide kernel headers separately, while ensuring a smooth transition that does not break builds or cause file conflicts.
Transition Strategy
-
Install Path Separation
- New
linux-headers package installs headers under:
/usr/include/linux-headers-<version>/
- Glibc is configured with
--with-headers=/usr/include/linux-headers-<version> so it no longer needs to ship headers itself.
- This avoids direct overlap with glibc’s current
/usr/include ownership.
-
Temporary Duplication
- During the transition, headers remain in glibc packages and are provided by
linux-headers.
- This ensures existing builds don’t break while we test the new separation.
- Once validated, headers are dropped from glibc, leaving
linux-headers as the sole owner.
-
Dependency Update
- After duplication phase,
glibc and glibc-32 gain Depends on: linux-headers.
- Builders install headers first, then glibc builds against them.
- No file conflicts, since glibc no longer installs headers itself.
Pitfalls & Safeguards
- Coupling: glibc must always be built against the same header set provided by
linux-headers. Updating headers independently can break ABI expectations.
- Conflict avoidance: path separation ensures no overlapping ownership of
/usr/include.
- Release timing: the split should be staged across one release cycle, with duplication in place before headers are removed from glibc.
Next Steps
Problem
Currently, Linux kernel headers are bundled inside the
glibcandglibc-32packages. This creates tight coupling: glibc owns files under/usr/includethat really belong to the kernel. Updating headers or glibc independently is messy, and file conflicts are inevitable if we try to split them abruptly.Goal
Create a dedicated
linux-headerspackage to provide kernel headers separately, while ensuring a smooth transition that does not break builds or cause file conflicts.Transition Strategy
Install Path Separation
linux-headerspackage installs headers under:/usr/include/linux-headers-<version>/--with-headers=/usr/include/linux-headers-<version>so it no longer needs to ship headers itself./usr/includeownership.Temporary Duplication
linux-headers.linux-headersas the sole owner.Dependency Update
glibcandglibc-32gainDepends on: linux-headers.Pitfalls & Safeguards
linux-headers. Updating headers independently can break ABI expectations./usr/include.Next Steps
linux-headerspackage with path separation.