homebrew-core/Formula/sip.rb
samueljohn bd52b679da sip & pyqt: Now use lib/pythonX.Y/site-packages
Benefit: For brewed Python, adding stuff to the PYTHONPATH is no longer needed.
For other Pythons nothing changes but the X.Y part in the path. Oh, and you
only need to edit your PYTHONPATH once.

- Added a method to get the major.minor version number from the current python
- Updated the caveats to reflect the new path

Fixes Homebrew/homebrew#8182.
Closes Homebrew/homebrew#10051.

Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
2012-02-16 00:03:07 -08:00

97 lines
3.2 KiB
Ruby

require 'formula'
# NOTE TO MAINTAINERS:
#
# Unless Riverbank policy changes in the future or the Mercurial archive
# becomes unavailable, *do not use* the SIP download URL from the Riverbank
# website. This URL will break as soon as a new version of SIP is released
# which causes panic and terror to flood the Homebrew issue tracker.
class Sip < Formula
url 'http://www.riverbankcomputing.co.uk/hg/sip/archive/4.13.2.tar.gz'
sha1 'd6c0835738438f8ccff012164a6c6192abc52792'
head 'http://www.riverbankcomputing.co.uk/hg/sip', :using => :hg
homepage 'http://www.riverbankcomputing.co.uk/software/sip'
def patches
DATA
end
def install
if ARGV.build_head?
# Set fallback version to the same value it would have without the patch
# and link the Mercurial repository into the download directory so
# buid.py can use it to figure out a version number.
sip_version = "0.1.0"
ln_s downloader.cached_location + '.hg', '.hg'
else
sip_version = version
end
inreplace 'build.py', /@SIP_VERSION@/, (sip_version.gsub '.', ',')
system "python", "build.py", "prepare"
# Set --destdir such that the python modules will be in the HOMEBREWPREFIX/lib/pythonX.Y/site-packages
system "python", "configure.py",
"--destdir=#{lib}/#{which_python}/site-packages",
"--bindir=#{bin}",
"--incdir=#{include}"
system "make install"
end
def caveats; <<-EOS.undent
For non-homebrew Python, you need to amend your PYTHONPATH like so:
export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/#{which_python}/site-packages:$PYTHONPATH
EOS
end
def which_python
"python" + `python -c 'import sys;print(sys.version[:3])'`.strip
end
end
__END__
Patch to allow the SIP build.py script to generate a reasonable version number
for installing from a Mercurial snapshot without the .hg directory from the
Mercurial repository. The install code hooks on to the @SIP_VERSION@ tag and
inserts a real version tuple
diff --git a/build.py b/build.py
index 927d7f1..fdf13a3 100755
--- a/build.py
+++ b/build.py
@@ -179,7 +179,7 @@ def _get_release():
changelog = None
name = os.path.basename(_RootDir)
- release_suffix = "-unknown"
+ release_suffix = ""
version = None
parts = name.split('-')
@@ -192,7 +192,7 @@ def _get_release():
# Format the results.
if version is None:
- version = (0, 1, 0)
+ version = (@SIP_VERSION@)
major, minor, micro = version
Patch to remove the seemingly unnecessary framework build requirement
diff --git a/siputils.py b/siputils.py
index 57e8911..1af6152 100644
--- a/siputils.py
+++ b/siputils.py
@@ -1434,8 +1434,8 @@ class ModuleMakefile(Makefile):
# 'real_prefix' exists if virtualenv is being used.
dl = getattr(sys, 'real_prefix', sys.exec_prefix).split(os.sep)
- if "Python.framework" not in dl:
- error("SIP requires Python to be built as a framework")
+ # if "Python.framework" not in dl:
+ # error("SIP requires Python to be built as a framework")
self.LFLAGS.append("-undefined dynamic_lookup")