If `head` sections contains commas (e.g. `url "https://github.com/tarantool/tarantool.git", :branch => "1.6", :shallow => false`)
then re thinks that it reached the end and inserts `bottle do <-> end`
block before it, that leads to problems in ` brew audit --devel tarantool --strict --online`:
```
==> audit problems
tarantool:
* `head` (line 11) should be put before `bottle block` (line 7)
```
It blocks Homebrew/homebrew#47495ClosesHomebrew/homebrew#47931.
Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
This feature is still quite useful, particularly because of the somewhat
buggy behaviour of `default_formula` which means when attempting to build
a bottle it'll attempt to force the installation of that formula.
That is particularly problematic for taps like homebrew/homebrew-fuse because
the `default_formula` in osxfuse conflicts with the osxfuse binary we install
via the Caskroom, which is actively breaking every CI build.
ClosesHomebrew/homebrew#48000.
Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
Adding a strict check for usage that should be using pkgshare.
Pulled onto two unique checks to provide a better problem message, with a
clearer solution, but open to thoughts.
* Use pkgshare instead of (share/"example")
* Use #{pkgshare} instead of #{share}/example
ClosesHomebrew/homebrew#47900.
Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
Some (rather slow) checks should run after all other checks. Make that
more obvious by removing them from the sorted list of all checks and
then re-appending them to the resulting list. (Should be slightly more
efficient than the `<array>.reverse.uniq.reverse` incantation, though
that hardly matters given the cumulated run time of all the checks.)
Slightly extend the list after verifying what the slowest checks are for
various Homebrew installations (slowest check last).
ClosesHomebrew/homebrew#47753.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Abbreviations will be longer if needed to preserve uniqueness.
This makes it more consistent with `git rev-parse --short`,
https://github.com/Homebrew/homebrew/commits, etc.
For example, instead of:
Updated Homebrew from 40d1e9c2 to 90b9bdf4.
We see:
Updated Homebrew from 40d1e9c to 90b9bdf.
See 0c48248b6555353c8d60b61973639c8423ce586c for the original
introduction of eight-character abbreviations.
Those are created by the `ruby` formula in core and various Ruby
formulae from `homebrew/versions` and contain Gems and other stuff that
is to be retained across updates. Treat it like Python in this regard.
This avoids spurious output in `brew list --unbrewed` when a brewed
`ruby` is used to, e.g., install Gems.
ClosesHomebrew/homebrew#47750.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Treat it like the cache, i.e., if the logs directory is inside the
Homebrew prefix, skip it instead of listing all the logs.
This avoids spurious output in `brew list --unbrewed` when the Homebrew
logs directory is a subdirectory of the Homebrew prefix.
Some tests, that construct a Git repository for testing, will silently
fail if the global Git user isn't properly set up. There are valid use
cases for this, thus use a fixed commit author/committer for all tests
instead of relying on the user's configuration.
This only affects the behavior of `brew update` while being on a branch
`feature` that doesn't track the upstream branch. For simplicity, the
upstream branch is assumed to be called `master` (`@upstream_branch` in
the code). Consider the following simplified commit history:
master origin/master (current state of remote)
| |
A---B---C---D---E---F
\
G---H---I
|
feature (HEAD)
If `origin/master` is equal to `master` and also points at commit `C`,
then `brew update` will update both `master` and `origin/master` to `F`
and report on the changes in the range `C..F`.
However, if `origin/master` is equal to `E` because some commits have
been already fetched with `git fetch origin`, then `brew update` will
recreate `master` from `origin/master` and then pull in the commits from
the remote to update both to `F`. Because `master` gets recreated from
a younger `origin/master`, the report will only contain changes from the
range `E..F` (thus omitting the changes from `C..E`).
This commit adjusts the logic to not recreate `master` if it can be
safely fast-forwarded to `origin/master` (the common case). This fixes
the problem from the second scenario and again reports on the desired
range `C..F`.
ClosesHomebrew/homebrew#46951.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
This commit modifies the whitelisting of the Kibama formula from the
npm audit check to allow the versioned Kibana formulae to receive the
same whitelisting.
ClosesHomebrew/homebrew#47500.
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`.
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.
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.
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>
Also use `popen_read` instead of `safe_system` for cleaner argument
passing and write the output with `atomic_write`.
ClosesHomebrew/homebrew#46826.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Users with local changes and without a configured Git identity won't be
able to update Homebrew via `brew update`, as the update will fail when
trying to stash the local modifications with `git stash`. They will be
unable to proceed until they follow Git's advice to configure their
identity or they manage to revert their local changes.
This change always sets a commit e-mail and name, avoiding this issue. A
nice bonus is that experienced Git users can see who created the stash
commit (identifying `brew update` as the author).
FixesHomebrew/homebrew#46930.
ClosesHomebrew/homebrew#46939.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>