This allows formulae which won't build with Tiger's ld to conditionally
request a dependency on the ld64 formula. This modifies the build
environment appropriately, and will only be active on Tiger.
When expanding dependencies, repeated deps are treated as equal and all
but the first are discarded when #uniq is called on the resulting array.
However, they may have different sets of options attached, so we cannot
assume they are the same.
After the initial expansion, we group them by name and then create a new
Dependency object for each name, merging the options from each group.
FixesHomebrew/homebrew#20335.
Strip `?` and trailing characters from URL extensions and basenames.
This makes some install methods cleaner, and prevents staging of files
with `?` in the name, as that is a weird character.
Affects 2 formulae in core (though potentially externals will need to be fixed.)
Authors should use `python.standard_caveats` instead.
* Accessor for python.binary
* Made `python.brewed?` more robust if no python found at all
* python.brewed? is more relaxed now and allows older versions
of the Python formula.
* Only print about wrining sitecustomize.py and distutils.cfg if
verbose and debug.
ScriptFileFormula's use is that it installs whatever was downloaded
to bin; if the install is overridden, there's no benefit over deriving
directly from Formula.
* The python do ... end block does no longer
require 'superenv' but saves and restores
the ENV by using ENV.to_hash and `ensure`.
This should resolve some build problems
with formulae using `env :std`!
* `python_helper` is now in a module `Python`.
* Imporoved some comments in python_dependency.rb
Tokens like "b4", "beta1", "p195", &c. are now treated as atoms rather
than being broken down even further. Additionally, we enable support for
padding in the middle of versions strings, so we can successfully
compare something like "2.1-p195" with "2.1.0-p194" by inferring that
"2.1" is really "2.1.0".
This fixes the comparison "9.9.3-P1" > "9.9.3" which previously has not
been handled correctly.
This applies only to non-brewed python:
The user will still have to set his PYTHONPATH
in order to import python modules in an
external python interpreter. However, a
warning will be displayed, now.
Further, during the build, the PYTHONPATH
will be set to Homebrew's global site-packages
so that software (like PyQt and others) that
need to `import sipconfig` in python can
find the brewed sip and its python module.
Since Python has been removed from superenv and
added as an explicit `depends_on :python`,
we should add
`-F#{HOMEBREW_PREFIX}/opt/python/Framewoks`
so that build tools that don't use
`python-config --ldflags` (as they should!)
can link against brewed Python.
The depends_on 'nose' => :python
tests fails even if people did `pip install nose`
with their brewed pythons because during
the tests the PATH is set up such that
/usr/bin comes before HOMEBRE_PREFIX/bin.
This is a hot fix. Proper fix need resorting
the PATH.