--- setup.py.orig 2013-03-15 08:55:50.000000000 +1300 +++ setup.py 2013-08-15 10:14:29.575611256 +1200 @@ -56,11 +56,6 @@ return None -def _lib_include(root): - # map root to (root/lib, root/include) - return os.path.join(root, "lib"), os.path.join(root, "include") - - def _read(file): return open(file, 'rb').read() @@ -105,102 +100,22 @@ _add_directory(include_dirs, include_root) # - # add platform directories - - if sys.platform == "cygwin": - # pythonX.Y.dll.a is in the /usr/lib/pythonX.Y/config directory - _add_directory(library_dirs, os.path.join( - "/usr/lib", "python%s" % sys.version[:3], "config")) - - elif sys.platform == "darwin": - # attempt to make sure we pick freetype2 over other versions - _add_directory(include_dirs, "/sw/include/freetype2") - _add_directory(include_dirs, "/sw/lib/freetype2/include") - # fink installation directories - _add_directory(library_dirs, "/sw/lib") - _add_directory(include_dirs, "/sw/include") - # darwin ports installation directories - _add_directory(library_dirs, "/opt/local/lib") - _add_directory(include_dirs, "/opt/local/include") - # freetype2 ships with X11 - _add_directory(library_dirs, "/usr/X11/lib") - _add_directory(include_dirs, "/usr/X11/include") - - elif sys.platform.startswith("linux"): - for platform_ in (platform.processor(),platform.architecture()[0]): - if not platform_: continue - - if platform_ in ["x86_64", "64bit"]: - _add_directory(library_dirs, "/lib64") - _add_directory(library_dirs, "/usr/lib64") - _add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu") - break - elif platform_ in ["i386", "i686", "32bit"]: - _add_directory(library_dirs, "/usr/lib/i386-linux-gnu") - break - else: - raise ValueError("Unable to identify Linux platform: `%s`" % platform_) - - # XXX Kludge. Above /\ we brute force support multiarch. Here we - # try Barry's more general approach. Afterward, something should - # work ;-) - self.add_multiarch_paths() - - _add_directory(library_dirs, "/usr/local/lib") - # FIXME: check /opt/stuff directories here? - prefix = sysconfig.get_config_var("prefix") if prefix: _add_directory(library_dirs, os.path.join(prefix, "lib")) _add_directory(include_dirs, os.path.join(prefix, "include")) - # # locate tkinter libraries if _tkinter: TCL_VERSION = _tkinter.TCL_VERSION[:3] - if _tkinter and not TCL_ROOT: - # we have Tkinter but the TCL_ROOT variable was not set; - # try to locate appropriate Tcl/Tk libraries - PYVERSION = sys.version[0] + sys.version[2] - TCLVERSION = TCL_VERSION[0] + TCL_VERSION[2] - roots = [ - # common installation directories, mostly for Windows - # (for Unix-style platforms, we'll check in well-known - # locations later) - os.path.join("/py" + PYVERSION, "Tcl"), - os.path.join("/python" + PYVERSION, "Tcl"), - "/Tcl", "/Tcl" + TCLVERSION, "/Tcl" + TCL_VERSION, - os.path.join(os.environ.get("ProgramFiles", ""), "Tcl"), - ] - for TCL_ROOT in roots: - TCL_ROOT = os.path.abspath(TCL_ROOT) - if os.path.isfile(os.path.join(TCL_ROOT, "include", "tk.h")): - # FIXME: use distutils logging (?) - print("--- using Tcl/Tk libraries at", TCL_ROOT) - print("--- using Tcl/Tk version", TCL_VERSION) - TCL_ROOT = _lib_include(TCL_ROOT) - break - else: - TCL_ROOT = None - # # add standard directories - # look for tcl specific subdirectory (e.g debian) - if _tkinter: - tcl_dir = "/usr/include/tcl" + TCL_VERSION - if os.path.isfile(os.path.join(tcl_dir, "tk.h")): - _add_directory(include_dirs, tcl_dir) - # standard locations - _add_directory(library_dirs, "/usr/local/lib") - _add_directory(include_dirs, "/usr/local/include") - - _add_directory(library_dirs, "/usr/lib") _add_directory(include_dirs, "/usr/include") # @@ -333,28 +248,7 @@ "_webp", ["_webp.c"], libraries=["webp"])) - if sys.platform == "darwin": - # locate Tcl/Tk frameworks - frameworks = [] - framework_roots = [ - "/Library/Frameworks", - "/System/Library/Frameworks"] - for root in framework_roots: - if (os.path.exists(os.path.join(root, "Tcl.framework")) and - os.path.exists(os.path.join(root, "Tk.framework"))): - print("--- using frameworks at %s" % root) - frameworks = ["-framework", "Tcl", "-framework", "Tk"] - dir = os.path.join(root, "Tcl.framework", "Headers") - _add_directory(self.compiler.include_dirs, dir, 0) - dir = os.path.join(root, "Tk.framework", "Headers") - _add_directory(self.compiler.include_dirs, dir, 1) - break - if frameworks: - exts.append(Extension( - "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"], - extra_compile_args=frameworks, extra_link_args=frameworks)) - feature.tcl = feature.tk = 1 # mark as present - elif feature.tcl and feature.tk: + if feature.tcl and feature.tk: exts.append(Extension( "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"], libraries=[feature.tcl, feature.tk])) @@ -445,30 +339,6 @@ if m.group(1) < "1.2.3": return m.group(1) - # http://hg.python.org/users/barry/rev/7e8deab93d5a - def add_multiarch_paths(self): - # Debian/Ubuntu multiarch support. - # https://wiki.ubuntu.com/MultiarchSpec - # self.build_temp - tmpfile = os.path.join(self.build_temp, 'multiarch') - if not os.path.exists(self.build_temp): - os.makedirs(self.build_temp) - ret = os.system('dpkg-architecture -qDEB_HOST_MULTIARCH > %s' % - tmpfile) - ret = os.system( - 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % - tmpfile) - try: - if ret >> 8 == 0: - fp = open(tmpfile, 'r') - multiarch_path_component = fp.readline().strip() - _add_directory(self.compiler.library_dirs, - '/usr/lib/' + multiarch_path_component) - _add_directory(self.compiler.include_dirs, - '/usr/include/' + multiarch_path_component) - finally: - os.unlink(tmpfile) - setup( name=NAME, version=VERSION,