Bug#1084908: arch:all linux-libc-dev causes problems to architecture bootstrap
On Tue, Mar 04, 2025 at 12:47:37PM -0400, Stefano Rivera wrote:
> Bastian is concerned that if both linux-libc-dev and linux-libc-dev-*-cross
> provide linux headers in different paths they should conflict with each
> other to avoid compilers accidentally sourcing the wrong headers.
> linux-libc-dev installs in the usual multiarch include directory
> (/usr/include/$ARCH/linux/). linux-libc-dev-*-cross installs in the sysroot
> directory (/usr/$ARCH/include/linux/)
>
> I would imagine that any conflicts like that would make
> linux-libc-dev-*-cross practically uninstallable in any situation where
> you'd need them (libc6-dev depends on linux-libc-dev).
Yes. An unversioned conflict would make the whole cross stuff
effectively uninstallable.
> I could see a scenario where linux-libc-dev-*-cross are tiny wrapper
> packages, depending on linux-libc-dev and including symlinks from one
> include directory to the other. I assume that wouldn't need the Conflicts?
This is what I implemented as well, a symlink farm. But those symlinks
needs to be belong to the same source package, as the set of required
symlinks change over time. Or we are back at: requires conflicts.
I only consider symlinks to files acceptable. With symlinks to
directories we are back in aliased directories land, with all the same
problems as merged-/usr.
> Or if the Conflicts were more version-targetted and allow linux-libc-dev and
> linux-libc-dev-*-cross to co-install if they were built from the same linux
> source version, would that be acceptable?
Only if the *-cross maintainer is fine with updating it within a day,
every week or so for unstable, but even for stable or security. So, not
possible, given that the existing conflict for the same reason against
glibc was only solved by NMU after a week or so.
Bastian
--
Where there's no emotion, there's no motive for violence.
-- Spock, "Dagger of the Mind", stardate 2715.1
Reply to: