On 8/26/2019 7:22 PM, Jean-Marc Pigeon via blfs-dev wrote:
The solution, is to "hardcode" the fact glibc is gnu hash
compatible by inserting "Provides: rtld(GNU_HASH)"  within
glibc spec file (a simple marker).
Not exactly. I think you've misunderstood my suggestion here. Let me try to explain the two parts separately.

The 'solution' above was RedHat's (and later SUSE's) solution to account for a change in glibc packages after the new hash functionality became available. I'm a bit fuzzy on this part, but I believe it was binutils-2.17 that provided the necessary changes in the linker to use the new functionality in glibc (I believe it was Ken who unearthed that bit). Ultimately, RH could not place an unneeded dependency on a particular version of binutils when you really need files from glibc that were built against that version of binutils, (why they didn't just increment the build number is beyond me, maybe it was a split package at the time or they were dependent on the soname rather than a particular package) so the provides was added in RH/SUSE specs to make the requirements in downstream packages explicitly require this functionality if needed (which probably should be gone so many years later). Your packages never had that split so likely shouldn't add that provides workaround (unless you aim to be able to use RH/SUSE specs without modification, but then why write your own specs?). My suggestion for you to add the above was provided strictly as a workaround to _avoid_ rebuilding LO and keep your existing package (since it takes forever to build).

The problem here was always in LO. If you are already going through the trouble of rebuilding LO to account for the other downloads, then you should probably leave the glibc spec alone and remove the rtld requirement from your LO spec(s) so that it uses just your package names and versions (no need to litter the RPM DB with additional provides data). I might be oversimplifying things a bit here, I haven't seen your spec for LO, and it could be some automated thing that I'm unaware of, but that's what I was trying to guide you to discover on your own in my earlier message - precisely why I told you to "provide it" rather than the above verbatim for that matter - which I actually wound up removing from my first message as I though it too much hand-holding. Make you work for it, just a little, and you'll remember for life. :-)

Does that make more sense? And that's not to say that what you've done will not work. In fact, it should have made your existing LO rpm installable without any rebuild or need to force it to install, and will clearly meet the requirements for your new rpm if you've still not modified the dependencies.

All that said, LFS and BLFS is about learning, but only to a certain point (it has to be usable as well). There is nothing inherently wrong with the above workaround other than it most likely being unnecessary (and a bit unclean IMO) -- clearly RedHat and SUSE, who should be the experts, think it's fine -- but I wanted to take the time to make sure that you understand that the original error was not in your decision to omit the provides in your glibc spec file, but the depends lines in LO's spec. BTW, would you mind sharing both? It might be helpful for somebody else later on and will most definitely answer my remaining question about "some automated thing" above.

--DJ

--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to