merge cxfreeze fix
This commit is contained in:
		
						commit
						2b80caf1af
					
				|  | @ -25,6 +25,8 @@ syntax:glob | ||||||
| doc/*/_build | doc/*/_build | ||||||
| build/ | build/ | ||||||
| dist/ | dist/ | ||||||
|  | testing/cx_freeze/build | ||||||
|  | testing/cx_freeze/cx_freeze_source | ||||||
| *.egg-info | *.egg-info | ||||||
| issue/ | issue/ | ||||||
| env/ | env/ | ||||||
|  |  | ||||||
|  | @ -0,0 +1,66 @@ | ||||||
|  | """ | ||||||
|  | Installs cx_freeze from source, but first patching | ||||||
|  | setup.py as described here: | ||||||
|  | 
 | ||||||
|  | http://stackoverflow.com/questions/25107697/compiling-cx-freeze-under-ubuntu | ||||||
|  | """ | ||||||
|  | import glob | ||||||
|  | import shutil | ||||||
|  | import tarfile | ||||||
|  | import os | ||||||
|  | import sys | ||||||
|  | import platform | ||||||
|  | 
 | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     if 'ubuntu' not in platform.version().lower(): | ||||||
|  | 
 | ||||||
|  |         print('Not Ubuntu, installing using pip. (platform.version() is %r)' % | ||||||
|  |               platform.version()) | ||||||
|  |         res = os.system('pip install cx_freeze') | ||||||
|  |         if res != 0: | ||||||
|  |             sys.exit(res) | ||||||
|  |         sys.exit(0) | ||||||
|  | 
 | ||||||
|  |     if os.path.isdir('cx_freeze_source'): | ||||||
|  |         shutil.rmtree('cx_freeze_source') | ||||||
|  |     os.mkdir('cx_freeze_source') | ||||||
|  | 
 | ||||||
|  |     res = os.system('pip install --download cx_freeze_source --no-use-wheel ' | ||||||
|  |                     'cx_freeze') | ||||||
|  |     if res != 0: | ||||||
|  |         sys.exit(res) | ||||||
|  | 
 | ||||||
|  |     packages = glob.glob('cx_freeze_source/*.tar.gz') | ||||||
|  |     assert len(packages) == 1 | ||||||
|  |     tar_filename = packages[0] | ||||||
|  | 
 | ||||||
|  |     tar_file = tarfile.open(tar_filename) | ||||||
|  |     try: | ||||||
|  |         tar_file.extractall(path='cx_freeze_source') | ||||||
|  |     finally: | ||||||
|  |         tar_file.close() | ||||||
|  | 
 | ||||||
|  |     basename = os.path.basename(tar_filename).replace('.tar.gz', '') | ||||||
|  |     setup_py_filename = 'cx_freeze_source/%s/setup.py' % basename | ||||||
|  |     with open(setup_py_filename) as f: | ||||||
|  |         lines = f.readlines() | ||||||
|  | 
 | ||||||
|  |     line_to_patch = 'if not vars.get("Py_ENABLE_SHARED", 0):' | ||||||
|  |     for index, line in enumerate(lines): | ||||||
|  |         if line_to_patch in line: | ||||||
|  |             indent = line[:line.index(line_to_patch)] | ||||||
|  |             lines[index] = indent + 'if True:\n' | ||||||
|  |             print('Patched line %d' % (index + 1)) | ||||||
|  |             break | ||||||
|  |     else: | ||||||
|  |         sys.exit('Could not find line in setup.py to patch!') | ||||||
|  | 
 | ||||||
|  |     with open(setup_py_filename, 'w') as f: | ||||||
|  |         f.writelines(lines) | ||||||
|  | 
 | ||||||
|  |     os.chdir('cx_freeze_source/%s' % basename) | ||||||
|  |     res = os.system('python setup.py install') | ||||||
|  |     if res != 0: | ||||||
|  |         sys.exit(res) | ||||||
|  | 
 | ||||||
|  |     sys.exit(0) | ||||||
							
								
								
									
										2
									
								
								tox.ini
								
								
								
								
							
							
						
						
									
										2
									
								
								tox.ini
								
								
								
								
							|  | @ -125,10 +125,10 @@ commands= | ||||||
|         -rfsxX --junitxml={envlogdir}/junit-{envname}2.xml [] |         -rfsxX --junitxml={envlogdir}/junit-{envname}2.xml [] | ||||||
| 
 | 
 | ||||||
| [testenv:py27-cxfreeze] | [testenv:py27-cxfreeze] | ||||||
| deps=cx_freeze |  | ||||||
| changedir=testing/cx_freeze | changedir=testing/cx_freeze | ||||||
| basepython=python2.7 | basepython=python2.7 | ||||||
| commands= | commands= | ||||||
|  |     {envpython} install_cx_freeze.py | ||||||
|     {envpython} runtests_setup.py build --build-exe build |     {envpython} runtests_setup.py build --build-exe build | ||||||
|     {envpython} tox_run.py |     {envpython} tox_run.py | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue