FixesHomebrew/homebrew#2709.
By forcing dylibs to have an install_name id that is the HOMEBREW_PREFIX path, ie. the symlink’s path. Stuff that links to these dylibs will use this id and thus by immune to upgrades of underlying libraries.
Thus whatever keg is "current" ie. linked, will be the library that is used by the tool.
This fix is not retroactive. So there will still be breakage for existing installations of stuff.
The fix_install step in install is moved after the link step as the symlinking
is required to determine the eventual ids for each dylib.
Before we would always make the symlink itself have a basename the same as what it pointed to.
I don’t think this breaks any of the other usages as they were working by coincidence.
Behaviour for git checkout was changed such that the update would fail because it refused to checkout files on to existing files in the working directory.
This was bad behaviour anyway, we should make efforts to keep any local modifications to the Homebrew checkout. Everything is neatly resolved if we just do a --soft reset.
ClosesHomebrew/homebrew#6017.
This fixes reporting of which formulae changed in git versions where `pull`
output is not compatible.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Bundling explanation of X11 and libxslt is a bit odd and confusing, bundle libxml2 and libxslt instead extracted from X11 and /usr/lib requirements.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
`brew-unpack` is inspired by the `unpack` command of Haskell's Cabal.
`brew unpack <formulae ...>` will fetch the source code archives of one or more
formula and extract them into subfolders of the current working directory. An
alternate root directory may be specified by invoking the `--destdir` flag.
This provides some nice advantages for inspecting source code compared to
`brew install -i -f <formula>`:
- The extracted source code won't be deleted when the Ruby process
terminates---which allows for long-term experimentation.
- The user has control over which directory the code is extracted into.
- No install process is initiated, so accidentally typing the equivalent of
`exit 0` will not cause `brew` to mess with an existing installation.
- Several formulae may be unpacked at once.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>