Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 14:08:25 -0800] rev 41857
setup: exclude some internal UCRT files
When attempting to build the Inno installer locally, I was getting
several file not found errors when py2exe was crawling DLL
dependencies. The missing DLLs appear to be "internal" DLLs
used by the Universal C Runtime (UCRT). In many cases, the
missing DLLs don't appear to exist on my system at all!
Some of the DLLs have version numbers that appear to be N+1
of what the existing version number is. Maybe the "public" UCRT
DLLs are probing for version N+1 at load time and py2exe is
picking these up? Who knows.
This commit adds the non-public UCRT DLLs as found by
py2exe on my system to the excluded DLLs set. After this
change, I'm able to produce an Inno installer with an
appropriate set of DLLs.
Differential Revision: https://phab.mercurial-scm.org/D6065
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 15:46:26 -0800] rev 41856
setup: include additional packages in py2exe distribution
I'm attempting to reproduce the Inno installers on my local
machine. As part of auditing differences between installer output,
I noticed that the existing Inno installers include various 3rd
party packages.
There is no mention of this in the build instructions nor on
the wiki. This must be something that is done by the installer
producer.
This commit teaches setup.py to include these 3rd party packages
in py2exe's library. After this change, I am able to produce
Inno installers that have a nearly identical set of Python
modules.
It's worth noting that pywin32 is included even though it
probably shouldn't be. But including it is necessary in order
to achieve parity with existing Inno installers.
Differential Revision: https://phab.mercurial-scm.org/D6064
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 10:31:23 -0800] rev 41855
setup: define build_doc command
Currently, various processes for packaging Mercurial state to
manually invoke `make -C doc` in order to generate the documentation.
This Makefile merely invokes `gendoc.py` and `runrst` to produce
man pages and HTML pages.
Not all environments may have the ability to easily run
Makefiles. Windows is notably in this set.
This commit ports the man page and HTML generation logic from
doc/Makefile to setup.py. We introduce a new build_doc command
which generates documentation by calling gendoc.py and runrst.
The documentation can now be built via pure Python by running
`python setup.py build_doc`.
We don't implement dependency tracking because IMO it is more
effort than it is worth.
We could potentially remove the duplicated functionality in
doc/Makefile. But I'm not sure what all is depending on it. So
I plan to keep it around.
# no-check-commit because forced foo_bar function names
Differential Revision: https://phab.mercurial-scm.org/D6063
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 09:16:37 -0800] rev 41854
inno: remove references to pywin32
According to the commit message for 0c35bb01a1195, pywin32 was
removed in Mercurial 1.8!
Differential Revision: https://phab.mercurial-scm.org/D6062
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 09:10:52 -0800] rev 41853
inno: remove cacerts.pem from documentation
The inno distribution no longer includes cacert.pem as of
ca1ad8ef38be22 (April 2015). The docs were never updated.
Differential Revision: https://phab.mercurial-scm.org/D6061
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 28 Feb 2019 12:54:48 -0800] rev 41852
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
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 03 Mar 2019 18:22:49 -0800] rev 41851
inno: move inno installer files to contrib/packaging/inno
Let's isolate the inno installer files to their own directory
so the separation between things is clearer.
This required adjusting a few relative paths and references to
the old directory.
Differential Revision: https://phab.mercurial-scm.org/D6059
Pulkit Goyal <pulkit@yandex-team.ru> [Tue, 05 Mar 2019 04:34:45 +0530] rev 41850
py3: add a new passing test found by buildbot
Differential Revision: https://phab.mercurial-scm.org/D6073