CMake has -DNDEBUG and -O3 as its default flags for Release builds.
Homebrew clears out the default CMake flags, which is fine for
optimization because Homebrew passes its own optimization flag(s).
-DNDEBUG wasn't added back in, though.
This ensures -DNDEBUG is passed to CMake release builds by default,
instead of individual formulas having to add it explicitly.
This also removes explicit additions of -DNDEBUG from the formulae that
had them -- gflags, llvm, and taglib.
ClosesHomebrew/homebrew#47378.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Added mention to Cocktail app cleanup/repair/optimizations, that has
some features that when run they restore the /usr/local directory to
the original 'not writable' state in OS X 10.11 .
ClosesHomebrew/homebrew#47379.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
* Use `ARGV.include?` instead of `ARGV.first ==`, so users can pass
`-v`/`-d` before the function flags(i.e. `--list-pinned` etc)
* Restore the ability to call `brew tap --flags tap/name`.
Removes the need to call setup_ghc_compilers in every Haskell language
formula, by automatically calling fails_with.
Adds a :home option to the cabal_sandbox method. This option allows a
specific temporary HOME to be used instead of the current working
directory, and in turn allows a single Cabal package database to be reused
between multiple calls to this method.
Avoids updating the Cabal package database more than once if cabal_sandbox
is called multiple times.
Removes the need to call cabal_clean_lib whenever cabal_sandbox is called,
by automatically cleaning the lib directory.
Adds a :keep_lib option to the cabal_sandbox method. This option allows
opting out of the automatic cleaning.
Ensures build products are always removed from the current working
directory.
Removes a workaround for versions of cabal-install older than 1.20.0.0.
Adds a cabal_sandbox_add_source method.
Adds a :using option to the install_cabal_package method. This option
allows specifying the Haskell language tools that are required to install
a particular formula, and in turn allows formulae to be simplified by
replacing calls to multiple methods with a single call to this method.
Allows customizing the call to install_cabal_package by giving a block.
Removes empty method shells.
ClosesHomebrew/homebrew#47293.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Everyone should be using a UTF-8 locale nowadays. Not using one causes
issues like `brew doctor` failing while checking symbolic links that
point at file names with non-ASCII characters, since OS X always uses
Unicode for the file system.
Rely on `locale charmap` to detect the currently selected encoding and
if that's not UTF-8, override the user's choice (if any) by setting
`LC_ALL` to `en_US.UTF-8`, the assumption being that every system has a
usable `en_US.UTF-8` locale installed.
FixesHomebrew/homebrew#44744.
ClosesHomebrew/homebrew#47247.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Also reuse this improved implementation in the GitHub rate limit errors.
ClosesHomebrew/homebrew#44721.
Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
Also, print as a warning to STDERR and print a backtrace in debug mode.
ClosesHomebrew/homebrew#47099.
ClosesHomebrew/homebrew#47154.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
If the source contains a broken symlink, `brew bottle` would fail for no
good reason when trying to determine the most recently modified
file. To avoid this, we ignore any files for which stat(2) fails.
ClosesHomebrew/homebrew#47111.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
For users whose local brew is at around 2015-06-11 to 2015-08-06,
running `brew update` will emit following error:
Error: uninitialized constant Formulary::CoreFormulaRepository
This is caused by the same bug described in Homebrew/homebrew#42553.
This commit workarounds this issue and restores `brew update` compatibility
for users mentioned above.
Also cleanup legacy `require "cmd/tap"`.
Let's hide implementation detail on where to find alias directory.
This will benefit future core code and formulae separation.
Also let `brew readall` check aliases for all taps.
To use origin/master as start commit
brew update-test
To use <sha1> as start commit
brew update-test --commit=<sha1>
To use commit at <date> as start commit
brew update-test --before=<date>
Also print start/end commit for debug purpose
This commit partial reverts beed39e46fa021dd1c133c2c8eaaa81b524e68c7.
For users whose local brew is at around 2015-06-02 to 2015-06-11,
running `brew update` will emit following error:
Error: undefined method 'full_version' for OS::Mac:Module
This is caused by the same bug described in Homebrew/homebrew#42553.
Let's use `MACOS_FULL_VERSION` for now to restore `brew update` compatibility
for these users.
TODO: revert this commit after core code and formulae separation.
* Include install option --without-docs to disable creation of docs
* Include patch to successfully find osx dylibs and ignore glib static libs
* Remove mydumper from tap_migrations.rb
ClosesHomebrew/homebrew#45892.
Signed-off-by: Andrew Janke <andrew@apjanke.net>
While it may suffice to merge string and non-reserved tags by forming a
union of all tags of dependencies of the same name, this approach fails
to work for the reserved tags. These are now merged such that the most
restrictive tag (meaning sometimes an empty tag) is preserved.
The previous behavior caused essential dependencies to be omitted and
builds to fail in response. E.g., multiple `:fortran` dependencies with
tags `[]`, `[:recommended]`, and `[:optional]` would have been expanded
and merged to `"gcc"` with tags `[:recommended, :optional]`, causing it
to be no longer seen as a required dependency.
ClosesHomebrew/homebrew#47040.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
The general idea is that merging multiple dependencies of the same name
should produce the strictest tag instead of a (meaningless) union of the
reserved tags. For example, if a dependency is both a `:recommended` and
an `:optional` dependency at different points in the dependency tree,
the resulting merged dependency should be tagged as `:recommended`.
Handle all other reserved tags in the same spirit.
These tests were using too much semi-global state (instance variables)
and relied unnecessarily on the exact number of calls to `optional?` and
`recommended?` in the `Depedable` module.
I've set all the variable data to versions that are dependent on the
latest source file date and various modification dates also to the
latest source file date. With this if you rerun `brew bottle`
multiple times in a row you will see the same checksum even if you have
`brew reinstall`ed (as long as upstream does not hardcode e.g. the
build date).
I debugged this with diffoscope and worked on this as part of the
Athens 2015 reproducible builds workshop:
https://reproducible-builds.org/events/athens2015/ClosesHomebrew/homebrew#46587.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This means that dependencies can be merged but still maintain all
their option names.
ClosesHomebrew/homebrew#46916.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Without this the returned string is not as accurate if the method is
called with an int larger than 120.
ClosesHomebrew/homebrew#47002.
Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>