295 Commits

Author SHA1 Message Date
Jack Nagel
070bdc59b9 Explicitly pass key-value options to the build process
Fixes Homebrew/homebrew#28695.
2014-04-26 19:10:21 -05:00
Jack Nagel
4b4fc003df Adjust installer for updated link error handling 2014-04-21 12:43:06 -05:00
Mike McQuaid
e2fbfc8390 Add hooks for pouring bottles.
This should give us a bit of control over what e.g. Boxen are doing
whilst at the same time stopping us from accidentally breaking each
other's stuff every so often.

I'm aware this may be somewhat controversial so I'm open to other
approaches.
2014-04-10 15:25:30 +01:00
Jack Nagel
9b24903875 Guard against nil in inherited_options hash
Fixes Homebrew/homebrew#28188.
2014-04-05 20:02:07 -05:00
Jack Nagel
ce1f598e98 Avoid realpath where it is not necessary
Symlinks in opt and LinkedKegs point directly at a keg in the cellar, so
only resolving one symlink should suffice, and make it clear what path
we are actually interested in.
2014-04-05 12:17:19 -05:00
Jack Nagel
a44f725c8b Ignore interrupts while cleaning up 2014-04-05 10:48:54 -05:00
Jack Nagel
309171e4f4 Automatically reinstall up-to-date dependencies that are missing options
Closes Homebrew/homebrew#21223.
2014-04-05 10:48:54 -05:00
Jack Nagel
710db1fb72 Rename outdated_keg to linked_keg 2014-04-05 10:48:54 -05:00
Jack Nagel
e4f41b9b24 Load install receipt before performing any operations on existing kegs 2014-04-05 10:48:54 -05:00
Jack Nagel
1e20d9149b Ensure build deps are installed for deps with inherited options
Fixes Homebrew/homebrew#28144.
2014-04-05 10:44:54 -05:00
Jack Nagel
7c3c67d722 Need to still check formula build state for some reason 2014-04-04 10:31:27 -05:00
Jack Nagel
611f1a1b42 Fix universal option inheritance during upgrades 2014-04-04 10:14:24 -05:00
Mike McQuaid
363f2c116c formula_installer: check pour from requirements. 2014-04-03 19:47:15 +01:00
Jack Nagel
fcb9c4d5fb Future-proof the build process fork/wait 2014-03-29 10:23:43 -05:00
Jack Nagel
976bf3f60b Tab#write always overwrites, no need to unlink 2014-03-26 16:07:49 -05:00
Jack Nagel
b5e2996365 Failing to install plist shouldn't prevent linking 2014-03-25 23:47:37 -05:00
Jack Nagel
50f394032f Write plists atomically 2014-03-25 23:45:23 -05:00
Jack Nagel
25c7b49eee Don't load the full debugger when readline is the formula being installed
Fixes Homebrew/homebrew#27842.
2014-03-25 01:39:43 -05:00
Jack Nagel
a72061c59a Check existence of target keg instead of hiding exceptions 2014-03-24 11:00:55 -05:00
Jack Nagel
04f887dc18 Always build from source when given --interactive
Closes Homebrew/homebrew#27716.
2014-03-19 22:46:15 -05:00
Jack Nagel
f36e676bc9 Don't ignore dependencies when actually building a dependency
Since the primary FormulaInstaller instance handles the entire
dependency tree, we set ignore_deps to true when instantiated the class
for each dependency in over to avoid repeated work.

However, now that arguments for the build process are whitelisted
instead of blacklisted, we have begun adding "--ignore-dependencies" if
ignore_deps is true.

