Linuxbrew / brew

:beer::penguin: The Homebrew package manager for Linux
https://linuxbrew.sh
BSD 2-Clause "Simplified" License
2.66k stars 237 forks source link

make: remove make shim #763

Closed iMichka closed 6 years ago

iMichka commented 6 years ago

This breaks multiple formulae:

ntl: fatal error: gmp.h: No such file or directory
gnutls: fatal error: gmp.h: No such file or directory
util-linux: ncursesw/term.h: No such file or directory
tig: fatal error: ncursesw/curses.h
imagemagik@6: fatal error: bzlib.h: No such file or directory
htslib: fatal error: zlib.h: No such file or directory
pspg: fatal error: ncurses.h: No such file or directory
gsoap: fatal error: openssl/bio.h: No such file or directory

This is a new addition to brew which breaks too many things. I propose to merge this, tag and release 1.7.1, proceed with bottle building. This leaves us more time to fix the make shim or to investigate the failure.

codecov-io commented 6 years ago

Codecov Report

Merging #763 into master will decrease coverage by 0.01%. The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #763      +/-   ##
==========================================
- Coverage   68.66%   68.65%   -0.02%     
==========================================
  Files         393      393              
  Lines       21177    21177              
==========================================
- Hits        14542    14539       -3     
- Misses       6635     6638       +3
Impacted Files Coverage Δ
utils/analytics.rb 82.05% <0%> (-7.7%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 8be328f...778af08. Read the comment docs.

jonchang commented 6 years ago
iMichka commented 6 years ago

why is this issue only just appearing now??

Regarding this, I may have an explanation. There were a bunch of short releases + 1.7.0. All this tool time to get merged and tagged. Due to the bottle upload problem, I had not much time to test building of bottles. So for most of the users it was not a problem. We have around 10 days of bottle building of backlog.

iMichka commented 6 years ago

With the make shim, no make.cc file is generated, so I have no clue what superenv is trying to do here. Removing the make shim also brings back the make.cc log file. Though it may just be a side effect.

iMichka commented 6 years ago

I merged this so I can proceed with bottle building. This leaves us a little bit of time to find a better solution and to properly debug this.

xu-cheng commented 6 years ago

I think the problem may come from pathremove "$HOMEBREW_LIBRARY/Homebrew/shims/linux/super" in the original make shim.

I understand it is there to prevent fork-bomb. However, by removing the superenv path, it also disables superenv completely. i.e. the superenv cc is no longer picked up.

The correct approach would be something similar to the git shim. Find the path to the real make binary, then execute it. Or we could do:

OLD_PATH="$PATH"
pathremove "$HOMEBREW_LIBRARY/Homebrew/shims/linux/super"
MAKE="$(which "$MAKE")"
export PATH="$OLD_PATH"
exec "$MAKE" "$@"

Just my 2 cents. I hope it may be helpful. 😉

maxim-belkin commented 6 years ago

Thanks, @xu-cheng! This is it!