Summary: | sys-apps/shadow-4.14.5 fails configure stage with readpassphrase missing | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Rob MacKinnon <rob.mackinnon> |
Component: | Current packages | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | UNCONFIRMED --- | ||
Severity: | major | CC: | rob.mackinnon |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | ebuild with versioned dep |
Description
Rob MacKinnon
2024-02-16 07:36:58 UTC
We should fix the dep for correctness, of course, but...
>After some digging I discovered that the issue stems from an unset minimum >package version of `dev-libs/libbsd` in the ebuild. The version that came the >my downloaded stage3 is v0.9.1, but was not at a require version to provide >`readpassphrase()`, and at the writing of this bug report v0.11.8 is available >via portage.
... what stage3 was this? Can you give the URL you got it from & its full filename? Any remotely modern stage3 should have a newer version already.
Pulled from: https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-nomultilib-systemd/stage3-amd64-nomultilib-systemd-20231210T170356Z.tar.xz Agreed. I sorta figure that would be the case and thought it was weird. We should drop the dev-libs/libbsd dep and pass --without-libbsd to configure. That should cause it to use bundled code for any needed functions. (In reply to Rob MacKinnon from comment #2) > Pulled from: > https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64- > nomultilib-systemd/stage3-amd64-nomultilib-systemd-20231210T170356Z.tar.xz > > Agreed. I sorta figure that would be the case and thought it was weird. Are you sure that's the one you used? libbsd-0.9.1 was dropped from ::gentoo in 8cf8369dccd5dfbca05b5cbf6286e95552426552 (December 2019). I just downloaded that tarball you linked and it doesn't contain libbsd. Turns out the path I was expanding too was dirty, and contained a few things (libbsd being one of them). A confirmed clean install with the link stage3 does indeed build clean. Though I would like to throw in a case to leave the dep in there as samba, elfutils, and a handful of other libs depend on it. Seems silly to not use the system library and rely on the built-in. Though a use flag of 'system-libbsd' might fit the bill better and allow the user to make a more informed decision. Yeah, I tend to agree. I'd rather use libbsd than the bundled versions, I think. (In reply to Sam James from comment #6) > Yeah, I tend to agree. I'd rather use libbsd than the bundled versions, I > think. We are talking about a single function to read a passphrase from a file descriptor. Pulling in an external library for this seems silly to me. For some reason, I was convinced there were other misc. functions it wanted, but nope, you're right - it's just readpassphrase and formerly strlcpy. "bundled" is fine then ofc @Mike correct the reference in libbsd (which is forked locally to the package) is for the single function. But if I already have libbsd installed, shouldn't the package make use of the system shared library over burning in a function from the package, or at least giving the user the option to side that way? (In reply to Rob MacKinnon from comment #9) > @Mike correct the reference in libbsd (which is forked locally to the > package) is for the single function. But if I already have libbsd installed, > shouldn't the package make use of the system shared library over burning in > a function from the package, or at least giving the user the option to side > that way? shadow is a @system package, and requiring libbsd means you have libmd as well, which feels a shame for something so tiny with a single function. The fact that libbsd also has an implementation of this should be seen as kind of tangential. |