aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorMike McQuaid2018-01-18 15:30:56 +0000
committerGitHub2018-01-18 15:30:56 +0000
commit8a45467ad9c61d50db86614730e54c59e804acd8 (patch)
tree380d9ed4e0a0a295940accbf53f8179d4360f4f8 /docs
parent1aa8aff84ae732c95827c21dd00b8ac377ede713 (diff)
parentb70b5429d09d13526ccc08c67fd6a6373b471409 (diff)
downloadbrew-8a45467ad9c61d50db86614730e54c59e804acd8.tar.bz2
Merge pull request #3661 from MikeMcQuaid/deprecate-default-formula
Deprecate default_formula Requirement DSL
Diffstat (limited to 'docs')
-rw-r--r--docs/Building-Against-Non-Homebrew-Dependencies.md11
-rw-r--r--docs/README.md1
2 files changed, 12 insertions, 0 deletions
diff --git a/docs/Building-Against-Non-Homebrew-Dependencies.md b/docs/Building-Against-Non-Homebrew-Dependencies.md
new file mode 100644
index 000000000..4e85757a1
--- /dev/null
+++ b/docs/Building-Against-Non-Homebrew-Dependencies.md
@@ -0,0 +1,11 @@
+# Building Against Non-Homebrew Dependencies
+
+## History
+
+Originally Homebrew was a build-from-source package manager and all user environment variables and non-Homebrew-installed software were available to builds. Since then Homebrew added `Requirement`s to specify dependencies on non-Homebrew software (such as those provided by `brew cask` like X11/XQuartz), the `superenv` build system to strip out unspecified dependencies, environment filtering to stop the user environment leaking into Homebrew builds and `default_formula` to specify that a `Requirement` can be satisifed by a particular formula.
+
+As Homebrew became primarily a binary package manager, most users were fulfilling `Requirement`s with the `default_formula`, not with arbitrary alternatives. To improve quality and reduce variation, Homebrew now exclusively supports using the default formula, as an ordinary dependency, and no longer supports using arbitrary alternatives.
+
+## Today
+
+If you wish to build against custom non-Homebrew dependencies that are provided by Homebrew (e.g. a non-Homebrew, non-macOS `ruby`) then you must [create and maintain your own tap](How-to-Create-and-Maintain-a-Tap.md) as these formulae will not be accepted in Homebrew/homebrew-core. Once you have done that you can specify `env :std` in the formula which will allow a e.g. `which ruby` to access your existing `PATH` variable and allow compilation to link against this Ruby.
diff --git a/docs/README.md b/docs/README.md
index f069ae562..fe227291b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -33,6 +33,7 @@
- [Python for Formula Authors](Python-for-Formula-Authors.md)
- [Migrating A Formula To A Tap](Migrating-A-Formula-To-A-Tap.md)
- [Rename A Formula](Rename-A-Formula.md)
+- [Building Against Non-Homebrew Dependencies](Building-Against-Non-Homebrew-Dependencies.md)
- [How To Create (And Maintain) A Tap](How-to-Create-and-Maintain-a-Tap.md)
- [Brew Test Bot](Brew-Test-Bot.md)
- [Prose Style Guidelines](Prose-Style-Guidelines.md)