55 Commits

Author SHA1 Message Date
Mario Mueller
be66d746ad rewrite TeX requirement message
Closes Homebrew/homebrew#28588.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2014-04-21 19:39:37 -07:00
Jack Nagel
f0bb1a936d Stop letting GitDependency inject HOMEBREW_PREFIX/bin into the environment 2014-03-13 18:07:11 -05:00
Mike McQuaid
0fd32118c7 requirements: remove unneeded Python27Dependency.
PythonDependency now implies this.
2014-03-12 13:57:10 +00:00
Misty De Meo
31ed0d6505 Add python27 dependency
Fixes Homebrew/homebrew#25561.
Fixes Homebrew/homebrew#25410.
2013-12-30 13:20:58 -08:00
Mike McQuaid
9ebc527e49 Improve Xcode and CLT installation instructions. 2013-10-23 17:44:43 +01:00
Jack Nagel
c5289f2503 Infer dependencies from download strategies and URLs
Closes Homebrew/homebrew#20849.
Closes Homebrew/homebrew#22871.
2013-09-28 16:37:05 -05:00
Mike McQuaid
a16394fde8 MinimumMacOSRequirement: rename file.
Should be using minimum_mac_os_requirement.rb
2013-09-14 12:21:49 +01:00
Misty De Meo
49cd13406b Update URL for CLT download
http://connect.apple.com is still down, but
https://developer.apple.com/downloads has all of the Apple developer
downloads available.

Fixes Homebrew/homebrew#21812.
2013-08-10 22:05:18 -07:00
Misty De Meo
ea3861d296 ArchRequirement: support :intel, :ppc 2013-08-01 19:57:05 -07:00
MerelyAPseudonym
1dc2e12f3a fix typo
Closes Homebrew/homebrew#21601.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-08-01 17:22:51 -07:00
Mike McQuaid
e3f26a9ced Remove message from default_formula'd requirements 2013-07-01 23:16:38 +01:00
Mike McQuaid
621c44dbd2 CLT is just CLT now; not "for Xcode".
References Homebrew/homebrew#17383.
2013-07-01 19:02:32 +01:00
Adam Vandenberg
0f1d491d81 Add :fortran requirement 2013-06-24 07:35:42 -07:00
Adam Vandenberg
32f637d590 Add minimum OS X version requirement
Closes Homebrew/homebrew#19998.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-06-16 20:36:50 -07:00
Jack Nagel
8b9a3a560f Separate formula conflicts from requirements
Closes Homebrew/homebrew#20357.
2013-06-09 13:45:25 -05:00
Samuel John
c524895666 Python 2.x and 3.x support
New `depends_on :python` Dependency.
New `depends_on :python3` Dependency.

To avoid having multiple formulae with endings -py2 and -py3,
we will handle support for different pythons (2.x vs. 3.x)
in the same formula.
Further brewed vs. external python will be transparently supported.

The formula also gets a new object `python`, which is false if
no Python is available or the user has disabled it. Otherwise
it is defined and provides several support methods:

python.site_packages # the site-packages in the formula's Cellar
python.global_site_packages
python.binary # the full path to the python binary
python.prefix
python.version
python.version.major
python.version.minor
python.xy # => e.g. "python2.7"
python.incdir # includes of python
python.libdir # the python dylib library
python.pkg_config_path # used internally by brew
python.from_osx?
python.framework?
python.universal?
python.pypy?
python.standard_caveats # Text to set PYTHONPATH for python.from_osx?
python.if3then3 # => "" for 2.x and to "3" for 3.x.

Further, to avoid code duplication, `python` takes an optional
block that is run twice if the formula defines depends_on
:python AND :python3.

python do
  system python, 'setup.py', "--prefix=#{prefix}"
end

Read more in the Homebrew wiki.
2013-06-03 17:29:43 +02:00
Jack Nagel
2f02942a84 PostgresqlDependency: use canonical name for default formula 2013-06-02 17:14:42 -05:00
Mike McQuaid
92ccfc548e Allow requirements to specify a default formula.
This allows default resolution of requirements without user intervention.

Closes Homebrew/homebrew#19627.
2013-05-10 13:37:41 +01:00
Misty De Meo
57534cf7b2 ArchRequirement: takes a single arch
Fixes Homebrew/homebrew#19646.
2013-05-06 22:50:01 -05:00
Adam Vandenberg
a7714a804b Add :hg build requirement.
Closes Homebrew/homebrew#19074.
2013-04-17 10:01:38 -07:00
Jack Nagel
b82ae7067d Shrink requirements.rb 2013-04-02 15:33:35 -05:00
Jack Nagel
34f3f76932 Simplify setting this ivar 2013-04-02 15:33:34 -05:00
Jack Nagel
e4c43b4f8c Fix chicken scheme imports 2013-04-02 15:33:34 -05:00
Jack Nagel
ee7178562f Move x86_64 Requirement into core
Closes Homebrew/homebrew#18886.
2013-04-02 13:17:24 -05:00
Jack Nagel
9f1e6af879 Use satisfy syntax for CLTDependency 2013-04-02 13:17:23 -05:00
Jack Nagel
115501d42f Fix X11 env setup 2013-04-01 18:50:56 -05:00
Jack Nagel
1b0f0824fe Requirement: env DSL is evaluated in context of self, not ENV
This was meant to support:

  env do |req|
    append_path 'PATH', req.some_method
    ...
  end

