components/python/xattr/patches/build.patch
changeset 1847 b43426a2f6ba
equal deleted inserted replaced
1846:df40919e04fa 1847:b43426a2f6ba
       
     1 cffi leaves __pycache__ around in the *source* directory, so when we build
       
     2 64-bit after 32-bit (or vice versa), the modules already exist, but are of the
       
     3 wrong ELF class.  Ideally, the entire build would happen outside the source
       
     4 directory, but for the time being, this patch at least makes sure distutils'
       
     5 build_base directory (plus an extraneous directory structure) is used for the
       
     6 object files and shared objects.
       
     7 
       
     8 There's probably a better way, but it will likely involve deep distutils magic
       
     9 and maybe some patches to cffi.
       
    10 
       
    11 --- xattr-0.7.4/setup.py	Mon Mar  3 10:13:29 2014
       
    12 +++ xattr-0.7.4/setup.py	Mon Apr 14 14:09:58 2014
       
    13 @@ -12,6 +12,8 @@
       
    14      setup_requires hasn't run yet.
       
    15      """
       
    16      def finalize_options(self):
       
    17 +        import cffi.verifier
       
    18 +        cffi.verifier.set_tmpdir(self.build_base)
       
    19          from xattr.lib import ffi
       
    20          self.distribution.ext_modules = [ffi.verifier.get_extension()]
       
    21          build.finalize_options(self)