aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/install.rb
AgeCommit message (Collapse)Author
2010-07-29Shorten 'bad man path' message.Adam Vandenberg
2010-07-20Fix top-level formula having duplicate depsAdam Vandenberg
If the top-level formula being installed has any keg-only dependencies, the lib/include/bin/pkg-config paths for those deps will be added twice to the ENV vars. This doesn't break anything, but does make debug output somewhat longer than it needs to be. Tidy this up by calling uniq on deps before iterating. (The cause of this duplication is related to how top-level formula are run, to support keeping patches in __END__ blocks.) Fixes Homebrew/homebrew#1110
2010-06-17Bug fix for METAFILES that are actually directories.Adam Vandenberg
If a package contains a folder that has the same name as one of our expected meta files, skip trying to install that folder. (Otherwise we install an empty folder and can get odd permission errors when trying to summarize after install.)
2010-06-15Set HOMEBREW_DEBUG_INSTALL when in a shell during install -d|-iAdam Vandenberg
When an "install -d formula" fails, and the user gets dropped into an interactive shell, set the HOMEBREW_DEBUG_INSTALL env var to the name for the formula that failed. Also set variable if the user requests an interactive install in the first place. Note that this may be different than the formula being installed, since it may have been a dep that failed. Also remove todo in utils; users can now look for HOMEBREW_DEBUG_INSTALL in their prompt command, and adjust their prompts accordingly.
2010-06-01Warn if a keg-level "man" is found.Adam Vandenberg
Homebrew expects manpages to be linked in shared/man/... and not man/...
2010-05-06Move dump_build_env to utils and use during installs too.Adam Vandenberg
2010-05-02Merge keg_only? blocks in installer.Adam Vandenberg
2010-04-22Add --git option to 'brew install -i'.Adam Vandenberg
This allows for easy generation of diffs, per a trick in http://wiki.github.com/mxcl/homebrew/formula-cookbook
2010-04-06Force readme files to not be executable.Adam Vandenberg
2010-01-18If keg only don't warn about s?bin not being in PATHMax Howell
Fixes Homebrew/homebrew#488.
2009-11-12Check for $! before installingMax Howell
If an exception is thrown while parsing the formula file before the install.rb at_exit then it will be in $!. Marshal it back to the parent brew process.
2009-11-08Set ENV[HOMEBREW_BREW_FILE]Max Howell
Thus install.rb gets the path to the instantiating brew process rather than whichever is first in the PATH. Not to mention Homebrew doesn't *have* to be in the PATH.
2009-11-08Rename BREW_FILE HOMEBREW_BREW_FILEMax Howell
Because it's a global.h constant and that file can be included by other projects.
2009-11-07brew install improvementsMax Howell
Couldn't make this atomic, apologies. Fixes a few things, like deps failing to build not aborting the install. --force now works properly again. Overall more robust code. I went back over it all and gave it a lot of thought. Cleaner separation of logic. Less code in brew, now the only code there is ARGV handling, and basic sanity checks. Not extending ARGV or ENV in global now as that would propagate to other tools or utilities you may write.
2009-11-04Rewrite of HOMEBREW_ folder locationsAdam Vandenberg
This rewrite attempts to sort out where the Prefix, Cellar, and Repository are relative to the real and symlinked 'brew' command. Also included is a --config option which dumps all of these variables. Any top-level script must define a "BREW_FILE" that gives the path to brew as it exists in the path. 'brew' itself just uses __FILE__ and install.rb does a `which brew` (there may be a better way?) The Prefix is always relative to the location of brew as it exists in the path. Thus, whether or not /usr/local/bin/brew is a symlink or real file, the Prefix is always /usr/local. If you have brew in some other prefix, such as /nonstandard/bin/brew, then '/nonstandard/ will be managed by brew instead. The Repository, Cellar, and "Library/Homebrew" required code is always found relative to the "real" path or brew. If brew is a real file in /usr/local/bin/brew, then everything else will be found in /usr/local and we'll expect a /usr/local/.git Otherwise, we dereference brew's symlink and look for everything else relative to that path instead.
2009-10-24Marshal install.rb exceptions back to the parent processMax Howell
Using an error pipe. The use of ENV[HOMEBREW_ERROR_PIPE] feels wrong, but I wasn't sure how else to proxy the file descriptor to the child process since the fork immediately calls exec.
2009-10-23Show backtrace during non fatal install steps if --debugMax Howell
2009-10-15Some subdirs and renames to aid homebrew n00bsMax Howell
The classes better reflect their contents. I'm sure this change may be contentious, but I am a sucker for trying to create source bases that are easy to get to grips with and easy to navigate. brewkit.rb is now a deprecated file.
2009-10-15Move verbose ARGV display to install.rbMax Howell
This works better as it comes after any keg-only deps change ENV, but also it needs to happen after brewkit is required and that only happens in install now.
2009-10-15s/require 'brewkit'/require 'formula'/gMax Howell
brewkit.rb changes ENV destructively, so lets not do that everytime a formula is required. Now it's possible for other tools to require a formula description without worrying about side-effects.
2009-10-12Introduce :provided_by_osx for keg_only?Max Howell
2009-10-03Add to PKG_CONFIG_PATH for keg-only depsMax Howell
Also prepending to these vars now too as for kegs that are duplicates of OS X libs, we need to give them the edge and put them first.
2009-09-30brew list lists root keg files if not README, etc.Max Howell
2009-09-30Allow returning true from keg_only?Max Howell
2009-09-25Axel formulaChristian Mayer
Axel tries to accelerate downloads by using multiple connections (possibly to multiple servers) for one download. Because of its size, it might be very useful on bootdisks or other small systems as a wget replacement.
2009-09-21Automatically add keg_only? deps to relevent ENVMax Howell
Eg gettext gets added into LDFLAGS, INCLUDE and that. I hope I got everything that is typical. Prolly not. But we'll find out. Made readline keg_only because the BSD version is provided by OS X, and I don't want bug reports that are tricky to solve due to unexpected differences between the two.
2009-09-17Solving the GNU GetText issuesMax Howell
GNU GetText breaks eg. Ruby 1.9 builds, and some other formula I have been building too. But it is required by eg. glib. So to solve this we are going to by default not symlink gettext into the Homebrew prefix. Formula that depend on GetText will have the gettext paths added to the brewing environment automatically. Neat.
2009-09-17Prettier install outputMax Howell
This way caveats and other warnings/errors don't appear connected to the Summary text.
2009-09-17Warning for bin dirs not in the PATHMax Howell
Eg. sbin may be part of the formula, but that isn't in the default Mac PATH. Also will avoid bug reports for users who forget to amend their PATH and stick Homebrew somewhere different.
2009-09-16Allow formulae to use __END__Max Howell
For this to work the "running script" must be the formulae file. Making this so wasn't so hard, there is now an install.rb script which is included with the -r flag to the ruby executable. An at_exit handler calls the install function. Having the install logic in its own file made it feel like there was so much space that I added extra error handling. So there is something to be said for separating functionality out into its own files. Still the error handling sucks, we'll need to marshall the exception back to the bin/brew command. Which is another PITA. Still overall I think this will prove worthwhile. But if it doesn't we'll revert. As a first usage, you can put a diff after __END__ and return DATA from Formula::patches to make Homebrew aware of it.