From 0f2c82f097cf6d3722b7793fe1159160f3f52725 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Mon, 25 May 2015 12:08:47 -0400
Subject: [PATCH] Gentoo-specific packaging fixes

Fix cross-compiles
EPREFIX support
---
 setup.py | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/setup.py b/setup.py
index fc89513..8360e7e 100644
--- a/setup.py
+++ b/setup.py
@@ -32,7 +32,7 @@ class CustomBuild(build):
 class CustomInstall(install):
     def run(self):
         self.run_command('build_ext')
-        self.do_egg_install()
+        install.run(self)
 
 class _M2CryptoBuildExt(build_ext.build_ext):
     '''Specialization of build_ext to enable swig_opts to inherit any
@@ -81,29 +81,19 @@ class _M2CryptoBuildExt(build_ext.build_ext):
 
         build_ext.build_ext.finalize_options(self)
 
-        self.add_multiarch_paths()
-
         includeDir = os.path.join(self.openssl, 'include')
         opensslIncludeDir = os.path.join(self.openssl, 'include', 'openssl')
         opensslLibraryDir = os.path.join(self.openssl, 'lib')
 
-        self.swig_opts = ['-I%s' % i for i in self.include_dirs + \
-                          [opensslIncludeDir, includeDir]]
+        eprefix = os.getenv('EPREFIX', '')
+        self.swig_opts = ['-I' + eprefix + '/usr/include']
         self.swig_opts.append('-includeall')
         self.swig_opts.append('-modern')
 
-        # Fedora does hat tricks.
-        if platform.linux_distribution()[0] in ['Fedora', 'CentOS']:
-            if platform.architecture()[0] == '64bit':
-                self.swig_opts.append('-D__x86_64__')
-            elif platform.architecture()[0] == '32bit':
-                self.swig_opts.append('-D__i386__')
-
         self.swig_opts.append('-outdir')
         self.swig_opts.append(os.path.join(os.getcwd(),'M2Crypto'))
 
-        self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir),
-                              os.path.join(os.getcwd(), 'SWIG')]
+        self.include_dirs += [os.path.join(os.getcwd(), 'SWIG')]
 
         if sys.platform == 'cygwin':
             # Cygwin SHOULD work (there's code in distutils), but
@@ -113,8 +103,6 @@ class _M2CryptoBuildExt(build_ext.build_ext):
             # Someday distutils will be fixed and this won't be needed.
             self.library_dirs += [os.path.join(self.openssl, 'bin')]
 
-        self.library_dirs += [os.path.join(self.openssl, opensslLibraryDir)]
-
 if sys.platform == 'darwin':
    my_extra_compile_args = ["-Wno-deprecated-declarations"]
 else:
-- 
2.4.1

