simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Fri Jun 1 19:39:30 BST 2018
TL;DR:
8615892 Buildscr: separate 'make all' from 'make cleantestprogs'.
cbf4b10 Buildscr: add one more make -j flag.
23698d6 Installer: condition out use of WiX DLL components.
ec850f4 Build MSI installers for Arm Windows.
Repository: https://git.tartarus.org/simon/putty.git
On the web: https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer: Simon Tatham <anakin at pobox.com>
Date: 2018-06-01 19:39:30
commit 8615892fb76fc99bed2e5437bed14d7d5a7b2322
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=8615892fb76fc99bed2e5437bed14d7d5a7b2322;hp=108e19e73cf7dad9bfd8732784ced04d97f827d9
Author: Simon Tatham <anakin at pobox.com>
Date: Fri Jun 1 19:35:15 2018 +0100
Buildscr: separate 'make all' from 'make cleantestprogs'.
When our Windows make commands were serial, 'make all cleantestprogs'
was a nice shorthand for 'first build all the binaries, then delete
the ones we don't want to ship'. Now they're using -j, that doesn't
work so well - last night's snapshot build log shows that the command
'rm -f testbn.exe' from the cleantestprogs target happened _before_
the lld-link command that created testbn.exe in the first place, so
that file got shipped into the download directory by mistake.
Easily fixed, of course - just run two separate make commands per
build directory.
Buildscr | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
commit cbf4b10ebd1b90a910eca7f1448cfa8748925891
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=cbf4b10ebd1b90a910eca7f1448cfa8748925891;hp=8615892fb76fc99bed2e5437bed14d7d5a7b2322
Author: Simon Tatham <anakin at pobox.com>
Date: Fri Jun 1 06:54:13 2018 +0100
Buildscr: add one more make -j flag.
Somehow yesterday I managed to miss the one in the icons build
command. It's not the most critical one to speed up, but every little
helps.
Buildscr | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 23698d616419a9b42c5d15c578f50ffb38ea0b9c
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=23698d616419a9b42c5d15c578f50ffb38ea0b9c;hp=cbf4b10ebd1b90a910eca7f1448cfa8748925891
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 19:23:59 2018 +0100
Installer: condition out use of WiX DLL components.
This arranges that we can build a completely pure MSI file, which
doesn't depend on any native code at install time. We don't lose much
by doing this - only the option to pop up the README file at the end
of installation, and validation of the install directory when you
select it from a file browser.
My immediate use for this is that I want to use it for installers that
will run on Windows on Arm. But it also seems to me like quite an
attractive property in its own right - no native code at all running
at install time would be an _especially_ good guarantee that that code
can't be hijacked by DLLs in the download directory. So I may yet
decide that the features we're losing are not critical to _any_
version of the MSI, and throw them out unconditionally.
Buildscr | 4 ++--
windows/installer.wxs | 10 ++++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
commit ec850f4d98ea4ce33bfba9ebd790376aaaaf7a71
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=ec850f4d98ea4ce33bfba9ebd790376aaaaf7a71;hp=23698d616419a9b42c5d15c578f50ffb38ea0b9c
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 19:31:20 2018 +0100
Build MSI installers for Arm Windows.
I expected this to be nightmarish because WiX 3 doesn't know about the
Windows on Arm platform at all. Fortunately, it turns out that it
doesn't have to: testing on a borrowed machine I find that Windows on
Arm's msiexec.exe is quite happy to take MSIs whose platform field in
the _SummaryInformation table says "Intel".
In fact, that seemed to be _all_ that my test machine would accept: I
tried taking the MSI apart with msidump, putting some other value in
there (e.g. "Arm64" or "Arm") and rebuilding it with msibuild, and all
I got was messages from msiexec saying "This installation package is
not supported by this processor type."
So in fact I just give WiX the same -arch x86 option that I give it
for the real 32-bit x86 Windows installer, but then I point it at the
Arm binaries, and that seems to produce a viable MSI. There is the
unfortunate effect that msiexec forcibly sets the default install
location to 'Program Files (x86)' no matter how I strive to make it
set it any other way, but that's only cosmetic: the programs _run_
just fine no matter which Program Files directory they're installed
into (and I know this won't be the first piece of software that
installs itself into the wrong one). Perhaps some day we can find a
way to do that part better.
On general principles of caution (and of not really wanting to force
Arm machines to emulate x86 code at all), the Arm versions of the
installers have the new DllOk=no flag, so they're pure MSI with no
embedded DLLs.
Buildscr | 12 ++++++++---
windows/installer.wxs | 60 ++++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 61 insertions(+), 11 deletions(-)
More information about the tartarus-commits
mailing list