869 Commits

Author SHA1 Message Date
Markus Reiter
2d6ae61314 Re-revert "Fix operator spacing." 2017-06-02 19:22:05 +02:00
ilovezfs
197392b56d Revert "Fix operator spacing." 2017-06-01 04:06:40 -07:00
Markus Reiter
d34ba7395b Fix operator spacing. 2017-05-31 19:53:41 +02:00
Markus Reiter
3165fd2519 Merge pull request #2663 from reitermarkus/lockfile
Convert `FormulaLock` to more generic `LockFile`.
2017-05-29 19:27:58 +02:00
Mike McQuaid
ef59a751f4 Improve some brew install messaging.
Improve the messaging around `brew install` when there's a possible user
action such as an `upgrade` or `link` and don't tell people to
`install --force` when it's unnecessary.

While I did this, tweak the output and function usage in a couple of
related places.

Some example output before this change:
```
Warning: openssl is a keg-only and another version is linked to opt.
Use `brew install --force` if you want to install this version
Warning: mysql@5.6 is a keg-only and another version is linked to opt.
Use `brew install --force` if you want to install this version
Warning: analog-6.0_1 already installed
Warning: bash-completion@2-2.5 already installed, it's just not linked.
```

Some example output after this change:
```
Error: openssl 1.0.2k is already installed
To upgrade to 1.0.2l, run `brew upgrade openssl`
Warning: mysql@5.6 5.6.36_1 is already installed
Warning: analog 6.0_1 is already installed
Warning: bash-completion@2 2.5 is already installed, it's just not linked.
You can use `brew link bash-completion@2` to link this version.
```
2017-05-27 10:15:37 +01:00
Markus Reiter
060af0a26a Rename FormulaLock to LockFile. 2017-05-25 06:18:52 +02:00
Mike McQuaid
6d8c170e50 Merge pull request #2660 from MikeMcQuaid/env-filtering-test
formula: ensure HOMEBREW_PREFIX/bin in test PATH.
2017-05-21 16:35:03 +01:00
Mike McQuaid
d89c870621 formula: ensure HOMEBREW_PREFIX/bin in test PATH.
Only likely to kick in when environment filtering is enabled.

Otherwise we need to tediously add a dramatic number of PATHs to tests
or recurse through the runtime formulae dependencies and add all them.

CC @ilovezfs
2017-05-21 13:55:44 +01:00
Mike McQuaid
49e8c19feb formula: build dependencies are never missing.
If the formula is already installed and they've been removed: that's ok.

Fixes #2625.
2017-05-21 13:51:33 +01:00
Markus Reiter
e1098b0e6d Merge pull request #2638 from reitermarkus/matchers
Use scoped RSpec matchers.
2017-05-19 23:24:35 +02:00
Mike McQuaid
aeaf9af711 Merge pull request #2470 from johnhawkinson/conflicts-info
Display formula conflict reasons
2017-05-16 08:45:45 +01:00
Markus Reiter
3cdf8f938a Use scoped RSpec matchers. 2017-05-15 17:23:40 +02:00
Mike McQuaid
7055abc436 Allow --interactive to access HOME
This may result in a slightly varied build but it’s generally just far
less annoying to be able to access all your e.g. shell configuration.
2017-05-09 20:00:11 +01:00
Mike McQuaid
f951a22bea Install etc/var files on postinstall.
Also, don't delete them after that. This means that `brew postinstall`
becomes a way to easily reinstall configuration files for any formula
without needing any changes to any bottles or requiring a reinstall.
2017-05-03 09:00:17 +01:00
Mike McQuaid
45a7730f61 Fix and remove various TODOs.
Fix those that can be done so without tearing Homebrew to pieces and
remove the comments for those that can never be done.
2017-04-23 15:10:18 +01:00
Mike McQuaid
11acadaa50 Merge pull request #2524 from MikeMcQuaid/more-env-filtering-fixes
Hide sensitive tokens from install/test/post.
2017-04-23 09:45:47 +01:00
Mike McQuaid
d02b4f321d Hide sensitive tokens from install/test/post.
Hide these tokens to avoid malicious subprocesses e.g. sending them
over the network. Also, support using these tokens with environment
filtering and clear `HOMEBREW_PATH` from subprocesses to stop them
sniffing it. Finally, use `HOMEBREW_PATH` to detect Homebrew’s user’s
PATH for e.g. `brew doctor` etc.
2017-04-22 16:31:19 +01:00
Mike McQuaid
ba3c46d24f More deprecations.
Deprecate more methods. Internal APIs have been verified to be unused
elsewhere and removed. External APIs have had deprecation methods added.
Existing deprecations have been either upgraded to produce warnings or
no longer deprecated and the reasoning documented.
2017-04-22 16:28:07 +01:00
John Hawkinson
31ce953f69 formula: conflicts_with doc: give realistic :because
The documentation should help a developer understand what the
parameter is for.  "stupid example" doesn't cut it.
2017-04-09 15:07:05 -04:00
Mike McQuaid
1ba401039e Merge pull request #2422 from MikeMcQuaid/formula-missing-dependencies-handle-unavailable-formula
formula: handle missing deps when formula missing.
2017-03-30 20:25:18 +01:00
Mike McQuaid
8472d6a40e formula: check installed_alias_path exists.
Otherwise return `nil`.

Fixes https://github.com/Homebrew/brew/issues/2417
2017-03-30 19:39:26 +01:00
Mike McQuaid
689c1d5aa1 formula: handle missing deps when formula missing.
We could try and get a partial result but given it'll also be wrong it
feels simpler to just return an empty array.

