build-tool provided args must be considered first by cc, etc. Generally this already occurred for -I flags, because most of our -I flags were -isystem. However it didn't occur for keg-only flags and -L paths.
This was an error.
I amended the refurbishment code to ensure any paths we want to control the order of are thoroughly scrubbed out of the build-tool provided args. This ensures reliability for our builds.
However this path-scrubbing should always occur, even during configure (I am fairly sure of this). So more work is required.
FixesHomebrew/homebrew#14781.
We can't really execute c89/99 explicitly as these POSIX compliant tools support very few args. Best to execute clang or gcc with the --std=cx9 argument appended.
FixesHomebrew/homebrew#14724.
bsdmake used to be keg-only, so some users still have it unlinked (presumably they never run brew-doctor). Even though there is code to abort if dependencies are unlinked, it appears broken for this case. So let's just be thorough anyway.
ClosesHomebrew/homebrew#14751.
/Developer/Library shouldn't exist if all the remnants of old
Xcode versions have been uninstalled, and tends to cause problems if
it's kept alongside modern Xcode.
"uninstall-developer-folder" should only remove /Developer/Library.
Rationale: everyone thinks it points to the currently installed prefix, not the prefix of the formula that is newest and maybe not installed.
The previous behavior was unintentional and evidence proves it is not intuitive either.
I anticipate no regressions. And hope I am right!
Extend patch case statements for files to objects inheriting from `IO`, which
includes `File`, or `StringIO` which is used by the external command
`brew-unpack` to store `DATA` sections loaded from Formula files.
- Avoid ENOTDIR by ensuring that the directories we are checking are
actually directories.
- DRY up the check_PATH method; paths are already available via the
global ORIGINAL_PATHS.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
The MacOS.version? family of methods (other than "leopard?") are poorly
defined and lead to confusing code. Replace them in formulae with more
explicit comparisons.
"MacOS.version" is a special version object that can be compared to
numerics, symbols, and strings using the standard Ruby comparison
methods.
The old methods were moved to compat when the version comparison code
was merged, and they must remain there "forever", but they should not be
used in new code.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Symlinks to apps don't play well with Spotlight, but Finder alises do,
so let's create them instead.
ClosesHomebrew/homebrew#14821.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
The problem is not the raw URLs, but URLs that do not contain the commit
hash corresponding to a particular version of the gist.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
File.expand_path raises ArgumentError when it is passed a path with a
nonexistent username, e.g.:
$ PATH=~foo/bin:$PATH brew
/usr/local/Library/Homebrew/global.rb:97:in `expand_path': user foo
doesn't exist (ArgumentError)
However, `brew doctor` does its own expansion of PATH entries and
outputs warnings if this happens, so let's just ignore it here and
continue on our way.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Rather than build the whole output in a string, print each item as we
go. This gives the illusion of improved responsiveness by delaying the
expensive method calls until after the faster output.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
We use PKG_CONFIG_LIBDIR to reset the default search path, overriding
whatever is baked into the pkg-config executable. This way, we can later
append XQuartz paths here while still allowing any brewed libs to take
precedence, keg-only or not.
Hopefully this will resolve any remaining issues, and let us get rid of
some per-formula hacks.
c.f. Homebrew/homebrew#14474.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
It has been long enough since `depends_on :x11` was introduced that we
can make it the caller's responsibility to ensure X11 is present before
invoking ENV.x11, so stop outputting a warning.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This script fetches the current list of aspell dictionaries from
the gnu server and generates formulae that can then be
included into the aspell formula.
This makes updating current dictionaries and adding new ones easier.
Tweaked by Mike to generate SHA1s instead of MD5s.
ClosesHomebrew/homebrew#12180.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>