Mercurial > hg
annotate contrib/packaging/wix/readme.rst @ 43697:dc4e74d0ef96
py3: send bytes from Rust-created warning patterns
Python code expects bytes in both Python 2 and Python 3, so we should send
bytes.
Differential Revision: https://phab.mercurial-scm.org/D7454
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Mon, 18 Nov 2019 17:37:59 +0100 |
parents | 081a77df7bc6 |
children | e933e66153f3 |
rev | line source |
---|---|
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
1 WiX Installer |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
2 ============= |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
3 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
4 The files in this directory are used to produce an MSI installer using |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
5 the WiX Toolset (http://wixtoolset.org/). |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
6 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
7 The MSI installers require elevated (admin) privileges due to the |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
8 installation of MSVC CRT libraries into the Windows system store. See |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
9 the Inno Setup installers in the ``inno`` sibling directory for installers |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
10 that do not have this requirement. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
11 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
12 Requirements |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
13 ============ |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
14 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
15 Building the WiX installers requires a Windows machine. The following |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
16 dependencies must be installed: |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
17 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
18 * Python 2.7 (download from https://www.python.org/downloads/) |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
19 * Microsoft Visual C++ Compiler for Python 2.7 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
20 (https://www.microsoft.com/en-us/download/details.aspx?id=44266) |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
21 * Python 3.5+ (to run the ``packaging.py`` script) |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
22 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
23 Building |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
24 ======== |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
25 |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
26 The ``packaging.py`` script automates the process of producing an MSI |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
27 installer. It manages fetching and configuring non-system dependencies |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
28 (such as py2exe, gettext, and various Python packages). |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
29 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
30 The script requires an activated ``Visual C++ 2008`` command prompt. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
31 A shortcut to such a prompt was installed with ``Microsoft Visual |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
32 C++ Compiler for Python 2.7``. From your Start Menu, look for |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
33 ``Microsoft Visual C++ Compiler Package for Python 2.7`` then |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
34 launch either ``Visual C++ 2008 32-bit Command Prompt`` or |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
35 ``Visual C++ 2008 64-bit Command Prompt``. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
36 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
37 From the prompt, change to the Mercurial source directory. e.g. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
38 ``cd c:\src\hg``. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
39 |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
40 Next, invoke ``packaging.py`` to produce an MSI installer. You will need |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
41 to supply the path to the Python interpreter to use.:: |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
42 |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
43 $ python3 contrib\packaging\packaging.py \ |
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
44 wix --python c:\python27\python.exe |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
45 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
46 .. note:: |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
47 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
48 The script validates that the Visual C++ environment is active and |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
49 that the architecture of the specified Python interpreter matches the |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
50 Visual C++ environment. An error is raised otherwise. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
51 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
52 If everything runs as intended, dependencies will be fetched and |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
53 configured into the ``build`` sub-directory, Mercurial will be built, |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
54 and an installer placed in the ``dist`` sub-directory. The final line |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
55 of output should print the name of the generated installer. |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
56 |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
57 Additional options may be configured. Run ``packaging.py wix --help`` to |
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
58 see a list of program flags. |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
59 |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
60 Relationship to TortoiseHG |
10502
1e022c88a0a5
Add WiX installer scripts to contrib/wix
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
61 ========================== |
1e022c88a0a5
Add WiX installer scripts to contrib/wix
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
62 |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
63 TortoiseHG uses the WiX files in this directory. |
10502
1e022c88a0a5
Add WiX installer scripts to contrib/wix
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
64 |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
65 The code for building TortoiseHG installers lives at |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
66 https://bitbucket.org/tortoisehg/thg-winbuild and is maintained by |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
67 Steve Borho (steve@borho.org). |
10502
1e022c88a0a5
Add WiX installer scripts to contrib/wix
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
68 |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
69 When changing behavior of the WiX installer, be sure to notify |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
70 the TortoiseHG Project of the changes so they have ample time |
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41920
diff
changeset
|
71 provide feedback and react to those changes. |