Files
MINGW-packages/mingw-w64-firefox/0005-Allow-mingw-w64-python.patch
Ray Donnelly f795a0bcff firefox: WIP
2015-07-20 00:40:56 +01:00

415 lines
27 KiB
Diff

diff -urN firefox-39.0.orig/python/virtualenv/virtualenv.py firefox-39.0/python/virtualenv/virtualenv.py
--- firefox-39.0.orig/python/virtualenv/virtualenv.py 2015-07-15 15:31:44.566317100 +0100
+++ firefox-39.0/python/virtualenv/virtualenv.py 2015-07-15 19:22:03.026946400 +0100
@@ -41,6 +41,7 @@
join = os.path.join
py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1])
+is_mingw = (sys.platform == 'win32' and 'GCC' in sys.version)
is_jython = sys.platform.startswith('java')
is_pypy = hasattr(sys, 'pypy_version_info')
is_win = (sys.platform == 'win32')
@@ -65,7 +66,7 @@
# Return a mapping of version -> Python executable
# Only provided for Windows, where the information in the registry is used
-if not is_win:
+if not is_win or is_mingw:
def get_installed_pythons():
return {}
else:
@@ -1003,7 +1004,7 @@
where scripts go, etc)"""
# XXX: We'd use distutils.sysconfig.get_python_inc/lib but its
# prefix arg is broken: http://bugs.python.org/issue3386
- if is_win:
+ if is_win and not is_mingw:
# Windows has lots of problems with executables with spaces in
# the name; this function will remove them (using the ~1
# format):
@@ -1035,7 +1036,7 @@
lib_dir = home_dir
inc_dir = join(home_dir, 'include')
bin_dir = join(home_dir, 'bin')
- elif not is_win:
+ elif not is_win or is_mingw:
lib_dir = join(home_dir, 'lib', py_version)
multiarch_exec = '/usr/bin/multiarch-platform'
if is_executable_file(multiarch_exec):
@@ -1160,7 +1161,7 @@
mkdir(lib_dir)
fix_lib64(lib_dir, symlink)
stdlib_dirs = [os.path.dirname(os.__file__)]
- if is_win:
+ if is_win and not is_mingw:
stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs'))
elif is_darwin:
stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages'))
@@ -1197,7 +1198,7 @@
if not site_packages:
writefile(site_packages_filename, '')
- if is_pypy or is_win:
+ if is_pypy or (is_win and not is_mingw):
stdinc_dir = join(prefix, 'include')
else:
stdinc_dir = join(prefix, 'include', py_version + abiflags)
@@ -1223,7 +1224,7 @@
# pypy never uses exec_prefix, just ignore it
if sys.exec_prefix != prefix and not is_pypy:
- if is_win:
+ if is_win and not is_mingw:
exec_dir = join(sys.exec_prefix, 'lib')
elif is_jython:
exec_dir = join(sys.exec_prefix, 'Lib')
@@ -1291,8 +1293,9 @@
os.unlink(python_d_dest)
# we need to copy the DLL to enforce that windows will load the correct one.
# may not exist if we are cygwin.
- py_executable_dll = 'python%s%s.dll' % (
- sys.version_info[0], sys.version_info[1])
+ import sysconfig
+ py_executable_dll = sysconfig.get_config_var('DLLLIBRARY') if is_mingw else \
+ 'python%s%s.dll' % (sys.version_info[0], sys.version_info[1])
py_executable_dll_d = 'python%s%s_d.dll' % (
sys.version_info[0], sys.version_info[1])
pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll)
@@ -1859,147 +1861,147 @@
##file site.py
SITE_PY = convert("""
-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
-AVijEPwfucjncQ==
+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
+pdriTdy0wSBndqo8AGMUvP8DesjxGg==
""")
##file activate.sh
diff -urN firefox-39.0.orig/python/virtualenv/virtualenv_embedded/site.py firefox-39.0/python/virtualenv/virtualenv_embedded/site.py
--- firefox-39.0.orig/python/virtualenv/virtualenv_embedded/site.py 2015-07-15 15:31:44.632317100 +0100
+++ firefox-39.0/python/virtualenv/virtualenv_embedded/site.py 2015-07-15 19:06:43.500946400 +0100
@@ -578,7 +578,7 @@
plat_path = os.path.join(path, 'plat-%s' % sys.platform)
if os.path.exists(plat_path):
paths.append(plat_path)
- elif sys.platform == 'win32':
+ elif sys.platform == 'win32' and not 'GCC' in sys.version:
paths = [os.path.join(sys.real_prefix, 'Lib'), os.path.join(sys.real_prefix, 'DLLs')]
else:
paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3])]
diff -urN firefox-39.0.orig/python/mozbuild/mozbuild/virtualenv.py firefox-39.0/python/mozbuild/mozbuild/virtualenv.py
--- firefox-39.0.orig/python/mozbuild/mozbuild/virtualenv.py 2015-07-15 21:11:43.419860400 +0100
+++ firefox-39.0/python/mozbuild/mozbuild/virtualenv.py 2015-07-15 21:12:18.702750700 +0100
@@ -65,7 +65,7 @@
# we have a bit of a chicken-and-egg problem and can't reliably
# import virtualenv. The functionality is trivial, so just implement
# it here.
- if sys.platform in ('win32', 'cygwin'):
+ if sys.platform == 'win32' and not 'GCC' in sys.version:
return os.path.join(self.virtualenv_root, 'Scripts')
return os.path.join(self.virtualenv_root, 'bin')
diff -urN firefox-39.0.orig/build/autoconf/python-virtualenv.m4 firefox-39.0/build/autoconf/python-virtualenv.m4
--- firefox-39.0.orig/build/autoconf/python-virtualenv.m4 2015-06-30 23:57:57.000000000 +0100
+++ firefox-39.0/build/autoconf/python-virtualenv.m4 2015-07-17 15:30:15.659590600 +0100
@@ -58,7 +58,7 @@
case "$host_os" in
mingw*)
- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe
+ PYTHON=$(cygpath -am $(find $MOZ_BUILD_ROOT -name python.exe))
;;
*)
PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python
diff -urN firefox-39.0.orig/configure firefox-39.0/configure
--- firefox-39.0.orig/configure 2015-07-15 15:31:44.566317100 +0100
+++ firefox-39.0/configure 2015-07-15 19:22:03.026946400 +0100
@@ -1476,7 +1476,7 @@
case "$host_os" in
mingw*)
- PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe
+ PYTHON=$(cygpath -am $(find $MOZ_BUILD_ROOT -name python.exe))
;;
*)
PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python