User Tools

Site Tools


scratchpad:packaging_the_staff_client_for_windows

Evergreen 2.1

This is what bshum did for 2.1-rc2 (with no auto-update)

wget http://evergreen-ils.org/downloads/previews/Evergreen-ILS-2.1-RC2.tar.gz
tar xvf Evergreen-ILS-2.1-RC2.tar.gz
cd Evergreen-ILS-2.1-RC2/
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make rigbeta
make STAFF_CLIENT_STAMP_ID=rel_2_1-rc2 build
make win-client  #note: needed to bump xulrunner version in makefile to 1.9.2.19
mv evergreen_staff_client_setup.exe evergreen-setup-rel_2_1-rc2.exe
md5sum evergreen-setup-rel_2_1-rc2.exe > evergreen-setup-rel_2_1-rc2.exe.md5

This is what bshum did for 2.1-rc1 (with no auto-update)

wget http://evergreen-ils.org/downloads/previews/Evergreen-ILS-2.1-RC1.tar.gz
tar xvf Evergreen-ILS-2.1-RC1.tar.gz
cd Evergreen-ILS-2.1-RC1/
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make rigbeta
make STAFF_CLIENT_STAMP_ID=rel_2_1-rc1 build
make win-client  #note: issue with windowssetup.nsi file, need to change from "rc-1" back to "beta" on line 8
mv evergreen_staff_client_setup.exe evergreen-setup-rel_2_1-rc1.exe

This is what phasefx did for an unofficial 2.1 r20002 package with no auto-update

(Well, almost; instructions have been Git-ified — Galen Charlton 2011/05/14 13:31)

git clone git://git.evergreen-ils.org/Evergreen.git
cd Evergreen
git checkout -b pkg_for_rel_2_1 origin/rel_2_1
./autogen.sh
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_STAMP_ID=rel_2_1 devbuild win-client
mv evergreen_staff_client_setup.exe evergreen-setup-rel_2_1_r20002.exe

Evergreen 2.0

This is what bshum did for 2.0.8, 2.0.9, and 2.0.10.

Same steps as beta1 with beta1 changed to 2.0.10, and used xulrunner 1.9.2.19, Innosetup 5.4.0-unicode, and Mike Peters icon file.

Note: as of 2011-08-24, xulrunner version has been "locked" to 1.9.2.19 release for 2.0 series of Evergreen.

This is what bshum did for 2.0.7.

Same steps as beta1 with beta1 changed to 2.0.7, and used xulrunner 1.9.2.18, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what bshum did for 2.0.6.

Same steps as beta1 with beta1 changed to 2.0.6, and used xulrunner 1.9.2.17, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what bshum did for 2.0.5.

Same steps as beta1 with beta1 changed to 2.0.5, and used xulrunner 1.9.2.16, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what bshum did for 2.0.3 and 2.0.4.

Same steps as beta1 with beta1 changed to 2.0.4, and used xulrunner 1.9.2.15, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what bshum did for 2.0.2.

Same steps as beta1 with beta1 changed to 2.0.2, and used xulrunner 1.9.2.13, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what brian_f did for 2.0.1.

Same steps as beta1 with beta1 changed to 2.0.1, and used xulrunner 1.9.2.13, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what bshum did for 2.0 rc1, rc2, rc3, and 2.0.0.

Same steps as beta1 with beta1 changed to rc2, and used xulrunner 1.9.2.13, Innosetup 5.4.0-unicode, and Mike Peters icon file.

This is what brian_f did for 2.0 beta5.

Same steps as beta1 with beta1 changed to beta5, and used xulrunner 1.9.2.13, Innosetup 5.4.0, and Mike Peters icon file.

This is what brian_f did for 2.0 beta2, beta3, beta4.

Same steps as beta1 with beta1 changed to beta2, and used xulrunner 1.9.2.12, Innosetup 5.4.0, and Mike Peters icon file.

