138 Commits

Author SHA1 Message Date
Mike McQuaid
abb4038db0
install: switch Rosetta 2/Intel messaging order. 2020-12-22 11:28:45 +00:00
Mike McQuaid
fe8f3c4b13
install: clarify "on Intel" error if under Rosetta 2.
Inspired by https://github.com/Homebrew/brew/issues/10088
2020-12-22 08:41:49 +00:00
Mike McQuaid
2378a0bbb3
install: add ARM migration instructions. 2020-11-12 19:14:46 +00:00
Mike McQuaid
c91ff3c399
install: fix prefix checks.
Co-authored-by: Bo Anderson <mail@boanderson.me>
2020-11-12 18:58:03 +00:00
Mike McQuaid
5afff3f3aa
Handle macOS Homebrew on ARM
- Output `brew doctor` and `brew install` messages noting this configuration is (currently) unsupported and encourage use of Rosetta instead
- Output Rosetta 2 usage in `brew config` on ARM (whether in Rosetta 2 or not)
- Check the architecture of (newly installed) dependencies and ensure they are using the correct architecture.
- Don't allow installing macOS Intel Homebrew in macOS ARM Homebrew default prefix (and vice versa
- Actually write out the architecture of dependencies to the tab rather than generating and throwing them away
- Set and document the expected default prefix for macOS Intel Homebrew, macOS ARM Homebrew (`/opt/homebrew`) and Homebrew on Linux

While we're here:
- Don't say Big Sur is a prerelease version but still make it clear we
  don't support it (yet).
- Don't reference non-existent IRC channel
2020-11-12 17:06:47 +00:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Mike McQuaid
f161e56ce0 ENV: check SDK exists when setting up.
Reuse code from `brew doctor` that checks and produces a fatal error
and from `install.rb` that runs it.

Closes #8646
2020-09-11 12:05:22 +01:00
Markus Reiter
7fce76d176 Refactor and document Install. 2020-08-17 19:17:18 +02:00
Markus Reiter
20bd4280ff Pass args.cc to Install. 2020-07-30 03:21:12 +02:00
Markus Reiter
f8934c0255 Pass args in Install and Messages instead of using global args. 2020-07-30 03:21:12 +02:00
Mike McQuaid
11c875d747
macOS Big Sur tweaks
- output warnings when running on ARM
- require Xcode 12
- use 11.0 as the version number
2020-06-23 14:11:05 +01:00
Misty De Meo
89b42bc522 Install: permit ARM-based Macs 2020-06-22 12:55:59 -07:00
Gautham G
b40e33aeb8 ARGV: Deprecate ARGV.cc and replace with Homebrew.args.cc 2020-05-04 11:14:55 +05:30
Trung Le
3df97b20d5 Add PowerPC64 CPU
Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
2020-04-30 23:37:45 +10:00
Issy Long
341ea60807
Auto-fix Style/RedundantBegin offenses
- This also required auto-fixes for Layout/EmptyLinesAroundBlockBody and
  Layout/InconsistentIndentation once the auto-fixer had got rid of the
  "redundant begin"s.
2019-10-13 16:04:27 +01:00
Mike McQuaid
704ea4b4bb
install: add comment explaining why we're creating these files. 2019-09-18 09:44:29 +01:00
Mike McQuaid
8d6ac3869c
install: keep_file must be a Pathname. 2019-09-18 09:44:28 +01:00
Ivan Verevkin
878b79d456
install: create .keepme files in directories. 2019-09-18 09:44:06 +01:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
EricFromCanada
89f0fcedbe whitespace fixes 2019-04-13 21:32:04 -04:00
Mike McQuaid
589ed8e17c
Tweak diagnostic checks
- Make `gist-logs` perform more checks
- Don't complain about a non-/usr/local install at install time unless
  actually building from source.
- Show more checks output on a build error
- Improve naming of checks methods
2019-01-21 19:23:31 +00:00
Mike McQuaid
3a0e0dca36
Output more warnings on unsupported configurations 2019-01-21 13:58:03 +00:00
Mike McQuaid
170c5493a4
Update deprecations
- Add some `odeprecated`
- Make some `odeprecated` now `odisabled`
- Remove `odisabled` code.
- Remove old update migrations
- Remove GCC 4.0 compiler
- Remove Tiger-only code
- Remove 32-bit-only code
- Remove use of LD64
- Remove GCC 4.3 - 4.8 support.
2019-01-08 19:13:46 +00:00
Shaun Jackman
c0f07db656 Symlink ld.so [Linux] 2018-09-28 14:01:09 -07:00
Mike McQuaid
9a698d2130
keg: further tweak directory constants.
- ensure that `HOMEBREW_CELLAR` is always created on `install`.
- remove the need for a special `PRUNEABLE_DIRECTORIES` variable
- reuse values from existing variables and get `uniq`s.
2018-09-25 22:03:29 +01:00
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +02: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
94409712fe install: don't exit on Homebrew.failed?
This will be set if e.g. pinned packages aren't being upgraded.