i.e., the block was evaluated in the context of ENV. But it turned out
to be not so useful after all, so I'm ripping it out before something
actually depends on it.
2013-04-01 16:17:35 -05:00
Jack Nagel
9561b4bc8e Fix X11 proxy constant lookup under 1.9+ 2013-02-19 10:15:52 -06:00
Jack Nagel
71f85300b4 Establish a convention for Requirement names
The name attribute of requirements is used when generating options for
the :optional and :recommended dependency tags.

Unless otherwise specified, the name attribute of a Requirement will be
populated by stripping any module prefixes from the beginning and
"Dependency" or "Requirement" from end of the class name and downcasing
the result.

Closes Homebrew/homebrew#17759.
2013-02-12 16:26:10 -06:00
Jack Nagel
cf82e19090 ConflictRequirement: pass argument to superclass initalizer 2013-02-09 18:33:26 -06:00
Jack Nagel
b65398c549 LanguageModuleDependency: foward args to superclass initalizer 2013-02-08 00:12:49 -06:00
Jack Nagel
2fed17f4d1 Ensure :cairo and :pixman resolve to standard formula deps
We do not use X11 to satisfy these deps for consistency reasons,
but we should continue to support the symbols for compatibility.
2013-02-02 00:09:28 -06:00
Jack Nagel
1408610b81 Proper recursive expansion of requirements with filtering
Expand requirements recursively while applying the same optional? and
recommended? filters that dependencies are run through. Options
generated by requirements are now checked against the correct list of
requirements, eliminating the temporary "best guess" logic in the
installer.
2013-01-31 15:40:06 -06:00
Jack Nagel
f4b126cc14 Create proxy classes for "partial" X11 dependencies
When a formula's dependency tree contains more than one X11 dependency,
they are de-duplicated by comparing the min_version attribute. However,
this can result in broken dependency trees if one of the X11Dependency
objects was actually specified as e.g. `:libpng`.

In practice, this only matters when one or more of the dependencies has
additional metadata that makes it distinct from the rest, i.e. an
:optional or :recommended tag.

To combat this, make these special, "partial" X11 dependencies instances
of different classes so that they are not de-duped.

It will still be necessary, at the time when requirements are expanded
by the installer, to de-duplicate any remaining X11 dependencies after
applying the optional/recommended filters in order to avoid duplicated
modifications to the environment (as ENV.x11 is not idempotent).

c.f. Homebrew/homebrew#17369.
2013-01-31 15:39:26 -06:00
Jack Nagel
992b373bf0 LanguageModuleDependency: call super() to generate tags list
Fixes Homebrew/homebrew#17379.
2013-01-28 11:23:25 -06:00
Jack Nagel
210401654b Allow specifying a name attribute for X11Dependency 2013-01-28 10:35:14 -06:00
Jack Nagel
41dec56d29 Invoke super() in requirement subclasses 2013-01-27 21:20:09 -06:00
Jack Nagel
adf90691f1 Split dependency classes into separate files 2013-01-26 20:30:05 -06:00
Jack Nagel
e05a509fb6 Tag Xcode and CLT requirements as build-time
This way they can be skipped when installing bottles.
2013-01-26 12:14:50 -06:00
samueljohn
620c063f8c Add "depends_on :clt" 2013-01-26 12:14:50 -06:00
Jack Nagel
3725f771de Infer path to be added for requirements that search PATH
When a requirement is specified like:

  satisfy { which "foo" }

There is no reason that we should inject all of ENV.userpaths! into the
build environment. Instead, infer the directory to be added to PATH from
the Pathname that is returned.

This is another step towards condensing the "which program" requirements
down into a one-liner DSL element.
2013-01-22 14:59:10 -06:00
Jack Nagel
a03bbf5797 Use new requirement syntax 2013-01-21 17:36:34 -06:00
Jack Nagel
09d4a7fb36 Block-style env DSL examples 2013-01-21 17:24:11 -06:00
Jack Nagel
d06824c357 ENV.with_build_environment 2013-01-21 17:24:10 -06:00
Adam Vandenberg
e30392820f fix grammar 2013-01-14 15:18:12 -08:00
Xiyue Deng
2d445d54b5 Add tex requirement
* Detect `latex' and `bibtex' commands.
* Recommend installing MacTeX when no LaTeX installation is found.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-01-13 18:25:35 -08:00
Samuel John
4291bc29db Make MPIRequirement satisfied on Xcode-only Macs
Closes Homebrew/homebrew#16409.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-01-10 16:02:07 -06:00
Alex Reece
6672ef5f9f Add support for external ocaml deps via opam
Closes Homebrew/homebrew#16280.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-01-04 21:50:31 -08:00
Jack Nagel
9c8a73cf41 Allow requirements to specify env options 2012-12-26 14:37:03 -06:00
Jack Nagel
f8d253950f Add a small DSL for setting requirement options 2012-12-26 14:37:02 -06:00