wine-py2exe.sh to create the exe under linux (!!)
[youtube-dl] / devscripts / wine-py2exe.sh
1 #!/bin/bash
2
3 # Run with as parameter a setup.py that works in the current directory
4 # e.g. no os.chdir()
5 # It will run twice, the first time will crash
6
7 set -e
8
9 SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
10
11 if [ ! -d wine-py2exe ]; then
12
13     sudo apt-get install wine1.3 axel bsdiff
14
15     mkdir wine-py2exe
16     cd wine-py2exe
17     export WINEPREFIX=`pwd`
18
19     axel -a "http://www.python.org/ftp/python/2.7/python-2.7.msi"
20     axel -a "http://downloads.sourceforge.net/project/py2exe/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe"
21     axel -a "http://pypi.python.org/packages/2.7/l/lxml/lxml-2.3.win32-py2.7.exe"
22     #axel -a "http://winetricks.org/winetricks"
23
24     # http://appdb.winehq.org/objectManager.php?sClass=version&iId=21957
25     echo "Follow python setup on screen"
26     wine msiexec /i python-2.7.msi
27     
28     echo "Follow py2exe setup on screen"
29     wine py2exe-0.6.9.win32-py2.7.exe
30     
31     echo "Follow lxml setup on screen"
32     wine lxml-2.3.win32-py2.7.exe
33     
34     #echo "Follow Microsoft Visual C++ 2008 Redistributable Package setup on screen"
35     #bash winetricks vcrun2008
36
37     rm lxml-2.3.win32-py2.7.exe
38     rm py2exe-0.6.9.win32-py2.7.exe
39     rm python-2.7.msi
40     #rm winetricks
41     
42     # http://bugs.winehq.org/show_bug.cgi?id=3591
43     
44     mv drive_c/Python27/Lib/site-packages/py2exe/run.exe drive_c/Python27/Lib/site-packages/py2exe/run.exe.backup
45     bspatch drive_c/Python27/Lib/site-packages/py2exe/run.exe.backup drive_c/Python27/Lib/site-packages/py2exe/run.exe "$SCRIPT_DIR/SizeOfImage.patch"
46     mv drive_c/Python27/Lib/site-packages/py2exe/run_w.exe drive_c/Python27/Lib/site-packages/py2exe/run_w.exe.backup
47     bspatch drive_c/Python27/Lib/site-packages/py2exe/run_w.exe.backup drive_c/Python27/Lib/site-packages/py2exe/run_w.exe "$SCRIPT_DIR/SizeOfImage_w.patch"
48
49     cd -
50     
51 else
52
53     export WINEPREFIX="$( cd wine-py2exe && pwd )"
54
55 fi
56
57 wine "C:\\Python27\\python.exe" "$1" py2exe > "py2exe.log" 2>&1 || true
58 echo '# Copying python27.dll' >> "py2exe.log"
59 cp "$WINEPREFIX/drive_c/windows/system32/python27.dll" build/bdist.win32/winexe/bundle-2.7/
60 wine "C:\\Python27\\python.exe" "$1" py2exe >> "py2exe.log" 2>&1
61