landley / toybox

toybox
http://landley.net/toybox
BSD Zero Clause License
2.39k stars 334 forks source link

"no acceptable grep could be found" when building GNU Make (and others) #461

Open absolutelynothinghere opened 10 months ago

absolutelynothinghere commented 10 months ago

When building GNU Make, the configure scripts displays the following error:

checking for grep that handles long lines and -e... configure: error: no acceptable grep could be found in /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:/usr/xpg4/bin

Many other configure scripts show the exact same error, I'm guessing this is a standard autotools test that toybox grep is failing.

landley commented 10 months ago

Acknowledged, I'll try to take a look this weekend. (Please poke me on monday if I forget.)

landley commented 10 months ago

autoconf has gotten extra-annoying because when I insert toybox grep into the start of the $PATH, the test finds /bin/grep later in the $PATH anyway and uses that without comment. How this is supposed to be sane behavior I don't know, but it means I need to rewrite logwrap to be able to use a second path variable instead of just traversing $PATH like ccache and friends.

Working on it, need to adjust test environment to lie to autoconf harder...

absolutelynothinghere commented 10 months ago

So if I understand correctly, the issue is that autoconf can't find toybox grep, not that toybox grep doesn't pass the tests?

landley commented 10 months ago

No, it's that in my local test setup when toybox grep doesn't pass whatever test it ran, it silently falls back to calling /bin/grep anyway. Just saying I need to rework my test setup to stop autoconf from trying to be "clever"...

davidar commented 4 months ago

Note that if you just put "GNU" into the output of grep --version, autoconf skips the check and Make has no trouble building afaict

oliverkwebb commented 4 months ago

Patch is in waiting approval

landley commented 4 months ago

Note that if you just put "GNU" into the output of grep --version, autoconf skips the check and Make has no trouble building afaict

Yeah, I did the same thing for sed ages ago. The problem is if autoconf is traversing the REST of the $PATH to find broken commands and use those instead when the first one wasn't happy, then I may need to redesign my logpath wrapper so the remaining commands aren't in $PATH but are in some other variable entirely. (That's my pending $TODO item here.)

landley commented 1 month ago

Try commit d0e44b3a8cbd

absolutelynothinghere commented 1 month ago

Try commit d0e44b3

I was able to successfully compile GNU Make with this, so I guess the issue is solved. Thank you!

When can we expect the upcoming release with this fix?