bd52b679da
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>
97 lines
3.2 KiB
Ruby
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")
|
|
|