Skip to content
This repository has been archived by the owner on Jan 18, 2019. It is now read-only.

projectcypress/win-installer

 
 

Repository files navigation

                      Cypress Windows Installer

===== WARNING === WARNING === WARNING === WARNING === WARNIN === WARNING =====

This repository contains the files and scripts necessary to build a Windows
installer for Cypress.  This is not the place to go if you just want to install 
Cypress on Windows.  However, is you are a developer, working to enhance or 
update the installer for the latest version of Cypress, than you're in the 
right place.

===== WARNING === WARNING === WARNING === WARNING === WARNIN === WARNING =====


=====================
+  Prerequisites:
=====================

* NSIS (Nullsoft Scriptable Installation System)

  The windows installer is built using the Nullsoft Scriptable Installation
  System (NSIS) tool.  Specifically, it was designed with version 2.46 of the
  tool.

  NSIS Project URL: http://nsis.sourceforge.net/
  NSIS Documentation: http://nsis.sourceforge.net/Docs
  Downloads: http://nsis.sourceforge.net/Download

* unzip command

  The batch file that prepares this directory prior to running the installer
  uses the unzip command.  If you are using the Windows git client included in
  this directory, it includes the necessary command.  Simply add the directory
  <GIT HOME>\bin to your PATH and you'll be set.  <GIT HOME> refers to the
  directory where git is installed (C:\Program Files\Git by default).

* RailsInstaller Developer Kit
  The scripts need to have a development environment set up for building the
  native version of certain gems.  In order to compile from sources, the
  environment must contain a C++ compiler.  The easiest way to do this is if
  you have installed the RailsInstaller from http://railsinstaller.org/, then 
  set a RI_DEVKIT environemt variable to C:\RailsInstaller\DevKit

* OLE-COM Object Viewer (optional)

  While not explicitly necessary to build the installer, some aspects of
  installing something on windows (i.e. adding a scheduled task) require
  invoking Windows components via an Object Linking & Embedding (OLE) or
  Common Object Model (COM) interface.  Doing this from an NSIS install script
  requires determining the ordinal number of the desired COM interface
  function.  The OLE-COM Object Viewer allows the COM interfaces installed on
  the system to be browsed to determine these numbers.  It is included with
  Microsoft's Visual Studio development environment.  I believe that it is
  also part of the Windows 2000 Resource Kit.

* VM environment (recommended)

  When testing installers, it is a good idea to have a reproducible environment
  to revert back to if/when things don't install or uninstall properly.  An
  easy way to set this up is to have a VM on which you have the requisite 
  privileges to create "snapshots".  Have one snapshot that is simply the 
  original image that was cloned.  Then you can revert back to that snapshot 
  whenever you need to.  

=====================
+  Building
=====================

Building the installer is quite simple.  After installing NSIS, make sure the
NSIS install tool directory (C:\Program Files\NSIS by default) and the Git bin
directory are included in the PATH environment variable.  If there are different
versions of mongodb or redis project required, you'll need to change
the variables in the preparefor.bat file to reflect them. From the directory 
where this file resides, simply execute the following command:

  preparefor.bat --help

which will display the following:

Usage: preparefor.bat <architecture> <product> <version> [switches]

   the target architecture: 32|64
   the product:           Cypress
   the version tag:       version of the product (e.g. v1.1, develop, master)

Additionally you can pass the following switches on the command line
  --help          to show usage information
  --verbose       to turn echo on and see eberything that is happening
  --repo <repo>   to specify an alternate git repository to pull from
                    for example https://github.com/tlabczbrown

  --noclean       to not delete any lingering files from a previous installation
  --nofetch       to not pull the tar files for measures and product
  --nobuild       to avoid unpacking and compiling requisite software
  --nogenerate    to avoid generating the installer with NSIS

A typical usage for each product would be:
   preparefor 64 Cypress v1.3.1

The preparefor command is a batch file that prepares the directory for either a 32
or a 64 bit build of the installer for Cypress. The batch 
file will also run the makensis command with the appropriate defines.  

If all goes well, this will create an executable called either
Cypress-<version>-i386.exe (32 bit) or Cypress-<version>--x86_64.exe (64 bit) 
which is the installer for the respective architecture. 

NB: the distinction between lean-and-mean and fat-and-happy is that the requisite
gems are packaged up with the installer in placed in the vendor/cache directory
for fat-and-happy.  With lean-and-mean, the gems are pulled from rubygems during
installation rather than beforehand.  The reason for this is that Cypress, as of 
this writing, depends on versions of gems that are not published on rubygems. 
Rather, they reside on github.  But we don't want to require the client machine to
install git.

About

windows installer for Cypress

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published