This isn't quite right when we are installing a dependency. We want to
skip the calculation and installation of *its* dependencies, since the
primary installer takes care of that, but we still want to consider them
in the build process, so that they are available in the build
environment.
2014-03-13 19:25:59 -05:00
Jack Nagel
25164350d6 Revert "Roll ignore_deps change back temporarily"
This reverts commit 067f4d474cb158debb8ad7d19d664fb2540cb09f.
2014-03-13 19:10:41 -05:00
Jack Nagel
4cb3d121a4 Roll ignore_deps change back temporarily 2014-03-13 17:40:22 -05:00
Jack Nagel
16fde6fbdb Rewrite postfix conditional 2014-03-13 15:59:54 -05:00
Jack Nagel
3b68723fa8 Make FormulaInstaller setup more readable 2014-03-13 15:59:54 -05:00
Jack Nagel
ce5e2aa65c Make debug an installer mode 2014-03-13 15:59:54 -05:00
Jack Nagel
4d02849d43 Make verbose an installer mode 2014-03-13 15:59:54 -05:00
Jack Nagel
908d2ba792 Make interactive an installer mode 2014-03-13 15:59:53 -05:00
Jack Nagel
05836649fe Add predicate methods for inspecting the installer mode 2014-03-13 15:59:53 -05:00
Jack Nagel
d1e6f04651 Remove unnecessary check for pour_bottle?
@start_time will be nil if we're pouring a bottle, so we don't need to
also check pour_bottle?.
2014-03-13 15:59:53 -05:00
Jack Nagel
7c62275e13 Whitelist arguments that are passed to build process 2014-03-13 15:59:53 -05:00
Jack Nagel
60caf14ce2 Don't set installer options to their default
ignore_deps and show_header default to false.
2014-03-13 15:59:53 -05:00
Jack Nagel
a96c1a2afc Make force_bottle an explicit installer mode 2014-03-10 14:56:02 -05:00
Jack Nagel
7b6fa8b7bb Inline install_bottle? logic into the installer 2014-03-10 14:56:02 -05:00
Jack Nagel
2182ce4d16 Remove some obsoleted hacks from the installer 2014-03-10 14:56:02 -05:00
Jack Nagel
42e60f7c59 Make build_bottle an explicit installer mode 2014-03-10 14:56:01 -05:00
Jack Nagel
f01c8a0218 Pass build_from_source value to dependency installer 2014-03-08 23:42:14 -06:00
Jack Nagel
3a4bd12d48 Add stubs for build_from_source and build_bottle installer modes 2014-03-08 22:28:50 -06:00
Jack Nagel
ce93c75f11 Remove "--fresh" option from installer
Turns out that this doesn't really work at all. `brew install` _never_
reuses options in the first place, and using this option with `brew
upgrade` results in some nasty corner cases in passing options to
dependencies.
2014-03-08 19:08:47 -06:00
Jack Nagel
cf41bb1ebb Don't remove --only-dependencies since it is meaningless
When only_deps is true, this method is never called.
2014-03-08 19:08:47 -06:00
Jack Nagel
a465950874 Sanitize ARGV options that are reflected in the installer mode 2014-03-08 18:50:00 -06:00
Jack Nagel
1ab5943fb2 Let commands decide what mode the installer should use 2014-03-04 14:06:25 -06:00
Jack Nagel
4c0db19538 Extract installer setup to prelude method 2014-03-04 14:06:25 -06:00
Jack Nagel
e8727a4eee Show full name when a installing a tap dependency 2014-03-04 12:29:42 -06:00
Jack Nagel
de254f6cd6 Stop mutating build options in upgrade 2014-03-02 14:02:18 -06:00
Jack Nagel
0eefded983 Remove unnecessary parameter from inherited_options_for 2014-03-02 14:02:17 -06:00
Jack Nagel
c534b1907d Revert "Let commands decide what mode the installer should use"
I'd still like to make this change, but at least for now the initializer
requires ignore_deps to be set correctly.

This reverts commit 881a8855b944fa9bd7dfd598bb9197f79f7a13f0.
2014-03-02 09:01:50 -06:00
Jack Nagel
ffbe5bf22c Let commands decide what mode the installer should use 2014-03-02 00:21:13 -06:00
Jack Nagel
ea85812c58 Reduce the number of ways options can be passed to the installer 2014-03-02 00:03:08 -06:00
Jack Nagel
a12d3918d4 Remove unnecessary memoization from FormulaInstaller#build_argv 2014-03-01 23:55:21 -06:00