If we have a dependency cycle ensure that infinite recursion does not
result by storing state in a stack which we push/pop from for each
level of recursion and verify that we haven’t been through this
dependency already.
ClosesHomebrew/homebrew#47933.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Previously we got all the options based on the build, any inherited
options, any passed options and the tab. We want to make sure that these
then exclude any options that don't exist as, otherwise, passing an
option that doesn't exist (or has been deleted) is enough to stop a
bottle being poured. This was particularly nasty on upgrades where we
deleted options and one left in the tab would stop the bottle being
poured.
ClosesHomebrew/homebrew#47891.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Currently `brew install —build-from-source wget` builds all the
dependencies also from source. I can see people wanting to do this when
`HOMEBREW_BUILD_FROM_SOURCE` is set by passing it on the command-line
is mostly just annoying; it means you have to use `—build-bottle` and
deal with the CFLAGS and `post_install` changes if you want to build
from source. Tweak `formula_installer` so this behaviour is more
intuitive.
ClosesHomebrew/homebrew#47889.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Stop using Style/TrailingComma as it is no longer recognized and start using
Style/TrailingCommaInArguments and Style/TrailingCommaInLiteral instead.
ClosesHomebrew/homebrew#48144.
Signed-off-by: Xu Cheng <xucheng@me.com>
After formula updates its bottle block, remove itself from changed
formulae list. Therefore, if it's requested next time as dependency, it
will be installed from bottle just created.
ClosesHomebrew/homebrew#48121.
Signed-off-by: Xu Cheng <xucheng@me.com>
Before this, `sudo brew cask` will auto install Homebrew cask as root
user. This will cause permission problem for files in `Tap` directory.
Therefore, let's check process uid and switch to normal user for tap.
As result, `sudo brew cask` will work as the same before, except tap
files will have the correct permission attributes.
ClosesHomebrew/homebrew#48059.
Signed-off-by: Xu Cheng <xucheng@me.com>
Add two checks:
* revision should be reset to 0 for new version.
* revision should not decrease inside the same version interval.
ClosesHomebrew/homebrew#48032.
Signed-off-by: Xu Cheng <xucheng@me.com>
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>
This was caused by a "race" between two commits.
bash-3.2$ git log -n1 --format=%ai 3344229
2012-08-15 22:08:40 -0500
bash-3.2$ git log -n1 --format=%ci 3344229
2012-09-17 20:01:37 -0500
bash-3.2$ git log -n1 --format=%ai 8837423
2012-08-25 11:31:57 -0700
bash-3.2$ git log -n1 --format=%ci 8837423
2012-08-25 11:52:37 -0700
"built_bottle" was renamed "built_as_bottle" in 8837423 after the date
3344229 was authored but before the date it was committed to master, and
unfortunately in the interim 3344229 hadn't been updated to reflect the
name change.
This commit changes the Formula class's to_hash method to use
tab.built_as_bottle not tab.built_bottle, which doesn't exist. At this
time, there is no way that to_hash could have known that
tab.built_bottle is bogus. Perhaps this could be made safer in the
future, so that non-existent methods cause an error here rather than
just silently returning null.
ClosesHomebrew/homebrew#47912ClosesHomebrew/homebrew#47916.
Signed-off-by: Xu Cheng <xucheng@me.com>