--- setup.py.orig 2013-08-14 18:13:43.097236808 -0500 +++ setup.py 2013-08-14 18:16:49.326353917 -0500 @@ -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() @@ -104,103 +99,21 @@ _add_directory(library_dirs, lib_root) _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") + prefix = sysconfig.get_config_var("prefix") + if prefix != "/usr": + _add_directory(include_dirs, os.path.join(prefix, "include")) _add_directory(include_dirs, "/usr/include") # @@ -225,17 +138,17 @@ if _find_include_file(self, "jpeglib.h"): if _find_library_file(self, "jpeg"): - feature.jpeg = "jpeg" + feature.jpeg = None # "jpeg" elif sys.platform == "win32" and _find_library_file(self, "libjpeg"): - feature.jpeg = "libjpeg" # alternative name + feature.jpeg = None # "libjpeg" # alternative name if _find_library_file(self, "tiff"): - feature.tiff = "tiff" + feature.tiff = None # "tiff" if sys.platform == "win32" and _find_library_file(self, "libtiff"): - feature.tiff = "libtiff" + feature.tiff = None # "libtiff" if sys.platform == "darwin" and _find_library_file(self, "libtiff"): - feature.tiff = "libtiff" + feature.tiff = None # "libtiff" if _find_library_file(self, "freetype"): # look for freetype2 include files @@ -253,14 +166,14 @@ freetype_version = 20 break if freetype_version: - feature.freetype = "freetype" + feature.freetype = None # "freetype" feature.freetype_version = freetype_version if dir: _add_directory(self.compiler.include_dirs, dir, 0) if _find_include_file(self, "lcms.h"): if _find_library_file(self, "lcms"): - feature.lcms = "lcms" + feature.lcms = None # "lcms" if _tkinter and _find_include_file(self, "tk.h"): # the library names may vary somewhat (e.g. tcl84 or tcl8.4) @@ -270,13 +183,13 @@ elif _find_library_file(self, "tcl" + TCL_VERSION): feature.tcl = "tcl" + TCL_VERSION if _find_library_file(self, "tk" + version): - feature.tk = "tk" + version + feature.tk = None # "tk" + version elif _find_library_file(self, "tk" + TCL_VERSION): - feature.tk = "tk" + TCL_VERSION + feature.tk = None # "tk" + TCL_VERSION if _find_include_file(self, "webp/encode.h") and _find_include_file(self, "webp/decode.h"): if _find_library_file(self, "webp"): - feature.webp = "webp" + feature.webp = None # "webp" # # core library @@ -333,28 +246,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 +337,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,