aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formula_installer.rb
AgeCommit message (Collapse)Author
2017-10-18Use “squiggly” heredocs.Markus Reiter
2017-10-08Clean up code style and remove `.rubocop_todo.yml`.Markus Reiter
2017-09-30pour_bottle?: Check bottle.compatible_cellar?Shaun Jackman
formula.bottled? is false when the bottle has no sha256, as with a local bottle.
2017-09-28FormulaInstaller: Warn when tap version is newerShaun Jackman
Warn if a more recent version of this formula is available in the tap.
2017-09-28Fix installing a local bottle from sourceShaun Jackman
Factor Utils::Bottles.formula_contents out of BottleLoader.
2017-09-28pour_bottle?: Fix when formula.bottle is nilShaun Jackman
formula.bottle is nil when bottle.compatible_cellar? is false. Use formula.bottle_specification.compatible_cellar? rather than formula.bottle.compatible_cellar?.
2017-09-24Rubocop: manual rule fixes.Mike McQuaid
2017-09-24Rubocop: automatic rule fixes.Mike McQuaid
2017-09-16Tweaks for older Mac OS X versions.Mike McQuaid
- `brew update` should try to install `curl` before `git` on older versions of Mac OS X where it is needed for accessing modern SSL certificates. - We don't need an HTTP mirror for `git` because `curl` will already be installed before it is downloaded. - Don't recommend GCC on Mac OS X versions where it can't be built with the default system compiler. - Start using the Homebrew `curl` on Mac OS X versions where it is needed as soon as it is installed.
2017-08-30pour_bottle?: Pour local bottles without sha256Shaun Jackman
Pouring a local bottle for a formula without a bottle sha256 in the formula for that OS would unexpectedly install from source instead.
2017-08-30pour_bottle?: Ensure local bottles are compatibleShaun Jackman
Don't ignore f.pour_bottle? and compatible_cellar? when pouring a local bottle. --force-bottle may be used to pour a local bottle that is incompatible, as it is for remote bottles.
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