win_dev - OpenNebula/one-apps GitHub Wiki
Build Your Own Package
Requirements
- Linux host
- latest msitools
- binary nssm.exe (provided in the distribution)
- binary rhsrvany.exe (optional)
mkisofs
The NSSM service manager is the preferred tool for managing services on Windows. It handles long-running services better and more cleanly (for example, SrvAny/RHSrvAny fail to terminate their child processes on stop). NSSM is in the public domain and the binary is provided in this repo. There are 32-bit and 64-bit versions available; currently the 32-bit version is used, since it covers a broader range of systems.
If you wish to use rhsrvany
instead of NSSM, you must set the shell variable SRV_MANAGER
to rhsrvany
; otherwise it will default to nssm
.
On RHEL (CentOS) and Fedora systems, the required binary rhsrvany.exe is distributed as part of the package virt-v2v
and placed into /usr/share/virt-tools/rhsrvany.exe
. Please copy the EXE into your local repository clone before creating the MSI.
Steps
The script generate.sh
builds the MSI package. It's a wrapper around the wixl
command from msitools
. It reads package.wxs
, a package
definition in the WiX XML format. Package name or version can be overridden by the environment variables NAME
and VERSION
. For example:
$ TARGET=msi ./generate.sh
$ NAME=one-context TARGET=msi ./generate.sh
$ VERSION=1.0.0 TARGET=msi ./generate.sh
The new package is created as ${NAME}-${VERSION}.msi
, e.g. one-context-1.0.0.msi
in the out/
directory.
You can also build both the ISO and MSI targets, by running:
$ ./generate-all.sh
To build with a different service manager and explicit version:
$ env SRV_MANAGER=rhsrvany VERSION=5.13 ./generate-all.sh
During the package build please ignore the following assertion:
(wixl:22764): wixl-CRITICAL **: wixl_wix_builder_install_mode_to_event: assertion 'modeString != NULL' failed
This is caused by skipping the attribute Start
in ServiceControl
. The parameter is optional in the WiX specification, but msitools
looks for it nonetheless. The package is built with no problems.