240 Commits

Author SHA1 Message Date
Mike McQuaid
1f6c26a2e4 software_spec: no _or_later in bottle filenames.
It's more useful to be able to "bless" an existing bottle to be used on
later OSs (e.g. where it cannot yet be built) than it is to have to
create a new, identical bottle just to have a different filename.
2016-11-05 16:13:42 -04:00
Mike McQuaid
262eaca56e diagnostic: add build error checks. 2016-11-05 10:58:39 -04:00
Mike McQuaid
b38f5b3e7d diagnostic: only make minimum Xcode/CLT version checks fatal.
Also: freeze the relevant arrays.
2016-11-05 10:58:39 -04:00
Mike McQuaid
6359c75a2d os/mac/diagnostic: split some unless conditions. 2016-11-05 10:58:39 -04:00
Mike McQuaid
bccd792bbf diagnostic: add checks for minimum Xcode/CLT versions. 2016-11-05 10:58:38 -04:00
ilovezfs
e26750e112 superenv: treat timingsafe_bcmp as weak on 10.11
Xcode 8.1 added timingsafe_bcmp to string.h and libsystem_c.tbd,
and 10.12.1 added it to libsystem_c.dylib, but it is not present in
libsystem_c.dylib on 10.11.6 (15G1108).

It may appear in libsystem_c.dylib in a later 10.11 release or it may
be marked weak on 10.11 in a later Xcode release.

Fixes Homebrew/homebrew-core#6344.
2016-10-29 03:26:52 -07:00
Josh Hagins
fab2cffe5d keg_relocate: wrap relocation locations in struct 2016-10-24 16:21:08 -04:00
ilovezfs
a53eca8cde dependency_collector: need xz dep on <= macOS 10.8
Mountain Lion: http://opensource.apple.com/source/libarchive/libarchive-25.1/config.h
  `/* #undef HAVE_LIBLZMA */`

Mavericks: http://opensource.apple.com/source/libarchive/libarchive-29/config.h
  `#define HAVE_LIBLZMA 1`
2016-10-16 05:48:37 -07:00
Mike McQuaid
b1a16deb19 Use BSD tar's libarchive LZMA support if available
Avoid using an unnecessary `xz` dependency when it's not needed.
2016-10-15 13:10:37 +01:00
Mike McQuaid
8a57fee68c */diagnostic: tweak messaging.
Update some messaging based on recent user confusion and the
`/usr/local/Homebrew` and Ruby 2 migrations.
2016-10-02 17:30:08 +01:00
ilovezfs
88a1b2853a superenv: more 10.11 clock_gettime Autotools fixes
some build systems check ac_cv_search_clock_gettime instead of
ac_cv_func_clock_gettime so the former should also be set to "no"

libev.m4 unsets ac_cv_func_clock_gettime, but if ac_have_clock_syscall
is defined, it will leave ac_cv_func_clock_gettime alone:

  http://cvs.schmorp.de/libev/libev.m4?view=markup#l23
2016-09-28 03:31:32 -07:00
Markus Reiter
e2c7509065 Merge pull request #1113 from reitermarkus/rubocop-guardclause
RuboCop: Fix Style/GuardClause.
2016-09-24 17:38:49 +02:00
Markus Reiter
58e36c7319 Fix Style/GuardClause. 2016-09-24 12:24:35 +02:00
Dominyk Tiller
12aad5c65f
diagnostic: limit fatal dev tools check to Sierra 2016-09-23 22:57:14 +01:00
Mike McQuaid
dd393c73ed Merge pull request #1106 from reitermarkus/rubocop
Even more RuboCop changes.
2016-09-23 19:35:15 +01:00
Mike McQuaid
81e325cdb7 Merge pull request #1097 from DomT4/software_dev_is_hard
diagnostic: make using outdated dev tools fatal
2016-09-23 17:49:01 +01:00
Markus Reiter
e851c9bf6c Style/Alias: Prefer alias. 2016-09-23 18:19:53 +02:00
Markus Reiter
fe2d51e0b9 Fix Style/IfUnlessModifier. 2016-09-23 15:30:07 +02:00
Mike McQuaid
9001855d64 Merge pull request #1086 from woodruffw/macho-cosmetics
Remove old cctools references now that only ruby-macho is used.
2016-09-23 10:40:08 +01:00
Dominyk Tiller
f3ef9a4551
diagnostic: make using outdated dev tools fatal
A smarter form of 559cea7fa9.
Travis users can't force Travis to update 10.11 to Xcode 8, so this was murdering
builds left, right & centre.

Fixes https://github.com/Homebrew/brew/issues/1096 whilst still retaining the
point of the original commit. Also offers developers an opt-out so if we need
to test something on 10.11 with Xcode 7.x we can, etc.
2016-09-23 00:13:04 +01:00
Dominyk Tiller
559cea7fa9
Revert "diagnostic: make using outdated development tools fatal"
This reverts commit a124680b189f50ebeb550845e3c0efd34db66247.

Will need to be smarter than this, since people can't force Travis to
update. I'm losing count of the amount of times Travis has forced a change
of plans around Homebrew this year.

