Mercurial > hg
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 |
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). |