... and not just installed ones. Of course, strictly speaking,
reinstalling not-yet-installed formulae makes semantically little
sense, but the big win is that we can tell people (after we have
resolved an issue) to `brew reinstall <formula>` and even if a user
has removed that formula in the meantime, reinstall will do the right
thing. Basically adding --force to uninstall. I think this makes
reinstall more robust.
Bumped pip and setuptools for python and python3.
I whish we had formula revisions already now.
But on the other hand there is no hurry as the
changes to pip/setuptools are not major.
Pip and setuptools can't be updated the way we write in the caveats.
This is because pip fails to remove the symlink from the
`brew --prefix`. Also we said that we don't like self-updating tools.
We will rather update the python formula, and bump the revision
(once we have the revision feature) when pip or setuptools get
updated.
This patch is different than my earlier ad-hoc solution, but it took
some time until upstream devs came up with the proper fix. However, we
can't directly link to the patch (from the mercurial web repo), as it
also changes the NEWS text and the patch fails to apply. Further, the
mercurial repo is only http (no "s").
Since 2.7.5 the `python-config --ldflags` is not fixed but Python does
not use the Makefile any longer for this. We fix this now in our
`sitecustomize.py`.
Remove old setuptools installations that may still fly around and be
listed in the easy_install.pth. This can break setuptools build with
zipimport.ZipImportError: bad local file header
This does not always happen, but if the easy_install.pth points to an
egg with an older version. Removing all setuptools and distribute
remains inside the homebrew global_site_packages is safe.
LINKFORSHARED incorrectly returns a truncated value by default, which
breaks builds which depend on it returning a valid path.
e.g., it returns:
Python.framework/Versions/2.7/Python
Instead of:
$(brew --prefix)/Python.framework/Versions/2.7/Python
This breaks zpython, and possibly other things. See Homebrew/homebrew#20182.
Reported to Python.org in http://bugs.python.org/issue3588 and
http://bugs.python.org/issue16848, fixed for python-config but not
other usecases.
* Added a head for python 2.7
* Using `build.with?` instead of `build.include? 'with...'`
* More robust temporary linking of opt/python/bin during
install and cleanup (with ensure).
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.