3858 Commits

Author SHA1 Message Date
Z. Grace Moreau
0aadc1e4e6 use 'number_readable' when displaying analytics 2018-09-12 14:47:40 -06:00
L. E. Segovia
d442905719
Upgrade: implement linkage repair
After upgrading existing kegs, we now search and upgrade their
dependents as well. If any are detected that have broken linkage, they
are reinstalled from source.

If there are any formulae in the dependents tree that are pinned, they
are only reinstalled if they're not outdated; in all cases, a suitable
message is printed detailing the kegs that will be acted upon.
2018-09-12 19:28:02 +00:00
Shaun Jackman
f6093961ef Add Homebrew::DEFAULT_PREFIX for Linux
The default prefix is /usr/local on macOS
and /home/linuxbrew/.linuxbrew on Linux.
2018-09-11 09:57:08 -07:00
Mike McQuaid
dc7b73171c
cmd/update: follow GitHub API redirects.
Fixes #4867
2018-09-09 17:55:09 +01:00
Shaun Jackman
922843f047
Merge pull request #4849 from jamescostian/shellenv
Add brew shellenv - see #4780
2018-09-07 13:28:42 -07:00
James Costian
18d38d7b76
Add brew shellenv - see #4780 2018-09-07 11:37:14 -05:00
Mike McQuaid
7615d3a812
Improve writable directory handling
Consolidate the handling of which directories need to exist and which
need to be writable. Additionally, add a fatal check for formula
installations to ensure that any directories that need to be writable
are so before attempting an installation.

Fixes #4626.
2018-09-06 18:38:43 +01:00
Mike McQuaid
c60fe60377
cmd/info: display analytics data.
When users don't have `HOMEBREW_NO_ANALYTICS` or
`HOMEBREW_NO_GITHUB_API` set let's display some analytics data in
`brew info`. This should be useful for both maintainers and for users of
Homebrew.

Note this by default combines all installs across options for a single
number; for formulae with lots of options it's a bit overwhelming to
print the installs per-option. However, for `HOMEBREW_DEVELOPER`s print
the full output.

Sample non-developer output:

```console
$ brew info wget
wget: stable 1.19.5 (bottled), HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/usr/local/Cellar/wget/1.19.5 (49 files, 3.7MB) *
  Built from source on 2018-09-03 at 20:46:32
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wget.rb
==> Dependencies
Build: pkg-config ✔
Required: libidn2 ✔, openssl ✔
Optional: pcre ✔, libmetalink ✘, gpgme ✘
==> Options
--with-debug
	Build with debug support
--with-gpgme
	Build with gpgme support
--with-libmetalink
	Build with libmetalink support
--with-pcre
	Build with pcre support
--HEAD
	Install HEAD version
==> Analytics
install: 84638 (30d), 353800 (90d), 1372775 (365d)
install_on_request: 77926 (30d), 291305 (90d), 1044898 (365d)
build_error: 11 (30d)
```

