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.
Removes any global methods from formulae, and moves #kext_prefix (which
seems to be at least somewhat abstractable) into the Formula class. The
only formula with global methods is now aspell; it (and its generating
script in contrib) has been changed to prefix that method with
`aspell_`, to minimize the risk of name collisions.
ClosesHomebrew/homebrew#19331.
ClosesHomebrew/homebrew#19343.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Given the current state of OS X compilers, the original fails_with
behavior is becoming less useful, mostly resulting in build failures
each time the compiler is updated. So make the following changes:
When a build is specified, we retain the old behavior: switch compilers
if the available compiler is <= the build, don't switch if it is > the
build.
When no build is specified, unconditionally switch compilers, and don't
output the advice message. This allows us to mark formulae as
perpetually failing, avoiding the need to update formulae each time a
new compiler build is made available.
As a bonus, this makes the logic much easier to reason about.
ClosesHomebrew/homebrew#18175.
This reverts commit adee5315265cc46aa6a3057071527abb16e1cd94.
Turns out one of the "other things" is a dealbreaker.
We only create kegs using a formula's canonical name. However, we do not
check that this is the case when mapping existing kegs back to formula
objects, and thus a keg with a name that happens to be an alias can fool
Homebrew into thinking the canonically-named keg exists.
So anything that enumerates kegs and then tries to do stuff with the
resulting formula objects will just break. This is obviously worse than
the debugger being broken, so reverting this for the time being.
The Readline class clashes with the Readline module from the Ruby
stdlib. This has mostly worked, but with the recent debugging support's
integration of IRB, it is no longer possible for them to coexist. So we
need to rename it.
The implications of this are:
- Anything that depends on readline will reinstall it as
"gnu-readline". Anything already installed will continue to function.
- "brew upgrade readline" will say "gnu-readline not installed", as
"readline" is now an alias.
- Probably other things.
So there are some downsides, but we will just have to deal with them.
FixesHomebrew/homebrew#15776.
The MacOS.version? family of methods (other than "leopard?") are poorly
defined and lead to confusing code. Replace them in formulae with more
explicit comparisons.
"MacOS.version" is a special version object that can be compared to
numerics, symbols, and strings using the standard Ruby comparison
methods.
The old methods were moved to compat when the version comparison code
was merged, and they must remain there "forever", but they should not be
used in new code.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
- Disable WxPython GUI. We have no stable WxMac build for this and building
WxPython has the additional constraint of requiring a Framework build of
Python.
- Flag as failing with clang.
FixesHomebrew/homebrew#8594.
Add a small patch to the GRASS makefile that removes a command that installs
stuff to `/Library/Documentation/Help`---this is outside of the prefix and we
don't have permissions for this directory.
GRASS 6.4.1 is currently not compatible with FFmpeg 0.8. Removing the
dependency until GRASS is updated.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
The Geographic Resources Analysis Support System (GRASS) is one of the oldest,
most fully-featured Geographic Information Systems (GIS). It happens to be open
source too!
Signed-off-by: Adam Vandenberg <flangy@gmail.com>