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.
The old patch had a lot of whitespace differences, and they were failing with
Python 2.7.4. In addition to removing the whitespace differences, configure.in
was removed from the patch, as configure is being patched already.
ClosesHomebrew/homebrew#19257.
ClosesHomebrew/homebrew#19203.
ClosesHomebrew/homebrew#19400.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
http://bugs.python.org/issue13405 seems not
to be ready for 2.7.4. Neither merged nor a
patch available. Feel free to submit a pull
request if there is a 2.7.4-compatible
dtrace patch.
This fixes issues when calling python scripts print `'import sitecustomize' failed; use -v for traceback`
ClosesHomebrew/homebrew#18338.
Signed-off-by: Samuel John <github@SamuelJohn.de>
- FixesHomebrew/homebrew#16574.
- Improve Tkinter test by actually calling Tk()
- Check for /Library/Frameworks/Tk.framework no longer needed.
- Also remove Tk.framework check from python3.rb
- Fix PYTHONFRAMEWORKDIR so that `python-config --ldflags` is useful.
ClosesHomebrew/homebrew#17008.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
- FixesHomebrew/homebrew#16574.
- Improve Tkinter test by actually calling Tk()
- Check for /Library/Frameworks/Tk.framework no longer needed.
- Fix PYTHONFRAMEWORKDIR so that `python-config --ldflags` is useful.
ClosesHomebrew/homebrew#16626.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
python has a severe bug which prevents it from building, or performing
certain filesystem operations, on NFS.
A few functions in the shutil module, notably chflag(), will attempt
to copy file metadata which includes flags. Certain filesystems, such
as NFS, don't support copying flags and will raise ENOTSUP when it is
attempted. Unfortunately a portion of the python build process
indirectly uses chflag() to copy metadata, which results in a build
failure if the install prefix is on an NFS volume.
This was patched in 2010, but the patch didn't actually work on OS X.
This upstream patch fixes it for real.
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.
- Removed accidently added -py-debug
- Ensure HOMEBREW_PREFIX/share/python exists as a dir
- Don't change the sys.prefix (broke virtualenv)
and instead add install-lib dir to distutils.cfg.
superenv respects brewed python
ClosesHomebrew/homebrew#15220.
Signed-off-by: Max Howell <mxcl@me.com>
- Install a sitecustomize.py that is only executed for brewed
python to
- Fix the prefix, python thinks it is installed to.
(Remember, Python thinks it lives in the Cellar)
- Remove "/System/..." stuff from sys.path which caused
a lot of install trouble because setuptools has the
habbit to inject itself upfront, overwriting our distribute.
- Allow --with-poll and don't say, we didn't warn you.
- Don't need depends_on :x11 any longer. Yeah, no XQuartz!
- Add --with-brewed-openssl
- pip 1.2.1
- pip, pip-2.7, easy_install and easy_install-2.7 are installed
to prefix, such that they are directly available, even if
people have not set their PATH to include
$(brew --prefix)/share/python
- Caveats shorter and clear.
- For Xcode-only:
- Patch the distutils buildsystem to use "xcrun cc" etc.
- Teach distutils the MacOS.sdk_path (for incs and libs)
- superenv.rb add the right python include dir depending on
whether a brewed python is installed or not.
ClosesHomebrew/homebrew#15064.
Signed-off-by: Max Howell <mxcl@me.com>
Makes use of a patch from http://bugs.python.org/issue13405 with the
first part modified to remove the .hgignore patch.
This ends up providing full probes in OSX just like you have with
built-in Python.
ClosesHomebrew/homebrew#14343.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
- Unset PYTHONPATH and PYTHONHOME which would lead to install distribute and
pip into the wrong python.
- For NCLT: Add to CPPFLAGS the path to zlib via -I because python's setup.py
scans only these flags.
- '-Qunused-arguments' can be added after ENV.enable_warnings to reduce
noise. The only thing which we must not add is the "-w" switch!
- For python.rb only: Pass "--no-user-cfg" to python setup.py and add --force
when installing distribute and pip to ensure overwriting with the new ones.
ClosesHomebrew/homebrew#14689.
ClosesHomebrew/homebrew#14686.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
- Extras now in HOMEBREW_PREFIX/share/python/Extras instead of
HOMEBREW_PREFIX/share/python2.7/Extras
- Assure no '-march=...' or '-msse4' or similar flags are there
because `python-config --cflags` reports them later and can
break certain c-extensions. (happend for SciPy).
ClosesHomebrew/homebrew#14199.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
We only offer framework builds, so remove comments that suggest
otherwise.
Use HOMEBREW_PREFIX instead of `brew --prefix`, as that is what is
available inside of the formula, and how it is referenced elsewhere in
Homebrew.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>