annotate contrib/win32/win32-build.txt @ 20742:3681de20b0a7

parsers: fail fast if Python has wrong minor version (issue4110) This change causes an informative ImportError to be raised when importing the parsers extension module if the minor version of the currently-running Python interpreter doesn't match that of the Python used when compiling the extension module. This change also exposes a parsers.versionerrortext constant in the C implementation of the module. Its presence can be used to determine whether this behavior is present in a version of the module. The value of the constant is the leading text of the ImportError raised and is set to "Python minor version mismatch". Here is an example of what the new error looks like: Traceback (most recent call last): File "test.py", line 1, in <module> import mercurial.parsers ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.6, but Mercurial is currently using Python with sys.hexversion=33883888: Python 2.5.6 (r256:88840, Nov 18 2012, 05:37:10) [GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] at: /opt/local/Library/Frameworks/Python.framework/Versions/2.5/Resources/ Python.app/Contents/MacOS/Python The reason for raising an error in this scenario is that Python's C API is known not to be compatible from minor version to minor version, even if sys.api_version is the same. See for example this Python bug report about incompatibilities between 2.5 and 2.6+: http://bugs.python.org/issue8118 These incompatibilities can cause Mercurial to break in mysterious, unforeseen ways. For example, when Mercurial compiled with Python 2.7 was run with 2.5, the following crash occurred when running "hg status": http://bz.selenic.com/show_bug.cgi?id=4110 After this crash was fixed, running with Python 2.5 no longer crashes, but the following puzzling behavior still occurs: $ hg status ... File ".../mercurial/changelog.py", line 123, in __init__ revlog.revlog.__init__(self, opener, "00changelog.i") File ".../mercurial/revlog.py", line 251, in __init__ d = self._io.parseindex(i, self._inline) File ".../mercurial/revlog.py", line 158, in parseindex index, cache = parsers.parse_index2(data, inline) TypeError: data is not a string which can be reproduced more simply with: import mercurial.parsers as parsers parsers.parse_index2("", True) Both the crash and the TypeError occurred because the Python C API's PyString_Check() returns the wrong value when the C header files from Python 2.7 are run with Python 2.5. This is an example of an incompatibility of the sort mentioned in the Python bug report above. Failing fast with an informative error message results in a better user experience in cases like the above. The information in the ImportError also simplifies troubleshooting for those on Mercurial mailing lists, the bug tracker, etc. This patch only adds the version check to parsers.c, which is sufficient to affect command-line commands like "hg status" and "hg summary". An idea for a future improvement is to move the version-checking C code to a more central location, and have it run when importing all Mercurial extension modules and not just parsers.c.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Wed, 04 Dec 2013 20:38:27 -0800
parents 170fc0949fb6
children e999ed2192ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1 The standalone Windows installer for Mercurial is built in a somewhat
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
2 jury-rigged fashion.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
3
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
4 It has the following prerequisites. Ensure to take the packages
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
5 matching the mercurial version you want to build (32-bit or 64-bit).
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
6
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
7 Python 2.6 for Windows
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
8 http://www.python.org/download/releases/
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
9
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
10 A compiler:
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
11 either MinGW
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
12 http://www.mingw.org/
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
13 or Microsoft Visual C++ 2008 SP1 Express Edition
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
14 http://www.microsoft.com/express/Downloads/Download-2008.aspx
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
15
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
16 Python for Windows Extensions
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
17 http://sourceforge.net/projects/pywin32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
18
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
19 mfc71.dll (just download, don't install; not needed for Python 2.6)
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
20 http://starship.python.net/crew/mhammond/win32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
21
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
22 Visual C++ 2008 redistributable package (needed for >= Python 2.6 or if you compile with MSVC)
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
23 for 32-bit:
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
24 http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
25 for 64-bit:
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
26 http://www.microsoft.com/downloads/details.aspx?familyid=bd2a6171-e2d6-4230-b809-9a8d7548c1b6
18960
170fc0949fb6 check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com>
parents: 13246
diff changeset
27
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
28 The py2exe distutils extension
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
29 http://sourceforge.net/projects/py2exe/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
30
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
31 GnuWin32 gettext utility (if you want to build translations)
9175
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
32 http://gnuwin32.sourceforge.net/packages/gettext.htm
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
33
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
34 Inno Setup
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
35 http://www.jrsoftware.org/isdl.php#qsp
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
36
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
37 Get and install ispack-5.3.10.exe or later (includes Inno Setup Processor),
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
38 which is necessary to package Mercurial.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
39
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
40 ISTool - optional
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
41 http://www.istool.org/default.aspx/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
42
2384
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
43 add_path (you need only add_path.exe in the zip file)
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
44 http://www.barisione.org/apps.html#add_path
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
45
9179
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
46 Docutils
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
47 http://docutils.sourceforge.net/
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
48
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
49 CA Certs file
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
50 http://curl.haxx.se/ca/cacert.pem
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
51
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
52 And, of course, Mercurial itself.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
53
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
54 Once you have all this installed and built, clone a copy of the
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
55 Mercurial repository you want to package, and name the repo
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
56 C:\hg\hg-release.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
57
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
58 In a shell, build a standalone copy of the hg.exe program.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
59
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
60 Building instructions for MinGW:
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4401
diff changeset
61 python setup.py build -c mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
62 python setup.py py2exe -b 2
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
63 Note: the previously suggested combined command of "python setup.py build -c
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
64 mingw32 py2exe -b 2" doesn't work correctly anymore as it doesn't include the
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
65 extensions in the mercurial subdirectory.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
66 If you want to create a file named setup.cfg with the contents:
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
67 [build]
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
68 compiler=mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
69 you can skip the first build step.
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
70
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
71 Building instructions with MSVC 2008 Express Edition:
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
72 for 32-bit:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
73 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
74 python setup.py py2exe -b 2
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
75 for 64-bit:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
76 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
77 python setup.py py2exe -b 3
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
78
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
79 Copy add_path.exe and cacert.pem files into the dist directory that just got created.
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
80
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
81 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
82 directory that just got created.
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
83
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
84 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
85 mercurial, you must include the C runtime libraries in the installer. To do so,
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
86 install the Visual C++ 2008 redistributable package. Then in your windows\winsxs
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
87 folder, locate the folder containing the dlls version 9.0.21022.8.
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
88 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
89 For x64, it should be named like amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
90 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
91 directory.
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
92 Then in the windows\winsxs\manifests folder, locate the corresponding manifest
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
93 file (x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x86,
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
94 amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x64), copy it in the
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
95 dist directory and rename it to Microsoft.VC90.CRT.manifest.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
96
18960
170fc0949fb6 check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com>
parents: 13246
diff changeset
97 Before building the installer, you have to build Mercurial HTML documentation
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
98 (or fix mercurial.iss to not reference the doc directory):
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
99
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
100 cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
101 mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
102 cd ..
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
103
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
104 If you use ISTool, you open the C:\hg\hg-release\contrib\win32\mercurial.iss
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
105 file and type Ctrl-F9 to compile the installer file.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
106
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
107 Otherwise you run the Inno Setup compiler. Assuming it's in the path
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
108 you should execute:
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
109
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
110 iscc contrib\win32\mercurial.iss /dVERSION=foo
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
111
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
112 Where 'foo' is the version number you would like to see in the
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
113 'Add/Remove Applications' tool. The installer will be placed into
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
114 a directory named Output/ at the root of your repository.
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
115 If the /dVERSION=foo parameter is not given in the command line, the
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
116 installer will retrieve the version information from the __version__.py file.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
117
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
118 If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
119 your command line:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
120 iscc contrib\win32\mercurial.iss /dARCH=x64
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
121
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
122 To automate the steps above you may want to create a batchfile based on the
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
123 following (MinGW build chain):
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
124
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
125 echo [build] > setup.cfg
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
126 echo compiler=mingw32 >> setup.cfg
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
127 python setup.py py2exe -b 2
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
128 cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
129 mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
130 cd ..
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
131 iscc contrib\win32\mercurial.iss /dVERSION=snapshot
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
132
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
133 and run it from the root of the hg repository (c:\hg\hg-release).