Jack Nagel
ca2680d77f
Move some code to the pour method
2014-10-17 22:40:03 -05:00
Jack Nagel
b05351d0b2
Reorganize post-install checks so we can share more code
2014-10-13 23:13:01 -05:00
Jack Nagel
634d67690b
Remove repeated conditional
...
The post-install audit methods are not run for keg-only installs, so we
don't need to repeat the conditional here.
2014-10-13 23:13:01 -05:00
Jack Nagel
b46ebf8a29
Simplify post-install audit output
2014-10-13 23:13:00 -05:00
Jack Nagel
c4818394cb
Post-install audit for shadowed header files
2014-10-01 23:32:53 -05:00
Jack Nagel
209e7137e3
Rearrange build process cleanup to avoid spawning a reader thread
...
This is a follow-up to bbf9f7460fc8e6e4c63f5bbe8630b11ca53f3710.
If we read from the pipe before calling Process.wait, we can avoid
spawning a thread to do the read while continuing to avoid the deadlock
that the thread was introduced to solve.
2014-09-28 01:37:10 -05:00
Jack Nagel
3bbc9998a5
Rewrite debugger to remove monkeypatches and use of call/cc
2014-09-18 14:16:07 -05:00
Jack Nagel
72d74053a2
Fix variable shadowing bug in requirement expansion
...
Long term we should probably rename the installer's "f" attribute to
"formula".
2014-09-16 22:32:18 -05:00
Jack Nagel
f3b7c3236b
Consistently call name on formula instead of relying on to_s
2014-09-14 11:19:30 -05:00
Jack Nagel
081036c81c
Remove InstallationError superclass
...
None of these subclasses share any behavior other than what is inherited
from RuntimeError, so we can just get rid of the superclass.
2014-09-14 01:10:20 -05:00
Jack Nagel
f5d18cceb6
Structure the build process so that we don't need an at_exit hook
2014-08-26 22:06:43 -05:00
Jack Nagel
11f880801c
Avoid intermediate option objects
2014-08-26 15:48:16 -05:00
Jack Nagel
ccf37d5ac0
Revert "Use the dependency object as the key in the inherited_options hash"
...
This reverts commit c8d3b39165bb11799d7849ee13a3559ad0bd63f4.
2014-08-24 16:14:16 -05:00
Jack Nagel
1ef2819979
Use the dependency object as the key in the inherited_options hash
2014-08-24 16:11:51 -05:00
Jack Nagel
8aabba670f
Consider on-disk state when computing dependencies
...
Fixes Homebrew/homebrew#28754 .
Fixes Homebrew/homebrew#29846 .
Fixes Homebrew/homebrew#30920 .
2014-08-24 14:46:34 -05:00
Jack Nagel
3d26b75847
Pull common stdlib checking code into a method
2014-08-22 22:18:03 -05:00
Jack Nagel
e6498f4dfc
Remove the universal accessor from BuildOptions
...
BuildOptions is now immutable (finally).
2014-08-16 01:39:33 -05:00
Jack Nagel
edbb219bbd
More idiomatic way to combine arrays
2014-08-13 20:54:49 -05:00
Jack Nagel
0d6ceaf86e
Simplify build_argv
2014-08-13 18:16:25 -05:00
Jack Nagel
268cd143be
Replace Options.coerce with an alternate constructor
2014-08-13 11:09:57 -05:00
Mike McQuaid
a61c3615d2
Revert "Replace Options.coerce with an alternate constructor"
...
This reverts commit 8d2ef974a3a87bf4207f71ccb8a7b4776e16a016.
2014-08-13 08:45:06 +01:00
Jack Nagel
25395c6de6
Replace Options.coerce with an alternate constructor
2014-08-12 23:55:28 -05:00
Misty De Meo
a43f450544
Clarify keg-only caveats
2014-08-12 17:28:49 -07:00
Jack Nagel
b7b8b88cea
Replace the build object rather than mutate it
2014-08-11 17:48:30 -05:00
Mike McQuaid
1455d83dd8
formula_installer: check for recommended/optional.
...
build.without? seemingly always returns true for requirements that are
neither recommended nor optional so check these before deciding not to
install a default formula.
Closes Homebrew/homebrew#31511 .
2014-08-11 20:18:15 +01:00
Mike McQuaid
4790d4cba9
formula_installer: default_formula using build.
...
Use the build options instead of whether the requirement is optional to
work out if it is needed. This handles the case of an optional
requirement becoming needed because it's a dependency for another
formula.
Closes Homebrew/homebrew#31476 .
2014-08-11 15:33:35 +01:00
Jack Nagel
8beb85a7fc
options.each only yields one argument to the block
2014-08-10 22:24:56 -05:00
Jack Nagel
2f1d40a764
Disconnect defined options from the build object
2014-08-10 21:45:24 -05:00
Mike McQuaid
064aff2591
Revert "formula_installer: fix reqs default formulae."
...
This reverts commit 435092ae0521e79d8ea21c8d4708031e3b4b17a3.
2014-08-10 16:41:30 +01:00
Tomasz Pajor
03cf38c451
formula_installer: fix reqs default formulae.
...
(Commit message written by Mike McQuaid)
With the change in a0a93f1b3b7b2be9b8a319be91086ffe220f8e32
unfortunately requirements with default formulae no longer could be
resolved when the default formulae were not installed. This commit
fixes this problem.
Closes Homebrew/homebrew#31476 .
Closes Homebrew/homebrew#31444 .
Closes Homebrew/homebrew#30901 .
Closes Homebrew/homebrew#31471 .
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2014-08-10 15:26:13 +01:00
Jack Nagel
a6bf5fa2ba
Read from the error pipe in a separate thread
...
If the build process tries to write more bytes than will fit in the pipe
buffer, it will block until the parent process does a read. However, the
parent process will only do a read after the child process has exited or
died, leading to a deadlock. Fix this by doing the read in a separate
thread.
2014-08-08 17:31:13 -05:00
Jack Nagel
142beddd7a
Use polymorphism to simplify stdlib compatibility check
2014-08-02 19:29:59 -05:00
Jack Nagel
f4ae1c9e1b
Hide the options data structure better
2014-07-31 19:59:09 -05:00
Jack Nagel
9b6f83bdfa
Use the library path constant to get the library path
2014-07-29 16:59:02 -05:00
Jack Nagel
3f12ddbccd
Decouple DATA patches from the executing script
2014-07-29 16:22:06 -05:00
Jack Nagel
cd02d3d540
Stop rescuing Exception when making opt link
2014-07-24 19:39:09 -05:00
Jack Nagel
07bf57b8ea
Push keg_only special-case into link
2014-07-24 19:39:09 -05:00
Jack Nagel
f1fc0b788f
Pass the keg object into link and fix_install_names
2014-07-24 19:39:09 -05:00
Jack Nagel
d99379bc63
Hide the downloader implementation from the installer
2014-07-22 19:14:30 -05:00
Mike McQuaid
2404de68d4
formula_installer: bottle against Homebrew Python.
2014-07-09 16:50:23 -07:00
Jack Nagel
a3958c6d8b
Use formula opt shortcuts
2014-06-30 20:31:14 -05:00
Jack Nagel
982a165e52
Use the keg object to manipulate the linked keg record
2014-06-27 16:20:17 -05:00
Jack Nagel
2de2d64907
Give more detailed information about link errors at install-time
2014-06-27 16:10:42 -05:00
Jack Nagel
3e35aacbbb
Remove dead code
2014-06-26 17:20:00 -05:00
Jack Nagel
4d9d01893e
Move deprecated Formula class methods to compat
...
These have all been moved to Formulary.
2014-06-22 15:03:17 -05:00
Jack Nagel
445dd80e44
Remove ARGV.filter_for_dependencies
2014-06-20 21:32:36 -05:00
Jack Nagel
10fda9e9b9
Decouple spec selection from ARGV
2014-06-20 21:32:36 -05:00
Mike McQuaid
9ccf965553
Revert "formula_installer: bottle against Homebrew Python."
...
This reverts commit dc53c331ebb3bf752655a6e2147ea90c38a22e2f.
Closes Homebrew/homebrew#30302 .
Closes Homebrew/homebrew#30305 .
2014-06-20 19:49:32 +01:00
Mike McQuaid
aa51c2f1d3
formula_installer: bottle against Homebrew Python.
...
When Python is required or recommended then always bottle against the
Homebrew provided Python rather than the system one. This will allow
bottling of packages that have a hard dependency on Python bindings
(which can’t be shared between system and Homebrew Pythons).
Closes Homebrew/homebrew#27112 .
2014-06-20 13:03:00 +01:00
Jack Nagel
9b4bb3d9e4
Fix retry condition when auto-tapping deps
...
Fixes Homebrew/homebrew#30212 .
2014-06-17 00:06:10 -05:00