Fixes #1928.
Fixes #2027.
Closes #2058.
Fixes https://github.com/Homebrew/homebrew-core/issues/11827.
2017-03-30 18:54:47 +01:00
Mike McQuaid
7ffb036b52 Merge pull request #2063 from MikeMcQuaid/caveats-clarify
formula: clarify caveats usage.
2017-02-25 14:15:19 +00:00
Mike McQuaid
10970a5c54 formula: clarify caveats usage. 2017-02-20 11:21:25 +00:00
Chris Long
15ae8870a3 Docs for tag-based urls use preferred formatting 2017-02-19 13:21:55 -08:00
Xu Cheng
f3df412e77
cleanup: consider version_scheme
`brew cleanup` should cleanup formulae which have the older
version scheme.
2017-01-30 17:16:56 +08:00
Mike McQuaid
44f1c9752a formula: installed_{as_dependency,on_request} hash
Which, in turn, provides them for `brew info --json=v1` so other tools
such as e.g. `brew bundle` can make use of this information.
2017-01-18 11:23:21 +00:00
Mike McQuaid
dac66c4ada Add keg_only :versioned_formula.
This is used to indicate a formula is a version of another formula.
This will be used to provide a consistent interface for older formulae
versions and replaces the use of `conflicts_with`.
2017-01-17 10:50:04 +00:00
Mike McQuaid
02b7ffd89d formula: runtime_dependencies contains requirement formulae.
When a Requirement is converted to a Formula it should be listed under
the runtime dependencies.
2017-01-15 21:04:59 +00:00
Mike McQuaid
28ad8a06cc formula: return runtime_dependencies in to_hash.
Which, in turn, provides it for `brew info --json=v1` so other tools
such as e.g. `brew bundle` can make use of this information.
2017-01-09 21:03:37 +00:00
ilovezfs
1a394aa7e5 Merge pull request #1782 from ilovezfs/prefix-fixups
Fix abv and prefix_linked?
2017-01-06 02:03:39 -08:00
Mike McQuaid
1a4ff22447 formula: tweak versioned prefix approach. 2017-01-06 08:50:35 +00:00
Mike McQuaid
3fde8624b3 Merge pull request #1780 from MikeMcQuaid/use-docs-links
Use docs.brew.sh links.
2017-01-05 17:17:07 +00:00
Alyssa Ross
e466a65b8d formula: correct grammar in comments 2017-01-05 12:21:50 +00:00
ilovezfs
a68d38743a formula: make prefix_linked? use versioned prefix
otherwise whenever prefix is unversioned, prefix_Linked will be false
2017-01-04 12:45:32 -08:00
ilovezfs
6195d6592b formula: realpath prefix before computing abv
versioned prefix is a directory, but unversioned is a symlink, so
realpath it before computing abv
2017-01-04 10:23:15 -08:00
Mike McQuaid
a3bffe70bc Use docs.brew.sh links. 2017-01-04 11:13:41 +00:00
Mike McQuaid
fc11f633b2 Merge pull request #1677 from MikeMcQuaid/formula-prefix-opt
formula: make prefix usually return opt_prefix.
2017-01-03 20:10:22 +00:00
Mike McQuaid
82f4413964 formula, ARGV: don't output duplicate formulae.
If you specify a formula more than once or it exists in the Cellar with
an alias name and the main name (e.g. `qt` and `qt5`) you can see the
same formula showing up more than once. Instead, resolve these output
lists of formulae such that they are unique based on their `name`. This
doesn't use `full_name` as it's `name` that's use for the `Cellar`.
2016-12-31 17:03:29 +00:00
Mike McQuaid
a571965df9 formula: make prefix usually return opt_prefix.
Return `opt_prefix` if it exists and `prefix` is not called from within
the same formula's `install` or `post_install` methods. Otherwise, fall
back to the existing functionality.

This avoids the need to use `opt_prefix` etc. everywhere and generally
means we don't expose an implementation detail (i.e. the full Cellar
path) to dependents that have a habit of hard-coding it.
2016-12-31 16:38:05 +00:00
Alyssa Ross
ef5cff5e71 formula: make runtime_dependencies logic clearer 2016-12-23 21:31:20 +00:00
Alyssa Ross
43f2e9e7bb formula: don't expand unused optional dependencies
This properly addresses Homebrew/homebrew-core#7826.
2016-12-23 21:31:10 +00:00
Alyssa Ross
3f724825d3 Revert "Revert "formula: runtime deps of build deps aren't runtime""
This reverts commit 862c3ba4a2fb76140e46fdf49a1ea6857f140a29.
2016-12-23 15:01:02 +00:00
Mike McQuaid
e95c843c2e Merge pull request #1673 from MikeMcQuaid/audit-fails-with-llvm
audit: flag use of "fails_with :llvm".
2016-12-18 11:17:44 -08:00
ilovezfs
862c3ba4a2 Revert "formula: runtime deps of build deps aren't runtime" 2016-12-13 11:15:00 -08:00
Mike McQuaid
cf1fa0c5bc audit: flag use of "fails_with :llvm".
Also, add TODOs for deprecating this properly at a later point.
2016-12-13 02:10:11 +00:00
Mike McQuaid
666463ca2b Merge pull request #1592 from alyssais/runtime_dependencies
formula: runtime deps of build deps aren't runtime
2016-12-12 13:28:56 +00:00
Mike McQuaid
c317c3c31f Merge pull request #1616 from zachwhaley/zsh_functions_caveats
caveats: Differentiate zsh completion files and function files
2016-12-12 13:27:40 +00:00
Uladzislau Shablinski
45ef7ea0b0 Merge pull request #1343 from vladshablinsky/explicit-specs
Allow to install any spec
2016-12-11 14:26:46 +03:00
Zach Whaley
95688cd72e formula: Add convenience method for installing Zsh functions 2016-12-08 07:23:26 -06:00