Status Desktop client made in Nim & QML https://status.app
Go to file
Michael Bradley, Jr e0852d2f73 build: implement code signing step for the Windows build
Add a code signing step to the `pkg-windows` target. If the environment
variable `WINDOWS_CODESIGN_PFX_PATH` is not set then code signing is
skipped. If the environment variable `WINDOWS_CODESIGN_TIMESTAMP_URL` is not
set then a verified timestamp will not be included in the signature. Both
variables should be set in production/CI builds.

Signing is performed with Window's [SignTool][signtool]. There is a helpful
[Stack Overflow answer][soa] which explains how to easily setup a self-signed
CA and code signing certificate and then use them with `signtool`, which is how
I tested these changes on my local Windows machine.

Absolute paths are used for `egrep`, `xargs`, and `bash` to avoid accidentally
running other installations of those executables than the ones that ship with
Git Bash. I was experiencing mysterious failures in the sequence of commands
and then noticed that e.g. `which xargs` was resolving to an executable in
`${HOME}/scoop/shims`.

I tested locally that the signed DLLs and EXEs run correctly on Windows 7 and
Windows 10.

For CI builds Status will need to acquire a signing certificate from
e.g. DigiCert. There will be a yearly renewal cost.

In researching what files should be signed, I concluded that it only makes
sense to sign `.dll` and `.exe` files. It's possible to generate signatures for
other file types but the signatures would have to be stored apart from those
files, unlike `.dll` and `.exe` where the signature is embedded in the
executable. Also, it doesn't seem to be possible to embed a signature in a
`.zip` file, though it would be possible to sign the compressed package if we
chose to build and distribute a self-extracting `Status.exe` instead of
`Status.zip`.

If a DLL or EXE file is already validly signed, e.g. the Qt DLLs, `signtool.exe
sign` is not invoked on that file.

Closes #288.

[signtool]: https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool
[soa]: https://stackoverflow.com/a/201277
2020-07-22 10:37:57 -04:00
ci add support for posting PR builds in GitHub comments 2020-07-13 12:15:02 +02:00
docs feat: add readme on how to use the translation script 2020-07-08 12:37:41 -04:00
scripts fix code review comments 2020-07-17 11:55:01 -04:00
src feat: get current network details 2020-07-21 15:12:48 -04:00
ui fix: group status messages were not being displayed 2020-07-22 10:22:10 -04:00
vendor fix: create images in a tmp dir 2020-07-21 14:26:20 -04:00
.gitignore feat: add translation script that transforms qstr to qstrid 2020-07-08 12:37:41 -04:00
.gitmodules feat: use nim-status instead of libstatus 2020-07-17 12:59:20 -04:00
.npmrc chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
.yarnrc chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
AppRun chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
Info.plist fix other blurry images on hdpi screens 2020-06-25 16:13:17 -04:00
Info.runner.plist fix other blurry images on hdpi screens 2020-06-25 16:13:17 -04:00
Makefile build: implement code signing step for the Windows build 2020-07-22 10:37:57 -04:00
QtWebEngineProcess.plist chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
README.md move building section to docs section; use readme from docs/readme 2020-06-22 10:34:07 -04:00
build-linux.sh chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
config.nims build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00
docker-linux-app-image.sh refactor: $QTDIR should include the compiler-arch path segment 2020-06-25 17:29:41 -04:00
env.sh feat: get collectibles from the contracts and their respective apis 2020-06-18 10:55:48 -04:00
nim-status.desktop AppImg packaging 2020-05-15 17:18:20 -04:00
nim.cfg build system refactoring 2020-06-08 13:07:25 -04:00
nim_status_client.nimble feat: onboarding generate new account 2020-05-21 19:33:14 -04:00
nim_status_client.sh chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
package-lock.json chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
package.json chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
screenRec.gif Initial commit 2020-05-06 13:40:00 -04:00
status-icon.icns chore: refactor Linux and macOS build/packaging steps 2020-06-22 10:53:57 -05:00
status.ico add status icon 2020-05-11 16:41:45 -04:00
status.svg Adding nimbus-build-system 2020-05-15 17:18:20 -04:00
windows-install.txt build: implement packaging steps for the Windows build 2020-07-17 13:57:32 -05:00