aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formula_installer.rb
AgeCommit message (Collapse)Author
2017-08-07sandbox: stop printing message.Mike McQuaid
We’re always using the sandbox where possible now so this is just noise for the vast majority of our users.
2017-08-05formula_installer: restore build_bottle defaults.Mike McQuaid
2017-07-31formula_installer: never build dependency bottles.Mike McQuaid
This also helpfully avoids always building all dependencies from source when passing `--build-bottle` or forcing all bottles when passing `--force-bottle`.
2017-07-30Tweak preserve link status on reinstall/upgrade.Mike McQuaid
Treat a `brew install` command as normal i.e. link by default unless keg-only and only specify whether a keg should be linked when upgrading or reinstalling. Also, adjust the naming accordingly so it's more obvious that this is the case.
2017-07-30formula_installer: fix typo.Mike McQuaid
2017-07-30Merge pull request #2961 from MikeMcQuaid/preserve-link-on-upgrade-reinstallMike McQuaid
Preserve link status on reinstall/upgrade.
2017-07-30Merge pull request #2969 from MikeMcQuaid/default-formula-bottlesMike McQuaid
formula_installer: use default_formula for bottles
2017-07-30formula_installer: use default_formula for bottlesMike McQuaid
This was the original, intended functionality before this was broken in fe117bf79b244c42b7e4049d353c3c003eae4880. Fixes https://github.com/Homebrew/homebrew-core/issues/13680.
2017-07-30Preserve link status on reinstall/upgrade.Mike McQuaid
This means if a user has manually `brew unlink` or `brew link --force`d something then that status will be preserved after they `brew upgrade` or `brew reinstall` that formula. This generally should make things that are keg-only by default easier to swallow.
2017-07-30Merge pull request #2959 from MikeMcQuaid/formula-installer-duplicationMike McQuaid
formula_installer: simplify callers.
2017-07-30Merge pull request #2923 from MikeMcQuaid/alias-fixesMike McQuaid
keg: correctly cleanup old aliases.
2017-07-28formula_installer: simplify callers.Mike McQuaid
There's a bunch of duplication going on that's not really necessary.
2017-07-27formula_installer: allow version mismatched build depsilovezfs
Only check runtime dependencies for version conflicts to avoid having to create unnecessary duplicate formulae. For example, a formula that needs to be built with ghc@8.0 should still be allowed to have a build-time dependency on a cabal-install that was itself built with ghc@8.2.
2017-07-21tab: include aliases.Mike McQuaid
Including aliases in the tab allows e.g. `brew switch` to correctly handle switching between different keg’s aliases.
2017-06-28Refactor using `Forwardable` and `DelegateClass`.Markus Reiter
2017-06-23formula_installer: runtime reqs of build deps are build reqsilovezfs
so don't consider their absence fatal if we're pouring a bottle.
2017-06-09BuildError: report options to analytics.Mike McQuaid
Without this it's not easy to make much sense of these failures.
2017-06-07analytics: remove unused analytics.Mike McQuaid
We didn't end up using the `screenview` and `exception` analytics as much as expected so let's remove them and focus on stuff that's formula-specific.
2017-06-03Merge pull request #2722 from ↵Mike McQuaid
MikeMcQuaid/formula-installer-show-upgrade-revision formula_installer: display full upgrade version.
2017-06-02formula_installer: display full upgrade version.Mike McQuaid
Previously this omitted the revision which meant the currently installed and upgrade version showed as the same.
2017-06-02Re-revert "Fix operator spacing."Markus Reiter
2017-06-01Revert "Fix operator spacing."ilovezfs
2017-05-31Fix operator spacing.Markus Reiter
2017-05-29Fixup all RuboCop warnings.Mike McQuaid
2017-05-27Improve some `brew install` messaging.Mike McQuaid
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-09Allow --interactive to access HOMEMike McQuaid
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-08Travis CI tweaks.Mike McQuaid
Attempt to improve Travis CI. This time without any vendoring gems nonsense.
2017-05-03Install etc/var files on postinstall.Mike McQuaid
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-04-25formula_installer: improve install/upgrade messageMike McQuaid
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.
2017-04-23Fix and remove various TODOs.Mike McQuaid
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-21formula_installer: remove feature flags.Mike McQuaid
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.
2017-04-18audit: allow skipping audit methods.Mike McQuaid
Add `--only` and `--except` methods which can be used to selectively enable or disable audit groups.
2017-03-25formula_installer: tweak req formula additions.Mike McQuaid
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.
2017-03-15formula_installer: need up to date req formulae.Mike McQuaid
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
2017-02-21formula_installer: detect recursive dependencies.Mike McQuaid
Detect recursive dependencies and refuse to install them providing instruction on exactly what is depending on what. Fixes #1933.
2017-02-12Merge pull request #1992 from MikeMcQuaid/no-check-unlinked-dependenciesMike McQuaid
formula_installer: add env to allow unlinked deps.
2017-02-12rubocop: trailing comma in multiline method callsAlyssa Ross
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).
2017-02-12formula_installer: add env to allow unlinked deps.Mike McQuaid
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.
2017-01-18formula_installer: use attr_accessor for installed_*Mike McQuaid
2017-01-18formula_installer: use installed_* variables.Mike McQuaid
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.
2017-01-17Merge pull request #1815 from MikeMcQuaid/dependency_to_formulaMike McQuaid
requirement: get formula from satisfy.
2017-01-15formula_installer: set specified_path on pour.Mike McQuaid
This means that a `brew install $ALIAS` records the path accordingly so e.g. `Formula#full_installed_specified_name` returns the correct path.
2017-01-11formula_installer: don't assume requirement dependency is default formula.Mike McQuaid
2016-12-31formula: make prefix usually return opt_prefix.Mike McQuaid
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-30formula_installer: optional deps version check.Mike McQuaid
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.
2016-12-13formula_installer: prevent version mismatched depsMike McQuaid
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.
2016-12-10formula_installer: remove dependency_installer.Mike McQuaid
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.
2016-12-10Merge pull request #1647 from MikeMcQuaid/fix-dependency-option-handlingMike McQuaid
Fix dependency option handling.
2016-12-10Merge pull request #1642 from MikeMcQuaid/always-output-optionsMike McQuaid
reinstall/upgrade/install: always output options.
2016-12-10Fix dependency option handling.Mike McQuaid
- 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