| Age | Commit message (Collapse) | Author |
|
MikeMcQuaid/formula-installer-show-upgrade-revision
formula_installer: display full upgrade version.
|
|
Previously this omitted the revision which meant the currently
installed and upgrade version showed as the same.
|
|
|
|
|
|
|
|
|
|
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.
```
|
|
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.
|
|
Attempt to improve Travis CI. This time without any vendoring gems
nonsense.
|
|
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.
|
|
If you `brew install` a formula that's already installed you get:
Warning: ripgrep-0.5.1 already installed
If you `brew install` an outdated formula that's installed you get:
Error: ripgrep-0.5.1 already installed. To install this version, first
`brew unlink ripgrep`
Instead, suggest that the user should `brew upgrade` in this case. If
the formula isn't outdated use the previous message.
|
|
Fix those that can be done so without tearing Homebrew to pieces and
remove the comments for those that can never be done.
|
|
We've been testing the recursive dependency check and allowing unlinked
dependencies in CI for a while with no adverse consequences so enable
them globally now for all users.
|
|
Add `--only` and `--except` methods which can be used to selectively
enable or disable audit groups.
|
|
Rather than just checking if a requirement's dependency is installed or
not check if the requirement was actually satisfied by a particular
formula rather than e.g. just having a `default_formula` defined.
|
|
This makes them behave consistently to other dependencies. Otherwise
other checks for them being `installed?` will fail.
Fixes #2333
Closes #2302
Fixes https://github.com/Homebrew/homebrew-science/issues/5247
|
|
Detect recursive dependencies and refuse to install them providing
instruction on exactly what is depending on what.
Fixes #1933.
|
|
formula_installer: add env to allow unlinked deps.
|
|
Discussed in
https://github.com/Homebrew/brew/pull/1987/files#r100693581.
This was originally ommitted because it wasn't compatible with Ruby 1.8.
(See https://github.com/Homebrew/legacy-homebrew/pull/48144#r49928971).
|
|
We can enable this locally and/or in `brew test-bot` to see if this
code is needed any more. If we can remove it we can start doing much
more interesting things with linking keg-only, versioned formulae and
system dupe formulae.
|
|
|
|
Also, report formulae installed on request. This is useful in
differentiating between those formulae that are popular because they
are widely requested and those that are popular because they are widely
depended on.
|
|
requirement: get formula from satisfy.
|
|
This means that a `brew install $ALIAS` records the path accordingly
so e.g. `Formula#full_installed_specified_name` returns the correct
path.
|
|
|
|
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.
|
|
Require `HOMEBREW_CHECK_RECURSIVE_VERSION_DEPENDENCIES` to be specified
(which will be by `brew test-bot`) to avoid this being inflicted on
end-users unnecessarily.
|
|
Don't allow e.g. the use of `openssl` and `openssl@1.1` in the same
dependency tree to avoid runtime failures and general weirdness.
|
|
This is no longer needed as the reason it was added (argument
sanitisation) is now done properly.
Also, remove `skip_deps_check?` in favour of `ignore_deps?` as it too is
no longer needed.
|
|
Fix dependency option handling.
|
|
reinstall/upgrade/install: always output options.
|
|
- formula_installer: only recompute dependencies when necessary i.e.
when a bottle pour fails.
- formula_installer: re-add accidentally remove dependency options
- dependency: missing options are only those that actually exist on a
formula
|
|
This is both easier for debugging and to communicate with users what is
being done.
|
|
When reading a building a formula from a keg (rather than e.g. from
name) then the deprecation options were not remapped correctly as they
are only done in `Tab.for_formula` and not `Tab.for_keg`. Ensure that
after we’ve created the formula that the `used_options` are remapped
correctly.
|
|
|
|
When a formula depends on any requirements, they evaluated at most three times:
before locking, before installing dependent, before building formula.
When a non-fatal requirement is specified and thus evaluated three times,
mostly the same warning message is also emitted three times.
This change restricts printing the warning messages only when a bottle is
successfully installed or before building.
Since this timing is after the final dependency computation for each cases,
the warnings will be most useful to check what is not yet satisfied.
|
|
|
|
Invalid build option warnings - supersedes #1088
|
|
If `--with-foo` is provided to a formula through a tab or through
another formula depending on it and this option does not exist it
should be filtered. If it is not (the prior behaviour) then this can
prevent bottles being used unnecessarily.
Fixes #1399.
|
|
|
|
Apparently `cellar :any_skip_relocation` doesn't actually mean we
can skip relocation, at least for text files.
|
|
Replace relocate_text_files with three methods that clarify intent:
replace_locations_with_placeholders, replace_placeholders_with_locations
and replace_text_in_files, the first two calling the third.
|
|
`brew bottle` replaces instances of the Homebrew prefix, cellar, and
repository with placeholders in all text files. Cache these files in
INSTALL_RECEIPT.json so that we don't have to check every single text
file for placeholders on install.
|
|
This avoids needlessly installing build-time dependencies of dependencies
which are not themselves being built from source.
|
|
ruby-macho now performs all relocations in Homebrew.
Additionally, delete the defunct CctoolsRequirement.
|
|
|
|
|
|
Store the formula used to build the keg in the keg
|
|
|
|
Store the formula used to build the keg inside the keg in a
file named NAME/VERSION/.brew/NAME.rb after removing the
bottle do ... end block.
See https://github.com/Homebrew/brew-evolution/pull/6.
Closes https://github.com/Homebrew/brew/issues/931.
|