Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boinc installer 5065 #5368

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Conversation

parvit
Copy link
Contributor

@parvit parvit commented Sep 20, 2023

Fixes #5065, please review and send feedback.

Description of the Change

The change implements a new workflow that allows to build the installers for windows platform using the WiX toolset version 3.14.

Versions

Installers will be generated (supporting Windows 7 platform onward) for the following combinations:

  • x64
  • x64 with VirtualBox installer bundled
  • ARM64

Prerequisites to build

The following software must be available in order to build locally:

  • MSBuild 2022
  • Powershell 7+
  • WiX Toolkit 3.14

Secrets

Two Github secrets are necessary for correct operation of workflow:

  • secrets.CERTIFICATE_FILE: This needs to point to a valid certificate file in PFX format, comprising of the certificate plus private key necessary for signing
  • secrets.CERTIFICATE_PASS: Password used for accessing the CERTIFICATE_FILE secret

Output

The generated installers have the nomenclature boinc_{version}_windows_{variant}.exe, where:

  • version : is the value BOINC_VERSION_STRING extracted from file version.h when on CI, if building locally it is the value passed to installer.ps1
  • variant : a string value depending on the selected variant (eg. x86_64, x86_64_vbox, arm64)

An example name for x64 version 7.24.0.0 would be: boinc_7.24.0.0_windows_x86_64.exe.

Building and Integration

Workflow can be triggered by pushing on master branch.

Locally, the 'build' and 'build/prerequisistes' folders must be created, their contents being:

  • build: the contents of 'manager' and 'client' packages, required binaries (boinc.exe, boincmgr.exe, etc...) are checked for presence and additional files harvested and included in installation
  • prerequisites: if required by the variant (eg. x64+VirtualBox) the file VirtualBox-7.0.10-158379-Win.exe (https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe) is expected, empty otherwise

An additional prerequisite to execute the installer UI (bootstrapper application) is .NET 4.8 (4.8.1 if on ARM64), that has to be installed manually by the user prior to launching the installer (unless the user is on Windows 10+, which comes preinstalled with it).

Now the powershell script installer.ps1 can be invoked like so:
pwsh -f .\installer.ps1 -Version <version> -Type <type> -Certificate <pfx path> -CertificatePass <pfx password>

With 'type' being one of: x64,x64_vbox,arm64.

After finishing execution the result can be found in build/ directory.

Release Notes

Building Windows installers with WiX toolkit

commit 138c7bf8e397d66dabe100996ff6f3a7dcaba41d
Author: Vittorio Parrella <vittorioparrella+1@gmail.com>
Date:   Thu Sep 21 00:40:27 2023 +0200

    renamed lib and fixed paths

commit 68902b46613266e9e87b6118a857125e2f6808a7
Author: Vittorio Parrella <vittorioparrella+1@gmail.com>
Date:   Thu Sep 21 00:26:02 2023 +0200

    moved installer folder

commit 8638bf88a0e1c03f9fe5a085943bea388d404fa9
Author: Vittorio Parrella <vittorioparrella+1@gmail.com>
Date:   Thu Sep 21 00:24:21 2023 +0200

    rebase on current master
included installer into windows.yml workflow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

[Windows] Move existing InstallShield installer to the WiX Toolset
2 participants