This is what phasefx did for 2.0 beta1.

Same sort of steps as alpha2, but used xulrunner 1.9.2.12, Innosetup 5.4.0 (u), and new icon file from Mike Peters (derived from the one from GPLS, and licensed under the GPL).

wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.0-beta1.tar.gz
tar xvf Evergreen-ILS-2.0-beta1.tar.gz
cd Evergreen-ILS-2.0-beta1/
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_2_0_beta1 build
rm -rf build/server/
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{4857C16C-821A-4A8D-ACED-22F73D9C1FCC}
AppName=Evergreen Staff Client 2.0beta
AppVerName=Evergreen Staff Client v2.0beta1
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client 2.0beta
DefaultGroupName=Evergreen Staff Client 2.0beta
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none
 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\xulrunner-1.9.2.12.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\evergreen-icon.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\evergreen-icon.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client 2.0beta"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\evergreen-icon.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client 2.0beta"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\evergreen-icon.ico";
 
[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

This is what phasefx did for 2.0 alpha5.

Same sort of steps as alpha2, but used xulrunner 1.9.2.10.

This is what phasefx did for 2.0 alpha4.

Same sort of steps as alpha2.

This is what phasefx did for 2.0 alpha3.

Same sort of steps as alpha2, but I hand patched the build for http://svn.open-ils.org/trac/ILS/changeset/18082

This is what phasefx did for 2.0 alpha2.

wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.0-alpha2.tar.gz
tar xvf Evergreen-ILS-2.0-alpha2.tar.gz
cd Evergreen-ILS-2.0-alpha2/
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_2_0_alpha2 build
rm -rf build/server/

Innosetup 5.3.10-unicode xulrunner 1.9.2.8

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{4857C16C-821A-4A8D-ACED-22F73D9C1FCC}
AppName=Evergreen Staff Client 2.0alpha
AppVerName=Evergreen Staff Client v2.0alpha2
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client 2.0alpha2
DefaultGroupName=Evergreen Staff Client 2.0alpha2
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none
 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\xulrunner-1.9.2.8.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client 2.0alpha"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client 2.0alpha"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";
 
[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

This is what phasefx did for 2.0 alpha1.

Same steps as 1.6. Using Inno Setup 5.3.10-unicode and xulrunner 1.9.2.8. I also tweaked the UUID and default app directory. Trying to install over top of an existing EG1.6 installation will break things, I spent too much time trying to figure out how to clean things up correctly during install, so ended up punting.

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{4857C16C-821A-4A8D-ACED-22F73D9C1FCC}
AppName=Evergreen Staff Client 2.0alpha
AppVerName=Evergreen Staff Client v2.0alpha1
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client 2.0alpha
DefaultGroupName=Evergreen Staff Client 2.0alpha
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\xulrunner-1.9.2.8.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Jason Etheridge\Desktop\staff_clients\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client 2.0alpha"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client 2.0alpha"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";

[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

Evergreen 1.6

This is what bshum did for 1.6.2.3, 1.6.1.8, and 1.6.1.9.

Same steps as before. Using Inno Setup 5.4.0-unicode and xulrunner 1.9.0.17.

This is what brian_f did for 1.6.2.2 and 1.6.1.7.

Same steps as before. Using Inno Setup 5.4.0-unicode and xulrunner 1.9.0.17.

This is what bshum did for 1.6.2.0 and 1.6.1.6.

Same steps as before. Using Inno Setup 5.4.0-unicode and xulrunner 1.9.0.17.

This is what phasefx did for 1.6.1.5 and 1.6.2.0.rc1.

Same steps as before. Using Inno Setup 5.3.10-unicode and xulrunner 1.9.0.17.

This is what bshum did for 1.6.1.4 and 1.6.0.10.

Same steps as before. Using Inno Setup 5.4.0-unicode and xulrunner 1.9.0.17.

This is what phasefx did for 1.6.1.1 and 1.6.0.6.

Same steps as before. Using Inno Setup 5.3.10-unicode and xulrunner 1.9.0.17.

This is what phasefx did for 1.6.1.0.

Identical to what phasefx did for 1.6.0.4, except changed references to the Evergreen version, and used Inno Setup 5.3.10-unicode.

This is what phasefx did for 1.6.0.5.

Identical to what phasefx did for 1.6.0.4, except changed references to the Evergreen version.

This is what phasefx did for 1.6.0.4.

wget http://evergreen-ils.org/downloads/Evergreen-ILS-1.6.0.4.tar.gz
tar xvf Evergreen-ILS-1.6.0.4.tar.gz
cd Evergreen-ILS-1.6.0.4/
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_1_6_0_4 build
rm -rf build/server/

Innosetup 5.3.9-unicode xulrunner 1.9.0.17 (which is no longer available from Mozilla)

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9CA92222-9B1A-421A-BE6E-F18E44E40D7F}
AppName=Evergreen Staff Client
AppVerName=Evergreen Staff Client v1.6.0.4
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client
DefaultGroupName=Evergreen Staff Client
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none
 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\xulrunner-1.9.0.17.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";
 
[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

This is what phasefx did for 1.6.0.1.

This time I took the staff_client/build/ directory from Dan's virtual image build, and deleted the /server/ sub-directory.

I grabbed the 1.9.0.17 version of xulrunner.

I upgraded InnoSetup to version 5.3.7(a), the non-Unicode build. I used the same Evergreen2.ico file.

And I used this version of the installer script:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9CA92222-9B1A-421A-BE6E-F18E44E40D7F}
AppName=Evergreen Staff Client
AppVerName=Evergreen Staff Client v1.6.0.1
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client
DefaultGroupName=Evergreen Staff Client
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff clients\xulrunner-1.9.0.17.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff clients\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff clients\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";

[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

This is what phasefx did for 1.6.0.0.

First, I used a Linux machine with all the prerequisites for Evergreen already installed.

mkdir eg_releases
cd eg_releases
wget http://open-ils.org/downloads/Evergreen-ILS-1.6.0.0.tar.gz
tar xfz Evergreen-ILS-1.6.0.0.tar.gz
cd Evergreen-ILS-1.6.0.0
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_1_6_0_0 install
rm -rf build/server/

The build/ directory now contains the local code for the staff client, and if you were to point xulrunner to build/application.ini the client would start. Our goal however is create a Windows version of the staff client where a suitable version of xulrunner is bundled with that build/ directory together with an installation program. For this, I've been using Inno Setup on a Windows machine, though I've also used Inno Setup successfully with WINE on Linux.

So I copied build/ to a Windows machine and with Inno Setup installed (specifically, Inno Setup 5.3.4 with Unicode support).

I downloaded the latest 1.9 release of xulrunner for Windows. I also downloaded the Evergreen2.ico file.

Then I fed Inno Setup a script similar to this one and renamed the evergreen-setup.exe file it produced:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9CA92222-9B1A-421A-BE6E-F18E44E40D7F}
AppName=Evergreen Staff Client
AppVerName=Evergreen Staff Client v1.6.0.0
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client
DefaultGroupName=Evergreen Staff Client
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\xulrunner-1.9.0.13.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";

[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

Obviously, the hardcoded "C:\Documents and Settings\phasefx\…" would not be applicable to other users. There is probably another {variable} that should be inserted there.

Evergreen 1.4

This is what phasefx did for 1.4.0.6.

First, I used a Linux machine with all the prerequisites for Evergreen already installed.

mkdir eg_releases
cd eg_releases
wget http://open-ils.org/downloads/Evergreen-ILS-1.4.0.6.tar.gz
tar xfz Evergreen-ILS-1.4.0.6.tar.gz
cd Evergreen-ILS-1.4.0.6
./configure --disable-core --disable-web --disable-reporter
cd Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_1_4_0_6 install
rm -rf build/server/

The build/ directory now contains the local code for the staff client, and if you were to point xulrunner to build/application.ini the client would start. Our goal however is create a Windows version of the staff client where a suitable version of xulrunner is bundled with that build/ directory together with an installation program. For this, I've been using Inno Setup on a Windows machine, though I've also used Inno Setup successfully with WINE on Linux.

So I copied build/ to a Windows machine and with Inno Setup installed (specifically, Inno Setup 5.3.4 with Unicode support).

I downloaded the latest 1.8 contrib release of xulrunner for Windows. The 1.6 and trunk versions of Evergreen use the 1.9 series of xulrunner, but for 1.4.0.6 we're sticking with 1.8.1.3. I also downloaded the Evergreen2.ico file.

Then I fed Inno Setup a script similar to this one and renamed the evergreen-setup.exe file it produced:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9CA92222-9B1A-421A-BE6E-F18E44E40D7F}
AppName=Evergreen Staff Client
AppVerName=Evergreen Staff Client v1.4.0.6
AppPublisher=Evergreen Community
AppPublisherURL=http://evergreen-ils.org/
AppSupportURL=http://evergreen-ils.org/
AppUpdatesURL=http://evergreen-ils.org/
DefaultDirName={pf}\Evergreen Staff Client
DefaultGroupName=Evergreen Staff Client
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\xulrunner-1.8.1.3.en-US.win32-20080128\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff client\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://evergreen-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";

[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

Evergreen 1.2

This is what phasefx did for the tags/rel_1_2_1_1 release:

svn co svn://svn.open-ils.org/ILS/tags/rel_1_2_1_1
cd rel_1_2_1_1/Open-ILS/xul/staff_client/
make STAFF_CLIENT_BUILD_ID=rel_1_2_1_1

Then elsewhere, I made sure I had pristine copy of xulrunner:

unzip xulrunner-1.8.1.3.en-US.win32.zip

Then I used the Inno Setup Compiler version 5.1.14 with a script resembling this (I'm just changing it slightly):

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=Evergreen Staff Client Example
AppVerName=Evergreen Staff Client v1.2.1.1 Example
AppPublisher=Evergreen Community
AppPublisherURL=http://open-ils.org/
AppSupportURL=http://open-ils.org/
AppUpdatesURL=http://open-ils.org/
DefaultDirName={pf}\Evergreen Staff Client
DefaultGroupName=Evergreen Staff Client
AllowNoIcons=yes
OutputBaseFilename=evergreen-setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\phasefx\Desktop\staff clients\xulrunner-1.8.1.3.en-US.win32\xulrunner\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\phasefx\Desktop\staff clients\Evergreen2.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\cygwin\home\phasefx\rel_1_2_1_1\Open-ILS\xul\staff_client\build\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; IconFilename: "{app}\Evergreen2.ico";
Name: "{group}\{cm:ProgramOnTheWeb,Evergreen Staff Client}"; Filename: "http://open-ils.org/"
Name: "{group}\{cm:UninstallProgram,Evergreen Staff Client}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: desktopicon; IconFilename: "{app}\Evergreen2.ico";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Evergreen Staff Client"; Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Tasks: quicklaunchicon; IconFilename: "{app}\Evergreen2.ico";

[Run]
Filename: "{app}\xulrunner.exe"; WorkingDir: "{app}\build\"; Parameters: application.ini; Description: "{cm:LaunchProgram,Evergreen Staff Client}"; Flags: nowait postinstall skipifsilent

The paths to xulrunner and the staff client build/ directory are the most important things to change.

When you compile the package, it creates an evergreen-setup.exe file. In this case, I renamed it to evergreen-setup-rel_1_2_1_1.exe

Here is the Evergreen2.ico file

scratchpad/packaging_the_staff_client_for_windows.txt · Last modified: 2011/10/04 16:46 by bshum

© 2008-2017 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a member of Software Freedom Conservancy.