b1efcd3f38
Add patch to mapnik.rb to use an absolute path into site-packages rather than a relative path in the file `paths.py`. The upstream bug report is noted in the formula comments and is where the patch offered by the developer came from. Fixes Homebrew/homebrew#12026. Closes Homebrew/homebrew#12043. Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
74 lines
2.2 KiB
Ruby
74 lines
2.2 KiB
Ruby
require 'formula'
|
|
|
|
class Mapnik < Formula
|
|
url 'https://github.com/downloads/mapnik/mapnik/mapnik-v2.0.1.tar.bz2'
|
|
md5 'e3dd09991340e2568b99f46bac34b0a8'
|
|
homepage 'http://www.mapnik.org/'
|
|
head 'https://github.com/mapnik/mapnik.git'
|
|
|
|
depends_on 'pkg-config' => :build
|
|
depends_on 'libtiff'
|
|
depends_on 'jpeg'
|
|
depends_on 'proj'
|
|
depends_on 'icu4c'
|
|
depends_on 'boost'
|
|
depends_on 'cairomm' => :optional
|
|
|
|
# Reported upstream: https://github.com/mapnik/mapnik/issues/1171
|
|
# Fix is not yet in HEAD as of 3 MAY 2012, but likely will be in 2.0.2.
|
|
def patches
|
|
DATA
|
|
end
|
|
|
|
def install
|
|
ENV.x11 # for freetype-config
|
|
|
|
icu = Formula.factory("icu4c")
|
|
# mapnik compiles can take ~1.5 GB per job for some .cpp files
|
|
# so lets be cautious by limiting to CPUS/2
|
|
jobs = ENV.make_jobs
|
|
if jobs > 2
|
|
jobs = Integer(jobs/2)
|
|
end
|
|
|
|
system "python",
|
|
"scons/scons.py",
|
|
"configure",
|
|
"CC=\"#{ENV.cc}\"",
|
|
"CXX=\"#{ENV.cxx}\"",
|
|
"JOBS=#{jobs}",
|
|
"PREFIX=#{prefix}",
|
|
"ICU_INCLUDES=#{icu.include}",
|
|
"ICU_LIBS=#{icu.lib}",
|
|
"PYTHON_PREFIX=#{prefix}" # Install to Homebrew's site-packages
|
|
system "python",
|
|
"scons/scons.py",
|
|
"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__
|
|
--- a/bindings/python/build.py
|
|
+++ b/bindings/python/build.py
|
|
@@ -143,10 +143,7 @@ paths += "__all__ = [mapniklibpath,inputpluginspath,fontscollectionpath]\n"
|
|
if not os.path.exists('mapnik'):
|
|
os.mkdir('mapnik')
|
|
|
|
-if hasattr(os.path,'relpath'): # python 2.6 and above
|
|
- file('mapnik/paths.py','w').write(paths % (os.path.relpath(env['MAPNIK_LIB_DIR'],target_path)))
|
|
-else:
|
|
- file('mapnik/paths.py','w').write(paths % (env['MAPNIK_LIB_DIR']))
|
|
+file('mapnik/paths.py','w').write(paths % (env['MAPNIK_LIB_DIR']))
|
|
|
|
# force open perms temporarily so that `sudo scons install`
|
|
# does not later break simple non-install non-sudo rebuild
|