Staff Client Build/Update Enhancements

Bug #616452 reported by Thomas Berezansky on 2010-08-11
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Jason Etheridge

Bug Description

Simplify and enhance the staff client build process, including:

Automatic generation of a version #/stamp (to remove need to run "make STAFF_CLIENT_BUILD_ID=something install")
Support for building full clients, with a windows installer
Support for building files suitable for automatic updates (XULRunner and Firefox Extension based)
Base infrastructure code for distributing automatic updates
GUI modifications to the login screen to check for updates when updates are available

Thomas Berezansky (tsbere) wrote :
Download full text (6.5 KiB)

Patch quick notes:

Added updates folder with scripts,
Autoconf addition for enabling/disabling installing of said folder
Added a block to the example apache eg.conf file for the updates folder. !!!IMPORTANT - when updating and wanting to use the auto update feature, make sure you add this to your config!!!
Autoconf addition of --with-updateshost=hostname for setting an auto update host at configure time. (sets AUTOUPDATE_HOST default for staff client builds, otherwise no effect currently)
Changed the staff client build process:
 STAFF_CLIENT_BUILD_ID split into three variables:
  STAFF_CLIENT_BUILD_ID still generated via date string automatically, only used in application.ini now
  STAFF_CLIENT_VERSION generated from README file. If trunk, generated from svn info. Applied to application.ini, install.rdf, constants.js
  STAFF_CLIENT_STAMP_ID generated from STAFF_CLIENT_VERSION. Used for all xul/server URL replacements instead of STAFF_CLIENT_BUILD_ID, applied to constants.js
 I suggest that with this patch one does NOT specify STAFF_CLIENT_BUILD_ID when running make.
 Added substitution rules for when AUTOUPDATE_HOST is specified at end of stamp process. Note that this can be set at configure time (see above) or via "make AUTOUPDATE_HOST=hostname build"
Changed staff client's main.js:
 Uses CLIENT_VERSION and CLIENT_STAMP constants added to constants.js for version variable now
 Added code for "Check for Upgrades" menu item showing/hiding/functionality
Changed staff client's main.xul:
 Changed "About" menu to "Help" menu - TRANSLATION NEEDED!
 Added "About" to "Help" menu (using previous about button translation)
 Added "Contents" to "Help" menu - No code running it, disabled by default, I don't have a page to send it to yet, etc. - TRANSLATION NEEDED!
 Added "Check for Upgrades" to "Help" menu - TRANSLATION NEEDED!
Changed staff client's auth/controller.js:
 Added a check - If we have a function for checking for upgrades (set in main.js) and the server version is incompatible, prompt for checking for upgrades instead of normal error. - TRANSLATION NEEDED!
Added/Changed staff client make targets:
 clients - runs make win-client, linux-client, and generic-client (individually)
 client_dir - Builds a client directory from the build directory, without doing a rebuild. This mainly amounts to "copy everything but server/".
 client_app - Prereq client_dir, Removes install.rdf from client directory so that an app bundle can't be installed as an extension
 client_ext - Prereq client_dir, Removes application.ini, autoupdate.js, standalone_xul_app.js from client directory so that an extension won't break firefox
 extension - Prereq client_ext, Re-written to use client_ext.
 generic-client - Prereq client_app, Makes an xpi suitable for xulrunner --install-app usage
 win-xulrunner - Prereq client_app, adds windows xulrunner to the client build
 linux-xulrunner - Prereq client_app, adds linux xulrunner to the client build
 win-client - Prereq win-xulrunner, builds a setup exe (requires that nsis package be installed, will add options for automatic update if configured and developer options if client build was a "make devbuild")
 linux-client -...


Galen Charlton (gmc) on 2010-08-11
Changed in evergreen:
importance: Undecided → Wishlist
Jason Etheridge (phasefx) wrote :

I played around with the patch shared in IRC and was able to cross-compile a windows executable that worked in WinXP, and was able to perform a client-side upgrade from within the client. Very nice! I'm willing to commit tsbere's work to trunk, but am willing to wait until after rel_2_0 is branched if other devs prefer that. I'd hope to see it backported once others get a chance to test it out.

Thomas Berezansky (tsbere) wrote :

Updated patch file to cover a potential issue or two and add another manually provided file for windows installer use (xulrunner-stub.exe).

Thomas Berezansky (tsbere) wrote :

Attaching some documentation, should be ready for dump into dokuwiki but likely needs to be split up into multiple pages (with links between in appropriate places). Fair warning, barely proofread.

James Fournie (jfournie) on 2010-09-14
Changed in evergreen:
status: New → Fix Committed
assignee: nobody → Jason Etheridge (phasefx)
Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers