Mercurial > hg
comparison contrib/packaging/inno/readme.txt @ 41847:0f49b56d5d74
inno: replace add_path.exe with a Pascal script
While attempting to build the Inno installer, I was unable to
find a copy of add_path.exe from the source site previously
listed in the docs.
Some quick Googling revealed that achieving this functionality
in native Pascal scripts seems to be preferred these days.
This commit vendors "Modify Path" (fetched from
https://www.legroom.net/software/modpath) and plugs it into
our Inno config file per its instructions.
The existing Inno installer appears to only modify PATH for
the current user (as opposed to at the system level). I've
maintained this behavior with Modify Path. Although it would
be trivial to change or add checkboxes to control the behavior.
I'll leave this as a follow-up.
Differential Revision: https://phab.mercurial-scm.org/D6060
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 28 Feb 2019 12:54:48 -0800 |
parents | 765f836a9484 |
children | 27eca52b1874 |
comparison
equal
deleted
inserted
replaced
41846:765f836a9484 | 41847:0f49b56d5d74 |
---|---|
38 which is necessary to package Mercurial. | 38 which is necessary to package Mercurial. |
39 | 39 |
40 ISTool - optional | 40 ISTool - optional |
41 http://www.istool.org/default.aspx/ | 41 http://www.istool.org/default.aspx/ |
42 | 42 |
43 add_path (you need only add_path.exe in the zip file) | |
44 http://www.barisione.org/apps.html#add_path | |
45 | |
46 Docutils | 43 Docutils |
47 http://docutils.sourceforge.net/ | 44 http://docutils.sourceforge.net/ |
48 | 45 |
49 CA Certs file | 46 CA Certs file |
50 http://curl.haxx.se/ca/cacert.pem | 47 http://curl.haxx.se/ca/cacert.pem |
74 python setup.py py2exe -b 2 | 71 python setup.py py2exe -b 2 |
75 for 64-bit: | 72 for 64-bit: |
76 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64 | 73 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64 |
77 python setup.py py2exe -b 3 | 74 python setup.py py2exe -b 3 |
78 | 75 |
79 Copy add_path.exe and cacert.pem files into the dist directory that just got created. | 76 Copy cacert.pem files into the dist directory that just got created. |
80 | 77 |
81 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile | 78 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile |
82 mercurial, you must include the C runtime libraries in the installer. To do so, | 79 mercurial, you must include the C runtime libraries in the installer. To do so, |
83 install the Visual C++ 2008 redistributable package. Then in your windows\winsxs | 80 install the Visual C++ 2008 redistributable package. Then in your windows\winsxs |
84 folder, locate the folder containing the dlls version 9.0.21022.8. | 81 folder, locate the folder containing the dlls version 9.0.21022.8. |
97 cd doc | 94 cd doc |
98 mingw32-make html | 95 mingw32-make html |
99 cd .. | 96 cd .. |
100 | 97 |
101 If you use ISTool, you open the | 98 If you use ISTool, you open the |
102 C:\hg\hg-release\contrib\packaging\inno\mercurial.iss | 99 C:\hg\hg-release\contrib\packaging\inno-installer\mercurial.iss |
103 file and type Ctrl-F9 to compile the installer file. | 100 file and type Ctrl-F9 to compile the installer file. |
104 | 101 |
105 Otherwise you run the Inno Setup compiler. Assuming it's in the path | 102 Otherwise you run the Inno Setup compiler. Assuming it's in the path |
106 you should execute: | 103 you should execute: |
107 | 104 |
108 iscc contrib\packaging\inno\mercurial.iss /dVERSION=foo | 105 iscc contrib\packaging\inno-installer\mercurial.iss /dVERSION=foo |
109 | 106 |
110 Where 'foo' is the version number you would like to see in the | 107 Where 'foo' is the version number you would like to see in the |
111 'Add/Remove Applications' tool. The installer will be placed into | 108 'Add/Remove Applications' tool. The installer will be placed into |
112 a directory named Output/ at the root of your repository. | 109 a directory named Output/ at the root of your repository. |
113 If the /dVERSION=foo parameter is not given in the command line, the | 110 If the /dVERSION=foo parameter is not given in the command line, the |
114 installer will retrieve the version information from the __version__.py file. | 111 installer will retrieve the version information from the __version__.py file. |
115 | 112 |
116 If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to | 113 If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to |
117 your command line: | 114 your command line: |
118 iscc contrib\packaging\inno\mercurial.iss /dARCH=x64 | 115 iscc contrib\packaging\inno-installer\mercurial.iss /dARCH=x64 |
119 | 116 |
120 To automate the steps above you may want to create a batchfile based on the | 117 To automate the steps above you may want to create a batchfile based on the |
121 following (MinGW build chain): | 118 following (MinGW build chain): |
122 | 119 |
123 echo [build] > setup.cfg | 120 echo [build] > setup.cfg |
124 echo compiler=mingw32 >> setup.cfg | 121 echo compiler=mingw32 >> setup.cfg |
125 python setup.py py2exe -b 2 | 122 python setup.py py2exe -b 2 |
126 cd doc | 123 cd doc |
127 mingw32-make html | 124 mingw32-make html |
128 cd .. | 125 cd .. |
129 iscc contrib\packaging\inno\mercurial.iss /dVERSION=snapshot | 126 iscc contrib\packaging\inno-installer\mercurial.iss /dVERSION=snapshot |
130 | 127 |
131 and run it from the root of the hg repository (c:\hg\hg-release). | 128 and run it from the root of the hg repository (c:\hg\hg-release). |