Sample developer output:
```console
$ brew info wget
wget: stable 1.19.5 (bottled), HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/usr/local/Cellar/wget/1.19.5 (49 files, 3.7MB) *
  Built from source on 2018-09-03 at 20:46:32
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wget.rb
==> Dependencies
Build: pkg-config ✔
Required: libidn2 ✔, openssl ✔
Optional: pcre ✔, libmetalink ✘, gpgme ✘
==> Options
--with-debug
	Build with debug support
--with-gpgme
	Build with gpgme support
--with-libmetalink
	Build with libmetalink support
--with-pcre
	Build with pcre support
--HEAD
	Install HEAD version
==> Analytics
==> install (30d)
wget: 84516
wget --with-debug: 51
wget --with-libressl: 16
wget --with-pcre: 14
wget --with-pcre --with-libmetalink --with-gpgme: 12
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 8
wget --HEAD: 3
wget --HEAD --with-debug --with-libmetalink --with-gpgme: 3
wget --with-gpgme: 3
wget --with-libmetalink: 3
wget --with-pcre --with-libmetalink: 3
wget --with-debug --with-pcre: 2
wget --with-libmetalink --with-gpgme: 2
wget --with-pcre --with-gpgme: 2
==> install (90d)
wget: 353131
wget --with-debug: 188
wget --with-pcre: 138
wget --with-pcre --with-libmetalink --with-gpgme: 118
wget --with-libressl: 81
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 47
wget --with-pcre --with-libmetalink: 31
wget --HEAD: 13
wget --with-pcre --with-gpgme: 12
wget --with-gpgme: 11
wget --with-debug --with-pcre: 10
wget --with-libmetalink: 8
wget --HEAD --with-pcre --with-libmetalink --with-gpgme: 4
wget --with-debug --with-pcre --with-libmetalink: 4
wget --with-libmetalink --with-gpgme: 4
==> install (365d)
wget: 1369530
wget --with-pcre: 810
wget --with-debug: 649
wget --with-pcre --with-libmetalink --with-gpgme: 554
wget --with-libressl: 479
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 235
wget --with-pcre --with-libmetalink: 184
wget --with-gpgme: 67
wget --with-pcre --with-gpgme: 67
wget --with-debug --with-pcre: 65
wget --HEAD: 54
wget --with-libmetalink: 30
wget --with-libmetalink --with-gpgme: 27
wget --with-debug --with-pcre --with-libmetalink: 24
==> install_on_request (30d)
wget: 77827
wget --with-debug: 48
wget --with-pcre: 12
wget --with-pcre --with-libmetalink --with-gpgme: 11
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 8
wget --HEAD: 3
wget --HEAD --with-debug --with-libmetalink --with-gpgme: 3
wget --with-gpgme: 3
wget --with-libmetalink: 3
wget --with-debug --with-pcre: 2
wget --with-libmetalink --with-gpgme: 2
wget --with-pcre --with-gpgme: 2
wget --with-pcre --with-libmetalink: 2
==> install_on_request (90d)
wget: 290818
wget --with-debug: 157
wget --with-pcre --with-libmetalink --with-gpgme: 101
wget --with-pcre: 100
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 42
wget --with-pcre --with-libmetalink: 30
wget --HEAD: 13
wget --with-pcre --with-gpgme: 11
wget --with-gpgme: 10
wget --with-debug --with-pcre: 8
wget --with-libmetalink: 7
wget --HEAD --with-pcre --with-libmetalink --with-gpgme: 4
wget --with-debug --with-pcre --with-libmetalink: 4
==> install_on_request (365d)
wget: 1042845
wget --with-pcre: 504
wget --with-debug: 458
wget --with-pcre --with-libmetalink --with-gpgme: 432
wget --with-debug --with-pcre --with-libmetalink --with-gpgme: 201
wget --with-pcre --with-libmetalink: 158
wget --with-gpgme: 61
wget --HEAD: 54
wget --with-pcre --with-gpgme: 49
wget --with-debug --with-pcre: 47
wget --with-debug --with-pcre --with-libmetalink: 24
wget --with-libressl: 23
wget --with-libmetalink: 22
wget --with-libmetalink --with-gpgme: 20
==> build_error (30d)
wget: 9
wget --HEAD: 1
wget --with-debug: 1
```
2018-09-06 14:18:30 +01:00
Markus Reiter
a84a1c63db Rename Hbc module to Cask. 2018-09-06 09:30:52 +02:00
Markus Reiter
ac2cd67861 Deprecate brew cask --version. 2018-09-06 07:05:22 +02:00
Mike McQuaid
1ae2326984
Rename Cask::CLI to Cask::Cmd. 2018-09-04 09:56:58 +01:00
Mike McQuaid
e06f8a8beb
Rename Homebrew-Cask to Homebrew Cask. 2018-09-04 09:56:57 +01:00
Mike McQuaid
90b3a13909
cask: move cask/lib/hbc/* to cask/*.
Fix the load path, requires and some filenames accordingly.
2018-09-04 09:56:57 +01:00
Mike McQuaid
80d75bc0d8
Homebrew/.rubocop: tweak rules.
Adjust the rules based on the current codebase. Remove various enable,
disables and default values that are unnecessary. Add more comments
explaining why. Make minor changes needed to enable a few more rules.
2018-09-02 20:15:09 +01:00
Mike McQuaid
bcb1ec5499
Improve Homebrew/brew line length.
Use 124 max line length everywhere. Also, reduce tap max line length to
189 as Homebrew/homebrew-core has that as a maximum now. In future
Homebrew/homebrew-core will also be reduced to 124 maximum line length.
2018-09-02 16:15:09 +01:00
Markus Reiter
516a39f5a4 Move migrations into UpdateMigrator module. 2018-08-31 16:51:23 +02:00
Markus Reiter
fbcaa8c85a Resolve URL to get real file extension. 2018-08-31 16:51:23 +02:00
Mike McQuaid
b068e4b927
update-report: tweak cask analytics messaging. 2018-08-18 08:26:44 +01:00
Brian Morton
7ced0be133 Merge branch 'master' into hbc_analytics 2018-08-17 16:18:40 -07:00
JBallin
520b5a103a Clarify that --cleanup only runs on formulae which were just upgraded 2018-08-16 09:28:24 -07:00
JBallin
526262fca5 Change <formula> to <formulae> to match the suggested inputs 2018-08-16 09:28:24 -07:00
Claudia
61db35f77d
brew style 2018-08-16 09:01:46 +02:00
Brian Morton
ea29158a4d
update git config key for analytics bool 2018-08-16 08:19:11 +02:00
Brian Morton
77c242548e
update variable name and msg string per comments 2018-08-16 08:18:23 +02:00
Brian Morton
37f1ae61b2
add cask analytics msg on brew update 2018-08-16 08:16:33 +02:00
Mike McQuaid
b45b716a2e update-report: solicit donations.
This message will only be displayed once.

Fixes #4644.
2018-08-14 13:19:37 +01:00
Markus Reiter
55cde526a8 Deprecate brew cask cleanup. 2018-08-13 20:09:34 +02:00
Markus Reiter
17fda8d546
Merge pull request #4658 from reitermarkus/ignore-version-error
Set `initial_version` to `nil` when `git describe` fails.
2018-08-11 17:45:45 +02:00
Markus Reiter
bdc2458c15 Always fetch at least the latest tag. 2018-08-11 00:46:29 +02:00
Markus Reiter
211e8538ec Set initial_version to nil when git describe fails. 2018-08-10 22:48:12 +02:00
Markus Reiter
03b93da296 Use option parser for brew cleanup. 2018-08-08 13:11:16 +02:00
Markus Reiter
a2238f0eb3 Output message when migrating cache entries. 2018-08-08 07:34:24 +02:00
Markus Reiter
19ffbd5e68 Skip migration if HOMEBREW_DISABLE_LOAD_FORMULA is set. 2018-08-07 16:07:12 +02:00
Markus Reiter
888a7073bc Change migration to loop through formulae. 2018-08-06 17:25:29 +02:00
Markus Reiter
7449f9cd15 Fix update-report migration. 2018-08-06 12:52:18 +02:00
Markus Reiter
dca5dc8176 Add warnings for permission exceptions. 2018-08-05 16:03:21 +02:00
Markus Reiter
8158f045c4 Only run migration when updating from older version. 2018-08-05 15:57:28 +02:00
Markus Reiter
4065c1742d Add update migration for double dashes. 2018-08-05 15:57:28 +02:00
Mike McQuaid
19d87bf15f link: when refusing link display keg only caveats
These are a bit easier to follow and have been recently improved.

Inspired by conversation in #4441.
2018-07-26 10:49:55 +01:00
Mike McQuaid
74c77db5bd shell: tweak export_value parameters.
Let’s have a default value for shell (considering this isn’t a public
API) to make it easier to use.
2018-07-26 10:48:25 +01:00
Mike McQuaid
bd5131d710
Merge pull request #4392 from MikeMcQuaid/more-deprecation-disabled
Disable more deprecations.
2018-07-15 14:48:00 +01:00
Andrew Janke
0a2d8c3d4d Add --display-times option to install, reinstall, and upgrade 2018-07-14 11:06:03 -04:00
Mike McQuaid
5c6ef3d920 Disable more deprecations.
- Turn more old `odeprecated` into `odisabled`
- Remove more old `odisabled`
- Remove code for older Ruby versions
2018-07-14 16:00:50 +01:00
Mike McQuaid
060c615fae
Merge pull request #4361 from apjanke/collected-caveats
Display collected caveats at end of `install` or `upgrade`
2018-07-13 19:22:55 +01:00
Mike McQuaid
e1eb7dd3e3 Use Ruby 2.3.7
Fixes #4459.
2018-07-13 08:22:33 +01:00
Andrew Janke
c644392a85 Display collected caveats at end of install or upgrade 2018-07-12 20:41:32 -04:00
Mike McQuaid
7cc970fea2 link: refactor, reorder and fix bugs.
The change in #4441 broke the handling of the `elsif`s due to the
change in logic. As every block here has a `next` there's no need to do
an `elsif` in here at all. Additionally, reorder the conditions in here
so you get an appropriate message depending on what you're trying to do.
Finally, tweak some of the messaging to remove things that are ignored
and tell people correct commands to run to link things.
2018-07-10 09:32:42 +01:00
ilovezfs
461b61abac link: fix undefined dep_f 2018-07-09 21:23:25 -07:00
Mike McQuaid
2f181b3f41 link: stop unneeded force linking on Mojave/CLT 10.
People are getting in the habit of force-linking things like `zlib` to
fix linking/include issues on Mojave (which doesn't install headers to
`/usr/include` by default). This way lies madness so encourage people to
instead pass the correct compiler flags instead.
2018-07-09 16:09:00 +01:00
Afnan Enayet
133c3a3c0b
Fix typo
* change `MacOS` -> `macOS`
* regenerate manpages
2018-07-06 23:06:41 -04:00