Closes https://github.com/Homebrew/brew/issues/1096.
2016-09-22 23:37:12 +01:00
William Woodruff
846a5b79b6
Remove old cctools references now that only ruby-macho is used. 2016-09-22 14:36:24 -04:00
Dominyk Tiller
a124680b18
diagnostic: make using outdated development tools fatal 2016-09-22 18:15:48 +01:00
Bob W. Hogg
57c2c560a1 one less block in mac dep 2016-09-22 08:36:10 -04:00
Bob W. Hogg
769cab7e4f follow the pattern more closely 2016-09-22 08:31:50 -04:00
Bob W. Hogg
5c926b1db3 make names more generic 2016-09-22 08:31:50 -04:00
Bob W. Hogg
0a4bc8494d switch to using extend pattern 2016-09-22 08:31:50 -04:00
Mike McQuaid
3f9cce0a03 Use new "macOS" naming where appropriate.
Not quite a mass replacement as I've used OS X and Mac OS X where
describing specific older versions and added compatibility methods
for things in the DSL.
2016-09-18 19:57:19 +01:00
Mike McQuaid
59b7f16bfd Merge pull request #989 from MikeMcQuaid/rubocop-final
Rubocop: apply auto-corrections and don't use hash-rockets
2016-09-18 13:28:15 +01:00
ilovezfs
390bcf413b no_weak_imports: always check for support
ENV.no_weak_imports should be a no-op when Xcode doesn't support the
feature to avoid breaking builds with <= Xcode 7.
2016-09-17 08:29:47 -07:00
Mike McQuaid
3982950e61 rubocop --auto-correct all hash-rocket usage. 2016-09-17 16:14:13 +01:00
Misty De Meo
67cb634e20 Merge pull request #965 from mistydemeo/warn_xcode_8_without_clt
Warn when using Xcode 8 without CLT on 10.11
2016-09-16 16:22:45 +10:00
Misty De Meo
8a0861feab Warn when using Xcode 8 without CLT on 10.11 2016-09-16 13:46:59 +10:00
ilovezfs
1d7aa1fe0b superenv: help Autotools with 10.12 SDK on 10.11
The GNU Autotools tests for whether a given symbol is defined are
reliably coming to incorrect conclusions on 10.11 with the 10.12 SDK
in Xcode 8. This overrides its decisions by forcing the right answer
in superenv using ac_cv_func_* environment variables and setting them to
"no" on 10.11. The list of problematic symbols is from

  grep 'weak$os10.11' MacOSX.sdk/usr/lib/system/libsystem_c.tbd
2016-09-15 03:34:43 -07:00
Mike McQuaid
6a81782753 extend/os/mac/development_tools: fix Rubocop warnings. 2016-09-13 07:57:09 +01:00
Dominyk Tiller
aa3ce859a7
diagnostic: tweak check_xcode_up_to_date messaging 2016-09-10 16:30:22 +01:00
Mike McQuaid
d1ba4f44c0 Merge pull request #833 from DomT4/death_by_xcode
xcode: die unless Xcode/CLT up-to-date on prerelease macOS
2016-09-07 09:51:06 +01:00
Mike McQuaid
f1cc1265af Refactor MacOS check_development_tools usage.
Better use the abstraction layer so e.g. Linux could have similarly
fatal checks for these things.
2016-09-07 09:11:06 +01:00
Tim D. Smith
7303a55cc0 Merge pull request #866 from tdsmith/audit-libressl
Catch system libressl in openssl audit as well
2016-09-05 14:25:51 -07:00
Tim D. Smith
a4b4b9cd90 Catch LibreSSL libtls as well
Update the description to reflect that we may be talking about either crypto library and neither is okay. :)
2016-09-04 16:28:51 -07:00
Mike McQuaid
dfcbefff73 Merge pull request #201 from gregory-nisbet/feature-env-shells
--env: support more shells, allow explicit shell selection
2016-09-04 21:23:33 +01:00
Tim D. Smith
bf18808930 Catch system libressl in openssl audit as well
The regex didn't match libcrypto.35.dylib, and it should have.
2016-09-03 22:13:09 -07:00
Dominyk Tiller
1408b5ffd4
diagnostic: add strict_development_tools_checks 2016-08-30 03:54:24 +01:00
Misty De Meo
e93771ae07 no_weak_imports: call ENV.append, not .add 2016-08-24 16:20:13 +10:00
Mike McQuaid
602fb0e575 Make -no_weak_imports opt-in.
The experiment to add `-no_weak_imports` unconditionally has been a bit
of a failure. It's broken more than it's fixed and I don't think we can
have this as a default for Xcode 8.

Add `ENV.no_weak_imports` to be used by formulae authors and make
`ENV.no_weak_imports a no-op (for now).

We may reconsider this behaviour in future.
2016-08-22 10:39:38 +01:00
Tim D. Smith
9c7f24b84a Add permit_weak_imports directive
Issue Homebrew/homebrew-core#3727 suggested we set -no_weak_imports for
new versions of Xcode to ensure that e.g. building on 10.11 against the
10.12 SDK doesn't result in a situation where autotools thinks symbols
exist that don't actually exist on the current platform.

Further discussion in golang/go#16770 revealed that some packages
require weak imports to build normally.
2016-08-17 23:02:44 -07:00
Mike McQuaid
27fc2abaca shared: handle missing Xcode/CLT version.
Fixes https://github.com/Homebrew/homebrew-core/issues/3973.
2016-08-17 13:23:13 +01:00
Mike McQuaid
5609183567 superenv: add LDFLAGS if disabling weak imports. 2016-08-16 15:26:28 +01:00
Mike McQuaid
53d1000739 ENV/std: add LDFLAGS if disabling weak imports. 2016-08-16 15:26:28 +01:00
Mike McQuaid
b33fe79478 mac/ENV/shared: add check for disabling weak imports. 2016-08-16 15:26:28 +01:00