Fixes #4388.
2018-07-02 10:25:04 +01:00
William Woodruff
96ff4102c8
formula_installer: Don't check devtools if pouring 2018-06-11 00:45:25 -04:00
Andrew Janke
8b55cb5ecb Refactor commands to remove "require cmd/help" 2018-06-07 04:59:59 -04:00
Max Howell
45ba18b4d5 Rename install.rb to build.rb for clarity and great justice
It was just confusing, and since the `brew upgrade` refactor this makes more sense too.

Shame it still downloads in there etc. but whatever. Homebrew 2 will fix!
2011-08-24 22:30:44 +01:00
Max Howell
19e387d92e brew upgrade
Consequence: you can no longer install when something is already installed, you must upgrade it. This doesn't apply if the formula in question was unlinked. You can still --force installs though.

Rationale: the old way of installing over the top would leave symlinks to multiple versions in /usr/local if the old version had a file the newer version didn't. The new upgrade command handles everything properly.
2011-08-24 22:30:43 +01:00
Adam Vandenberg
0818189b5d Fix stripping of keg-only reasons 2011-07-30 10:11:35 -07:00
Max Howell
71cc478a86 Strip keg_only? text to avoid double newlines 2011-07-30 11:04:11 +01:00
Max Howell
7e1e8efdf4 Fix install names for keg-only brews too
Fixes Homebrew/homebrew#6065. Fixes Homebrew/homebrew#6218.
2011-07-04 09:31:48 +01:00
Mike McQuaid
eb7c5fa6d7 Fix missing pourable? reference. 2011-06-22 18:00:45 +01:00
Max Howell
1d606388b4 Show summary headings when appropriate 2011-06-17 09:30:25 +01:00
Max Howell
215fcd3292 Fix upgrading libdeps breaking stuff after cleanups
Fixes Homebrew/homebrew#2709.

By forcing dylibs to have an install_name id that is the HOMEBREW_PREFIX path, ie. the symlink’s path. Stuff that links to these dylibs will use this id and thus by immune to upgrades of underlying libraries.

Thus whatever keg is "current" ie. linked, will be the library that is used by the tool.

This fix is not retroactive. So there will still be breakage for existing installations of stuff.

The fix_install step in install is moved after the link step as the symlinking
is required to determine the eventual ids for each dylib.
2011-06-17 09:30:25 +01:00
Mike McQuaid
31dea3b800 Add changes to Homebrew internals for bottling. 2011-06-08 22:19:10 +01:00
Adam Vandenberg
80ba991324 Edit keg-only message 2011-04-18 10:33:37 -07:00
Adam Vandenberg
7fa3208b02 Add warning about m4 macros. 2011-03-29 10:02:56 -07:00
Adam Vandenberg
3c3d8661dc Remove ENV dump from top of verbose install.
If an install fails, the ENV dump at the end of the output is more
useful, as it reflects any ENV changes done in def install.
2011-03-21 10:23:18 -07:00
Adam Vandenberg
30fdd7a49b install - change keg-only warning 2011-03-15 22:04:13 -07:00
Adam Vandenberg
2a5f757816 Use + instead of /. 2011-03-12 11:55:07 -08:00
Max Howell
761cbd3dab Add comment and use constants 2011-03-12 11:55:07 -08:00
Camillo Lugaresi
f4ffb754c3 ensure brewed bins are in path before installing
This makes sure that formulas find the correct pkg-config.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-03-12 11:55:06 -08:00
Max Howell
521f1ec959 A install name fix step during install
We currently only fix relative paths, but we should expand this more.
2011-03-12 11:55:04 -08:00
Max Howell
c1a3b724fd Some Cleanup 2011-03-12 11:55:03 -08:00
Max Howell
768910283a Refactor the brew command into one file per command
The code was sucking. To the extent that maintenance was hard. It's a lot
easier to work with code that is sensibly split at sensible boundaries. So
now it is more like that.

But the refactor is minimal. Because we don't want you to have more merge
hell than absolutely necessary.

If you merge you will need to pay attention to brew.h.rb (as it is deleted)
and bin/brew (as command logic is gone). It will be painful, but you will just
have to help git out by moving any changes around manually.

Note compatibility.rb. It ensures that any function renames or removals don't
break anything. We're pretty serious about backwards compatibility. And that's
because we encourage you to hack around with the innards. And we couldn't do
that if we would then just make stuff disappear behind your back.
2011-03-12 11:55:02 -08:00
Adam Vandenberg
c8781e720f Reformat keg-only message 2010-10-30 21:50:33 -07:00