Swap multiarch-support for a defensive dependency on libc6 #487
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As of Ubuntu Focal Fossa (20.04) the transitional
multiarch-support
package (introduced in Natty Narwhal) has finally been removed. This MR removes the explicit dependency on that package which unblocks adding a Focal Fossa build of the library.The details of the change required quite a bit of research so I've written up my findings and logic here:
Back in 2006 glibc added a model for separating 32bit/64bit libraries between separate library paths (
/usr/lib/x86_64-linux-gnu
vs/usr/lib/i386-linux-gnu
). Debian (and thus Ubuntu) adopted that policy into their package manager around the time of the Natty Narwhal release, but any packages that used the new paths needed a version ofld-linux.so
that knew to look in the architecture-specific paths for dynamic libraries. To make this easier themultiarch-support
package was added, which is effectively an alias for a dependency onlibc6 >= 2.3.6-2
(since2.3.6-2
is the version that enabled the multiarch folder searching), the idea being that packages that use the new paths (which in time was expected to be all packages that install libraries) wouldPre-Depend
onmultiarch-support
thereby ensuring that their new libraries would be findable after installation.Ubuntu releases since Edgy Eft have all provided a new enough
libc6
by standard, so themultiarch-support
package has been redundant for new installs (since 9 years before it was even created!), but it's been kept around to handle installs that have been upgraded from even older releases to make surelibc6
is sufficiently upgraded. As of Focal Fossa this defensive package has been removed (I assume since there's no upgrade path from pre-Dapper Drake that won't sort out thelibc6
versioning at some point).I considered just removing the dependency outright, but - since in theory it's the "right thing to do" on Xenial Xerus/Bionic Beaver, I instead replaced it with the dependency on the appropriate
libc6
package, which I claim will be a no-op on every install of this package ever 😀.