formula-cookbook: document conflicts

Closes Homebrew/homebrew#36179.
Closes Homebrew/homebrew#36184.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Dominyk Tiller 2015-01-24 04:21:21 +00:00 committed by Mike McQuaid
parent c2e0fb0c08
commit a2cb0c2af5

View File

@ -198,6 +198,25 @@ A Hash specifies a formula dependency with some additional information. Given a
depends_on "foo" => [:optional, "with-bar"] depends_on "foo" => [:optional, "with-bar"]
``` ```
## Specifying other formulae as conflicts
Sometimes theres hard conflict between formulae, and it cant be avoided or circumvented with `keg_only`.
PolarSSL is a good [example](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/polarssl.rb#L36-L37) formula for minor conflict.
PolarSSL ship GNUs Hello, and compiles a `hello` binary. This is obviously non-essential to PolarSSLs functionality, and conflict with the `hello` formula would be overkill, so we just remove it.
However, also in the PolarSSL formulae is a [firm conflict](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/polarssl.rb#L19) with `md5sha1sum`, because both `md5sha1sum` and `polarssl` compile identically-named binaries that *are* important for core functionality.
As a general rule, `conflicts_with` should be a last-resort option. Its a fairly blunt instrument.
The syntax for conflict that cant be worked around is
```ruby
conflicts_with "blueduck", :because => "yellowduck also ships a duck binary"
```
## Formulae Revisions ## Formulae Revisions
In Homebrew we sometimes accept formulae updates that dont include a version bump. These include homepage changes, resource updates, new patches or fixing a security issue with a formula. In Homebrew we sometimes accept formulae updates that dont include a version bump. These include homepage changes, resource updates, new patches or fixing a security issue with a formula.